[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] system: grub: Add 'libreboot?' install flag.
From: |
Danny Milosavljevic |
Subject: |
Re: [PATCH] system: grub: Add 'libreboot?' install flag. |
Date: |
Wed, 9 Mar 2016 22:37:43 +0100 |
Hi,
just adding a few bits of information:
It's true that libreboot can (and does) source other grub config files. GRUB
should also be able to chainload other bootloaders, however I tried that
several times now and it just doesn't work. Is this a known limitation?
insmod ahci
insmod ext2
insmod part_msdos
insmod chain
set default=0
set timeout=1
submenu "Load Config" 0 {
root=(ahci0,msdos1)
source /boot/grub/grub.cfg <--- works
unset superusers
}
menuentry "Chainload GuixSD" {
chainloader (ahci0)+1 <-- doesn't work, "unknown payload"
}
But I can confirm that having /boot/grub/libreboot_grub.cfg makes libreboot use
that by default (after a 1 second or so delay where you can choose something
else for it to do).
Personally, I just use
$ ln -s grub.cfg /boot/grub/libreboot_grub.cfg
without any other patches instead. Works fine. Also auto-updates.
The default libreboot grub config (in flash) is:
set prefix=(memdisk)/boot/grub
insmod nativedisk
insmod ehci
insmod ohci
insmod uhci
insmod usb
insmod usbserial_pl2303
insmod usbserial_ftdi
insmod usbserial_usbdebug
# Serial and keyboard configuration, very important.
serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1
terminal_input --append serial
terminal_output --append serial
terminal_input --append at_keyboard
gfxpayload=keep
terminal_output --append gfxterm
# Default to first option, automatically boot after 1 second
set default="0"
set timeout=1
# This is useful when using 'cat' on long files on GRUB terminal
set pager=1
# # Play a beep on startup
# play 480 440 1
insmod jpeg
background_image (cbfsdisk)/background.jpg
loadfont (memdisk)/dejavusansmono.pf2
keymap ukqwerty
menuentry 'Load Operating System' {
insmod ahci
insmod part_msdos
insmod part_gpt
for x in (ahci0,1) (ahci0,2) (ahci0,3) (ahci0,4); do
if [ -f "$x/grub/libreboot_grub.cfg" ] ; then
set root=$x
configfile /grub/libreboot_grub.cfg
fi
if [ -f "$x/boot/grub/libreboot_grub.cfg" ] ; then
set root=$x
configfile /boot/grub/libreboot_grub.cfg
fi
done
set root='ahci0,1'
linux /vmlinuz root=/dev/sda1 rw
if [ -f "/initrd.img" ] ; then
initrd /initrd.img
fi
}
menuentry 'Parse ISOLINUX menu (ahci0)' {
insmod ahci
insmod part_msdos
insmod part_gpt
for x in (ahci0,1) (ahci0,2) (ahci0,3) (ahci0,4); do
set root=$x
if [ -f "/isolinux/isolinux.cfg" ] ; then
syslinux_configfile -i /isolinux/isolinux.cfg
elif [ -f "/syslinux/syslinux.cfg" ] ; then
syslinux_configfile -i /syslinux/syslinux.cfg
elif [ -f "/boot/isolinux/isolinux.cfg" ] ; then
syslinux_configfile -i /boot/isolinux/isolinux.cfg
elif [ -f "/boot/syslinux/syslinux.cfg" ] ; then
syslinux_configfile -i /boot/syslinux/syslinux.cfg
fi
done
}
menuentry 'Parse ISOLINUX menu (USB)' {
insmod usbms
insmod part_msdos
insmod part_gpt
for x in (usb0) (usb0,1) (usb0,2) (usb0,3) (usb0,4); do
set root=$x
if [ -f "/isolinux/isolinux.cfg" ] ; then
syslinux_configfile -i /isolinux/isolinux.cfg
elif [ -f "/syslinux/syslinux.cfg" ] ; then
syslinux_configfile -i /syslinux/syslinux.cfg
elif [ -f "/boot/isolinux/isolinux.cfg" ] ; then
syslinux_configfile -i /boot/isolinux/isolinux.cfg
elif [ -f "/boot/syslinux/syslinux.cfg" ] ; then
syslinux_configfile -i /boot/syslinux/syslinux.cfg
fi
done
}
menuentry 'Parse ISOLINUX menu (CD/DVD)' {
insmod ahci
insmod ata
insmod iso9660
for x in (ata0) (ahci1); do
set root=$x
if [ -f "/isolinux/isolinux.cfg" ] ; then
syslinux_configfile -i /isolinux/isolinux.cfg
elif [ -f "/syslinux/syslinux.cfg" ] ; then
syslinux_configfile -i /syslinux/syslinux.cfg
elif [ -f "/boot/isolinux/isolinux.cfg" ] ; then
syslinux_configfile -i /boot/isolinux/isolinux.cfg
elif [ -f "/boot/syslinux/syslinux.cfg" ] ; then
syslinux_configfile -i /boot/syslinux/syslinux.cfg
fi
done
}
menuentry 'Switch to grubtest.cfg' {
set root='cbfsdisk'
configfile (cbfsdisk)/grubtest.cfg
}
menuentry 'Search for GRUB configuration (grub.cfg) outside of CBFS' {
insmod ahci
insmod usbms
insmod part_msdos
insmod part_gpt
for x in (ahci0,1) (ahci0,2) (ahci0,3) (ahci0,4) (usb0) (usb0,1)
(usb0,2) (usb0,3) (usb0,4); do
if [ -f "$x/grub/grub.cfg" ] ; then
submenu "Load Config from $x" $x {
root=$2
source /grub/grub.cfg
unset superusers
}
fi
if [ -f "$x/boot/grub/grub.cfg" ] ; then
submenu "Load Config from $x" $x {
root=$2
source /boot/grub/grub.cfg
unset superusers
}
fi
if [ -f "$x/grub2/grub.cfg" ] ; then
submenu "Load Config from $x" $x {
root=$2
source /grub2/grub.cfg
unset superusers
}
fi
if [ -f "$x/boot/grub2/grub.cfg" ] ; then
submenu "Load Config from $x" $x {
root=$2
source /boot/grub2/grub.cfg
unset superusers
}
fi
done
}
- Re: [PATCH] system: grub: Add 'libreboot?' install flag.,
Danny Milosavljevic <=