Using touch enabled firmware UEFI boot menu for UEFI tablets (multi-boot)

3,433 views
Skip to first unread message

JJ Meijer

unread,
Nov 23, 2015, 12:05:16 PM11/23/15
to Android-x86
Hello everybody,

I was looking for a nice way of multi-booting Windows, Android, Ubuntu, ....I didn't find any software bootloader (like Grub, refind,..) that could do this without adding a keyboard or external boot device.

It turns out that most UEFI tablets already have everything you need and also the Linux kernel is directly bootable by UEFI firmware thanks to build-in EFISTUB, but the additional boot options need to be added because auto detection is probably not working. Also the Linux kernel needs to be placed on a fat partition, otherwise it will not load. Your system and data locations can be placed wherever you want (SD-card, windows partition, USB drive...)   details: https://wiki.archlinux.org/index.php/EFISTUB

If you don't have Linux already running, first get a Linux live cd like this one (very nice with UEFI x86 & x64 support): http://arch.apt-get.eu/iso/archboot/latest/ https://wiki.archlinux.org/index.php/Archboot

The tool (efibootmgr) is already installed. More details: https://wiki.archlinux.org/index.php/EFISTUB#Using_UEFI_directly_.28efibootmgr.29

List all boot entry's for reverence:
efibootmgr -v

Adding the boot entry:
efibootmgr -d /dev/sdX -p Y -c -L "Android-x86" -l /kernel -u "root=/dev/sda2 rw initrd=/initrd.img androidboot.hardware=android_x86"
Where X and Y are changed to reflect the disk and partition where the kernel is located. Change the root= parameter to reflect your Linux root (disk UUIDs can also be used).

List all boot entry's to check:
efibootmgr -v

Now reboot into your boot selection menu. If the entry is not there, you might have made a mistake in the -d of -p parameters. Also it's best to use a Linux system architecture that matches your UEFI architecture (probably x86). If it's still not working you probably have a buggy BIIOS and you should check for a BIIOS update.

It should also be possible to use BCDEdit in Windows but I have not tried it so maybe somebody else can do a write up about that :o)
https://technet.microsoft.com/en-us/library/cc709667%28v=ws.10%29.aspx

Please correct me or add to this if I missed anything.

Kind regards!

fgdn17

unread,
Nov 23, 2015, 1:09:42 PM11/23/15
to Android-x86
"I was looking for a nice way of multi-booting Windows, Android, Ubuntu, ....I didn't find any software bootloader (like Grub, refind,..) that could do this without adding a keyboard or external boot device."

FWIW:

been running that for over a year on my HP G60 laptop....then upgraded to windows 10 when it became available...
all working fine still...........OF COURSE IT's AN MBR disk NOT GPT.........but shouldn't be too magical to do the same
with GPT disk...no............

JJ Meijer

unread,
Nov 23, 2015, 1:38:58 PM11/23/15
to Android-x86
Sure that works fine on a laptop (and also on a tablet) but the whole point is to use a touch-screen to select the boot entry.

Also for your laptop it could be interesting to reduce boot time (a little)

Op maandag 23 november 2015 19:09:42 UTC+1 schreef fgdn17:

Zeeshan Ahmed P

unread,
Dec 18, 2015, 12:36:23 PM12/18/15
to Android-x86
I tried it on my tablet using the arch Linux.. The efibootmgr added an entry to the UEFI, I'm not able to see it at boot. But I installed EasyUEFI and checked it, it's there but isn't showing in bcdedit or the bios. What can I do to get the touch multi boot working?

JJ Meijer

unread,
Dec 19, 2015, 4:02:21 PM12/19/15
to Android-x86
Did you check the path you specified? Your boot entry is probably hidden because the kernel can't be found, that's what I experienced before at least.

Zeeshan Ahmed P

unread,
Dec 20, 2015, 2:22:14 AM12/20/15
to andro...@googlegroups.com

