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

Evan Cramer eccramer at gmail.com
Mon Aug 1 06:20:25 CEST 2016


Hello coreboot folks,

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.

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
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

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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20160731/7b4dd292/attachment.html>


More information about the coreboot mailing list