Jump to content

Recommended Posts

Posted (edited)
3 hours ago, Nick A said:

try using the x98h image.

@Nick AJust tried, couldn't start with SD. It's worse than before.😔.Currently, it can only run on the SD card using the x96Q-tvbox image. However, writing data to the SD card causes data loss or system crashes. I've already tried almost 10 different models of SD cards. Why is this happening? Have you encountered similar issues before?It usually freezes, and the box's light turns red. Occasionally, it crashes with the error shown in the screenshot.

a.jpg

Edited by ARx8
Posted

@ARx8X98h has a similar AIC8800D wifi chip. You could probably use the wifi section from x98h dts.

 

I have never had problems with my sdcard. Maybe it’s a bad solder joint?

Posted (edited)
8 hours ago, Nick A said:

@ARx8X98h has a similar AIC8800D wifi chip. You could probably use the wifi section from x98h dts.

I have never had problems with my sdcard. Maybe it’s a bad solder joint?

@Nick AThe possibility of a cold solder joint is very low since both devices (with identical eMCP chips) exhibit the same symptoms. Additionally, SD card read/write functions normally within the Android system.

Are there any alternative methods to install the OS onto the eMMC?

Edited by ARx8
Posted

 

Hi everyone, first post here.

 

Sorry but after reading a lot I'm still not sure if the issue of installing into the eMMC was resolved or not. This is my experience.

 

I generated an image with "./compile.sh build BOARD=x96q BRANCH=current BUILD_DESKTOP=no BUILD_MINIMAL=yes EXPERT=yes KERNEL_CONFIGURE=no KERNEL_GIT=shallow RELEASE=noble" which works on SD.

 

I ran "armbian-install" and installed to eMMC. When rebooting without the SD card, on the serial console I get:

 

U-Boot SPL 2024.01-armbian-2024.01-S866c-P63e9-H8869-Vad24-Bb703-R448a (Sep 10 2025 - 13:04:13 +0000)
DRAM base address is defined as 0x40000000
DRAM has 15 b/raw, 10 b/col, 4 B/width, 1 #rank and 8 #bank
DRAM top address must be less than 0x40000000
DRAM: 1024 MiB
Trying to boot from MMC2
MMC Device 1 not found
spl: could not find mmc device 1. error: -19
SPL: failed to boot from all boot devices
### ERROR ### Please RESET the board ###

 

