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