Thanks JJ
Yes, the kernel was hidden.. Then I made a separate partition of fat and used the same procedure... This time, the UEFI entry is added into the bios boot options and the Android entry boots automatically, it's prioritized to be the first one in the list...
Although this is not the expected result.. I thought the entry would appear in Windows boot menu (bcdedit) or some sort of touch enabled menu giving me options to select.
I could make the entry even before very easily using EasyUEFI software for Windows by loading grubia32.efi into efi partition and leaving boot time out as 0 to make it look like it directly boots into android when selected from bios...
And also I'd like to mention that the bios on my device is not touch enabled(like in the Dell Venue series)
So how does the actual touch boot menu look? (Screen shot would be awesome)

On Dec 20, 2015 2:32 AM, "JJ Meijer" <jjmei...@gmail.com> wrote:
Did you check the path you specified? Your boot entry is probably hidden because the kernel can't be found, that's what I experienced before at least.

--
You received this message because you are subscribed to the Google Groups "Android-x86" group.
To unsubscribe from this group and stop receiving emails from it, send an email to android-x86...@googlegroups.com.
To post to this group, send email to andro...@googlegroups.com.
Visit this group at https://groups.google.com/group/android-x86.
For more options, visit https://groups.google.com/d/optout.

JJ Meijer

unread,
Dec 20, 2015, 4:26:09 AM12/20/15
to Android-x86
Hi Zeeshan,

That's a good point, one should also set the preferred boot order with efibootmgr -o. Here's a nice explanation with example: http://askubuntu.com/questions/325048/cleaning-up-and-changing-the-efi-boot-order-permanently-using-eifbootmgr

To bad your device does not have a touch enabled bios. The idea behind this method is to use a touch enabled BIOS to select the boot entry like my HP Omni 10 does. You can still use this method but sadly you will still need an external device to select the boot entry. I'm not sure what would the button to show the boot menu on your device, maybe F2, F10 or escape?

If somebody has a touch enabled software solution I would be very interested.

Liao Ssin

unread,
Dec 20, 2015, 5:26:45 AM12/20/15
to Android-x86
Here's how I do on my Surface Pro 3 and it works great

Use a program called easyuefi and add Android x86 with it by selecting your grub

The system will recognize it as an external system somehow like a usb

Set your grub default boot to Android x86 and 0 timeout

Once you've done these steps above,Android x86 will show up at Advanced>Other options>Use device in the Windows boot manger

Press it your system will reboot to grub and because of the settings we set,it will directly boot to Android x86 for us

Here I posted an article on this website

Though it is all Traditional Chinese but I also put some pics there,so you still can get the idea

Zeeshan Ahmed P

unread,
Dec 20, 2015, 6:24:50 AM12/20/15
to andro...@googlegroups.com

The button is F7 and I thought so, that's y I mentioned that my bios isn't touch enabled.. Also I'm trying to add it to the Windows boot menu somehow (as metro boot menu is touch enabled) , and everywhere I searched, people say it can not be done..

Zeeshan Ahmed P

unread,
Dec 20, 2015, 6:30:40 AM12/20/15
to andro...@googlegroups.com

That's exactly what I do and I've mentioned it in my previous post as well.. But the problem is you have to boot into Windows completely then go to advance reboot menu (can be even done by holding shift key and pressing the reboot option)
This is a long process.. Instead I'm looking for a way to add this UEFI entry that we created into the bcd...
I've tried a bunch of bcdedit options and have found zero luck..
I just wanna put an option there which would boot from my UEFI entry (as if I went into the bios and selected it)
Does someone know how to add such (even a method to add a removable device will help) entry to bcd...?

--

Liao Ssin

unread,
Dec 20, 2015, 7:41:33 AM12/20/15
to Android-x86
Simple,all you need to do is to create a void system to trick the manager you have multi OS on your machine

And it will show up everytime you boot up



