Skip to content
View in the app

A better way to browse. Learn more.

Armbian Community Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Armbian for H313 X96-Q LPDDR3 TV-Box

Featured Replies

@Nick A TY very much for your reply, I've managed to create my first build but I am a bit confused because it made an IMG with a FAT32 boot partition, is it right or did I miss something?
 

On 11/18/2025 at 11:38 AM, Nick A said:

 

 Hello i hope everone is good, i have this X96Q with motherboard reference BA301_141 V4.1 20244 and after trying this image Armbian-unofficial_25.05.0-trunk_X96q-ddr3_bookworm_edge_6.12.11_server.img.xz led turned blue but nothing on screen when i tried to connect uart to read data, for some reason it did boot and work but when i turned off and turn on the device this time with lan attached it didnt want to boot again only blue led, this remember me of miniarch image i have to turn on and off de device like 15 to 20 times for the image to boot, this is what happen with this Armbian-unofficial_25.05.0-trunk_X96q-ddr3_bookworm_edge_6.12.11_server.img.xz maybe because you use miniarch patches, but i found other images that works so good at first time here is the images that works on this device and i hope this might help fix this boot problem with armbian image

 

https://github.com/velvet-os/imagebuilder/releases/tag/230910-02

and this 

https://mega.nz/file/DBUHiZRZ#F_wx89EJ9i4LvCsO2VrTYglx5SrfQGrLxs_DLr6mTUo

Hello, i've just tried https://github.com/velvet-os/imagebuilder/releases/tag/230910-02 image, and boots perfectly from sd card in my x96q tv box, allwinner h313 v4.0, is the only image that worked... i've tried them all....my question is how to install it on the internal memory of the box? i've tried from the terminal with root access, but when i hit cd /root/ and ls, nothing happens.... if anybody can give any ideas i will appreciate it... thanks in advance.

Hey guys, I just wanted some help from you regarding my X96Q. It is a 1+8GB Model with PCB Revision V1.1. It has a H313 processor but sunxi-fel reports H616.

A few weeks ago I repaired the USB port of this box and I was successful in it and everything worked perfectly after that(the device booted up to android and worked perfectly) but Then I started to play with that Hidden button in AV port and I randomly clicked it and I thought it would be harmless but after that the device stuck in Red LED and didn't booted anything(possibly an EMMC Corruption). I tried Phoneix Suit first but it stuck on ram init.

Then I brought a CP2102 Adapter to read the serial logs, and it turned out to be a Dram calibration errors where: Boot0 starts > Initializes The Emmc, the Board and the CPU -> Then the PMU(reported as AXP806 but physically AXP305) sets ram voltage to 1500mV -> Then it tries to Dram training -> fails and throws  [...] "Read calibration error" multiple times —> keeps retrying until it gives up with "[...] Restraining final error."

 

I investigated further and found that my emmc chip's critical sectors are corrupted. I used sunxi-fel to read the emmc and found that it fails to read after 16MB mark, means emmc got corrupted when I repeatedly pressed the AV port button.

Now I tried a Armbian via sd card and it says:

[...] Your Current DRAM Config isnt supported...

Retrying...

And keeps doing In a endless retry loop.

Same for Miniarch, Armbian and many other builds...

 

 Any idea what's the problem with my box?

 

 

IMG_20260625_141348_1.jpg

IMG_20260625_141418_1.jpg

Hi!
I've been using the latest build on my H96Max TV Box (H313, 2GB LPDDR3) for a while and it works just fine.
Recently tho, I've noticed that a more up to date community build for the X96Q DDR3 TV-Box popped up on the main boards page on armbian.com.
So I got curious and tried booting that one, and it boots, but the built in ethernet port doesn't work there for some reason? I checked in the config file, and the kernel does seem to have the right drivers built in (dwmac-sun8i ig?). 
What should I try to get ethernet working on the more recent community builds? 
Thanks in advance!

@Nick A - following up on your Sept 2024 notes about PG18 (wlan_regon) and ssv6x5x only existing for older kernels:

 

On my X96Q (Armbian 6.6.44, DTB sun50i-h313-x96q-lpddr3-uwe5622.dtb) Android was not using UWE5622. Vendor overlay selected SSV:

 

- persist.vendor.overlay.wlan_vendor=ssv

- module_info=ssv:ssv6x5x:0x13030

- Chip: SSV6006C, SDIO 3030:3030 (same IDs as UWE - easy to mis-detect)

- Android ssv6x5x imports Allwinner glue: sunxi_wlan_set_power, sunxi_wlan_get_bus_index, sunxi_mmc_rescan_card

 

What was needed on Armbian:

 

1. Blacklist / block uwe5622_bsp_sdio, sprdwl_ng, sprdbt_tty

2. Free PG18 - remove gpio from /reg_vcc_wifi and reset-gpios from /wifi-pwrseq (U-Boot /delete-property/ overlay alone was not enough on my setup)

