I try to use $ mkelfImage --append="console=ttyS0" --initrd=initrd vmlinuz linux.elf
When : telebit:~/Project/Kantor/Thin_client/coreboot-v2-4360/targets # ./buildtarget emulation/qemu-x86/Config.lb
and do
make..
I get coreboot.rom on 512Kbyte
My initrd is 1Mbyte and vmlinuz 16Mbyte..is it ok?
The make result is situated below... Is it ok ? if I want to change the chipset, what should i do? My chipset is 82810 North and 82801 South.. ==== ....................... Payload: 0 coreboot: 65536 ROM size: 65536 Left space: 0 if [ 0 -eq 1 -a 1 -eq 1 ]; then echo l > cbfs-support; fi make[1]: Leaving directory `/root/Project/Kantor/Thin_client/coreboot-v2-4360/targets/emulation/qemu-x86/qemu-x86/normal' rm -f ./coreboot.rom cat normal/coreboot.rom > ./coreboot.rom.bootblock ./cbfstool ./coreboot.rom create 524288 65536 ./coreboot.rom.bootblock ./cbfstool ./coreboot.rom add-payload /root/Project/Kantor/mkelfImage-2.7/linux.elf normal/payload Corrupt rom -- found no header at 458720 make: *** [coreboot.rom] Error 1 telebit:~/Project/Kantor/Thin_client/coreboot-v2-4360/targets/emulation/qemu-x86/qemu-x86 #
On Wed, Jun 24, 2009 at 8:09 PM, Rick Antrick_077@yahoo.com wrote:
Is it ok ? if I want to change the chipset, what should i do? My chipset is 82810 North and 82801 South..
no, it is not ok at all.
I don't know what is going wrong however.
ron
On Wed, Jun 24, 2009 at 9:09 PM, Rick Ant rick_077@yahoo.com wrote:
I try to use
$ mkelfImage --append="console=ttyS0" --initrd=initrd vmlinuz linux.elf
When : telebit:~/Project/Kantor/Thin_client/coreboot-v2-4360/targets # ./buildtarget emulation/qemu-x86/Config.lb
and do
make..
I get coreboot.rom on 512Kbyte
My initrd is 1Mbyte and vmlinuz 16Mbyte..is it ok?
The make result is situated below... Is it ok ? if I want to change the chipset, what should i do? My chipset is 82810 North and 82801 South..
==== ....................... Payload: 0 coreboot: 65536 ROM size: 65536 Left space: 0 if [ 0 -eq 1 -a 1 -eq 1 ]; then echo l > cbfs-support; fi make[1]: Leaving directory `/root/Project/Kantor/Thin_client/coreboot-v2-4360/targets/emulation/qemu-x86/qemu-x86/normal' rm -f ./coreboot.rom cat normal/coreboot.rom > ./coreboot.rom.bootblock ./cbfstool ./coreboot.rom create 524288 65536 ./coreboot.rom.bootblock ./cbfstool ./coreboot.rom add-payload /root/Project/Kantor/mkelfImage-2.7/linux.elf normal/payload Corrupt rom -- found no header at 458720 make: *** [coreboot.rom] Error 1
This admittedly isn't a very helpful error. It happens when you try to add a payload that is larger than the free space. You can't add a 16 MB kernel to a 512K ROM. LZMA isn't that good. You might want to look at the way buildrom builds kernels, since they end up being much smaller than that one.
For qemu you can just change the ROM_SIZE to be big enough in targets/emulation/qemu-x86/Config.lb. For real hardware you'll need to:
1. Pick a board that's supported by coreboot-v2 (or add the code to support it) 2. Get a flash chip that's large enough to fit what you want (not all boards can support large chips) 3. Make sure that your board/flash chip combination is supported by flashrom or you have some other way of writing to it
If you can't get it to fit, you could try using etherboot or seabios+gpxe to load your kernel from the network.
Thanks, Myles
On Thursday 25 June 2009 05:09:04 Rick Ant wrote:
I try to use $ mkelfImage --append="console=ttyS0" --initrd=initrd vmlinuz linux.elf
When : telebit:~/Project/Kantor/Thin_client/coreboot-v2-4360/targets # ./buildtarget emulation/qemu-x86/Config.lb
and do
make..
I get coreboot.rom on 512Kbyte
My initrd is 1Mbyte and vmlinuz 16Mbyte..is it ok?
That's not okay for real hardware, but could eventually be possible on an 8Mb chip to fit that in. Try to remove all kernel stuff (modules, drivers, ...) you don't really need and just keep the essential stuff which is needed to initialize your hardware. Also keep in mind, that you don't do modules on hardware related drivers which are needed to boot the system, as it can happen that the disk is to slow in spin-up to be ready when files are needed.
My solution is a kernel with all hardware and filesystem drivers compiled in, and just the essential stuff. The rest of the drivers, features built as modules. This also avoids the need of an initrd.
The make result is situated below... Is it ok ? if I want to change the chipset, what should i do? My chipset is 82810 North and 82801 South.. ==== ....................... Payload: 0 coreboot: 65536 ROM size: 65536 Left space: 0 if [ 0 -eq 1 -a 1 -eq 1 ]; then echo l > cbfs-support; fi make[1]: Leaving directory `/root/Project/Kantor/Thin_client/coreboot-v2-4360/targets/emulation/qemu-x 86/qemu-x86/normal' rm -f ./coreboot.rom cat normal/coreboot.rom > ./coreboot.rom.bootblock ./cbfstool ./coreboot.rom create 524288 65536 ./coreboot.rom.bootblock ./cbfstool ./coreboot.rom add-payload /root/Project/Kantor/mkelfImage-2.7/linux.elf normal/payload Corrupt rom -- found no header at 458720 make: *** [coreboot.rom] Error 1 telebit:~/Project/Kantor/Thin_client/coreboot-v2-4360/targets/emulation/qem u-x86/qemu-x86 #
Like Myles already mentioned you need to increase some sizes to get the qemu target working. With the qemu target it should be possible to get a working result with an 16Mb kernel, but it will get really hard on real hardware. (Normally there is too less space in the chip for such big payloads.)
Maybe you should have a look at: http://www.coreboot.org/Anatomy_of_a_Failover_coreboot_v2_Image where all the interesting size values for building an image are explained.
Don't forget to enable LZMA compression for the payload, this will possibly decrease the size of it about >50%. (My testing image has a vmlinux with 5.1Mb and get's compressed via LZMA to 1.7Mb, but I've a 4Mb chip on my hardware to get something working.)
Regards, Harald