Installing Manjaro Arm on X96 Air P3 TV Box

Device GT King Pro (S922X-H, GPU: G52).

Wayland on Bifrost (G31/G52) devices is not stable at all.

1 Like

Hi @danboid
FYI there is an another X96Air in the wild! Looks like mine first but the second AIR is called X96AIR-100 with firmware from 25.11.2020 and what a mess to get it working with Manjaro. All well-known .dtb are not compatible and at least the standard meson-sm1-sei610.dtb from LE was succesfull with LAN & HDMI-sound.
Still no-wifi, no-BT but that’s OK for me.
My benchmark show after all a good performance:


parallel: Stresstest 100% + glmark2-es2 + playing movie :+1:

Some details:
X96AIR_100 - JustPaste.it

There are at least 6 models of X96 Air out there:

X96 Air_P1
X96 Air_P2
X96 Air_P3
X96 Air_100
X96 Air_Q100
X96 Air_Q1000

That is according to the page where I downloaded my firmware from when I needed to reflash:

1 Like

X96 Air V2 with 2/16GB is my 3rd one in this row ,
it starts Manjaro with LE meson-sm1-sei610.dtb, too.
Still the same: no-wifi, no-BT

X96Air_V2 - JustPaste.it

FYI.
The unstable release
https://github.com/manjaro-arm/vim3-images/releases/download/20210614/Manjaro-ARM-xfce-vim3-20210614.img.xz

runs stable with meson-sm1-sei610.dtb on my X96AIR100.

@dante6913 @spikerguy my starting system consists still these files :

  • u-boot.ext
  • extlinux.conf
  • meson-sm1-x96-max-plus-100-vim2.dtb
    I rename every new .dtb to meson-sm1-x96-max-plus-100-vim2.dtb. Every change in the extlinux.conf comes to an error and Manjaro don’t boot.
    It seems that the name is firmly fixed in u-boot.ext or Image or linitramfs-linux.img .
    Could that be and how can I change it?