Lookin online for this specific issue, I found this issue in github: ( https://github.com/apritzel/u-boot/issues/7 ). Seems like there is indeed a bug with u-boot and this particular hardware which was addressed by that patch.

 

When booting with the SD card and pressing "space" to interrupt the boot and get a prompt, I can run a few commands. Running "mmc info" after selecting "mmc dev 2" shows that the eMMC is there, seems healthy and accessible. If I run those "mmc read $kernel_addr_r 10 XXX" commands suggested in the bug report, I can read up to max 4 units, after 5 I start getting the ERROR, which confirms the bug.

 

I then saved that patch ( https://lore.kernel.org/linux-sunxi/20250309061241.62170-1-jernej.skrabec@gmail.com/ ) into a file in armbian-build/userpatches/u-boot/u-boot-sunxi/fix-emmc-h313.patch and rebuilt my image. The patch was applied successfully (I confirmed in the logs). I flashed the new image to SD card and booted.

 

Right at the first boot, I pressed space and tried those same "read" commands in u-boot as above, now I don't get errors anymore, which is good.

 

Before the patch:

=> mmc dev 2
switch to partitions #0, OK
mmc2(part 0) is current device
=> mmc read $kernel_addr_r 10 1
MMC read: dev # 2, block # 16, count 1 ... 1 blocks read: OK
=> mmc read $kernel_addr_r 10 2
MMC read: dev # 2, block # 16, count 2 ... 2 blocks read: OK
=> mmc read $kernel_addr_r 10 3
MMC read: dev # 2, block # 16, count 3 ... 3 blocks read: OK
=> mmc read $kernel_addr_r 10 4
MMC read: dev # 2, block # 16, count 4 ... 4 blocks read: OK
=> mmc read $kernel_addr_r 10 5
MMC read: dev # 2, block # 16, count 5 ... 5 blocks read: OK
=> mmc read $kernel_addr_r 10 6
MMC read: dev # 2, block # 16, count 6 ... 0 blocks read: ERROR


After the patch:

=> mmc dev 2
switch to partitions #0, OK
mmc2(part 0) is current device
=> mmc read $kernel_addr_r 10 10
MMC read: dev # 2, block # 16, count 16 ... 16 blocks read: OK

 

I booted the full system, installed to eMMC, rebooted, but still the same error as above (SPL: failed to boot from all boot devices). I'm not sure why.

 

My last test: I booted u-boot from the SD card, stopped at the prompt, switched to emmc and proceeded the boot. It worked, I have a system booted from eMMC.

 

U-Boot 2024.01-armbian-2024.01-S866c-P63e9-H8869-Vad24-Bb703-R448a (Sep 10 2025 - 13:04:13 +0000) Allwinner Technology

CPU:   Allwinner H616 (SUN50I)
Model: hechuang,x96q LPDDR3
DRAM:  1 GiB
Core:  55 devices, 20 uclasses, devicetree: separate
WDT:   Not starting watchdog@30090a0
MMC:   mmc@4020000: 0, mmc@4021000: 1, mmc@4022000: 2
Loading Environment from FAT... Unable to use mmc 0:1...
In:    serial@5000000
Out:   serial@5000000
Err:   serial@5000000
No USB device found
Net:   eth0: ethernet@5030000
starting USB...
No working controllers found
Autoboot in 1 seconds, press <Space> to stop
=> mmc dev 2
switch to partitions #0, OK
mmc2(part 0) is current device
=> mmc info
Device: mmc@4022000
Manufacturer ID: 90
OEM: 4a
Name: H8G4t� 
Bus Speed: 52000000
Mode: MMC High Speed (52MHz)
Rd Block Len: 512
MMC version 5.0
High Capacity: Yes
Capacity: 7.3 GiB
Bus Width: 8-bit
Erase Group Size: 512 KiB
HC WP Group Size: 4 MiB
User Capacity: 7.3 GiB WRREL
Boot Capacity: 4 MiB ENH
RPMB Capacity: 4 MiB ENH
Boot area 0 is not write protected
Boot area 1 is not write protected
=> setenv devnum 2
=> run distro_bootcmd
switch to partitions #0, OK
mmc2(part 0) is current device
Scanning mmc 2:1...
Found U-Boot script /boot/boot.scr
4641 bytes read in 2 ms (2.2 MiB/s)
## Executing script at 4fc00000
U-boot loaded from SD
Boot script loaded from mmc
205 bytes read in 1 ms (200.2 KiB/s)
Load fdt: /boot/dtb/allwinner/sun50i-h313-x96q-lpddr3.dtb
42411 bytes read in 4 ms (10.1 MiB/s)
Working FDT set to 4fa00000
4203 bytes read in 3 ms (1.3 MiB/s)
Applying kernel provided DT fixup script (sun50i-h616-fixup.scr)
## Executing script at 45000000
11874272 bytes read in 378 ms (30 MiB/s)
38217736 bytes read in 1213 ms (30 MiB/s)
Moving Image from 0x40080000 to 0x40200000, end=42760000
## Loading init Ramdisk from Legacy Image at 4ff00000 ...
   Image Name:   uInitrd
   Image Type:   AArch64 Linux RAMDisk Image (gzip compressed)
   Data Size:    11874208 Bytes = 11.3 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 4fa00000
   Booting using the fdt blob at 0x4fa00000
Working FDT set to 4fa00000
   Loading Ramdisk to 494ad000, end 49ffffa0 ... OK
   Loading Device Tree to 000000004943a000, end 00000000494acfff ... OK
Working FDT set to 4943a000

Starting kernel ...

 

The installation seems mostly ok since I can boot u-boot from SD and then switch to booting on the eMMC side and it works. The question now is why u-boot still fails to load from the eMMC.

 

Posted

Just a few more details on the system booted from eMMC:

 

ubuntu@x96q:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
tmpfs            98M  2,5M   95M   3% /run
/dev/mmcblk2p1  7,0G  1,2G  5,5G  19% /
tmpfs           486M     0  486M   0% /dev/shm
tmpfs           5,0M     0  5,0M   0% /run/lock
tmpfs           486M     0  486M   0% /tmp
/dev/zram1       47M  344K   43M   1% /var/log
tmpfs            98M  4,0K   98M   1% /run/user/1000
ubuntu@x96q:~$ lsblk
NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
mmcblk2      179:32   0   7,3G  0 disk 
└─mmcblk2p1  179:33   0   7,2G  0 part /var/log.hdd
                                       /
mmcblk2boot0 179:64   0     4M  1 disk 
mmcblk2boot1 179:96   0     4M  1 disk 
zram0        251:0    0 485,5M  0 disk [SWAP]
zram1        251:1    0    50M  0 disk /var/log
zram2        251:2    0     0B  0 disk 

 

Posted

I have just tried MiniArch and the installation on eMMC was successful, it boots normally.

 

--- MiniMyth2 to eMMC installer v5.0 (c)Piotr Oniszczuk ---
 
Ooo...you are running hechuang,x96-qallwinner,sun50i-h616
Allwinner detected...Good!
 
SDcard device        : mmcblk0
eMMC device          : mmcblk2
UFS device           : N/A
System booted from   : SD card (mmcblk0)
Boot device has      : p2 partitions
Boot device usage    : 1768MB

[...]

copying 1768MB to eMMC/UFS ...
  ==> copying from: mmcblk0 to: eMMC/UFS (mmcblk2) ...
copying to eMMC/UFS done ...
copying bootloader to eMMC/UFS ...

 

But then again it uses a very recent version of u-boot:

 

U-Boot 2025.04 (Aug 15 2025 - 18:43:21 +0200) Allwinner Technology

CPU:   Allwinner H616 (SUN50I)
Model: hechuang,x96-q LPDDR3 v1.3
DRAM:  1 GiB
Core:  59 devices, 20 uclasses, devicetree: separate
WDT:   Not starting watchdog@30090a0
MMC:   mmc@4020000: 0, mmc@4021000: 3, mmc@4022000: 1
Loading Environment from FAT... Unable to read "uboot.env" from mmc1:1... 
In:    serial@5000000
Out:   serial@5000000
Err:   serial@5000000
No USB device found
Net:   apply fix for AC300 ephy bb version bug ...
using AC300 emac1 ephy default config ...
eth0: ethernet@5030000
starting USB...
No USB controllers found
Hit any key to stop autoboot:  0 
switch to partitions #0, OK
mmc1(part 0) is current device
Scanning mmc 1:1...
Found /extlinux/extlinux.conf
Retrieving file: /extlinux/extlinux.conf
1:	MiniMyth2
Retrieving file: /Image
append: root=/dev/mmcblk0p2 rw rootwait earlycon console=ttyS0,115200n8 loglevel=6 consoleblank=0 fsck.mode=auto fsck.repair=yes
Retrieving file: /dtbs/allwinner/sun50i-h313-x96-q-lpddr3.dtb
Moving Image from 0x40080000 to 0x40200000, end=0x42190000
## Flattened Device Tree blob at 4fa00000
   Booting using the fdt blob at 0x4fa00000
Working FDT set to 4fa00000
   Loading Device Tree to 0000000049ff5000, end 0000000049fff691 ... OK
Working FDT set to 49ff5000

Starting kernel ...

 

Which makes me believe that the only thing missing here is some fix on u-boot side.

 

Posted
4 hours ago, Nick A said:

I might already have those patches in my build. Try the x96q images here. Also, you should change the log level to 7 in armbianEnv.txt. 

https://github.com/NickAlilovic/build/releases/tag/20250306

 

@Nick A I tested images from your repo and still can't get one to boot properly from the eMMC in my hardware. The hardware is a X96Q LPDDR3 v1.3 (I'm pretty sure since this info is written in the mainboard). Tested image was Armbian-unofficial_25.05.0-trunk_X96q-lpddr3-v1-3_bookworm_edge_6.12.11_server.img.

 

When booting from SD card, it works. After installing to eMMC and booting from it, I get:

 

[ 2044.312802] reboot: Power down

U-Boot SPL 2025.01-armbian-2025.01-S6d41-P7151-H8869-V98f7-Bb703-R448a-dirty (Apr 02 2025 - 21:19:05 -04
00)
DRAM:testing 32-bit width, rank = 2
read calibration failed!
testing 32-bit width, rank = 1
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
 1024 MiB
Trying to boot from MMC2
NOTICE:  BL31: v2.10.14(debug):armbian
NOTICE:  BL31: Built : 18:07:43, Apr  2 2025
NOTICE:  BL31: Detected Allwinner H616 SoC (1823)
NOTICE:  BL31: Found U-Boot DTB at 0x4a0b2520, 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-P7151-H8869-V98f7-Bb703-R448a-dirty (Apr 02 2025 - 21:19:05 -0400) 
Allwinner Technology

CPU:   Allwinner H616 (SUN50I)
Model: hechuang,x96-q LPDDR3 v1.3
DRAM:  1 GiB
Core:  59 devices, 20 uclasses, devicetree: separate
WDT:   Not starting watchdog@30090a0
MMC:   mmc@4020000: 0, mmc@4021000: 3, mmc@4022000: 1
Loading Environment from FAT... Unable to use mmc 1:1...
In:    serial@5000000
Out:   serial@5000000
Err:   serial@5000000
No USB device found
Net:   apply fix for AC300 ephy bb version bug ...
using AC300 emac1 ephy default config ...
eth0: ethernet@5030000
starting USB...
No USB controllers found
Hit any key to stop autoboot:  0 
switch to partitions #0, OK
mmc1(part 0) is current device
Scanning mmc 1:1...
Found U-Boot script /boot/boot.scr
4641 bytes read in 1 ms (4.4 MiB/s)
## Executing script at 4fc00000
U-boot loaded from SD
Boot script loaded from mmc
252 bytes read in 1 ms (246.1 KiB/s)
The file sun50i-h313-x96-q-lpddr3.dtb was not found in the path /boot/dtb/allwinner
Card did not respond to voltage select! : -110
** Bad device specification mmc 0 **
Failed to load '/boot/dtb/allwinner/sun50i-h313-x96-q-lpddr3.dtb'
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
No FDT memory address configured. Please configure
the FDT address via "fdt addr <address>" command.
Aborting!
4203 bytes read in 3 ms (1.3 MiB/s)
Applying kernel provided DT fixup script (sun50i-h616-fixup.scr)
## Executing script at 45000000
16776355 bytes read in 532 ms (30.1 MiB/s)
32059904 bytes read in 1017 ms (30.1 MiB/s)
Moving Image from 0x40080000 to 0x40200000, end=0x42170000
## Loading init Ramdisk from Legacy Image at 4ff00000 ...
   Image Name:   uInitrd
   Image Type:   AArch64 Linux RAMDisk Image (gzip compressed)
   Data Size:    16776291 Bytes = 16 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
ERROR: Did not find a cmdline Flattened Device Tree
Could not find a valid device tree
SCRIPT FAILED: continuing...
Card did not respond to voltage select! : -110
Cannot persist EFI variables without system partition
Loading Boot0000 'mmc 1' failed
EFI boot manager: Cannot load any image
Card did not respond to voltage select! : -110
starting USB...
No USB controllers found
USB is stopped. Please issue 'usb start' first.
starting USB...
No USB controllers found
ethernet@5030000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
[...]

 

Note that it says "U-boot loaded from SD" but it was not, there is no SD plugged in in this test.

 

Also, It got much further than the upstream one. U-boot was loaded (all stages), it found the boot script & initrd, but then fell apart when loading dtb and booting kernel.

 

Another very interesting issue is that this image that booted fine on the first time, will not boot again from the SD a second time (it hits the same issue as above even from the SD card). I need to re-flash the SD so it will boot again. Very weird.

 

Posted (edited)

@Andre Ruiz that’s weird uboot loaded boot.scr

 

Check if “/boot/dtb/allwinner/sun50i-h313-x96-q-lpddr3.dtb” exists and path is correct. Make sure it’s not 0 bytes. 

Edited by Nick A
Posted
2 hours ago, Nick A said:

Check if “/boot/dtb/allwinner/sun50i-h313-x96-q-lpddr3.dtb” exists and path is correct. Make sure it’s not 0 bytes. 

 

The file exists in the sd card, as expected.

 

root@x96q-lpddr3-v1-3:~# ls -l /boot/dtb/allwinner/sun50i-h313-x96-q-lpddr3.dtb
-rw-r--r-- 1 root root 37577 Apr  2 19:41 /boot/dtb/allwinner/sun50i-h313-x96-q-lpddr3.dtb

 

It also exists inside the installed eMMC filesystem (after installing -- without rebooting -- I mounted the /dev/mmcblk2 device and the file is there, in the correct place).

 

root@x96q-lpddr3-v1-3:~# mount /dev/mmcblk2p1 /srv/
root@x96q-lpddr3-v1-3:~# ls -l /srv/boot/dtb/allwinner/sun50i-h313-x96-q-lpddr3.dtb
-rw-r--r-- 1 root root 37577 Sep 10 21:16 /srv/boot/dtb/allwinner/sun50i-h313-x96-q-lpddr3.dtb

 

Before rebooting, I re-ran armbian-install and used option 6 to re-write boot on eMMC just in case. Then rebooted. Then it worked!! It is booting from eMMC normally now....

 

Boot log from successful boot:

 

U-Boot SPL 2025.01-armbian-2025.01-S6d41-P7151-H8869-V98f7-Bb703-R448a-dirty (Apr 02 2025 - 21:19:05 -04
00)
DRAM:testing 32-bit width, rank = 2
read calibration failed!
testing 32-bit width, rank = 1
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
 1024 MiB
Trying to boot from MMC2
NOTICE:  BL31: v2.10.14(debug):armbian
NOTICE:  BL31: Built : 18:07:43, Apr  2 2025
NOTICE:  BL31: Detected Allwinner H616 SoC (1823)
NOTICE:  BL31: Found U-Boot DTB at 0x4a0b2520, 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-P7151-H8869-V98f7-Bb703-R448a-dirty (Apr 02 2025 - 21:19:05 -0400) 
Allwinner Technology

CPU:   Allwinner H616 (SUN50I)
Model: hechuang,x96-q LPDDR3 v1.3
DRAM:  1 GiB
Core:  59 devices, 20 uclasses, devicetree: separate
WDT:   Not starting watchdog@30090a0
MMC:   mmc@4020000: 0, mmc@4021000: 3, mmc@4022000: 1
Loading Environment from FAT... Unable to use mmc 1:1...
In:    serial@5000000
Out:   serial@5000000
Err:   serial@5000000
No USB device found
Net:   apply fix for AC300 ephy bb version bug ...
using AC300 emac1 ephy default config ...
eth0: ethernet@5030000
starting USB...
No USB controllers found
Hit any key to stop autoboot:  0 
switch to partitions #0, OK
mmc1(part 0) is current device
Scanning mmc 1:1...
Found U-Boot script /boot/boot.scr
4641 bytes read in 1 ms (4.4 MiB/s)
## Executing script at 4fc00000
U-boot loaded from SD
Boot script loaded from mmc
252 bytes read in 0 ms
Load fdt: /boot/dtb/allwinner/sun50i-h313-x96-q-lpddr3.dtb
Card did not respond to voltage select! : -110
** Bad device specification mmc 0 **
37577 bytes read in 3 ms (11.9 MiB/s)
Working FDT set to 4fa00000
Failed to load '/boot/dtb/allwinner/overlay/sun50i-h616-fixup.scr'
15483712 bytes read in 492 ms (30 MiB/s)
42621440 bytes read in 1351 ms (30.1 MiB/s)
Moving Image from 0x40080000 to 0x40200000, end=0x42b50000
## Loading init Ramdisk from Legacy Image at 4ff00000 ...
   Image Name:   uInitrd
   Image Type:   AArch64 Linux RAMDisk Image (gzip compressed)
   Data Size:    15483648 Bytes = 14.8 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 4fa00000
   Booting using the fdt blob at 0x4fa00000
Working FDT set to 4fa00000
   Loading Ramdisk to 4913b000, end 49fff300 ... OK
   Loading Device Tree to 00000000490c9000, end 000000004913afff ... OK
Working FDT set to 490c9000

Starting kernel ...

 

Posted

Hello. I have x96q DDR3 v5.1 box. I flashed vontar h618 image with patched dtb. Everything seems fine except extended file properties. Docker need these properties to operate normally. Can you suggest image with extended file properties support for my box with working ethernet?

Posted
27.05.2025 в 03:21, Nick A сказал:

For Ethernet maybe this will fix your problem. 

Hi @Nick A
Please help me. I have H96 MAX H313 and Armbian-unofficial_25.05.0-trunk_X96q-lpddr3-v1-3_bookworm_edge_6.12.11 work well, but no wifi

 

I tried several times to compile with your instuctions,  but every time during compilation I get a lot of warnings and eventually a compilation error. What I was doing:

Цитата

 

git clone https://github.com/NickAlilovic/build.git --branch v20250306

cd build

pico patch/u-boot/u-boot-h616/171-add-x98h-defconfig.patch

./compile.sh

choose "Do not change kernel configuration"

choose "Show CSC/WIP/EOS/TVB"

choose "I understand and agree"

choose "x98h"

choose "edge"

 

I don't understand all this very well, but I see that there is a way to solve the problem.  If it's not too much trouble, may I ask you to describe step by step what I should do? I would be very grateful.

I attach a log file and a photo of my board.

Board.jpeg

build logs.md

Posted (edited)

@Unrealchex try the x98h image. Or you’ll need to take the wifi node from x98h and add it to your dts. Not sure why your build stops in the middle of the kernel patches without any errors. Are you sure that's the full log?

Edited by Nick A
Posted
21.10.2025 в 03:04, Nick A сказал:

try the x98h image

The system doesn't even start loading.

21.10.2025 в 03:04, Nick A сказал:

Or you’ll need to take the wifi node from x98h and add it to your dts.

Can you please explain how to do this? 

I can't figure out what I'm doing wrong in the compilation process according to your instructions. 
I'm sorry, the log file was really incomplete. I'm attaching the full one.

Log_full.txt

Posted (edited)

@Unrealchex The base-files error is a known issue. You'll need to run the ./compile command a second time and it should continue where it left off.

 

Here's a post that show's you how to create patches. 

https://forum.armbian.com/topic/29794-how-to-install-armbian-in-h618/#findComment-227058

 

You want to edit u-boot and kernel dts. Remove the x96q code and add the wifi code from x98h. The x96h U-boot and kernel code might be different double check it. 

 

remove (Existing x96q wifi code.)

	reg_vcc_wifi: reg_vcc_wifi {
		compatible = "regulator-fixed";
		regulator-name = "vcc-wifi";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		gpio = <&pio 6 18 GPIO_ACTIVE_HIGH>; /* PG18 WL_REG_ON */
		regulator-always-on;
		enable-active-high;
		status = "okay";
	};

	wifi_pwrseq: wifi_pwrseq {
		compatible = "mmc-pwrseq-simple";
		clocks = <&rtc CLK_OSC32K_FANOUT>;
		clock-names = "ext_clock";
		pinctrl-names = "default";
		pinctrl-0 = <&x32clk_fanout_pin>; /* PG10 with MUX3 set */
	};
  
	&mmc1 {
	vmmc-supply = <&reg_dldo1>;
	vqmmc-supply = <&reg_vcc_wifi>;
	mmc-pwrseq = <&wifi_pwrseq>;
	bus-width = <4>;
	non-removable;
	status = "okay";

	wlan: wifi@1 {
		reg = <1>;
		interrupt-parent = <&pio>;
		interrupts = <6 15 IRQ_TYPE_EDGE_RISING>; /* PG15 WL_HOSTWAKE*/
		interrupt-names = "host-wake";
		local-mac-address = [dc 44 6d c0 ff 02];
	};
};
  

 

Add (code borrowed from x98h)

	reg_vcc3v3: vcc3v3 {
		/* discrete 3.3V regulator */
		compatible = "regulator-fixed";
		regulator-name = "vcc-3v3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-always-on;
	};

	reg_3v3_wifi: vcc3v3-wifi {
		compatible = "regulator-fixed";
		regulator-name = "vcc-3v3-wifi";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-always-on;
	};
};

