aboutsummaryrefslogtreecommitdiff
path: root/grub.cfg
diff options
context:
space:
mode:
Diffstat (limited to 'grub.cfg')
-rw-r--r--grub.cfg164
1 files changed, 164 insertions, 0 deletions
diff --git a/grub.cfg b/grub.cfg
new file mode 100644
index 000000000000..b0abc4da8319
--- /dev/null
+++ b/grub.cfg
@@ -0,0 +1,164 @@
+function try_user_config {
+ set root="${1}"
+ for dir in boot grub grub2 boot/grub boot/grub2; do
+ for name in libreboot_ autoboot_ librecore_ coreboot_ ''; do
+ if [ -f /"${dir}"/"${name}"grub.cfg ]; then
+ unset superusers
+ configfile /"${dir}"/"${name}"grub.cfg
+ fi
+ done
+ done
+}
+
+function search_grub {
+ for i in 0 1; do
+ # raw devices
+ try_user_config "(${1}${i})"
+ for part in 1 2 3 4 5; do
+ # MBR/GPT partitions
+ try_user_config "(${1}${i},${part})"
+ done
+ done
+}
+
+function try_isolinux_config {
+ set root="${1}"
+ for dir in '' /boot; do
+ if [ -f "${dir}"/isolinux/isolinux.cfg ]; then
+ syslinux_configfile -i "${dir}"/isolinux/isolinux.cfg
+ elif [ -f "${dir}"/syslinux/syslinux.cfg ]; then
+ syslinux_configfile -s "${dir}"/syslinux/syslinux.cfg
+ fi
+ done
+}
+
+function search_isolinux {
+ for i in 0 1; do
+ # raw devices
+ try_isolinux_config "(${1}${i})"
+ for part in 1 2 3 4 5; do
+ # MBR/GPT partitions
+ try_isolinux_config "(${1}${i},${part})"
+ done
+ done
+}
+
+function load_video {
+ if [ x$feature_all_video_module = xy ]; then
+ insmod all_video
+ else
+ insmod efi_gop
+ insmod efi_uga
+ insmod ieee1275_fb
+ insmod vbe
+ insmod vga
+ insmod video_bochs
+ insmod video_cirrus
+ fi
+}
+
+
+if loadfont (cbfsdisk)/font.pf2 ; then
+ set gfxmode=auto
+ load_video
+ insmod gfxterm
+ set locale_dir=$prefix/locale
+ set lang=en_US
+ insmod gettext
+fi
+
+terminal_input console
+terminal_output gfxterm
+gfxpayload=keep
+
+if [ x$feature_timeout_style = xy ] ; then
+ set timeout_style=menu
+ set timeout=1
+# Fallback normal timeout code in case the timeout_style feature is
+# unavailable.
+else
+ set timeout=5
+fi
+
+insmod png
+if background_image (cbfsdisk)/background.png; then
+ true
+fi
+
+#Scan for OS on internal HDD
+insmod regexp
+insmod ahci
+insmod part_msdos
+for x in (ahci*,*) ; do
+ if [ -f "$x/grub/grub.cfg" ] ; then
+ menuentry "Load Config from $x" $x {
+ root=$2
+ configfile /grub/grub.cfg
+ }
+ fi
+ if [ -f "$x/boot/grub/grub.cfg" ] ; then
+ menuentry "Load Config from $x" $x {
+ root=$2
+ configfile /boot/grub/grub.cfg
+ }
+ fi
+done
+
+for x in (usb*,*) ; do
+ if [ -f "$x/grub/grub.cfg" ] ; then
+ menuentry "Load Config from $x" $x {
+ root=$2
+ configfile /grub/grub.cfg
+ }
+ fi
+ if [ -f "$x/boot/grub/grub.cfg" ] ; then
+ menuentry "Load Config from $x" $x {
+ root=$2
+ configfile /boot/grub/grub.cfg
+ }
+ fi
+done
+
+
+menuentry 'Search ISOLINUX menu (AHCI) [a]' --hotkey='a' {
+ search_isolinux ahci
+}
+
+menuentry 'Search ISOLINUX menu (USB) [u]' --hotkey='u' {
+ search_isolinux usb
+}
+
+menuentry 'Search ISOLINUX menu (CD/DVD) [d]' --hotkey='d' {
+ insmod ata
+ for dev in ata0 ata1 ata2 ata3 ahci1; do
+ try_isolinux_config "(${dev})"
+ done
+}
+
+menuentry 'Search for GRUB2 configuration on external media [s]' --hotkey='s' {
+ search_grub usb
+}
+
+menuentry 'nvramcui' {
+ chainloader (cbfsdisk)/img/nvramcui
+}
+
+menuentry 'coreinfo' {
+ chainloader (cbfsdisk)/img/coreinfo
+}
+
+menuentry 'Memtest86+' {
+ chainloader (cbfsdisk)/img/memtest
+}
+
+menuentry 'tint' {
+ chainloader (cbfsdisk)/img/tint
+}
+
+menuentry 'Poweroff [p]' --hotkey='p' {
+ halt
+}
+
+menuentry 'Reboot [r]' --hotkey='r' {
+ reboot
+}