3. Out-of-tree sunxi_rf exporting the Android rf-ctrl ABI (hook_sdiohal=0 - kprobe path caused a hard BRK here)

4. Build Kevin's / cdhigh ssv6x5x port for 6.6: https://github.com/cdhigh/armbian_sv6256p

5. Firmware from Android /vendor/etc/firmware/ssv6x5x/ (hashes in the repo - binaries not redistributed)

6. systemd unit with power/scan + retries (cold boot often gets one SDIO probe -110 before success)

 

Result: CHIP ID: SSV6006C0, wlan0 up, NetworkManager, survives reboot.

 

Packaged write-up + scripts:

https://github.com/raauve/x96q-ssv6006-wifi

 

Happy to adjust naming/DT if maintainers want a proper board variant instead of patching the UWE DTB.

 

@Nick A - following up on your Sept 2024 notes about PG18 (wlan_regon) and ssv6x5x only existing for older kernels:

On my X96Q, Android was not using UWE5622. Vendor overlay selected SSV:

  • persist.vendor.overlay.wlan_vendor=ssv
  • module_info=ssv:ssv6x5x:0x13030
  • Chip: SSV6006C, SDIO 3030:3030 (same IDs as UWE - easy to mis-detect)
  • Android ssv6x5x imports Allwinner glue: sunxi_wlan_set_power, sunxi_wlan_get_bus_index, sunxi_mmc_rescan_card

What was needed on Armbian:

  1. Blacklist / block uwe5622_bsp_sdio, sprdwl_ng, sprdbt_tty
  2. Free PG18 - remove gpio from /reg_vcc_wifi and reset-gpios from /wifi-pwrseq (U-Boot /delete-property/ overlay alone was not enough on my setup; on 6.18 I also needed a binary DTB patch after userspace fdtoverlay left PG18 claimed)
  3. Out-of-tree sunxi_rf exporting the Android rf-ctrl ABI (hook_sdiohal=0 - kprobe path caused a hard BRK here)
  4. Build Kevin's / cdhigh ssv6x5x port: https://github.com/cdhigh/armbian_sv6256p
  5. Firmware from Android /vendor/etc/firmware/ssv6x5x/ (hashes in the repo - binaries not redistributed)
  6. systemd unit with power/scan + retries (cold boot often gets one SDIO probe -110 before success)

Validated:

  • Armbian 6.6.44-current-sunxi64 (DTB …-uwe5622.dtb, patched)
  • Armbian 6.18.33-current-sunxi64 / 26.5.1 (fdtfile=allwinner/sun50i-h313-x96q-lpddr3.dtb + /soc/wlan overlay; …-uwe5622.dtb no longer in tree)

Result: CHIP ID: SSV6006C0, wlan0 up, NetworkManager, survives reboot.

Packaged write-up + scripts:
https://github.com/raauve/x96q-ssv6006-wifi

Happy to adjust naming/DT if maintainers want a proper board variant instead of patching the stock DTB.

I have an X96Q v1.3 lpddr3 box and I have built an image from the current build tree described on the Armbian website that works on my machine with Ethernet functioning normally.  For this to work for me I installed docker from the armbian-config utility on a LibreComputer Renegade with 4GB of RAM running Armbian Trixie.

I eventually prepared a script containing the following: ./compile.sh BOARD=x96q BUILD_DESKTOP=no BUILD_MINIMAL=yes RELEASE=resolute KERNEL_CONFIGURE=no KERNEL_BTF=no. and ran it (barring spelling mistakes in the previous) as an ordinary user.

For me it ran successfully and I was able to boot from the image produced with working Ethernet.

It seems to me that it is critical that the image be built on a machine running Armbian and with docker installed.

My Renegade has only 4GB of RAM making The KERNEL_BTF=no necessary. Using the Armbian Imager to download and burn the hosted image produced a bootable image but no Ethernet. Trying to build from source but not having docker installed produced a bootable image without Ethernet.  The wireless drivers leave much to be desired.  I tried upgrading the kernel to 7.x and the result was loss of Ethernet and an attempt to revert to 6.18.48 or whatever failed as well.  My guess is that it is best to freeze the firmware update.  I'll try to post my actual build script and a link to one of my successful build if I can. I hope someone can replicate this process. Many thanks to sicXnull and NickA, your work is greatly appreciated. 

Gmail shared link.url

 

You are welcome to inspect and try the files in the link above at your own risk. The image file works on my x96q but may not on yours. I'd suggest building your own image. Please let me know your results for good or ill.

Edited by HowardGap
Add a link and comments

In case anyone is interested, I tried the x96q image from Armbian's main site today, Sept. 6, 2026. It booted with Ethernet working, Wi-Fi still shows errors to dmesg constantly and the Bluetooth driver seems not to be working, but it survived a firmware update in armbian-upgrade. Many thanks to the maintainer.  