&mmc1 {
	vmmc-supply = <&reg_vcc3v3>;
	bus-width = <4>;
	non-removable;
	max-frequency = <35000000>;
	status = "okay";

	wlan: wifi@1 {
		reg = <1>;
	};
};

 

You don't need to create a patch for build/config/boards. Edit the file x96q-lpddr3.csc and add this to the bottom of display_alert "$BOARD" "Using ${BOOT_FDT_FILE} for ${BRANCH}" "info"

	display_alert "Applying wifi firmware"
	pushd "$SDCARD/lib/firmware"
	ln -s "aic8800/SDIO/aic8800D80" "aic8800_sdio" # use armbian-firmware
	cp -R $SRC/packages/blobs/sunxi/h618/armbian-audio-config $SDCARD/usr/lib/armbian
	cp -R $SRC/packages/blobs/sunxi/h618/armbian-audio-config $SDCARD/lib/armbian
	popd

 

Edited by Nick A
Posted

thank you for your work. 

i have the x96q pro picture attached.

i have built the x96q lpddr3 and the w96q lpddr3 v1.3 . both are booting . the problem is with wifi sometimes is not recognised and it needs rebooting few times to work. also i noticed with lpddr3 build the cpu cores are always near 100% but with lpddr3 v1.3 only one core get 100% and not too often.

