aboutsummaryrefslogtreecommitdiff
path: root/grub.cfg
blob: 189cdb5dd153d061dec1eeeed207305a839be0aa (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
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
}