first step at autosizing, still does not work.

This commit is contained in:
christos 2013-01-15 03:26:27 +00:00
parent f86f2aa199
commit db11691a33
2 changed files with 22 additions and 16 deletions

View File

@ -1,4 +1,4 @@
# $NetBSD: rpi.conf,v 1.5 2013/01/13 22:08:43 christos Exp $
# $NetBSD: rpi.conf,v 1.6 2013/01/15 03:26:28 christos Exp $
# Raspberry PI customization script used by mkimage
#
image=$HOME/rpi.img
@ -7,22 +7,24 @@ firmwaredir=$src/external/broadcom/rpi-firmware/dist
firmwarefiles="LICENCE.broadcom bootcode.bin fixup.dat fixup_cd.dat start.elf start_cd.elf"
sets="base etc comp games man misc modules tests text"
setsdir=$obj/evbarm/media
setsdir=$obj/evbarm//media/evbarm/binary/sets/
kerneldir=$src/sys/arch/evbarm/compile/RPI
specialdirs="/kern /proc"
swap=512
size=2048
overhead=8
swap=256
extra=8
boot=112
init=8
size=0
msdosid=12
overhead=$(( ${swap} + ${extra} + ${init} + ${boot} ))
tmp=/tmp/rpi.disklabel.$$
make_filesystems() {
local asize=$(( ${size} * 1024 ))
local asize=$(( ${newsize} * 1024 ))
local swapsize=$(( ${swap} * 1024 ))
local bootsize=$(( ${boot} * 1024 ))
@ -100,13 +102,14 @@ console=fb
#fb=disable # to disable fb completely
EOF
echo "${bar} installing firmware files ${bar}"
echo -n "${bar} installing firmware files:"
(cd ${mnt}/boot &&
for f in ${firmwarefiles}; do
echo $f
echo -n " $f"
${sudo} cp ${firmwaredir}/${f} .
done
)
echo " ${bar}"
if [ ! -f ${kerneldir}/kernel.img ]; then
echo ${PROG}: Missing ${kerneldir}/kernel.img 1>&2

View File

@ -1,6 +1,6 @@
#! /bin/sh
# $NetBSD: mkimage,v 1.9 2013/01/15 02:50:08 jmcneill Exp $
# $NetBSD: mkimage,v 1.10 2013/01/15 03:26:27 christos Exp $
# Copyright (c) 2012 Alistair Crooks <agc@NetBSD.org>
# All rights reserved.
@ -168,17 +168,18 @@ fi
total=$(( ( ( ${total} + ${custsize} ) / 1000000 ) + ${overhead} ))
if [ $size -eq 0 ]; then
# auto-size the pkgs fs
size=${total}
newsize=${total}
else
# check that we've been given enough space
if [ ${total} -gt ${size} ]; then
echo "$PROG: Given size is ${size} MB, but we need ${total} MB" >&2
exit 1
fi
newsize=${size}
fi
echo "${bar} making a new ${size} MB image in ${image} ${bar}"
dd if=/dev/zero of=${image} bs=1m count=${size} conv=sparse
echo "${bar} making a new ${newsize} MB image in ${image} ${bar}"
dd if=/dev/zero of=${image} bs=1m count=${newsize} conv=sparse
vnddev=$(next_avail vnd)
echo "${bar} mounting image via vnd ${vnddev} ${bar}"
@ -188,15 +189,17 @@ make_filesystems
${sudo} mkdir -p ${mnt}/etc ${mnt}/dev
echo "${bar} installing sets ${bar}"
echo -n "${bar} installing sets:"
(cd ${mnt} &&
for s in ${sets}; do
if [ -f "${setsdir}/${s}.tgz" ]; then
echo ${s}
${sudo} tar xpzf ${setsdir}/${s}.tgz
ss="${setsdir}/${s}.tgz"
if [ -f "${ss}" ]; then
echo -n " ${s}"
${sudo} tar xpzf "${ss}"
fi
done
)
echo " ${bar}"
echo "${bar} performing customisations ${bar}"