...
You can make VGABIOS+Etherboot payload, to load VGABIOS *and* boot Etherboot. If your VGABIOS is 64K,
cat video.bios.bin ide_disk.zelf >vgabios+etherboot.bin
this command puts VGABIOS at beginning and Etherboot at +64K of the output file. Then, config like this will let LinuxBIOS boot the Etherboot:
payload vgabios+etherboot.bin option VGABIOS_START=0xfffc0000 option ZKERNEL_START=0xfffd0000
To autmate the 'cat' step we need some hack to config file but I haven't figured it out.
-- Takeshi
Maybe something like:
$ cat lb #!/bin/sh
base=FFFC0000 # bc need it to be upcase out="vgabios+etherboot.bin" files="video.bios.bin ide_disk.zelf"
ls -l $files
: > config : > $out
echo payload $out > config
for i in $files do cat $i | dd bs=64k conv=sync 2>/dev/null >> $out # pad the files to 64k size=`stat -L -c %s $out` # filesize in bytes (decimal) hsz=`echo "obase=16; $size" | bc` # filesize in bytes (hex) SSZ=`echo "obase=16; ibase=16; $base+$hsz" | bc` # add it to $base echo option ${i}_START=0x$SSZ >> config done
ls -l $out echo Config file: cat config
Using faked input files just for testing:
$ ./lb -rw-r--r-- 1 karl users 5291 May 26 16:50 ide_disk.zelf -rw-r--r-- 1 karl users 17470 May 26 16:50 video.bios.bin -rw-r--r-- 1 karl users 131072 May 26 17:23 vgabios+etherboot.bin Config file: payload vgabios+etherboot.bin option video.bios.bin_START=0xFFFD0000 option ide_disk.zelf_START=0xFFFE0000
Regards, /Karl
----------------------------------------------------------------------- Karl Hammar Aspö Data karl@kalle.csb.ki.se Lilla Aspö 2340 Networks S-742 94 Östhammar +46 173 140 57 Computers Sweden +46 70 511 97 84 Consulting -----------------------------------------------------------------------