1# $NetBSD: evbarm.conf,v 1.28 2018/06/19 15:12:05 jmcneill Exp $ 2# evbarm shared config 3# 4image=$HOME/${board}.img 5 6MACHINE=evbarm 7 8swap=256 9extra=48 # spare space 10init=32 11boot=$((192 - ${init})) 12ffsoffset=$(( (${init} + ${boot} + ${swap}) / 2 ))m 13 14size=0 # autocompute 15msdosid=12 16 17mkdir -p ${mnt}/boot 18 19make_label_evbarm() { 20 # compute all sizes in terms of sectors 21 local totalsize=$(( ${newsize} * 1024 * 2 / 512 )) 22 23 local swapsize=$(( ${swap} * 1024 )) 24 local bootsize=$(( ${boot} * 1024 )) 25 26 local bootoffset=$(( ${init} * 1024 )) 27 local swapoffset=$(( ${bootoffset} + ${bootsize} )) 28 29 local asize=$(( ${totalsize} - ${swapsize} - ${bootsize} - ${bootoffset} )) 30 local aoffset=$(( ${swapoffset} + ${swapsize} )) 31 32 local bps=512 33 local spt=32 34 local tpc=64 35 local spc=2048 36 local cylinders=$(( ${totalsize} / ${spc} )) 37 38 cat << EOF 39type: SCSI 40disk: STORAGE DEVICE 41label: fictitious 42flags: removable 43bytes/sector: ${bps} 44sectors/track: ${spt} 45tracks/cylinder: ${tpc} 46sectors/cylinder: ${spc} 47cylinders: ${cylinders} 48total sectors: ${totalsize} 49rpm: 3600 50interleave: 1 51trackskew: 0 52cylinderskew: 0 53headswitch: 0 # microseconds 54track-to-track seek: 0 # microseconds 55drivedata: 0 56 578 partitions: 58# size offset fstype [fsize bsize cpg/sgs] 59 a: ${asize} ${aoffset} 4.2BSD ${fsize} ${bsize} 0 # 60 b: ${swapsize} ${swapoffset} swap # 61 c: ${totalsize} 0 unused 0 0 # 62 e: ${bootsize} ${bootoffset} MSDOS # 63EOF 64} 65 66make_fstab_evbarm_normal() { 67 cat > ${mnt}/etc/fstab << EOF 68# NetBSD /etc/fstab 69# See /usr/share/examples/fstab/ for more examples. 70/dev/ld0a / ffs rw,noatime 1 1 71/dev/ld0b none swap sw 0 0 72/dev/ld0e /boot msdos rw 1 1 73kernfs /kern kernfs rw 74ptyfs /dev/pts ptyfs rw 75procfs /proc procfs rw 76tmpfs /var/shm tmpfs rw,-m1777,-sram%25 77EOF 78} 79 80# From Richard Neswold's: 81# http://rich-tbp.blogspot.com/2013/03/netbsd-on-rpi-minimizing-disk-writes.html 82# Also for the postfix stuff below 83make_fstab_evbarm_minwrites() { 84 cat > ${mnt}/etc/fstab << EOF 85# NetBSD /etc/fstab 86# See /usr/share/examples/fstab/ for more examples. 87/dev/ld0a / ffs rw,log,noatime,nodevmtime 1 1 88/dev/ld0b none swap sw 0 0 89/dev/ld0e /boot msdos rw 1 1 90kernfs /kern kernfs rw 91ptyfs /dev/pts ptyfs rw 92procfs /proc procfs rw 93tmpfs /tmp tmpfs rw,-s32M 94tmpfs /var/log tmpfs rw,union,-s32M 95tmpfs /var/run tmpfs rw,union,-s1M 96tmpfs /var/mail tmpfs rw,union,-s10M 97tmpfs /var/spool/postfix tmpfs rw,union,-s20M 98tmpfs /var/db/postfix tmpfs rw,union,-s1M 99tmpfs /var/chroot tmpfs rw,union,-s10M 100tmpfs /var/shm tmpfs rw,-m1777,-sram%25 101EOF 102} 103 104make_fstab_evbarm() { 105 if $minwrites; then 106 make_fstab_evbarm_minwrites 107 else 108 make_fstab_evbarm_normal 109 fi 110 echo "./etc/fstab type=file uname=root gname=wheel mode=0644" \ 111 >> "$tmp/selected_sets" 112 113 # Missing mount points from fstab 114 echo "./proc type=dir uname=root gname=wheel mode=0755" \ 115 >> "$tmp/selected_sets" 116 echo "./kern type=dir uname=root gname=wheel mode=0755" \ 117 >> "$tmp/selected_sets" 118} 119 120customize_evbarm() { 121 if $minwrites; then 122 mkdir ${mnt}/etc/postfix 123 (umask 022 124 sed -e 's/fifo/unix/' < ${release}/etc/postfix/master.cf > \ 125 ${mnt}/etc/postfix/master.cf) 126 fi 127 128 cp ${release}/etc/rc.conf ${mnt}/etc/rc.conf 129 cat >> ${mnt}/etc/rc.conf << EOF 130rc_configured=YES 131hostname=${board} 132sshd=YES 133dhcpcd=YES 134ntpd=YES 135ntpd_flags="-g" 136EOF 137 138 if $resize; then 139 cat >> ${mnt}/etc/rc.conf << EOF 140resize_disklabel=YES 141resize_disklabel_disk=ld0 142resize_disklabel_part=a 143resize_root=YES 144resize_root_flags="-p" 145resize_root_postcmd="/sbin/reboot -n" 146EOF 147 fi 148 149 echo "./etc/rc.conf type=file uname=root gname=wheel mode=0644" \ 150 >> "$tmp/selected_sets" 151 152 mkdir ${mnt}/etc/rc.d 153 cp ${DIR}/files/resize_disklabel ${mnt}/etc/rc.d/resize_disklabel 154 echo "./etc/rc.d/resize_disklabel type=file uname=root gname=wheel mode=0555" \ 155 >> "$tmp/selected_sets" 156 157 if [ ! -f ${release}/dev/MAKEDEV ]; then 158 echo ${PROG}: Missing ${release}/dev/MAKEDEV 1>&2 159 exit 1 160 fi 161 echo "${bar} running MAKEDEV ${bar}" 162 ${HOST_SH} ${release}/dev/MAKEDEV -s all | sed -e 's:^\./:\./dev/:' \ 163 >> "$tmp/selected_sets" 164 165 echo "${bar} fixing up permissions" 166 echo "./boot type=dir uname=root gname=wheel mode=0755" \ 167 >> "$tmp/selected_sets" 168} 169