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
--- /dev/null
+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
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 $@
--- /dev/null
+#!/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