One user from xda has managed to select using volum buttons
Source: http://forum.xda-developers.com/showpost.php?p=58752726&postcount=309
everthing is working with vol+ / vol- hard buttons if you choose this solution for Acer W700 with 120GB SSD
- clear hard drive
- install win 8.1 with 70GB partition
- install Ubuntu 14.04 with 30GB partition
- copy Android x86 4.4-r2 to 20GB partition
- modify grub to boot Android-x86
- get grub source, edit menu.c and compile, reinstall grub
without 6. grub boot menu is not working. i tried to solve this problem by changing keyboard layouts, but maybe there is a bug in grub 2.02 because keyboard layouts can’t be loaded.
you can compile grub2_2.02~beta2 yourself and modify grub-core/normal/menu.c to get the menu working. unmodified grub2_2.02~beta2 is attached to this post.
edit grub-core/normal/menu.c:
Code:
case GRUB_TERM_KEY_HOME:
case GRUB_TERM_CTRL | ‘a’:
current_entry = 0;
menu_set_chosen_entry (current_entry);
break;
case GRUB_TERM_KEY_END:
case GRUB_TERM_CTRL | 'e':
current_entry = menu->size - 1;
menu_set_chosen_entry (current_entry);
break;
case GRUB_TERM_KEY_UP:
case GRUB_TERM_CTRL | 'p':
case '^':
if (current_entry > 0)
current_entry--;
menu_set_chosen_entry (current_entry);
break;
case GRUB_TERM_CTRL | 'n':
case GRUB_TERM_KEY_DOWN:
case 'v':
if (current_entry < menu->size - 1)
current_entry++;
menu_set_chosen_entry (current_entry);
break;
case GRUB_TERM_CTRL | 'g':
case GRUB_TERM_KEY_PPAGE:
if (current_entry < GRUB_MENU_PAGE_SIZE)
current_entry = 0;
else
current_entry -= GRUB_MENU_PAGE_SIZE;
menu_set_chosen_entry (current_entry);
break;
case GRUB_TERM_CTRL | 'c':
case GRUB_TERM_KEY_NPAGE:
if (current_entry + GRUB_MENU_PAGE_SIZE < menu->size)
current_entry += GRUB_MENU_PAGE_SIZE;
else
current_entry = menu->size - 1;
menu_set_chosen_entry (current_entry);
break;
case '
':
case ‘\r’:
case GRUB_TERM_KEY_RIGHT:
case GRUB_TERM_CTRL | ‘f’:
menu_fini ();
*auto_boot = 0;
return current_entry;
case '\e':
if (nested)
{
menu_fini ();
return -1;
}
break;
case 'c':
menu_fini ();
grub_cmdline_run (1);
goto refresh;
change to
Code:
/* case GRUB_TERM_KEY_HOME: */
case GRUB_TERM_CTRL | ‘a’:
current_entry = 0;
menu_set_chosen_entry (current_entry);
break;
/* case GRUB_TERM_KEY_END: */
case GRUB_TERM_CTRL | 'e':
current_entry = menu->size - 1;
menu_set_chosen_entry (current_entry);
break;
case GRUB_TERM_KEY_UP:
case GRUB_TERM_CTRL | 'p':
case '^':
if (current_entry > 0)
current_entry--;
menu_set_chosen_entry (current_entry);
break;
case 'c':
case GRUB_TERM_KEY_END:
case GRUB_TERM_CTRL | 'n':
case GRUB_TERM_KEY_DOWN:
case 'v':
if (current_entry < menu->size - 1)
current_entry++;
menu_set_chosen_entry (current_entry);
break;
case GRUB_TERM_CTRL | 'g':
case GRUB_TERM_KEY_PPAGE:
if (current_entry < GRUB_MENU_PAGE_SIZE)
current_entry = 0;
else
current_entry -= GRUB_MENU_PAGE_SIZE;
menu_set_chosen_entry (current_entry);
break;
case GRUB_TERM_CTRL | 'c':
case GRUB_TERM_KEY_NPAGE:
if (current_entry + GRUB_MENU_PAGE_SIZE < menu->size)
current_entry += GRUB_MENU_PAGE_SIZE;
else
current_entry = menu->size - 1;
menu_set_chosen_entry (current_entry);
break;
case 'b':
case GRUB_TERM_KEY_HOME:
case '
':
case ‘\r’:
case GRUB_TERM_KEY_RIGHT:
case GRUB_TERM_CTRL | ‘f’:
menu_fini ();
*auto_boot = 0;
return current_entry;
case '\e':
if (nested)
{
menu_fini ();
return -1;
}
break;
case 'd':
menu_fini ();
grub_cmdline_run (1);
goto refresh;
compile and install, everything is working fine. be careful and choose grub2_2.02~beta2, grub2.00 did not work for me.
how to compile and install grub:
- download source grub2_2.02~beta2.orig.zip and extract, modify menu.c
- cd grub2_2.02~beta2
- ./configure --prefix=/usr --with-platform=efi --target=x86_64
- make
- sudo make install
- sudo grub-install