1# $NetBSD: evbarm.conf,v 1.24 2015/08/01 10:04:50 jmcneill Exp $ 2# evbarm shared config 3# 4image=$HOME/${board}.img 5 6MACHINE=evbarm 7 8swap=256 9extra=48 # spare space 10boot=120 11init=8 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 d: ${totalsize} 0 unused 0 0 # 63 e: ${bootsize} ${bootoffset} MSDOS # 64EOF 65} 66 67make_fstab_evbarm_normal() { 68 cat > ${mnt}/etc/fstab << EOF 69# NetBSD /etc/fstab 70# See /usr/share/examples/fstab/ for more examples. 71/dev/ld0a / ffs rw,noatime 1 1 72/dev/ld0b none swap sw 0 0 73/dev/ld0e /boot msdos rw 1 1 74kernfs /kern kernfs rw 75ptyfs /dev/pts ptyfs rw 76procfs /proc procfs rw 77tmpfs /var/shm tmpfs rw,-m1777,-sram%25 78EOF 79} 80 81# From Richard Neswold's: 82# http://rich-tbp.blogspot.com/2013/03/netbsd-on-rpi-minimizing-disk-writes.html 83# Also for the postfix stuff below 84make_fstab_evbarm_minwrites() { 85 cat > ${mnt}/etc/fstab << EOF 86# NetBSD /etc/fstab 87# See /usr/share/examples/fstab/ for more examples. 88/dev/ld0a / ffs rw,log,noatime,nodevmtime 1 1 89/dev/ld0b none swap sw 0 0 90/dev/ld0e /boot msdos rw 1 1 91kernfs /kern kernfs rw 92ptyfs /dev/pts ptyfs rw 93procfs /proc procfs rw 94tmpfs /tmp tmpfs rw,-s32M 95tmpfs /var/log tmpfs rw,union,-s32M 96tmpfs /var/run tmpfs rw,union,-s1M 97tmpfs /var/mail tmpfs rw,union,-s10M 98tmpfs /var/spool/postfix tmpfs rw,union,-s20M 99tmpfs /var/db/postfix tmpfs rw,union,-s1M 100tmpfs /var/chroot tmpfs rw,union,-s10M 101tmpfs /var/shm tmpfs rw,-m1777,-sram%25 102EOF 103} 104 105make_fstab_evbarm() { 106 if $minwrites; then 107 make_fstab_evbarm_minwrites 108 else 109 make_fstab_evbarm_normal 110 fi 111 echo "./etc/fstab type=file uname=root gname=wheel mode=0644" \ 112 >> "$tmp/selected_sets" 113 114 # Missing mount points from fstab 115 echo "./proc type=dir uname=root gname=wheel mode=0755" \ 116 >> "$tmp/selected_sets" 117 echo "./kern type=dir uname=root gname=wheel mode=0755" \ 118 >> "$tmp/selected_sets" 119} 120 121customize_evbarm() { 122 cp ${release}/etc/rc.conf ${mnt}/etc/rc.conf 123 if $minwrites; then 124 mkdir ${mnt}/etc/postfix 125 (umask 022 126 sed -e 's/fifo/unix/' < ${release}/etc/postfix/master.cf > \ 127 ${mnt}/etc/postfix/master.cf) 128 fi 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