evbarm.conf revision 1.14 1 # $NetBSD: evbarm.conf,v 1.14 2014/03/31 16:20:49 christos Exp $
2 # evbarm shared config
3 #
4 image=$HOME/${board}.img
5
6 specialdirs="/kern /proc"
7 MACHINE=evbarm
8
9 swap=256
10 extra=8 # spare space
11 boot=112
12 init=8
13
14 size=0 # autocompute
15 msdosid=12
16
17 make_label_evbarm() {
18 # compute all sizes in terms of sectors
19 local totalsize=$(( ${newsize} * 1024 * 2 / 512 ))
20
21 local swapsize=$(( ${swap} * 1024 ))
22 local bootsize=$(( ${boot} * 1024 ))
23
24 local bootoffset=$(( ${init} * 1024 ))
25 local swapoffset=$(( ${bootoffset} + ${bootsize} ))
26
27 local asize=$(( ${totalsize} - ${swapsize} - ${bootsize} - ${bootoffset} ))
28 local aoffset=$(( ${swapoffset} + ${swapsize} ))
29
30 local bps=512
31 local spt=32
32 local tpc=64
33 local spc=2048
34 local cylinders=$(( ${totalsize} / ${spc} ))
35
36 cat << EOF
37 type: SCSI
38 disk: STORAGE DEVICE
39 label: fictitious
40 flags: removable
41 bytes/sector: ${bps}
42 sectors/track: ${spt}
43 tracks/cylinder: ${tpc}
44 sectors/cylinder: ${spc}
45 cylinders: ${cylinders}
46 total sectors: ${totalsize}
47 rpm: 3600
48 interleave: 1
49 trackskew: 0
50 cylinderskew: 0
51 headswitch: 0 # microseconds
52 track-to-track seek: 0 # microseconds
53 drivedata: 0
54
55 8 partitions:
56 # size offset fstype [fsize bsize cpg/sgs]
57 a: ${asize} ${aoffset} 4.2BSD ${fsize} ${bsize} 0 #
58 b: ${swapsize} ${swapoffset} swap #
59 c: ${totalsize} 0 unused 0 0 #
60 d: ${totalsize} 0 unused 0 0 #
61 e: ${bootsize} ${bootoffset} MSDOS #
62 EOF
63 }
64
65 make_fstab_evbarm_normal() {
66 cat > ${mnt}/etc/fstab << EOF
67 # NetBSD /etc/fstab
68 # See /usr/share/examples/fstab/ for more examples.
69 /dev/ld0a / ffs rw,log 1 1
70 /dev/ld0b none swap sw 0 0
71 /dev/ld0e /boot msdos rw 1 1
72 kernfs /kern kernfs rw
73 ptyfs /dev/pts ptyfs rw
74 procfs /proc procfs rw
75 EOF
76 }
77
78 # From Richard Neswold's:
79 # http://rich-tbp.blogspot.com/2013/03/netbsd-on-rpi-minimizing-disk-writes.html
80 # Also for the postfix stuff below
81 make_fstab_evbarm_minwrites() {
82 cat > ${mnt}/etc/fstab << EOF
83 # NetBSD /etc/fstab
84 # See /usr/share/examples/fstab/ for more examples.
85 /dev/ld0a / ffs rw,log,noatime,nodevmtime 1 1
86 /dev/ld0b none swap sw 0 0
87 /dev/ld0e /boot msdos rw 1 1
88 kernfs /kern kernfs rw
89 ptyfs /dev/pts ptyfs rw
90 procfs /proc procfs rw
91 tmpfs /tmp tmpfs rw,-s32M
92 tmpfs /var/log tmpfs rw,union,-s32M
93 tmpfs /var/run tmpfs rw,union,-s1M
94 tmpfs /var/mail tmpfs rw,union,-s10M
95 tmpfs /var/spool/postfix tmpfs rw,union,-s20M
96 tmpfs /var/db/postfix tmpfs rw,union,-s1M
97 tmpfs /var/chroot tmpfs rw,union,-s10M
98 EOF
99 }
100
101 make_fstab_evbarm() {
102 if $minwrites; then
103 make_fstab_evbarm_minwrites
104 else
105 make_fstab_evbarm_normal
106 fi
107 }
108
109 customize_evbarm() {
110 cp ${release}/etc/rc.conf ${mnt}/etc/rc.conf
111 if $minwrites; then
112 mkdir ${mnt}/etc/postfix
113 (umask 022
114 sed -e 's/fifo/unix/' < ${release}/etc/postfix/master.cf > \
115 ${mnt}/etc/postfix/master.cf)
116 fi
117 cat >> ${mnt}/etc/rc.conf << EOF
118 rc_configured=YES
119 hostname=${board}
120 sshd=YES
121 dhcpcd=YES
122 EOF
123 if [ ! -f ${release}/dev/MAKEDEV ]; then
124 echo ${PROG}: Missing ${release}/dev/MAKEDEV 1>&2
125 exit 1
126 fi
127 echo "${bar} running MAKEDEV ${bar}"
128 ${HOST_SH} ${release}/dev/MAKEDEV -s all | sed -e 's:^\./:\./dev/:' \
129 >> "$tmp/selected_sets"
130
131 echo "${bar} creating directories ${bar}"
132 mkdir ${mnt}/proc ${mnt}/kern
133 }
134