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