update_bootcfg script

. script to make neat menu entries for all /boot/minix/* dirs
	  in /boot.cfg, read by new bootloader
	. invoked when new images are created
This commit is contained in:
Evgeniy Ivanov 2012-02-13 12:08:25 +04:00 committed by Ben Gras
parent 2fe8fb192f
commit c9f65d5ae6
4 changed files with 48 additions and 2 deletions

View file

@ -6,11 +6,11 @@ FILES1=group hostname.file inet.conf motd.install mtab profile \
protocols rc services termcap ttytab utmp rc.cd \
syslog.conf rc.daemons.dist \
rs.inet rs.single make.conf system.conf ttys resolv.conf rc.conf \
rc.subr rc.subr.minix man.conf shells
rc.subr rc.subr.minix man.conf shells boot.cfg.default
PWFILES=master.passwd
FILES3=daily dhcptags.conf rc
DEFAULTFILES=rc.conf minix.rc.conf
DEFAULTFILES=rc.conf minix.rc.conf
USRFILES=Makefile
TOOL_PWD_MKDB= pwd_mkdb

6
etc/boot.cfg.default Normal file
View file

@ -0,0 +1,6 @@
clear=1
timeout=5
default=2
menu=Start MINIX 3:load_mods /boot/minix_default/mod*;multiboot /boot/minix_default/kernel rootdevname=$rootdevname
menu=Start latest MINIX 3:load_mods /boot/minix_latest/mod*;multiboot /boot/minix_latest/kernel rootdevname=$rootdevname
menu=Drop to boot prompt:prompt

View file

@ -95,6 +95,7 @@ hdboot: image
cp kernel /boot/minix/.temp/
[ -d /boot/image ] && ln -f /boot/minix/.temp/kernel /boot/kernel || true
exec sh mkboot $@ minix
exec sh update_bootcfg.sh
fdboot: image
exec su root mkboot $@

39
tools/update_bootcfg.sh Executable file
View file

@ -0,0 +1,39 @@
#!/bin/sh
set -e
ROOT=`printroot -r`
DEFAULTCFG=/etc/boot.cfg.default
LOCALCFG=/etc/boot.cfg.local
TMP=/boot.cfg.temp
if [ ! -b "$ROOT" ]
then
echo root device $ROOT not found
exit 1
fi
rootdevname=`echo $ROOT | sed 's/\/dev\///'`
if [ -r $DEFAULTCFG ]
then
default_cfg=`cat $DEFAULTCFG`
# Substitute variables like $rootdevname
echo "$default_cfg" | while read line; do eval echo \"$line\" >> $TMP; done
fi
latest=`basename \`stat -f "%Y" /boot/minix_latest\``
for i in /boot/minix/*
do
build_name="`basename $i`"
if [ "$build_name" != "$latest" ]
then
echo "menu=Start MINIX 3 ($build_name):load_mods $i/mod*;multiboot $i/kernel rootdevname=$rootdevname" >> /$TMP
fi
done
[ -r $LOCALCFG ] && cat $LOCALCFG >> $TMP
mv $TMP /boot.cfg
sync