MultiOS_3in1 (Android+Libreelec+Linux) install to eMMC

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
1 Like

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.

1 Like

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.

1 Like

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.

sudo apt-get update
sudo apt-get install libhybris

? and that’s it ?

The build of Android does @Terry, I only use it a finished version in their system. Therefore, it is necessary to wait the answer to these questions from him.

Libhibris no repo in Linux, it is necessary to compile and configure yourself.

Hi Balbes

Please could you write up instructions for how to.
I see many SBCs and TV boxes. They also use the T820 Mali with S912 - and are fast.
I just don’t know how to set up the GPU drivers.

Please help with this… makes a much faster Linux :slight_smile:

Hi guys. Can anyone give here a sumnary of the steps needed to install this multi os version into the khadas vim2? After reading then whole thread i havent clear the steps at all.

Thank you. Regards

1 Like

The website added 2 new image firmware.



Please note that this version , which is designed for installation to eMMC via a special system image that runs from external media.

Added a new image 20171223 Ubuntu_Mate_17.04_4.9.40 to install to eMMC.
This option uses the entire eMMC for the root system.