I've managed to get my build partially working on the H616 SoC with EMCP, TOC0 generation works fine, I can put this on GitHub so it can be merged

However, I am still stuck with DRAM,u-boot always detect 2GB RAM despite my TV box only have 1.5GB DRAM, I found an old patch on OrangePi Zero but when I looked up at the hunks...
It looks like, Armbian already upstreamed the patch... maybe?

Just the last thing, to cut the RAM down if the upper portion aren't accessible like the 3/4 patch on OrangePi...

I have a similar boot problem with one of my devices.

 

I have 2 "Mortal T1" from aliexpress, technically 2G/8G each, bought almost at the same time a couple of years back.
I managed to use Nick's 2025 image to boot via SD card into armbian, if anyone wants to try, I heavily recommend using an USB->ETH adapter, otherwise you are limited to UART connections for testing.

My devices need the AIC modules for the wireless card, so it needs some changes there, but otherwise, I'm happy with it, although I had to disable firmware updates in armbian-update because it changed the DTB and had to reinstall from scratch.

 

Now the issue. My second device (still works in Android ok) shows 1.5G in the UART Android Uboot startup log, but 2G in meminfo or free or other commands.
When trying to boot Armbian (or any other distro mentioned here) the Uboot detects 2G but says (effective 0 bytes) an just hangs there, not even starts linux.

 

U-Boot SPL 2025.01-armbian-2025.01-S6d41-P65b3-H8869-V98f7-Bb703-R448a-dirty (Feb 04 2026 - 12:15:34 +0000)
DRAM:testing 32-bit width, rank = 2
DRAM:Store cfg
DRAM:1st writing pattern
DRAM:detecting column address bits
detected 10 columns
DRAM:restore cfg
DRAM:reconfigure for all active rows
DRAM:store cfg
DRAM:2nd writing pattern
DRAM:detecting row address bits
detected 15 rows
DRAM:restoring cfg
DRAM:end of auto detect dram size
MBUS port 0 cfg0 0100000d cfg1 00640080
MBUS port 1 cfg0 06000009 cfg1 01000578
MBUS port 2 cfg0 0200000d cfg1 00600100
MBUS port 3 cfg0 01000009 cfg1 00500064
MBUS port 4 cfg0 20000209 cfg1 1388157c
MBUS port 5 cfg0 00640209 cfg1 00200040
MBUS port 6 cfg0 00640209 cfg1 00200040
MBUS port 8 cfg0 01000009 cfg1 00400080
MBUS port 11 cfg0 01000009 cfg1 00640080
MBUS port 14 cfg0 04000009 cfg1 00400100
MBUS port 16 cfg0 2000060d cfg1 09600af0
MBUS port 21 cfg0 0800060d cfg1 02000300
MBUS port 22 cfg0 01000009 cfg1 00640080
MBUS port 25 cfg0 0064000f cfg1 00200040
MBUS port 26 cfg0 20000209 cfg1 1388157c
MBUS port 37 cfg0 01000009 cfg1 00400080
MBUS port 38 cfg0 00640209 cfg1 00200040
MBUS port 39 cfg0 20000209 cfg1 1388157c
MBUS port 40 cfg0 00640209 cfg1 00200040
 2048 MiB
Trying to boot from MMC1
NOTICE:  BL31: v2.10.14(debug):armbian
NOTICE:  BL31: Built : 12:14:48, Feb  4 2026
NOTICE:  BL31: Detected Allwinner H616 SoC (1823)
NOTICE:  BL31: Found U-Boot DTB at 0x4a0b1d00, model: hechuang,x96-q LPDDR3 v1.3
INFO:    ARM GICv2 driver initialized
INFO:    Configuring SPC Controller
INFO:    PMIC: Probing AXP305 on RSB
ERROR:   RSB: set run-time address: 0x10003
INFO:    Could not init RSB: -65539
INFO:    BL31: Platform setup done
INFO:    BL31: Initializing runtime services
INFO:    BL31: cortex_a53: CPU workaround for erratum 855873 was applied
INFO:    BL31: cortex_a53: CPU workaround for erratum 1530924 was applied
INFO:    PSCI: Suspend is unavailable
INFO:    BL31: Preparing for EL3 exit to normal world
INFO:    Entry point address = 0x4a000000
INFO:    SPSR = 0x3c9
INFO:    Changed devicetree.
ns16550_serial serial@5000000: pinctrl_select_state_full: uclass_get_device_by_phandle_id: err=-19


U-Boot 2025.01-armbian-2025.01-S6d41-P65b3-H8869-V98f7-Bb703-R448a-dirty (Feb 04 2026 - 12:15:34 +0000) Allwinner Technology

CPU:   Allwinner H616 (SUN50I)
Model: hechuang,x96-q LPDDR3 v1.3
DRAM:  2 GiB (effective 0 Bytes)

 

Same card in both devices, one works, the othe does not. Any ideas or suggestions ?

 

Best regards

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.