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