OSDN Git Service

1-install: add savedefault function to grub-efi
authorChih-Wei Huang <cwhuang@linux.org.tw>
Fri, 19 Jan 2018 07:48:53 +0000 (15:48 +0800)
committerChih-Wei Huang <cwhuang@linux.org.tw>
Tue, 23 Jan 2018 10:06:38 +0000 (18:06 +0800)
Remember the last chosen boot entry.

install/grub2/efi/boot/android.cfg
install/scripts/1-install

index 29534c6..dfe5cc1 100644 (file)
@@ -3,6 +3,7 @@
 function add_entry {
        menuentry "Android-x86 VER $1" "$@" --class android-x86 {
                shift 2
+               savedefault
                search --no-floppy --set -f $kdir/kernel
                linux $kdir/kernel CMDLINE $src $@
                initrd $kdir/initrd.img
@@ -16,11 +17,23 @@ function add_os_if_exists {
 #      search --no-floppy --set -f $1
        if [ -e ($root)/$1 ]; then
                menuentry "$2 ->" "$1" --class "$3" {
+                       savedefault
                        chainloader ($root)/$2
                }
        fi
 }
 
+function savedefault {
+       if [ -s $prefix/grubenv -a "$chosen" != "$default" ]; then
+               set default="$chosen"
+               save_env default
+       fi
+}
+
+if [ -s $prefix/grubenv ]; then
+       load_env
+fi
+
 # Create main menu
 add_entry "$live" quiet
 add_entry "$debug_mode" DEBUG=2
index a537a5f..d83f056 100644 (file)
@@ -348,6 +348,7 @@ install_to()
                mkdir -p `dirname $grubcfg` efi/efi/Android
                cp -af grub2/efi/boot/* efi/efi/Android
                sed -i "s|VER|$VER|; s|CMDLINE|$cmdline|" efi/efi/Android/android.cfg
+               [ -s efi/boot/grub/grubenv ] || ( printf %-1024s "# GRUB Environment Block%" | sed 's/k%/k\n/; s/   /###/g' > efi/boot/grub/grubenv )
 
                echo -e 'set timeout=5\nset debug_mode="(DEBUG mode)"' > $grubcfg
                # Our grub-efi doesn't support ntfs directly.