Thanks to the information provided on this forum (different posts) and some other sites, I managed to have Manjaro running on a X96 Air 4G/32G based on the AM7256 Wifi chipset - equivalent or containing a Broadcom BCM4354 : all works fine, Ethernet, Wifi, BT and video accellaration. As I coudn’t find this config in the forum, I share what I did in case anyone has the same config:

  • I used Manjaro-ARM-minimal-vim3-21.03.img (taken here Releases · manjaro-arm/vim3-images · GitHub)
  • In order to have the Wifi working, once the SD burned, I temporarely copied the file brcmfmac4354-sdio.txt (taken from brcm/brcmfmac4354-sdio.txt - chromiumos/third_party/linux-firmware - Git at Google) in the extlinux directory
  • In order to have the BT working, I temporarely copied the 4 files BCM4354.hcd, BCM4354_003.001.012.0259.0512.hcd, BCM4354_003.001.012.0319.0675_ORC.hcd, BCM4354_003.001.012.0319.0690_ORC.hcd (taken from https://review.carbonrom.org/plugins/gitiles/CarbonROM/android_device_htc_flounder/+archive/6cb20d3413b39b8d79d7633cb543f6bfeea5fdd1/bluetooth.tar.gz - please notice that bcm4354.hcd has to be renamed uppercase BCM4354) in the extlinux directory
  • Set dtb as “meson-sm1-sei610.dtb” in extlinux/extlinux.conf
  • Boot with the SD (use the toothpick if the first time)
  • Move the files previously saved in /extlinuxf to /lib/firmware/brcm/
  • pacman -Suy --noconfirm
  • To activate the video accelleration set “glamor” as “AccelMethod” in /etc/X11/xorg.conf.d/01-panfrost.conf
  • To enable HDMI audio:
    – if your locals are not EN you have to modify the file /usr/bin/g12_sound.sh. Ex. for an FR / French installation, I changed grep “device 0” to grep “périphérique 0” and print $4 instead of print $3 in the awk command
    – Execute sudo /usr/bin/g12_sound.sh
  • Reboot

Maybe is not the cleanest way to have Manjaro correctly runnig on this box, but at least it works :wink:

4 Likes

Thank you all for the instruction.
@pferrante I will have an X96 Air 4G/32G in the next 3 days, my box model is P3. May I ask you your model according to this list:
X96 Air_P1
X96 Air_P2
X96 Air_P3
X96 Air_100
X96 Air_Q100
X96 Air_Q1000

Have a nice day all!

@AlexanderTN I don’t know how to figure out the model ID (according to your list). I know that it’s not an Air_Q1000 as ethernet is limited to 100Mbits. And applaying the provided guidelines for the Air_Q100 didn’t work for me. I think what determine the model are the Wifi and ethernet chipsets (and possibly the video one). My 2 cents advices for you would be to first try to apply the “standard” guideline for your model and if it doesn’t work, try to apply mine :wink: BTW the only way I found to identify my chipset was to open the box, however keep in mind that doing that voids warranty (if you care about it).

1 Like

@pferrante
Let me summarize the difference of models based on the reference here: tinhte .vn/thread/tong-hop-cac-ban-firmware-cua-android-tv-box-x96-air.3050996/ (it’s a Vietnamese page that’s why maybe you guys could not understand it clearly):
4GB RAM version models:

X96 Air_P1 ( chip wifi AP6255, Lan 100M)
X96 Air_P2 (* chip wifi AP6255, Lan 1000M )
X96 Air_P3 (
chip wifi RTL8822CS, Lan 1000M *)
X96 Air_100 (chip wifi 6222B-SRC, Lan 100M)
X96 Air_Q100 (chip wifi Cdtech 4761743 Lan 100M)
X96 Air_Q1000 (chip wifi Cdtech 4761743, Lan 1000M)
X96 Air_A1000 (chip wifi: not mentioned, Lan 1000M)
X96 Air_A100 (chip wifi: not mentioned, Lan 100M)
You are right, there is the wifi chipset difference and we can be based on that to specify what is the model using some Linux command.

I tried on my current box (an X96mini (2GB RAM, 16GB eMMC - installed Armbian) and I can get its information using nmcli tool:

alex@arm-64:~$ nmcli
wlan0: connected to Wifi_Work
        "wlan0"
        wifi (**rtl8723bs**), 28:F3:66:22:F3:AE, hw, mtu 1500
        inet4 192.168.1.23/24
        route4 0.0.0.0/0
        route4 192.168.1.0/24
        inet6 2001:ee0:4b48:3420:6780:8801:4119:2ea1/64
        inet6 2001:ee0:4b48:3420:9f18:9808:142c:e5ab/64
        inet6 2001:ee0:4b48:3420:d370:48f9:a318:2174/64
        inet6 2001:ee0:4b48:3420:c45b:12bc:f5e3:16a6/64
        inet6 fe80::89a0:1cca:8ee7:d8eb/64
        route6 2001:ee0:4b48:3420::/64
        route6 ::/0
        route6 ff00::/8
        route6 fe80::/64

So when I received the X96 Air, I will double-check it using 2 ways:

  • First I will check with Android OS (in the About section, it would show the model there).
  • Then I will try to follow a guideline to install manjaro and try a Linux command to get the wifi chipset model to double-check.

I still have 2 questions for you @pferrante :slight_smile:

  • Could you please help to define the wifi chipset name of your device using the Linux command and tell us here?
  • You mentioned a ‘standard’ guideline, which one is it? I navigated through the forums but most of the comments I saw are: “Wifi/BlueTooth/HDMI sound does not work”, only your comment says that all works fine.

Thank you so much, I think one of the most important things is to specify the correct hardware model before trying.

1 Like

Thanks for the info @AlexanderTN (about the different models). According to nmcli, my box has a “Broadcom BCM4354”. But as you can see in the picture, it’s likely packaged in a chip called AM7256. For the guidelines, to be honest with you, I was referring to this wiki page and some posts mentionning successfull installations on the X96 Air (I think the the Q1000 or A1000 model). But as it was not working on my box, I didn’t bookmarked the pages.

1 Like

Interesting to see that you got it to work.

I am curious to understand what is your use case with this device running manjaro.

I have so many devices and I am still looking for some use for the device. For now I am using few as gitlab runner.

Can you explain how did you get your wifi alive?

Cita wifi (rtl8723bs), 28:F3:66:22:F3:AE, hw, mtu 1500> Cita

I mean dtb file used, driver and tweaking.

I’ve been luckier with the X96Air than with the X96Max Plus. I’m fascinated with those little computer, quite powerful for the price. For the time being I’m trying to build an ultra-cheap PC for a flat I rent, initially to give an access to Internet, later to provide a box with few games for kids and possibly other services. But I see thons of applications for those little boxes … I just lack of time :wink:

Hi @SickOS
Nothing special, for my X96Mini I used Armbian (easily find on Google " Installing Linux on X96 Mini", I remembered I used FDT /dtb/amlogic/meson-gxl-s905x-p212.dtb)
At first, I install a minimal (without GUI version) and try to use some command line to connect to the wifi but I failed then I thought it does not work.
But after installing xfce GUI somehow I realize that both the USB built-in and the dongle work (I used the dongle because sometimes the built-in lost connection). (When/how/why it starts to work is something I could not figure out exactly at the moment).

I want to update information regarding my X96 Air P3 into this thread .
My box information:
I used Termux on Android to run the Command line (you can download it from Google Play)
user $ cat /proc/device-tree/amlogic-dt-id
Result is: sm1_ac213_4G
About section on Android Setting:
Name of the device X96Air_P3
Model: X96Air_P3
Android 9

Built-in Wifi:
Result of running nmcli
wlan0: connected to AlexWifi
“Realtek RTL8188CUS”
wifi (rtl8192cu), , hw, mtu 1500 < Alex Comment: I don’t know why there is difference from above line>
LAN: ethernet (meson8b-dwmac), , hw, mtu 1500

Guideline that I used: (I use SD card) Amlogic TV boxes - Manjaro thanks a lot to Manjaro team who wrote this & @pferrante for the suggestion, I used exactly the information in the wiki page and most of the mandatory things work without further tweaking (except built-in Bluetooth and Built-in wifi does not work)
Image: Manjaro-ARM-xfce-vim3-21.03.img.xz
Tool used to burn the image to the USB: Rufus 3.17
DTBs used:
with meson-sm1-sei610.dtb : Wifi works with the dongle, HDMI sound work, built-in Bluetooth does not work (Bluetooth work with a dongle).
with meson-sm1-sei610-qca9377-bt : LAN, Wifi works with the dongle, HDMI sound work, Built-in Bluetooth does not work (Bluetooth work with a dongle).

Note:
I failed when I tried with a USB (cannot boot).
I failed when I tried using the latest release of Manjaro (21.10) - (cannot boot).
What surprised me is that the box power is strong enough to read my WD HDD (2TB). Amazing.

Remaining things - If anyone has suggestion please support.
0/ Getting built-in Bluetooth and built-in wifi works (current Bluetooth service up and running but if I used sudo bluetoothctl command like “power on” it said no default controller
1/I do not know how to check the hardware if the LAN port is 1Gb or 100Mb
2/I did not try the video acceleration tweaking (will try later if there is any issue, currently my firefox works fine so improvement is not urgent now).
3/When booting with a peripheral plugged in (like keyboard/mouse) I cannot boot, so I always need to unplug them before booting (this is annoying sometimes).
Log error (I faced the same thing with my X96 Mini running Armbian, below is the log of X96Mini):

Model: hexdump usbkbd/hdmi u-boot gxl
SoC: Amlogic Meson GXL (S905W) Revision 21:d (a4:2)
Net: eth0: ethernet@c9410000
starting USB...
Bus dwc3@c90000000: Register 2000140 NbrPorts 2
Starting the controller
USB XHCI 1.00
scanning bus dwc3@c9000000 for devices... WARN halted endpoint, queueing URB anyway.
Unexpected XHCI event TRB, skipping ... (7bf7cf60 00000000 13000000 02008401)
"Synchronous Abort" handler, esr 0x960000210
elr: 000000000103ef7c lr : 0000000000000103ef7c (reloc)
...
...
Code: 97ffff41 52800401 aa1303e0 97ffffa2 (b9400c00)
Resetting CPU ...
resetting

4/ I do not know how to get the temperature information of the CPU (It feels like it’s hotter than the X96 Mini and I should get a USB fan).

1 Like

I remember there is someone with P3 in the amlogic tv box thread. Have you chek it?

@SickOS Thank you for the suggestion. I saw a confirmation by @dante6913

So up until now I think there is no solution for the built-in Bluetooth for this Box. I would be happy to use my dongle.

Thank you all the relevant persons (Manjaro Arm team + danboid,SickOS, dante6913, pferrante & the community a lot).