On Mon, Sep 24, 2007 at 03:40:57PM -0600, Jordan Crouse wrote:
On 24/09/07 17:36 -0400, Ward Vandewege wrote:
This was tested on real hardware.
ACK even the secret !tyan related diff in the first chunk.. :)
Ah, yes, sorry about that, I should have explained. Basically I moved the LAB 'config' file to /lab.conf on the first partition (that's an improvement, see next paragraph). The kexec binary is now also expected to live in /kexec on the first partition. The patch also makes sure that specifying an initrd in the LAB config file would actually be respected (that was a bug).
The reason for putting the LAB config file and kexec binary in / on partition 1 rather than /etc and /sbin respectively, is that often (at least in our setups) /boot is the first partition, and is a simple software raid-1 across however many disks there are in the system. The rest of the system can be software raid-5, lvm on sw raid, etc. We do things this way because GRUB does not understand sw-raid nor LVM.
Not needing MD or LVM drivers in the kernel that lives in rom makes it smaller, which is better. Putting a static kexec there means that it will not be managed by a package manager, which could overwrite it with a dynamic version one day, which would break the next boot...
Acked-by: Jordan Crouse jordan.crouse@amd.com
Thanks, I'll commit, and I'll separate out the !tyan related stuff with the above comment.
Thanks, Ward.
This patch adds Tyan s2891 support to buildrom. This makes booting from SATA easier, as the CK804 chipset on this board can not emulate SATA disks as IDE devices.
Signed-off-by: Ward Vandewege ward@gnu.org
Index: skeleton/bin/boot.functions
--- skeleton/bin/boot.functions (revision 37) +++ skeleton/bin/boot.functions (working copy) @@ -5,8 +5,8 @@ # The best solution is to use olpc-boot.sh
CMDLINE="root=/dev/sda1 ro console=tty0 console=ttyS0,115200" -KERNEL="/boot/vmlinuz" -INITRD="/boot/initrd.img" +KERNEL="vmlinuz" +INITRD="initrd.img" VT="1"
message() { @@ -20,14 +20,19 @@ # Switch to the mounted directory to make life easier for the script cd $DIR
- # Any of the above can be over-ridden by /boot.conf
- # Any of the above can be over-ridden by /lab.conf
- if [ -f $DIR/etc/boot.conf ]; then
. $DIR/etc/boot.conf
- if [ -f $DIR/lab.conf ]; then
fi. $DIR/lab.conf
- $DIR/sbin/kexec -l $DIR/$KERNEL --command-line="$CMDLINE"
- $DIR/sbin/kexec -e
- if [ "$INITRD" = "" ]; then
$DIR/kexec -l $DIR/$KERNEL --command-line="$CMDLINE"
- else
$DIR/kexec -l $DIR/$KERNEL --initrd=$DIR/$INITRD --command-line="$CMDLINE"
- fi
- message "ERROR: can't run kexec $DIR$KERNEL $CMDLINE $INITRD"
- $DIR/kexec -e
- message "ERROR: can't run kexec $DIR/$KERNEL $CMDLINE $INITRD"
}