Manjaro ARM for Khadas Vim2 - Pro, Beelink GT1-Ultimate, Dealdig-Boxd6 & X92 !!

Manjaro ARM for Khadas Vim2!

The Manjaro ARM project is proud to announce the first release for Khadas Vim2 - Pro, Beelink GT1-Ultimate, Dealdig-Boxd6 & X92 !!

These images are running the 5.6.2-2 kernel. Can be upgraded to 5.7.0-rc3

Features:

The Khadas Vim2-Pro is a VIM(Small)-form-factor board equipped with an Amlogic SOC. It comes with a powerful processor Amlogic S912 1.5 GHz 64Bit Octa Core ARM Cortex-A53 750MHz ARM Mali-T820MP3 GPU. Has 2/3GB DDR4 RAM, 16/32/64GB eMMC, integrated wi-fi and Bluetooth 5.1, as well as one USB type-C, one USB 3.0, one USB 2.0 socket, 40 GPIO, sensors, connectors for microSD memory card, Ethernet port, HDMI, IR receiver and buttons.

How to install:

Download the image/xz file from the download location. Verify that the download completed successfully.

After that, install Etcher (sudo pacman -S etcher if on Manjaro) and burn the to an SD card (8 GB or larger).

Enable Multi-boot on the Vim2 by following steps mentioned here. With this it should recognize the SD card as a bootable device and boot from it.

Features:

  • New packages from upstream and Manjaro ARM.
  • Manjaro now uses a branch based repo structure. Meaning you can now switch between arm-stable , arm-testing and arm-unstable branches by editing /etc/pacman-mirrors.conf .
  • XFCE 4.14
  • KDE Plasma 5.18
  • Panfrost for GPU - HW Acceralation
  • Wifi/BT/Audio - Works and tested in Vim2 - Pro.

Known Issues

  • Fan does not work.
  • HW Acceleration is a bit slow.
  • Wifi might not work on Vim2 - Basic model.

eMMC flash script for Vim2

It's a script for supported Amlogic SBC designed to flash Manjaro ARM to the built-in eMMC module, so you don't have to fiddle with DD and/or take out the eMMc module yourself.
Right now script for the Vim2 is available in the boot partition of the image. Filename is install-aml-emmc.sh, to flash Manjaro on eMMC.

Users will need official latest Android image on the eMMC while booting Manjaro from Sd-Card and running this script using root access.
Thanks to @balbes-150 for this emmc install script.

To flash Manjaro on eMMC:

  1. Download the image of your choice.
  2. Flash it to an SD card.
  3. Boot the SD card on the device.
  4. Follow the instructions on the screen.
  5. Login to the desktop.
  6. Open Terminal with root access and run ./boot/install-aml-emmc.sh

First Time setup

This release sports the First Time setup for all images, also via SSH. This means that at first boot, you will be asked about the following:

  • keyboard layout
  • username
  • additional user groups (optional)
  • full name
  • password for that username
  • password for root
  • timezone
  • locale
  • hostname

Then the setup script will set these settings and reboot to the login screen.

Downloads:

Device XFCE KDE Plasma
Khadas Vim2 Pro 20.05 20.05

Donate!

Please consider supporting Manjaro ARM directly via Patreon , Ko-Fi or Open Collective .
You can also donate to our upstream, which is Arch Linux ARM .

Manjaro ARM team

1 Like

Hi!
I followed your exchanges on the khadas forum regarding the panfrost-enabled build.
I also tested fenix's script which indeed provide a good insight.
Unfortunately, I couldn't test manjaro.
Downloaded both versions (xfce and kde), tested on 2 different SD cards; to no avail : none has booted.
I have the latest android from khadas on emmc (but use coreelec 9.2.2 (non ng)).
And it's the max version of vim2.
Any idea?
Would be delighted to have Manjaro working on my device!
Thks in advance and keep up the good work!

Did you enable multiboot? You will need to enable multiboot to make manjaro boot from sd card.