Zeeshan Ahmed P於 2015年12月20日星期日 UTC+8下午7時30分40秒寫道:

Jaap Jan Meijer

unread,
Dec 20, 2015, 1:01:29 PM12/20/15
to andro...@googlegroups.com
But if you add it there you still won't be able to use touch to select it, I think? 

You could also install grub to a USB stick and give that higher boot priority in bios. Than you just put in the USB stick and it will boot android.

Op zo 20 dec. 2015 12:30 schreef Zeeshan Ahmed P <zeethe...@gmail.com>:
You received this message because you are subscribed to a topic in the Google Groups "Android-x86" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/android-x86/N12U5-S0-Ow/unsubscribe.
To unsubscribe from this group and all its topics, send an email to android-x86...@googlegroups.com.

Zeeshan Ahmed P

unread,
Dec 20, 2015, 1:06:09 PM12/20/15
to andro...@googlegroups.com

I'm not entirely sure if I understand what u r trying to say.. But I think I've tried adding an entry using bcdedit in command prompt... The boot menu shows up but I'm unable to boot into android
Here is what I tried,
I created a bcd entry with file location as grub32.efi, this shows up in the boot menu when I select it, Windows boot Manger says the operating system is not found and asks me to boot into a different os

Zeeshan Ahmed P

unread,
Dec 20, 2015, 1:10:59 PM12/20/15
to andro...@googlegroups.com

The new windows metro boot menu is touch enabled and I've managed adding bcd entry like I've said in the previous message.. But doesn't boot up..
I just need to know what file location should I give for the entry that it boots to android... Coz when the file location is set to grub32 it gives error..
I've read somewhere that I need to get 512 bytes of bootsector... But I don't know how to do that on Android!

JJ Meijer

unread,
Dec 20, 2015, 1:19:43 PM12/20/15
to Android-x86
Sorry I did not understand what you ment because I didn't know this metro boot menu existed. Can you also add boot parameters? Because then you can just boot the android kernel straight away. Otherwise I wouldn't know what you did wrong.

Liao Ssin

unread,
Dec 20, 2015, 8:57:28 PM12/20/15
to Android-x86
I've already proved it works in my post

Windows boot manager does not support non-Windows OS in my knowledge

But there's advanced option to let you reboot to USB or other EFI,which in our case is grub

So in this way we can achieve booting all Android x86 even multiple of them,just create even numbers of grub
JJ Meijer於 2015年12月21日星期一 UTC+8上午2時01分29秒寫道:

Liao Ssin

unread,
Dec 20, 2015, 9:00:25 PM12/20/15
to Android-x86
Can anyone confirm we can not edit the post on Google forum?

Never mind,to sum all my comments

Yes,you can boot Android x86 by just touch

Zeeshan Ahmed P

unread,
Dec 20, 2015, 9:47:10 PM12/20/15
to andro...@googlegroups.com

Yes.. I do agree to this.. You can boot from the advance recovery menu... But the point was to have it booting from the boot menu which appears at the startup.. And AFAIK too Windows doesn't allow booting to a non Windows os..
But I was considering the probability of making that advance recovery option appear in the boot menu... But it doesn't seem to be possible!

Mke

unread,
Dec 21, 2015, 2:03:42 AM12/21/15
to andro...@googlegroups.com

Nope but you can delete it..

Sent with AquaMail for Android
http://www.aqua-mail.com

--

JJ Meijer

unread,
Dec 21, 2015, 4:46:59 PM12/21/15
to Android-x86
Hmm well, having to need to boot Windows and go to recovery to be able to dual boot sucks. I see bcdedit also has a bootnext version which is called /bootsequence. This option will let your PC boot the selected boot option one time so that would work nice if you wrap it in a shortcut. It could save a little irritation ;)

Reference: https://technet.microsoft.com/en-us/library/cc709667(v=ws.10).aspx

Reply all
Reply to author
Forward
0 new messages