Hi, Total beginner here. In fact, I'm just researching interesting possibilities for using this and how coreboot works.
In particular, I'm wondering how to create custom payloads, and what sorts of things can be payloads.
According to the wiki, the target file for a payload is an ELF file. However, I'm not clear what can be turned into a payload. The wiki also says that entire (small) Linux distros can be made into payloads (and SeaBIOS can use floppy images), but I'm unclear on what this means and how to do it.
For example, if I wanted to turn a TinyCore Live CD into a coreboot payload, could that be done? TinyCore copies itself to RAM and doesn't require write access in that mode, so as far was what the distro expects that would be compatible.
Are there any resources or articles I can read that would provide more detailed information about this subject?
Cheers, R
SeaBIOS - perhaps the most popular coreboot payload - supports booting the virtual floppies stored at CBFS (coreboot filesystem). You could add any floppy by
./build/cbfstool ./build/coreboot.rom add -f ./floppy.img -n floppyimg/myfloppy.lzma -t raw -c lzma
command - and then you will see it as a SeaBIOS boot entry! Although the largest floppy format supported by SeaBIOS is 2.88MB (those rare "double size floppies"), you could easily add your own artificial floppy format of your preferred size - maybe of 14.4MB size if you would like to fit a TinyCore "Core" version which weights 13.2 MB. You would also need to somehow convert that .iso into a floppy and make sure that this floppy is bootable - could test it in a special coreboot+SeaBIOS build for QEMU to avoid wasting time on real hardware flashing. Here's an example command to launch QEMU using a special coreboot+SeaBIOS build as its' BIOS:
qemu-system-i386 -L . -m 256 -localtime -vga vmware -net nic,model=rtl8139 -net user -soundhw ac97 -usb -device usb-tablet -bios ./build/coreboot.rom -serial stdio
I think it should be easier to transform .iso into a floppy than into an ELF file. You could take a look at the existing floppy-based OS to see how its' done, here are some wonderful floppy-based OS that we are using together with coreboot: http://dangerousprototypes.com/docs/Lenovo_G505S_hacking#Useful_floppies . Perhaps take a look at Fiwix because it's using GRUB 0.97 to load its' kernel and ramdisk filesystem.
It seems that you must have at least 16MB BIOS chip to put TinyCore there. Although LZMA compression could be used while adding the floppies ( -c lzma ) , I tried LZMA compressing TinyCore iso but maybe they are already compressed because I could win only 0.5MB at max.
On Sat, Mar 23, 2019 at 5:48 PM Rafael Send flyingfishfinger@gmail.com wrote:
Hi, Total beginner here. In fact, I'm just researching interesting possibilities for using this and how coreboot works.
In particular, I'm wondering how to create custom payloads, and what sorts of things can be payloads.
According to the wiki, the target file for a payload is an ELF file. However, I'm not clear what can be turned into a payload. The wiki also says that entire (small) Linux distros can be made into payloads (and SeaBIOS can use floppy images), but I'm unclear on what this means and how to do it.
For example, if I wanted to turn a TinyCore Live CD into a coreboot payload, could that be done? TinyCore copies itself to RAM and doesn't require write access in that mode, so as far was what the distro expects that would be compatible.
Are there any resources or articles I can read that would provide more detailed information about this subject?
Cheers, R _______________________________________________ coreboot mailing list -- coreboot@coreboot.org To unsubscribe send an email to coreboot-leave@coreboot.org
Wonderful idea!
tinycore should be easy with a big enough flash part. It's small enough and things of that scale have been done.
Please consider looking at HEADS before you go too far.
On Sun, Mar 24, 2019 at 12:08 AM Mike Banon mikebdp2@gmail.com wrote:
SeaBIOS - perhaps the most popular coreboot payload - supports booting the virtual floppies stored at CBFS (coreboot filesystem). You could add any floppy by
./build/cbfstool ./build/coreboot.rom add -f ./floppy.img -n floppyimg/myfloppy.lzma -t raw -c lzma
command - and then you will see it as a SeaBIOS boot entry! Although the largest floppy format supported by SeaBIOS is 2.88MB (those rare "double size floppies"), you could easily add your own artificial floppy format of your preferred size - maybe of 14.4MB size if you would like to fit a TinyCore "Core" version which weights 13.2 MB. You would also need to somehow convert that .iso into a floppy and make sure that this floppy is bootable - could test it in a special coreboot+SeaBIOS build for QEMU to avoid wasting time on real hardware flashing. Here's an example command to launch QEMU using a special coreboot+SeaBIOS build as its' BIOS:
qemu-system-i386 -L . -m 256 -localtime -vga vmware -net nic,model=rtl8139 -net user -soundhw ac97 -usb -device usb-tablet -bios ./build/coreboot.rom -serial stdio
I think it should be easier to transform .iso into a floppy than into an ELF file. You could take a look at the existing floppy-based OS to see how its' done, here are some wonderful floppy-based OS that we are using together with coreboot: http://dangerousprototypes.com/docs/Lenovo_G505S_hacking#Useful_floppies . Perhaps take a look at Fiwix because it's using GRUB 0.97 to load its' kernel and ramdisk filesystem.
It seems that you must have at least 16MB BIOS chip to put TinyCore there. Although LZMA compression could be used while adding the floppies ( -c lzma ) , I tried LZMA compressing TinyCore iso but maybe they are already compressed because I could win only 0.5MB at max.
On Sat, Mar 23, 2019 at 5:48 PM Rafael Send flyingfishfinger@gmail.com wrote:
Hi, Total beginner here. In fact, I'm just researching interesting possibilities for using this and how coreboot works.
In particular, I'm wondering how to create custom payloads, and what sorts of things can be payloads.
According to the wiki, the target file for a payload is an ELF file. However, I'm not clear what can be turned into a payload. The wiki also says that entire (small) Linux distros can be made into payloads (and SeaBIOS can use floppy images), but I'm unclear on what this means and how to do it.
For example, if I wanted to turn a TinyCore Live CD into a coreboot payload, could that be done? TinyCore copies itself to RAM and doesn't require write access in that mode, so as far was what the distro expects that would be compatible.
Are there any resources or articles I can read that would provide more detailed information about this subject?
Cheers, R _______________________________________________ coreboot mailing list -- coreboot@coreboot.org To unsubscribe send an email to coreboot-leave@coreboot.org
coreboot mailing list -- coreboot@coreboot.org To unsubscribe send an email to coreboot-leave@coreboot.org