X96QPro_PCB_Top.jpg

Posted

I got interested after reading this thread and ordered an X96Q from AliExpress.
The board is marked as V5.1, so I thought it would be straightforward, but after two days of trying, no matter which image I use, it always boots into Android.

I tried UART communication, but nothing appeared.
I even applied the secure boot patch and built it, just in case, but it still wouldn’t boot.

How can I get this machine to boot from an SD card?
I’m attaching photos of my board and the extracted DTS for reference.

 

IMG_1549_preview.thumb.jpeg.6c9ad66c3c83080c8ca1d5723d227fad.jpegIMG_1550_preview.thumb.jpeg.2b2ab882f2df18d0a38d73935c3a48f4.jpeg

 

dtb.0.dts

Posted (edited)

@leXia "no matter which image I use, it always boots into Android". Maybe it's not booting into FEL mode or it's not reading your SDcard. 

 

To enter FEL mode, power off the TV box, insert your SDcard, press and hold a hidden button (often inside the AV port, reachable with a toothpick) while connecting the power cable, release the button after a few seconds. If that doesn't work try another SDcard. 

 

Usually, if you box detects uboot and stops you'll just get a black screen. Without UART communication I can't really help. If it boots the kernel then you can check your SDcard for log files.

Edited by Nick A
Posted (edited)

