diff options
Diffstat (limited to 'grub.cfg')
-rw-r--r-- | grub.cfg | 148 |
1 files changed, 148 insertions, 0 deletions
diff --git a/grub.cfg b/grub.cfg new file mode 100644 index 0000000..189cdb5 --- /dev/null +++ b/grub.cfg @@ -0,0 +1,148 @@ +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.png +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 +} + |