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

2016-08-07 Thread Paul Menzel via coreboot
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

signature.asc
Description: This is a digitally signed message part
-- 
coreboot mailing list: coreboot@coreboot.org
https://www.coreboot.org/mailman/listinfo/coreboot

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

2016-07-31 Thread Evan Cramer
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.
-- 
coreboot mailing list: coreboot@coreboot.org
https://www.coreboot.org/mailman/listinfo/coreboot