Hello,

I have an X96q 2/16 TV Box. I installed the build "Armbian-unofficial_25.05.0-trunk_X96q-lpddr3-v1-3_bookworm_edge_6.12.11_server" on a 64GB microSD card, and everything is working fine. However, when I run armbian-install -m yes and select "Boot from eMMC — system on eMMC", I get the error:

 

Error: Partition(s) on /dev/mmcblk2 are being used.
Too many primary partitions.
mount: /mnt/armbian-install.kYpi5v/rootfs: WARNING: source write-protected, mounted read-only.
mount: /mnt/armbian-install.kYpi5v/bootfs: WARNING: source write-protected, mounted read-only.
rm: невозможно удалить (Can't be deleted) '/mnt/armbian-install.kYpi5v/bootfs/bat': Файловая система доступна только для чтения (File system is read-only)
rm: невозможно удалить '/mnt/armbian-install.kYpi5v/bootfs/bootlogo.bmp': Файловая система доступна только для чтения 
rm: невозможно удалить '/mnt/armbian-install.kYpi5v/bootfs/fastbootlogo.bmp': Файловая система доступна только для чтения
rm: невозможно удалить '/mnt/armbian-install.kYpi5v/bootfs/font24.sft': Файловая система доступна только для чтения
rm: невозможно удалить '/mnt/armbian-install.kYpi5v/bootfs/font32.sft': Файловая система доступна только для чтения
rm: невозможно удалить '/mnt/armbian-install.kYpi5v/bootfs/magic.bin': Файловая система доступна только для чтения
rm: невозможно удалить '/mnt/armbian-install.kYpi5v/rootfs/bat': Файловая система доступна только для чтения
rm: невозможно удалить '/mnt/armbian-install.kYpi5v/rootfs/bootlogo.bmp': Файловая система доступна только для чтения
rm: невозможно удалить '/mnt/armbian-install.kYpi5v/rootfs/fastbootlogo.bmp': Файловая система доступна только для чтения
rm: невозможно удалить '/mnt/armbian-install.kYpi5v/rootfs/font24.sft': Файловая система доступна только для чтения
rm: невозможно удалить '/mnt/armbian-install.kYpi5v/rootfs/font32.sft': Файловая система доступна только для чтения
rm: невозможно удалить '/mnt/armbian-install.kYpi5v/rootfs/magic.bin': Файловая система доступна только для чтения

 Partition too small. Needed: 1896 Mb Available: 128 Mb.

 

How can I fix this?

Output of sudo lsblk:

 

NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
mmcblk2      179:0    0  14.6G  0 disk
├─mmcblk2p1  179:1    0    32M  0 part /mnt/armbian-install.38Slfn/bootfs
│                                      /mnt/armbian-install.38Slfn/rootfs
│                                      /mnt/armbian-install.3JZfHI/rootfs
│                                      /mnt/armbian-install.Mqemrx/rootfs
├─mmcblk2p2  179:2    0    16M  0 part
├─mmcblk2p3  179:3    0    32M  0 part
├─mmcblk2p4  179:4    0     2G  0 part
├─mmcblk2p5  179:5    0    16M  0 part
├─mmcblk2p6  179:6    0    32M  0 part
├─mmcblk2p7  179:7    0   640M  0 part
├─mmcblk2p8  179:8    0    16M  0 part
├─mmcblk2p9  179:9    0    16M  0 part
├─mmcblk2p10 179:10   0    16M  0 part
├─mmcblk2p11 179:11   0    16M  0 part
├─mmcblk2p12 179:12   0    16M  0 part
├─mmcblk2p13 179:13   0   512K  0 part
├─mmcblk2p14 179:14   0  15.5M  0 part
├─mmcblk2p15 179:15   0    16M  0 part
├─mmcblk2p16 179:16   0    16M  0 part
└─mmcblk2p17 179:17   0  11.7G  0 part
mmcblk2boot0 179:32   0     4M  1 disk
mmcblk2boot1 179:64   0     4M  1 disk
mmcblk0      179:96   0  58.2G  0 disk
└─mmcblk0p1  179:97   0  57.7G  0 part /var/log.hdd
                                       /
zram0        254:0    0 986.1M  0 disk [SWAP]
zram1        254:1    0    50M  0 disk /var/log
zram2        254:2    0     0B  0 disk

Output of sudo fdisk -l:

 

Disk /dev/mmcblk2: 14.56 GiB, 15634268160 bytes, 30535680 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: AB6F3888-569A-4926-9668-80941DCB40BC

Device            Start      End  Sectors  Size Type
/dev/mmcblk2p1    73728   139263    65536   32M Microsoft basic data
/dev/mmcblk2p2   139264   172031    32768   16M Microsoft basic data
/dev/mmcblk2p3   172032   237567    65536   32M Microsoft basic data
/dev/mmcblk2p4   237568  4431871  4194304    2G Microsoft basic data
/dev/mmcblk2p5  4431872  4464639    32768   16M Microsoft basic data
/dev/mmcblk2p6  4464640  4530175    65536   32M Microsoft basic data
/dev/mmcblk2p7  4530176  5840895  1310720  640M Microsoft basic data
/dev/mmcblk2p8  5840896  5873663    32768   16M Microsoft basic data
/dev/mmcblk2p9  5873664  5906431    32768   16M Microsoft basic data
/dev/mmcblk2p10 5906432  5939199    32768   16M Microsoft basic data
/dev/mmcblk2p11 5939200  5971967    32768   16M Microsoft basic data
/dev/mmcblk2p12 5971968  6004735    32768   16M Microsoft basic data
/dev/mmcblk2p13 6004736  6005759     1024  512K Microsoft basic data
/dev/mmcblk2p14 6005760  6037503    31744 15.5M Microsoft basic data
/dev/mmcblk2p15 6037504  6070271    32768   16M Microsoft basic data
/dev/mmcblk2p16 6070272  6103039    32768   16M Microsoft basic data
/dev/mmcblk2p17 6103040 30535646 24432607 11.7G Microsoft basic data

Output of (parted) print:


 

Model: MMC R821MB (sd/mmc)
Disk /dev/mmcblk2: 15.6GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name           Flags
 1      37.7MB  71.3MB  33.6MB  fat16        bootloader     msftdata
 2      71.3MB  88.1MB  16.8MB               env            msftdata
 3      88.1MB  122MB   33.6MB               boot           msftdata
 4      122MB   2269MB  2147MB               super          msftdata
 5      2269MB  2286MB  16.8MB               misc           msftdata
 6      2286MB  2319MB  33.6MB               recovery       msftdata
 7      2319MB  2991MB  671MB   ext4         cache          msftdata
 8      2991MB  3007MB  16.8MB               vbmeta         msftdata
 9      3007MB  3024MB  16.8MB               vbmeta_system  msftdata
10      3024MB  3041MB  16.8MB               vbmeta_vendor  msftdata
11      3041MB  3058MB  16.8MB  ext4         metadata       msftdata
12      3058MB  3074MB  16.8MB               private        msftdata
13      3074MB  3075MB  524kB                frp            msftdata
14      3075MB  3091MB  16.3MB               empty          msftdata
15      3091MB  3108MB  16.8MB               media_data     msftdata
16      3108MB  3125MB  16.8MB  fat16        Reserve0       msftdata
17      3125MB  15.6GB  12.5GB  f2fs         UDISK          msftdata

 

Has anyone encountered this and knows how to fix it? Do I need to repartition the eMMC? If so, what is the safest way to do it without bricking the device?

Any guidance would be greatly appreciated.

Edited by Дарк Нью

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...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines