I now have the Armbian-unofficial_24.5.0-trunk_Orangepi3b_bookworm_vendor_6.1.43_minimal image booting on my orangpi3b. This is an unsupported board, and the images is built from trunk and bleeding edge, so I guess it is expected to have some issues. Anyway I post my findings in case other have the same problem.
Iper3 works without any retries. So next is to install OMV7 and see the file transfer speed.
orangepi@orangepi3b:~$ iperf3 -c 192.168.10.10 -f M
Connecting to host 192.168.10.10, port 5201
[ 5] local 192.168.10.227 port 41766 connected to 192.168.10.10 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 114 MBytes 114 MBytes/sec 0 407 KBytes
[ 5] 1.00-2.00 sec 112 MBytes 112 MBytes/sec 0 407 KBytes
[ 5] 2.00-3.00 sec 113 MBytes 113 MBytes/sec 0 428 KBytes
[ 5] 3.00-4.00 sec 112 MBytes 112 MBytes/sec 0 428 KBytes
[ 5] 4.00-5.00 sec 112 MBytes 112 MBytes/sec 0 451 KBytes
[ 5] 5.00-6.00 sec 112 MBytes 112 MBytes/sec 0 451 KBytes
[ 5] 6.00-7.00 sec 112 MBytes 112 MBytes/sec 0 451 KBytes
[ 5] 7.00-8.00 sec 112 MBytes 112 MBytes/sec 0 451 KBytes
[ 5] 8.00-9.00 sec 112 MBytes 112 MBytes/sec 0 451 KBytes
[ 5] 9.00-10.00 sec 113 MBytes 113 MBytes/sec 0 451 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 1.10 GBytes 112 MBytes/sec 0 sender
[ 5] 0.00-10.04 sec 1.10 GBytes 112 MBytes/sec receiver
iperf Done.
I did not know that the bootloader/u-boot on the SPI and EMMC could have impact on booting of SD card, because all images with edge kernel booted just fine from SD card. I have an EMMC with armbian-bookworm-edge-minimal installed, and have flashed the SPI with the u-boot version installed on the EMMC.
Error when trying to boot a vendor image from SD card:
[ 9.413438] rockchip-pm-domain fdd90000.power-management:power-controller: failed to get ack on domain 'npu', target_idle = 0, target_ack = 0, val=0x6
[ 9.413543] Kernel panic - not syncing: panic_on_set_idle set ...
Then I tried other images, armbian with legacy kernel and ubuntu24.04beta-6.1 kernel. Both with the same error.
I then flashed the ubuntu's u-boot on the SPI and removed the EMMC. Then the both images booted.
But the armbian-bookworm-vendor-mininal still would not boot. But this time it stopped with another error:
[ 23.575850] mtty_probe init device addr: 0x000000004f52d231
[ 23.576178] -->rfkill_bluetooth_init
[ 23.576456] <--rfkill_bluetooth_init
[ 23.577060] sysfs: cannot create duplicate filename '/devices/virtual/tty/ttyBT0'
[ 23.577107] CPU: 1 PID: 381 Comm: systemd-modules Not tainted 6.1.43-vendor-rk35xx #1
[ 23.577127] Hardware name: Rockchip RK3566 OPi 3B (DT)
[ 23.577141] Call trace:
[ 23.577153] dump_backtrace+0xe4/0x108
Next I erased the SPI, and with no EMMC the only bootloader on the SBC was on the SD card.
Then the armbian-bookworm-vendor-mininal image stopped with the first kernel panic again:
[ 9.413438] rockchip-pm-domain fdd90000.power-management:power-controller: failed to get ack on domain 'npu', target_idle = 0, target_ack = 0, val=0x6
[ 9.413543] Kernel panic - not syncing: panic_on_set_idle set ...
So I made changes and reverted to an older version of uboot:
BOOTBRANCH="commit:63073b4af636146d26a7f0f258610eed060c8f34" # specific commit, from "branch:rk3568-2023.10"
BOOTDIR="u-boot-${BOARD}" # do not share u-boot directory
BOOTPATCHDIR="v2023.10-orangepi3b" # empty, patches are already in Kwiboo's branch:rk3568-2023.10
revert-u-boot-orangepi3b.patch
Again booting from SD card I got the "duplicate filename" bluetooth error again.
So after scratching my head and poking around I noticed that not all the UW5622 patches was applied?:
# Apply patches that adjust the driver only for rockchip platforms
if [[ "$LINUXFAMILY" == rockchip* ]]; then
if linux-version compare "${version}" le 6.1; then
process_patch_file "${SRC}/patch/misc/wireless-uwe5622/uwe5622-adjust-for-rockchip-pre-6.1.patch"
else
process_patch_file "${SRC}/patch/misc/wireless-uwe5622/uwe5622-adjust-for-rockchip-post-6.1.patch"
fi
fi
Since the vendor kernel is defined as "$LINUXFAMILY" == rk35xx ? this part of the patch does not get applied.
And since the vendor kernel is 6.1.43, it should use the post version of the patch?, aka the "le" won't work.?
I changed the script to:
# Apply patches that adjust the driver only for rockchip platforms
if [[ "$LINUXFAMILY" == rockchip* || "$LINUXFAMILY" == "rk35xx" ]]; then
if linux-version compare "${version}" ge 6.1; then
process_patch_file "${SRC}/patch/misc/wireless-uwe5622/uwe5622-adjust-for-rockchip-post-6.1.patch"
else
process_patch_file "${SRC}/patch/misc/wireless-uwe5622/uwe5622-adjust-for-rockchip-pre-6.1.patch"
fi
uw5622-fix-adjust-for-rockchip-post-6.1.patch
Compiled, now it boots from SD and seems to work just fine.