usermode.conf revision 1.6.2.1       1  1.6.2.1    martin # $NetBSD: usermode.conf,v 1.6.2.1 2023/10/02 13:26:04 martin Exp $
      2      1.1  christos # NetBSD/usermode customization script used by mkimage
      3      1.3  christos 
      4      1.3  christos # XXX: BROKEN, needs to be converted to makefs
      5      1.1  christos custom=custom
      6      1.1  christos image=usermode.img
      7      1.1  christos overhead=8 # in MB
      8      1.1  christos sets="base etc modules"
      9      1.1  christos setsdir=/usr/build/release/$(uname -m)/binary/sets
     10      1.1  christos size=0	# in MB
     11      1.1  christos usermodedirs="/var.cow /etc.cow /root.cow /pkgs"
     12      1.1  christos 
     13      1.1  christos make_fstab() {
     14      1.3  christos cat > ${mnt}/etc/fstab << EOF
     15      1.1  christos # NetBSD/usermode /etc/fstab
     16      1.1  christos /dev/ld0a       /               ffs     ro              1 1
     17      1.1  christos /dev/ld1a	/pkgs		ffs	ro		1 2
     18      1.1  christos ptyfs           /dev/pts        ptyfs   rw
     19      1.1  christos procfs          /proc           procfs  rw
     20      1.1  christos # mount /root as tmpfs on top of existing dir
     21      1.1  christos tmpfs           /root.cow       tmpfs   rw,-s2M         0 0
     22      1.1  christos /root.cow       /root           union   rw,hidden       0 0
     23      1.1  christos # mount /etc as tmpfs on top of existing dir
     24      1.1  christos tmpfs           /etc.cow        tmpfs   rw,-s12M        0 0
     25      1.1  christos /etc.cow        /etc            union   rw,hidden       0 0
     26      1.1  christos # mount /var as tmpfs on top of existing dir
     27      1.1  christos tmpfs           /var.cow        tmpfs   rw,-s32M         0 0
     28      1.1  christos /var.cow        /var            union   rw,hidden       - -
     29      1.1  christos tmpfs           /tmp            tmpfs   rw,-s32M        0 0
     30      1.1  christos /dev/cd0a       /cdrom          cd9660  ro,noauto
     31      1.1  christos EOF
     32      1.1  christos }
     33      1.1  christos 
     34      1.1  christos customize() {
     35      1.3  christos cat >> ${mnt}/etc/rc.conf << EOF
     36      1.1  christos # make sure we have the right rw filesystem at boot
     37      1.1  christos critical_filesystems_local="/var.cow /var /etc.cow /etc /root.cow /root"
     38      1.1  christos 
     39      1.1  christos # Add local overrides below
     40      1.1  christos #
     41      1.1  christos dhcpcd=YES
     42      1.1  christos sshd=YES
     43  1.6.2.1    martin certctl_init=YES
     44      1.1  christos EOF
     45      1.1  christos 
     46      1.1  christos echo "${bar} making extra directories ${bar}"
     47      1.1  christos for d in ${usermodedirs}; do
     48      1.3  christos 	mkdir -p ${mnt}/${d}
     49      1.1  christos done
     50      1.1  christos 
     51      1.1  christos echo "${bar} customising /var/tmp ${bar}"
     52      1.3  christos rm -rf ${mnt}/var/tmp
     53      1.3  christos (cd ${mnt}/var && ln -s /tmp tmp)
     54      1.1  christos 
     55      1.1  christos # package-related stuff
     56      1.1  christos (cat ${mnt}/etc/csh.cshrc;echo "setenv PKG_DBDIR /usr/pkg/.dbdir") > ${tmp}
     57      1.3  christos mv ${tmp} ${mnt}/etc/csh.cshrc
     58      1.1  christos (cat ${mnt}/etc/profile;echo "export PKG_DBDIR=/usr/pkg/.dbdir") > ${tmp}
     59      1.3  christos mv ${tmp} ${mnt}/etc/profile
     60      1.1  christos (echo "PKG_DBDIR=/usr/pkg/.dbdir") > ${tmp}
     61      1.3  christos mv ${tmp} ${mnt}/etc/mk.conf
     62      1.3  christos (cd ${mnt}/usr && ln -s /pkgs/usr/pkg pkg)
     63      1.1  christos 
     64      1.1  christos # last, customisation stage
     65      1.1  christos if [ -d ${custom} ]; then
     66      1.1  christos 	echo "${bar} user customisations from files in ${custom} ${bar}"
     67      1.3  christos 	(cd ${custom} && pax -rwpe . ${mnt})
     68      1.1  christos fi
     69      1.1  christos 
     70      1.1  christos df ${mnt}
     71      1.1  christos }
     72      1.1  christos 
     73      1.1  christos cleanup() {
     74      1.1  christos }
     75