Sure did!
Burnt and tested many other OS.
Multiboot is enabled (otherwise, I couldn't use CoreElec or have tested Ubuntu 20.04 (fenix build) which are both on SD).
Little bit frustrating..

Yes amlogic devices have a messy boot method.

I have only tested this on vim2 pro, can you get some uart log to help me understand what's happening behind the scene?

Also after you flash the img on the sd card can you check if you see the right dtb file name in uenv and the same file is present in the mentioned directory?

Also can you inform what output do you get after you try to boot the manajro sd?

I suspect you have mainline uboot on your emmc, if you have flashed android using krescue then it is mainline uboot.

Only thing I can think of is just flash fresh android img using burn tool method and then try manjaro on sd without trying any other os.
With this I can confirm it will work.

Sorry for the mess about the boot sequence but that's how amlogic socs are, no standard approach yet.

Thks for your answer!
I somewhat understand what you mean.
Not equiped for reading UART logs.
uEnv.ini points to the right .dtb which indeed is in the expected directory.
Upon boot, I get android's recovery screen. No big surprise at this stage..
Will try your solution sometime (right now, I don't care messing with the vim which I'm using via CoreElec).
Just keep up the work and don't forget the vim2 users!
Thanks again for your time!!

Thank you all the devs of Manjaro ARM.

I've just tried on a Khadas 2 like TV Box (Dealdig-Boxd6 or Beelink GT1-Ultimate) it and it works great!Screenshot-Dealdig-Boxd6

1 Like

Wow happy to see someone trying on other devices. Welcome to the forum

Can you help me with some more details on Beelink GT1-Ultimate ?

Please share the output of the below command

  • inxi -Fzxi

Is the wifi working for you ?
Looks like tweak alot as the dock looks alot different.
Can you try the chromium-docker package ?

Thank you for the response. BTW my Beelink GT1-Ultimate is stuck in shipment so once I receive it then it will have better support out of the box :wink:

So there it is:

System:    Host: Dealdig-Boxd6 Kernel: 5.6.2-2-MANJARO-ARM aarch64 bits: 64 compiler: gcc v: 9.2.0 Desktop: Xfce 4.14.2 
           Distro: Manjaro ARM 
Machine:   Type: ARM Device System: Khadas VIM2 details: N/A 
Battery:   Device-1: hidpp_battery_0 model: Logitech Wireless Keyboard K230 charge: 55% (should be ignored) 
           status: Discharging 
           Device-2: hidpp_battery_1 model: Logitech Wireless Mouse M315/M235 charge: 100% (should be ignored) 
           status: Discharging 
CPU:       Topology: 8-Core (2-Die) model: ARMv8 v8l variant: cortex-a53 bits: 64 type: MCP MCM arch: v8l rev: 4 
           features: Use -f option to see features bogomips: 0 
           Speed: 250 MHz min/max: 100/1512:1000 MHz Core speeds (MHz): 1: 1000 2: 1000 3: 1000 4: 1000 5: 100 6: 100 
           7: 100 8: 100 
Graphics:  Device-1: meson-gxm-dw-hdmi driver: meson_dw_hdmi v: N/A bus ID: N/A 
           Device-2: meson-gxm-mali driver: panfrost v: kernel bus ID: N/A 
           Display: server: X.Org 1.20.8 driver: modesetting tty: N/A 
           OpenGL: renderer: llvmpipe (LLVM 10.0.0 128 bits) v: 3.3 Mesa 20.2.0-devel (git-f1a40a26a9) direct render: Yes 
Audio:     Device-1: meson-gxm-dw-hdmi driver: meson_dw_hdmi bus ID: N/A 
           Device-2: gx-sound-card driver: gx_sound_card bus ID: N/A 
           Sound Server: ALSA v: k5.6.2-2-MANJARO-ARM 
Network:   Device-1: meson-gxbb-dwmac driver: meson8b_dwmac v: N/A port: N/A bus ID: N/A 
           IF: eth0 state: down mac: <filter> 
           Device-2: pwm-clock driver: pwm_clock v: N/A port: N/A bus ID: N/A 
           IF-ID-1: ip6tnl0 state: down mac: <filter> 
           IF-ID-2: wlan0 state: up mac: <filter> 
Drives:    Local Storage: total: 28.91 GiB used: 6.36 GiB (22.0%) 
           ID-1: /dev/mmcblk1 model: SLD32G size: 28.91 GiB 
Partition: ID-1: / size: 27.45 GiB used: 6.30 GiB (22.9%) fs: ext4 dev: /dev/mmcblk1p2 
           ID-2: /boot size: 243.7 MiB used: 62.1 MiB (25.5%) fs: vfat dev: /dev/mmcblk1p1 
Sensors:   System Temperatures: cpu: N/A mobo: N/A 
           Fan Speeds (RPM): cpu: 0 
Info:      Processes: 263 Uptime: 1m Memory: 2.68 GiB used: 746.4 MiB (27.2%) Init: systemd Compilers: gcc: 9.3.0 
           Shell: bash v: 5.0.16 inxi: 3.0.37

WiFi works after I have copied 3 files from the brcm firmware from Armbian in /usr/lib/firmware/brcm

  • brcmfmac43455-[sdio.bin|sdio.clm.blob|sdio.txt]

I've also unset the panfrost for OpenGL (in /etc/X11/xorg.conf.d/01--panfrost.conf because for Desktop in a pocket machine with OpenGL, the X cursor is a little ennoying for the moment.

Section "Monitor"
	Identifier		"Monitor0"
	Option			"DPMS" "false"
EndSection

Section "ServerFlags"
	Option			"BlankTime" "0"
	Option			"StandbyTime" "0"
	Option			"SuspendTime" "0"
	Option			"OffTime" "0"
EndSection

Section "Device"
    Identifier  "Default Device"
    Driver      "modesetting"
    Option      "AccelMethod"    "none"     ### "glamor" to enable 3D acceleration, "none" to disable.
EndSection

Section "ServerFlags"
        Option  "AutoAddGPU" "off"
        Option "Debug" "dmabuf_capable"
EndSection

Section "OutputClass"
        Identifier "Panfrost"
        MatchDriver "meson"  # sun4i-drm  rockchip
        Driver "modesetting"
        Option "PrimaryGPU" "true"
EndSection
1 Like

Thanks for this information, We do have these also but in a different package maybe will include it in the next release.

Good to see panfrost is being used as GPU acceleration but OpenGL: renderer: llvmpipe (LLVM 10.0.0 128 bits) this doesn't seem right.
What dtb are you using in the uEnv.ini ? The generic S912 meson-gxm-q200.dtb ?

Would love to know how well chromium-docker will work with netflix and amazon.
If you watch on netflix or amazon then please do try

  • sudo pacman -S docker
  • sudo systemctl enable docker --now
  • sudo pacman -S chromium-docker
  • sudo chromium-armhf

Thanks for the update.
Enjoy Manjaro on your device.

I'll set back OpenGL and keep you informed for docker/chromium/Netflix

[pascal@Dealdig-Boxd6 boot]$ cat uEnv.ini
LABEL=MANJARO
LINUX=/Image
INITRD=/uInitrd

# For AML
FDT=/dtbs/amlogic/meson-gxm-khadas-vim2.dtb
#FDT=/dtbs/amlogic/meson-gxm-q201.dtb
APPEND=root=LABEL=ROOT_MNJRO rootflags=data=writeback rw console=ttyAML0,115200n8 console=tty0 no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0 bootsplash.bootfile=bootsplash-themes/manjaro/bootsplash
[pascal@Dealdig-Boxd6 boot]$

Oh so you changed it manually, I have set panfrost and opengl as default. I works quite well with opengl and mesa-git.

Lol ok looks like you'r using vim2 dtb on a different SBC :stuck_out_tongue:

Good to hear that everything works out of the box even with a different SBC.

I've install docker (and portainer), but hum, I guess chromium-docker must be somewhere. Are there unstable or testing depots, or I missed something ?

I don't get you. What is the output for this command?

No target or in french:
$ sudo pacman -S chromium-docker
erreur : impossible de trouver la cible : chromium-docker

Ok so maybe the chromium-docker package have not yet reached the stable branch ? I doubt that let me check it for you.

Please try
sudo pacman -Sy chromium-docker
I hope this will update the db and get the package.

If not then just get it like this.
sudo pacman -U https://www.uex.dk/public/manjaro/arm-unstable/community/aarch64/chromium-docker-4.10.1610.6-1-aarch64.pkg.tar.xz

Thanks for taking the trouble and helping me with the test.

After if is installed you will see Chromium-Armv7 in application launcher.

Also If you want to fix docker permissions then follow this.

  • sudo groupadd docker
  • sudo usermod -aG docker $(whoami)
  • sudo reboot now

Can also watch in 1080p if you want, This will need to be added manually by the user. I have not enable it by default on purpose.
To enable Netflix-1080p Plugin inside Chromium

Navigate to Setting > More Settings > Extension > Enable Developer Mode > Load Unpacked > Browse /usr/lib/chromium-browser/netflix-1080p > Restart Chromium-Armv7

You can check the resolution on Netflix Video Player using Ctrl + Shift + Alt + D and Switch Resolution with Ctrl + Shift + Alt + S
You can set highest bitrate by default in option of netflix-1080p plugin also.

Enjoy :smiley:

Thanks.

So I rebooted with OpenGL Mali T820 ON but the display lags a lot on docker-chromium Netflix.

Configuration used:

System:
  Host: Dealdig-Boxd6 Kernel: 5.6.2-2-MANJARO-ARM aarch64 bits: 64 
  compiler: gcc v: 9.2.0 Desktop: Xfce 4.14.2 Distro: Manjaro ARM 
Machine:
  Type: ARM Device System: Khadas VIM2 details: N/A 
Battery:
  Device-1: hidpp_battery_0 model: Logitech Wireless Keyboard K230 
  charge: 55% (should be ignored) status: Discharging 
  Device-2: hidpp_battery_1 model: Logitech Wireless Mouse M315/M235 
  charge: 100% (should be ignored) status: Discharging 
CPU:
  Topology: 8-Core (2-Die) model: ARMv8 v8l variant: cortex-a53 bits: 64 
  type: MCP MCM arch: v8l rev: 4 bogomips: 0 
  Speed: 1512 MHz min/max: 100/1512:1000 MHz Core speeds (MHz): 1: 1512 
  2: 1512 3: 1512 4: 1512 5: 1000 6: 1000 7: 1000 8: 1000 
  Features: aes asimd cpuid crc32 evtstrm fp pmull sha1 sha2 
Graphics:
  Device-1: meson-gxm-dw-hdmi driver: meson_dw_hdmi v: N/A bus ID: N/A 
  Device-2: meson-gxm-mali driver: panfrost v: kernel bus ID: N/A 
  Display: server: X.Org 1.20.8 driver: modesetting tty: N/A 
  OpenGL: renderer: Mali T820 (Panfrost) 
  v: 2.1 Mesa 20.2.0-devel (git-f1a40a26a9) direct render: Yes 
Audio:
  Device-1: meson-gxm-dw-hdmi driver: meson_dw_hdmi bus ID: N/A 
  Device-2: gx-sound-card driver: gx_sound_card bus ID: N/A 
  Sound Server: ALSA v: k5.6.2-2-MANJARO-ARM 
Network:
  Device-1: meson-gxbb-dwmac driver: meson8b_dwmac v: N/A port: N/A 
  bus ID: N/A 
  IF: eth0 state: down mac: <filter> 
  Device-2: pwm-clock driver: pwm_clock v: N/A port: N/A bus ID: N/A 
  IF-ID-1: docker0 state: up speed: 10000 Mbps duplex: unknown mac: <filter> 
  IP v4: <filter> scope: global 
  IP v6: <filter> scope: link 
  IF-ID-2: ip6tnl0 state: down mac: <filter> 
  IF-ID-3: veth173bbc6 state: up speed: 10000 Mbps duplex: full 
  mac: <filter> 
  IF-ID-4: wlan0 state: up mac: <filter> 
  IP v4: <filter> type: dynamic noprefixroute scope: global 
  IP v6: <filter> type: noprefixroute scope: global 
  IP v6: <filter> type: noprefixroute scope: global 
  IP v6: <filter> type: noprefixroute scope: link 
  WAN IP: <filter> 
Drives:
  Local Storage: total: 28.91 GiB used: 16.17 GiB (55.9%) 
  ID-1: /dev/mmcblk1 model: SLD32G size: 28.91 GiB 
Partition:
  ID-1: / size: 27.45 GiB used: 8.05 GiB (29.3%) fs: ext4 
  dev: /dev/mmcblk1p2 
  ID-2: /boot size: 243.7 MiB used: 62.1 MiB (25.5%) fs: vfat 
  dev: /dev/mmcblk1p1 
Sensors:
  System Temperatures: cpu: N/A mobo: N/A 
  Fan Speeds (RPM): cpu: 0 
Info:
  Processes: 268 Uptime: 10m Memory: 2.68 GiB used: 1.08 GiB (40.3%) 
  Init: systemd Compilers: gcc: 9.3.0 Shell: bash v: 5.0.16 inxi: 3.0.37

As you probably know this board works perfectly well with kodi dedicated distro (old kernel though and closed Mali) and NetFlix plugin.

Forum kindly sponsored by