|
1 | | -# grub-2.04 |
| 1 | +# grub-2.04-nokeymod |
2 | 2 | Credit/license/source: Originally obtained from grub-2.04.tar.gz at https://git.savannah.gnu.org/cgit/grub.git |
| 3 | +Forked from: https://github.com/coherixmatts/grub-2.04 |
3 | 4 |
|
4 | | -All licenses and credits are theirs. I merely host this to add a small change necessary for Linux efistub booting on Surface RT/2 (maybe other EFI ARM32 devices). |
| 5 | +This fork changes the timeout behaviour of GRUB to allow selecting an OS on a Surface RT device using the volume buttons only. The timeout will continue until 0 and then boot the selected OS. |
5 | 6 |
|
6 | | -Build instructions: |
| 7 | +## Requirements |
| 8 | +- Download the grub.efi file from the release section or compile it yourself. |
| 9 | +- On the EFI partition (or USB drive formatted as FAT32) create the folders EFI\boot |
| 10 | +- Place the grub.efi into the EFI\boot folder and rename it to bootarm.efi |
| 11 | +- Download and place the file unicode.pf2 in the root of the partition. |
| 12 | +- Create a grub.cfg config file and place it at the root of the partition. An example can be found below. |
| 13 | +- (Optional:) Place all kernel and device tree files you need to boot linux in the root of the partition |
| 14 | + |
| 15 | +## grub.cfg |
| 16 | +Below you can find an example grub.cfg that allows dual booting of Windows and Linux. |
| 17 | +It's important to specify a timeout value above 0 if you want this modification to work. |
| 18 | +Change the values appropriately. For example if you plan to install GRUB on the device itself, change the root to hd0,x. Also change the root partition of the linux file system accordingly if necessary. |
| 19 | + |
| 20 | +If you install GRUB on the device and plan to dual boot with Windows, you also need to rename the /EFI/Microsoft/Boot/bootmgfw.efi file to something else and then change the name accordingly in the config. Otherwise GRUB will be skipped. |
| 21 | + |
| 22 | +``` |
| 23 | +insmod font |
| 24 | +
|
| 25 | +if loadfont ${prefix}/unicode.pf2 |
| 26 | +then |
| 27 | + insmod gfxterm |
| 28 | + set gfxmode=auto |
| 29 | + set gfxpayload=keep |
| 30 | + terminal_output gfxterm |
| 31 | + set timeout=5 |
| 32 | + menuentry "My Linux Distribution" { |
| 33 | + set root=(hd1,2) |
| 34 | + linux /zImage root=/dev/mmcblk0p6 cpuidle.off=1 console=ttyS0 |
| 35 | + devicetree /tegra30-microsoft-surface-rt-efi.dtb |
| 36 | + } |
| 37 | + menuentry "Windows Bootloader" { |
| 38 | + set root=(hd1,2) |
| 39 | + chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi |
| 40 | + } |
| 41 | +else |
| 42 | + reboot |
| 43 | +fi |
| 44 | +``` |
| 45 | + |
| 46 | +## Build instructions: |
7 | 47 |
|
8 | 48 | 0. git clone https://www.github.com/coherixmatts/grub-2.04 |
9 | 49 | 1. cd into <grub-2.04> directory |
|
0 commit comments