MultiOS_3in1 (Android+Libreelec+Linux) install to eMMC


The renewal of the image 3in1 20171127.

Change - updated version Libreelec 17.6_20171120.
For those users who have already installed the system MultiOS_3in1, the catalog on the website to be a tar file for updates Libreelec in the previous images MultiOS_3in1. The update is performed as usual, start LE, copy the tar file in the Update directory and restart LE, the system automatically updates the version. Pay attention, now will be released one version MultiOS_3in1 with support for Android VTV.


Thanks for providing LE upgrades separately. The upgrade went fine!


Hi @balbes150 can you explain in detail how to “activate multi-boot”? I don’t understand.
I have flashed my build with MultiOS u-boot branch so does it mean that I can flash your MultiOS_3in1?

I am a little bit confused regarding activation of universal multiboot :slight_smile:


If you can boot and run 3.14.29 from SD, then you can install 3in1 using kvim2-update.
… at least … I could. The 3in1 image is copied to eMMC.


Show the output of your printenv from u-boot.
If you used the branch MultiOS from git u-boot Khadas, then there is no support for multiboot (SD and USB). You need to activate it separately.


@balbes150: a really great work!
I’m playing with your armbian based ubuntu server, it’s great but it lacks (as all other builds from you that I tested) the support in the kernel for the netfilter multiport option (it’s required for using the box as a firewall).
Is it possible to compile a new kernel for VIM2 to include that option?
Thanks in advance and keep up the good work!



What kind of configuration options we ?


This one:

‘multiport’ Multiple port match support found in net/netfilter/Kconfig


prompt: 'multiport' Multiple port match support
type: tristate
defined in net/netfilter/Kconfig
found in Linux kernels: 2.6.25–2.6.39, 3.0–3.19, 4.0–4.14, 4.15-rc+HEAD
modules built: xt_multiport

Anyway, it would be great if all netfilter drivers were enabled as loadable modules.
Is there a way to build the kernel myself?



You can compile the kernel with your configuration. The original config is in the /boot directory of your media, and source in git.


You mean that I can compile the kernel within the armbian running on the VIM2?
The sources can be gotten from ?


@balbes150 yes I am using khadas MultiOS branch but somehow I can’t boot into bootloader. It stays on Khadas logo.

So can I use your MultiOS branch to build u-boot?



One can build 4.9 kernel from khadas git repository oneself natively or with cross build tools.
At least, I built one myself (natively on vim2 booted from minimal gentoo SD stage3 root I work on).
Once built you need to make the uImage and uInitrd for /boot as well.
I agree it might be good to have more code built as modules.
My vanilla kernel has many :-). But vanilla does not (yet) support some HW (USB).

kvim2-gentoo ~ # find /lib/modules/4.9.40-khadas/ -name "*.ko" | wc
      5       5     317
kvim2-gentoo ~ # find /lib/modules/4.14.0-gentoo/ -name "*.ko" | wc
   1322    1322   87506

here is one VIM2 running gentoo

kvim2-gentoo ~ # uname -a
Linux kvim2-gentoo 4.14.0-gentoo #2 SMP PREEMPT Tue Nov 14 02:58:39 CET 2017 aarch64 GNU/Linux
kvim2-gentoo ~ # cat /proc/version 
Linux version 4.14.0-gentoo (root@kvim2-gentoo) (gcc version 7.2.0 (Gentoo 7.2.0 p1.1)) #2 SMP PREEMPT Tue Nov 14 02:58:39 CET 2017

here is another one currently running 3in1 ubuntu with kernel built on other (gentoo) one

root@khadas-extra:~# uname -a
Linux khadas-extra 4.9.40-khadas #1 SMP PREEMPT Sat Nov 18 23:17:57 CET 2017 aarch64 aarch64 aarch64 GNU/Linux
root@khadas-extra:~# cat /proc/version 
Linux version 4.9.40-khadas (root@kvim2-gentoo) (gcc version 4.9.4 (Gentoo 4.9.4-r1 p1.1, pie-0.6.4) ) #1 SMP PREEMPT Sat Nov 18 23:17:57 CET 2017


You can build the kernel on the VIM or on a PC (using cross compilation).

This is the source code for the kernel used in the latest version MultiOS_3in1. In Armbian use other kernel sources.

Now there is not much confusion in the designation of the branches of u-boot. A branch in git Khadas MultiOS - does not support muliboot (not running multiple systems from removable media SD cards and USB flash drives). This version should be called DualOS (she supports the running of two systems of eMMC ). I use the branch Nougat-Ubuntu (in my git). In my branch there is support for running systems with external media and run different systems from eMMC. Pay attention to compile u-boot must be performed with the version of gcc 4.9.

Case for VM2 with DVB and DVB for the dual boot image

Thanks for clarification @balbes150 :slight_smile:
Interesting is that I built yesterday new vim2 rom with your u-boot branch MultiOS with gcc 7.2.1 on my arch linux and flashed successfully.

The only strange thing was that vim2 rebooted 2 or 3 times before it settled, maybe because of SuperSU?

Anyway thanks for help.



Thanks for the images.
My only question is which of the Os have GPU drivers.
I know there is no proprietary drivers available for the T820 on the S912. So I guess at best we hope for opensource drivers.
So, do any of the Os have GPU drivers installed?
Best regards


Hi, yesterday I installed this 3 in 1 system and I like it very much! However, I would love to use “Normal” Android on my device. Is there a way to do that and keep the multiboot?

Thank you,


I don’t understand the question. Write more about what interests you.

What kind of Android you ask ?


Hi balbes150

  1. The Vim2 has a S912 processor and a T820 GPU
  2. The GPU is ignored unless there is a driver for it
  3. There are no propriety Mali drivers available for the S912
  4. As far as GPU acceleration goes : The best the Vim2 can hope for is a OpenGL ES driver.

So, my questions… of the 3 in 1 Firmwares… Android, OpenElec, Ubuntu, which of the operating systems has a Mali T820 GPU driver installed ?

I know the Android does have the OpenGL ES 3.0 driver.
I don’t know about OpenElec
I know Ubuntu has no GPU driver, all rendering is by the CPU S912.

So, my question is to point out that we need install a GPU driver and … how is that done.

Best regards


LibreELEC uses libhibris (HW acceleration on the basis of the library\drivers from Android). A similar solution can be used for Linux.


Hello balbaes150,

thank you very much for the reply. I wanted to first say that the build you did is just perfect, very well made so far as I can tell. What I miss is a stock Andriod Nougat … the things I cannot find in this version are “Users” menu in settings, drop-down “notifications” menu on top and multi-window functionality. Are these things missing or I just do not know where they are?

Thank you.