xref: /netbsd-src/distrib/utils/embedded/conf/evbarm.conf (revision dd255ccea4286b0c44fa8fd48a9a19a768afe8e1)
1# $NetBSD: evbarm.conf,v 1.13 2013/11/22 11:13:54 skrll Exp $
2# evbarm shared config
3#
4image=$HOME/${board}.img
5
6specialdirs="/kern /proc"
7
8swap=256
9extra=8		# spare space
10boot=112
11init=8
12
13size=0		# autocompute
14msdosid=12
15
16make_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
36type: SCSI
37disk: STORAGE DEVICE
38label: fictitious
39flags: removable
40bytes/sector: ${bps}
41sectors/track: ${spt}
42tracks/cylinder: ${tpc}
43sectors/cylinder: ${spc}
44cylinders: ${cylinders}
45total sectors: ${totalsize}
46rpm: 3600
47interleave: 1
48trackskew: 0
49cylinderskew: 0
50headswitch: 0           # microseconds
51track-to-track seek: 0  # microseconds
52drivedata: 0 
53
548 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                        #
61EOF
62}
63
64make_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
71kernfs		/kern		kernfs	rw
72ptyfs		/dev/pts	ptyfs	rw
73procfs		/proc		procfs	rw
74EOF
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
80make_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
87kernfs		/kern			kernfs	rw
88ptyfs		/dev/pts		ptyfs	rw
89procfs		/proc			procfs	rw
90tmpfs		/tmp			tmpfs	rw,-s32M
91tmpfs		/var/log		tmpfs	rw,union,-s32M
92tmpfs		/var/run		tmpfs	rw,union,-s1M
93tmpfs		/var/mail		tmpfs	rw,union,-s10M
94tmpfs		/var/spool/postfix	tmpfs	rw,union,-s20M
95tmpfs		/var/db/postfix		tmpfs	rw,union,-s1M
96tmpfs		/var/chroot		tmpfs	rw,union,-s10M
97EOF
98}
99
100make_fstab_evbarm() {
101	if $minwrites; then
102		make_fstab_evbarm_minwrites
103	else
104		make_fstab_evbarm_normal
105	fi
106}
107
108customize_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
117rc_configured=YES
118hostname=${board}
119sshd=YES
120dhcpcd=YES
121EOF
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	${HOST_SH} ${release}/dev/MAKEDEV -s all | sed -e 's:^\./:\./dev/:' \
128	    >> "$tmp/selected_sets"
129
130	echo "${bar} creating directories ${bar}"
131	mkdir ${mnt}/proc ${mnt}/kern
132}
133