[coreboot] Grub payload on X220: Reboot when trying to load Fedora with grub payload, works with SeaBIOS.

Paul Menzel paulepanter at users.sourceforge.net
Sun Aug 7 15:24:35 CEST 2016


Dear Evan,


Am Sonntag, den 31.07.2016, 21:20 -0700 schrieb Evan Cramer:
 
> I've gotten pretty far along with coreboot on my X220 running Fedora 23.
> I've extracted a VGA option ROM, and it loads correctly. I have grub
> configured as the primary payload, which can chainload SeaBIOS from its
> memdisk. The grub.cfg in cbfs can find and load the grub.cfg in /boot on my
> ssd.
> 
> However, here's my problem. While grub finds the grub.cfg on the ssd and
> presents me with a list of Fedora kernels to boot,  when I select one, the
> screen turns black and the system appears to reboot displaying "Welcome to
> GRUB!", and then drops me back to grub, presenting the options in my
> (cbfsdisk)/etc/grub.cfg menu.
> 
> However, if I chainload SeaBIOS, it correctly finds grub in the MBR on the
> ssd which loads the grub.cfg on the ssd, and when I select the Fedora
> kernel, it drops me at the LUKS password prompt as expected, and boots
> Fedora just fine after I enter my FDE password.
> 
> As mentioned before, I have extracted a working VGA option ROM and included
> it in the image. Since graphics in SeaBIOS works now I'm confident that's
> working. I have configured coreboot to load the VGA option ROM itself, as
> when I set native graphics initialization but included the option ROM in
> the cbfs disk, I got no video output in SeaBIOS. This is probably because
> SeaBIOS is in the Grub2 memdisk, not cbfs, and can't reach the option ROM.

To my knowledge, you can either use native graphics initialization with
SeaVGABIOS or the proprietary vendor Video BIOS, but not both together.

> Also mentioned before, I'm using LUKS full disk encryption. Grub doesn't
> complain about any missing modules, and my grub mkstandalone invocation is
> as follows:
> 
> ../grub-mkstandalone \
> --grub-mkimage=../grub-mkimage -O i386-coreboot -o ../grub2-X220.elf \
> --modules='ahci ehci uhci usb_keyboard usbms part_msdos xfs ext2 fat
> at_keyboard part_gpt usbserial_usbdebug cbfs minix_be minix minix3_be
> minix3 minix2_be minix2 ufs2 ufs1_be ufs1 udf romfs procfs odc nilfs2
> newc iso9660 cpio exfat cpio_be afs video_bochs password png keystatus
> sleep loopback gfxterm_background' \
> --install-modules='syslinuxcfg bsd ls cat echo linux linux16 search
> configfile normal cbtime cbls memrw iorw minicmd lsmmap lspci halt
> reboot hexdump pcidump regexp setpci lsacpi chain test lvm crypto
> cryptodisk luks gzio gfxterm all_video' \
> --fonts= \
> --themes= \
> --locales= \
> -d ../grub-core/ \
> /boot/grub/grub.cfg=../coreboot.cfg \
> $(find -type f)
> 
> I'm including luks, crypto, cryptodisk, and lvm, among many of things, so I
> don't think it's an issue with not having the modules necessary for
> mounting an encrypted disk. I'm not really sure where to go from here. I
> don't have any usb_serial or serial interfaces to do debug, but since I
> have video by this point I'm not really sure this would give me any more
> information. Is there some way I can get grub to print what problems it is
> having that makes it reboot? I suspect it's some kind of problem with
> video, since the prompt for the LUKS password has a background image. And
> since it works fine on SeaBIOS...
> 
> Also, if it helps, this is my config as extracted from the ROM.
> 
> This image was built using coreboot 4.4-523-gd71cfd2-dirty

Your source is marked as dirty. What changes do you have in coreboot?
(`git status`, `git diff` or `git diff --cached` should give a hint.)

> CONFIG_BOOTSPLASH_IMAGE=y
> CONFIG_BOOTSPLASH_FILE="~/Projects/blobs/bootsplash.png"
> CONFIG_VENDOR_LENOVO=y
> CONFIG_VGA_BIOS=y
> CONFIG_VGA_BIOS_FILE="~/Projects/blobs/vgabios.bin"
> CONFIG_HAVE_IFD_BIN=y
> CONFIG_HAVE_ME_BIN=y
> CONFIG_HAVE_GBE_BIN=y
> CONFIG_BOARD_LENOVO_X220=y
> # CONFIG_S3_VGA_ROM_RUN is not set
> CONFIG_FRAMEBUFFER_SET_VESA_MODE=y
> CONFIG_BOOTSPLASH=y
> CONFIG_PAYLOAD_ELF=y
> CONFIG_PAYLOAD_FILE="/home/ecramer/Projects/grub/grub2-X220.elf"
> CONFIG_COREINFO_SECONDARY_PAYLOAD=y
> CONFIG_DEBUG_CBFS=y
> 
> Also, here is a link to my grub configs http://pastebin.com/CSitTf34

Please attach text files to messages. Use paste sites just for IRC.

> The first is the grub.cfg in /boot/grub2 and the second is the grub.cfg
> included in the CBFS in coreboot.rom
> 
> Does anybody have any tips of where I should go from here? I'm out of ideas
> on how to debug this.

More debugging messages are needed. Does `set debug=all` [1] – I think
that’s the syntax – help?

What happens if you enter the lines from the config manually on the
GRUB command line? Do you see on what line it reboots?


Thanks,

Paul


[1] https://www.gnu.org/software/grub/manual/html_node/debug.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: This is a digitally signed message part
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20160807/1a1eef71/attachment.asc>


More information about the coreboot mailing list