ENG | Radxa ROCK 3C Single Board Computer
Overview of Radxa ROCK 3C setup, configuration, with tips on troubleshooting common issues
Radxa ROCK 3C is a single board personal computer similar to Raspberry PI, based on Rockchip RK3566 CPU with performance somewhat above Raspberry Pi 3B.
I bought this in June, because my Raspberry Pi was acquiring chilli pepper growth timelapse and I wanted something to play with in the mean time and something that is at least somewhat faster (also bought Milk-V Duo S for curiosity) and found this for a very good price (close to 20EUR). Sadly, it lacks wide community and a bit of support.
This article goes trough initial setup, settings and troubleshooting.
Specifications
- CPU: Rockchip RK3566 @ 1.4GHz
- RAM: 2GB (4GB, 8GB options)
- Connectivity: WiFi 6 & BT5.4 & 1Gbps LAN (depends on board revision)
- Storage: eMMC and SD card slots
Compared to Raspberry Pi 3B it has faster I/O interfaces, microphone input, power button, eMMC slot, M2 M-key slot, one USB3, and power connector is USB-C rather than MicroUSB.
Initial installation
For Radxa ROCK 3C there are only official images, no Armbian, no Debian 12.
One image is CLI (command line interface only), other is XFCE desktop. Second one contains more stuff preinstalled, such gstreamer for video capture.
Side note: eMMC issue
My first issue was that I bought eMMC adapter that does not work, I assumed that eMMC card is broken. After some googling I discovered that eMMC-microSD adapters do not work with the majority of microSD-SD and/or SD-USB adapters. So I had to use SD card for install.
Stuff needed
- Radxa board
- USB charger with USB-C connector or USB-A to USB-C cable (seems that it can be powered from PC)
- Durable SD card, at least 8GB (eMMC optional)
- Ethernet cable
- Raspberry Pi Imager on Windows (really anything that can write image to SD card, dd on Linux)
Setup
Basically use Raspberry Pi imager to get image such as rock-3c_debian_bullseye_xfce_b43.img.xz
from GitHub, put it into SD card and without keyboard and displayed connected it should run with the following defaults, you only need to connect it into your router.
Unlike Raspberry Pi OS, this has default password.
Defaults
It’s possible to connect to it by
1
ssh [email protected]
- Hostname: rock-3c.local
- User: rock
- Password: rock
User and password radxa
works too. Consider creating your own user with the same permissions and delete default ones, if device is going to be connected to internet.
First things to do
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
sudo -i # Become root
# !!! DON'T USE THESE !!!
#apt update # Update repository database
#apt upgrade # This breaks wifi and likely other kernel modules
# UPDATE SYSTEM USING THIS
rsetup
systemctl set-default multi-user.target # Switch boot from graphic.target to multi-user.target
systemctl isolate multi-user.target # Switch from graphic.target to multi-user.target now (may log you off)
timedatectl set-timezone Europe/Prague # Set timezone
sudo -i
apt install neofetch inxi # system information
apt install mc nmap netdiscover ncdu mtr # midnight commander, network scanners, better disk usage, better traceroute
apt install build-essential # gcc and basic libs (parts are already installed, i think c++ and standard library are not)
apt install podman # podman-compose is not present :-(
apt install sysbench iperf3 speedtest-cli # some benchmarks
apt install v4l-utils gstreamer1.0-tools gstreamer1.0-plugins-good gstreamer1.0-rockchip1 # video related stuff on CLI version (incomplete list)
apt install imagemagick
Configuring Wifi (with WPA2-PSK/WPA3-PSK on router)
1
sudo nmcli d wifi connect ***SSID** password "***PASSWORD***"
Nothing happens. Times out after 30s or so.
1
rock@rock-3c:~$ nmcli con show
1
2
3
NAME UUID TYPE DEVICE
Wired connection 1 35c25ad5-9964-3d4a-9d73-705b74068b44 ethernet eth0
***SSID*** 61c16be6-1cdf-4317-8030-a99db42ab5ea wifi --
1
root@rock-3c:~# nmcli conn edit 61c16be6-1cdf-4317-8030-a99db42ab5ea
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
===| nmcli interactive connection editor |===
Editing existing '802-11-wireless' connection: '61c16be6-1cdf-4317-8030-a99db42ab5ea'
Type 'help' or '?' for available commands.
Type 'print' to show all the connection properties.
Type 'describe [<setting>.<prop>]' for detailed property description.
You may edit the following settings: connection, 802-11-wireless (wifi), 802-11-wireless-security (wifi-sec), 802-1x, ethtool, match, ipv4, ipv6, hostname, tc, proxy
nmcli> print wifi-sec.key-mgmt
802-11-wireless-security.key-mgmt: sae
nmcli> describe wifi-sec.key-mgmt
=== [key-mgmt] ===
[NM property description]
Key management used for the connection. One of "none" (WEP), "ieee8021x" (Dynamic WEP), "wpa-psk" (infrastructure WPA-PSK), "sae" (SAE), "owe" (Opportunistic Wireless Encryption), "wpa-eap" (WPA-Enterprise) or "wpa-eap-suite-b-192" (WPA3-Enterprise Suite B). This property must be set for any Wi-Fi connection that uses security.
nmcli> set wifi-sec.key-mgmt wpa-psk
nmcli> verify
Verify connection: OK
nmcli> save persistent
Connection '***SSID***' (61c16be6-1cdf-4317-8030-a99db42ab5ea) successfully updated.
^D
1
root@rock-3c:~# nmcli d wifi connect ***SSID***
1
Device 'wlan0' successfully activated with '61c16be6-1cdf-4317-8030-a99db42ab5ea'.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
[connection]
id=***SSID***
uuid=61c16be6-1cdf-4317-8030-a99db42ab5ea
type=wifi
interface-name=wlan0
permissions=
timestamp=1719577473
[wifi]
mac-address-blacklist=
mode=infrastructure
seen-bssids=D4:01:C3:2F:51:0C;
ssid=***SSID***
[wifi-security]
auth-alg=open
key-mgmt=wpa-psk
psk=***PASSWORD***
[ipv4]
dns-search=
method=auto
[ipv6]
addr-gen-mode=stable-privacy
dns-search=
method=auto
[proxy]
Setting wifi country
I don’t know why, this works automagically. However can be done via rsetup
and location config.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
root@rock-3c:/etc/wpa_supplicant# iw reg get
global
country CZ: DFS-ETSI
(2400 - 2483 @ 40), (N/A, 20), (N/A)
(5150 - 5250 @ 80), (N/A, 23), (N/A), NO-OUTDOOR, AUTO-BW
(5250 - 5350 @ 80), (N/A, 20), (0 ms), NO-OUTDOOR, DFS, AUTO-BW
(5470 - 5725 @ 160), (N/A, 26), (0 ms), DFS
(5725 - 5875 @ 80), (N/A, 13), (N/A)
(57000 - 66000 @ 2160), (N/A, 40), (N/A)
phy#0 (self-managed)
country 00: DFS-UNSET
(2380 - 2520 @ 40), (N/A, 20), (N/A)
(5140 - 5980 @ 80), (N/A, 20), (N/A)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
root@rock-3c:/etc/wpa_supplicant# wpa_cli -i wlan0
wpa_cli v2.10
Copyright (c) 2004-2022, Jouni Malinen <[email protected]> and contributors
This software may be distributed under the terms of the BSD license.
See README for more details.
Interactive mode
> get country
CZ
>
Install system on eMMC (while running from SD card)
I have adapter from microSD to eMMC, however it did not work. I installed Linux to SD card first.
Two weeks later, I tried snapping eMMC card directly onto Radxa board, test if Linux can see it - yes it does - and then I downloaded image and copied it to eMMC card.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
root@rock-3c:/sys/class/mmc_host/mmc0/device# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
mtdblock0 31:0 0 16M 0 disk
mmcblk1 179:0 0 29.8G 0 disk
├─mmcblk1p1 179:1 0 16M 0 part /config
├─mmcblk1p2 179:2 0 300M 0 part
└─mmcblk1p3 179:3 0 29.5G 0 part /
mmcblk0 179:32 0 14.6G 0 disk
mmcblk0boot0 179:64 0 4M 1 disk
mmcblk0boot1 179:96 0 4M 1 disk
zram0 254:0 0 991.8M 0 disk [SWAP]
rock@rock-3c:~$ curl -O -L https://github.com/radxa-build/rock-3c/releases/download/b42/rock-3c_debian_bullseye_xfce_b42.img.xz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 1157M 100 1157M 0 0 10.1M 0 0:01:53 0:01:53 --:--:-- 1917k
rock@rock-3c:~$ sudo -i
[sudo] password for rock:
root@rock-3c:~# xz -dc /home/rock/rock-3c_debian_bullseye_xfce_b42.img.xz | dd of=/dev/mmcblk0 bs=4M status=progress
4844584960 bytes (4.8 GB, 4.5 GiB) copied, 191 s, 25.4 MB/s
0+582081 records in
0+582081 records out
4858610688 bytes (4.9 GB, 4.5 GiB) copied, 193.148 s, 25.2 MB/s
root@rock-3c:~# poweroff
Connection to rock-3c.local closed by remote host.
Connection to rock-3c.local closed.
Hardware info
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
root@rock-3c:/mnt# neofetch
_,met$$$$$gg. root@rock-3c
,g$$$$$$$$$$$$$$$P. ------------
,g$$P" """Y$$.". OS: Debian GNU/Linux 11 (bullseye) aarch64
,$$P' `$$$. Host: Radxa ROCK3 Model C
',$$P ,ggs. `$$b: Kernel: 5.10.160-26-rk356x
`d$$' ,$P"' . $$$ Uptime: 1 hour, 13 mins
$$P d$' , $$P Packages: 1208 (dpkg)
$$: $$. - ,d$$' Shell: bash 5.1.4
$$; Y$b._ _,d$P' CPU: (4) @ 1.416GHz
Y$$. `.`"Y$$$$P"' Memory: 140MiB / 1983MiB
`$$b "-.__
`Y$$
`Y$$.
`$$b.
`Y$$b.
`"Y$b._
`"""
root@rock-3c:/mnt# inxi -v8
System: Host: rock-3c Kernel: 5.10.160-26-rk356x aarch64 bits: 64 compiler: gcc v: 10.2.1
parameters: root=UUID=2d672a9c-e1fe-445b-8686-cdb8458acade console=ttyFIQ0,1500000n8 quiet splash loglevel=4 rw
earlycon consoleblank=0 console=tty1 coherent_pool=2M irqchip.gicv3_pseudo_nmi=0 cgroup_enable=cpuset
cgroup_memory=1 cgroup_enable=memory swapaccount=1
Console: tty 0 DM: LightDM 1.26.0 Distro: Debian GNU/Linux 11 (bullseye)
Machine: Type: ARM Device System: Radxa ROCK3 Model C details: N/A serial: 7618c0677887ed8a
Memory: RAM: total: 1.94 GiB used: 233 MiB (11.7%)
RAM Report: unknown-error: Unknown dmidecode error. Unable to generate data.
PCI Slots: ARM: No ARM data found for this feature.
CPU: Info: Quad Core model: N/A variant: cortex-a55 bits: 64 type: MCP arch: ARMv8 family: 8 model-id: 2 stepping: N/A
bogomips: 0
Speed: 1416 MHz min/max: 408/1416 MHz Core speeds (MHz): 1: 1416 2: 1416 3: 1416 4: 1416
Features: aes asimd asimddp asimdhp asimdrdm atomics cpuid crc32 dcpop evtstrm fp fphp lrcpc pmull sha1 sha2
Vulnerabilities: Type: itlb_multihit status: Not affected
Type: l1tf status: Not affected
Type: mds status: Not affected
Type: meltdown status: Not affected
Type: mmio_stale_data status: Not affected
Type: retbleed status: Not affected
Type: spec_store_bypass status: Not affected
Type: spectre_v1 mitigation: __user pointer sanitization
Type: spectre_v2 status: Not affected
Type: srbds status: Not affected
Type: tsx_async_abort status: Not affected
Graphics: Device-1: display-subsystem driver: rockchip_drm v: N/A bus ID: N/A chip ID: rockchip:display-subsystem
class ID: display-subsystem
Device-2: mali-bifrost driver: mali v: N/A bus ID: N/A chip ID: arm:fde60000 class ID: gpu
Device-3: rk3568-dw-hdmi driver: dwhdmi_rockchip v: N/A bus ID: N/A chip ID: rockchip:fe0a0000 class ID: hdmi
Display: server: X.org 1.20.11 driver: loaded: modesetting tty: 168x74
Message: Advanced graphics data unavailable in console for root.
Audio: Device-1: rk3568-dw-hdmi driver: dwhdmi_rockchip bus ID: N/A chip ID: rockchip:fe0a0000 class ID: hdmi
Device-2: simple-audio-card driver: asoc_simple_card bus ID: N/A chip ID: simple-audio-card:hdmi-sound
class ID: hdmi-sound
Device-3: simple-audio-card driver: asoc_simple_card bus ID: N/A chip ID: simple-audio-card:rk809-sound
class ID: rk809-sound
Sound Server: ALSA v: k5.10.160-26-rk356x
Network: Device-1: rk3568-gmac driver: rk_gmac_dwmac v: N/A port: N/A bus ID: N/A chip ID: rockchip:fe010000
class ID: ethernet
IF: eth0 state: up speed: 100 Mbps duplex: full mac: 52:bb:3d:37:87:75
IP v4: 192.168.68.16/24 type: dynamic noprefixroute scope: global broadcast: 192.168.68.255
IP v6: fe80::f863:9af0:38a:7839/64 type: noprefixroute scope: link
Device-2: wlan-platdata driver: wlan_platdata v: N/A bus ID: N/A chip ID: wlan-platdata:wireless-wlan
class ID: wireless-wlan
IF-ID-1: wlan0 state: up mac: 98:03:cf:d2:33:22
IP v4: 192.168.68.13/24 type: dynamic noprefixroute scope: global broadcast: 192.168.68.255
IP v6: fe80::c48e:c737:d0a3:4c49/64 type: noprefixroute scope: link
WAN IP: 89.102.37.225
Bluetooth: Message: No Bluetooth data was found.
Logical: Message: No LVM data was found.
RAID: Message: No RAID data was found.
Drives: Local Storage: total: 44.4 GiB used: 9.84 GiB (22.2%)
SMART Message: Required tool smartctl not installed. Check --recommends
ID-1: /dev/mmcblk0 maj-min: 179:0 model: AJTD4R size: 14.56 GiB block size: physical: 512 B logical: 512 B
rotation: SSD serial: 0x416095bf rev: 0x8 scheme: GPT
ID-2: /dev/sdb maj-min: 8:16 type: USB vendor: Generic model: USB3.0 CRW -SD size: 29.84 GiB block size:
physical: 512 B logical: 512 B serial: 201404081410 rev: 1.00 scheme: GPT
Message: No Optical or Floppy data was found.
Partition: ID-1: / raw size: 14.24 GiB size: 13.93 GiB (97.84%) used: 4.09 GiB (29.3%) fs: ext4 block size: 4096 B
dev: /dev/mmcblk0p3 maj-min: 179:3 label: rootfs uuid: 2d672a9c-e1fe-445b-8686-cdb8458acade
ID-2: /boot/efi raw size: 300 MiB size: 299.4 MiB (99.80%) used: 4 KiB (0.0%) fs: vfat block size: 512 B
dev: /dev/mmcblk0p2 maj-min: 179:2 label: boot uuid: 0B9B-0C84
ID-3: /config raw size: 16 MiB size: 15.7 MiB (98.34%) used: 1 KiB (0.0%) fs: vfat block size: 512 B
dev: /dev/mmcblk0p1 maj-min: 179:1 label: config uuid: 0B98-E528
ID-4: /mnt/usb raw size: 29.52 GiB size: 28.97 GiB (98.15%) used: 5.75 GiB (19.9%) fs: ext4 block size: 4096 B
dev: /dev/sdb3 maj-min: 8:19 label: rootfs uuid: 2d672a9c-e1fe-445b-8686-cdb8458acade
Swap: Kernel: swappiness: 100 (default 60) cache pressure: 500 (default 100)
ID-1: swap-1 type: zram size: 991.8 MiB used: 1.2 MiB (0.1%) priority: 100 dev: /dev/zram0
Unmounted: ID-1: /dev/sdb1 maj-min: 8:17 size: 16 MiB fs: vfat label: config uuid: 0B98-E528
ID-2: /dev/sdb2 maj-min: 8:18 size: 300 MiB fs: vfat label: boot uuid: 0B9B-0C84
USB: Hub-1: 1-0:1 info: Full speed (or root) Hub ports: 1 rev: 2.0 speed: 480 Mb/s chip ID: 1d6b:0002 class ID: 0900
Hub-2: 2-0:1 info: Full speed (or root) Hub ports: 1 rev: 2.0 speed: 480 Mb/s chip ID: 1d6b:0002 class ID: 0900
Device-1: 2-1:2 info: Realtek Card reader type: Mass Storage driver: usb-storage interfaces: 1 rev: 2.1
speed: 480 Mb/s chip ID: 0bda:0326 class ID: 0806 serial: 201404081410
Hub-3: 3-0:1 info: Full speed (or root) Hub ports: 1 rev: 1.1 speed: 12 Mb/s chip ID: 1d6b:0001 class ID: 0900
Hub-4: 4-0:1 info: Full speed (or root) Hub ports: 1 rev: 1.1 speed: 12 Mb/s chip ID: 1d6b:0001 class ID: 0900
Hub-5: 5-0:1 info: Full speed (or root) Hub ports: 1 rev: 2.0 speed: 480 Mb/s chip ID: 1d6b:0002 class ID: 0900
Hub-6: 6-0:1 info: Full speed (or root) Hub ports: 1 rev: 3.0 speed: 5 Gb/s chip ID: 1d6b:0003 class ID: 0900
Hub-7: 7-0:1 info: Full speed (or root) Hub ports: 1 rev: 2.0 speed: 480 Mb/s chip ID: 1d6b:0002 class ID: 0900
Hub-8: 8-0:1 info: Full speed (or root) Hub ports: 1 rev: 3.0 speed: 5 Gb/s chip ID: 1d6b:0003 class ID: 0900
Sensors: System Temperatures: cpu: 38.9 C mobo: N/A
Fan Speeds (RPM): N/A
Repos: Packages: apt: 1208 lib: 716
Active apt repos in: /etc/apt/sources.list
1: deb https://deb.debian.org/debian bullseye main contrib non-free
Active apt repos in: /etc/apt/sources.list.d/bullseye-backports.list
1: deb https://deb.debian.org/debian bullseye-backports main contrib non-free
Active apt repos in: /etc/apt/sources.list.d/bullseye-security.list
1: deb https://deb.debian.org/debian-security bullseye-security main contrib non-free
Active apt repos in: /etc/apt/sources.list.d/bullseye-updates.list
1: deb https://deb.debian.org/debian bullseye-updates main contrib non-free
Active apt repos in: /etc/apt/sources.list.d/radxa-rockchip.list
1: deb [signed-by=/usr/share/keyrings/radxa-archive-keyring.gpg] https://radxa-repo.github.io/bullseye rockchip-bullseye main
Active apt repos in: /etc/apt/sources.list.d/radxa.list
1: deb [signed-by=/usr/share/keyrings/radxa-archive-keyring.gpg] https://radxa-repo.github.io/bullseye bullseye main
Active apt repos in: /etc/apt/sources.list.d/vscodium.list
1: deb [signed-by=/usr/share/keyrings/vscodium-archive-keyring.gpg] https://download.vscodium.com/debs vscodium main
Processes: CPU top: 5 of 147
1: cpu: 4.9% command: rknn_server pid: 6512 mem: 1.06 MiB (0.0%)
2: cpu: 0.7% command: systemd pid: 1 mem: 9.12 MiB (0.4%)
3: cpu: 0.2% command: dbus-daemon pid: 379 mem: 4.14 MiB (0.2%)
4: cpu: 0.1% command: networkmanager pid: 381 mem: 12.0 MiB (0.6%)
5: cpu: 0.1% command: [kworker/0:3-events] pid: 43282 mem: 0.00 MiB (0.0%)
Memory top: 5 of 147
1: mem: 12.0 MiB (0.6%) command: networkmanager pid: 381 cpu: 0.1%
2: mem: 9.48 MiB (0.4%) command: systemd-journald pid: 4596 cpu: 0.0%
3: mem: 9.12 MiB (0.4%) command: systemd pid: 1 cpu: 0.7%
4: mem: 8.13 MiB (0.4%) command: wpa_supplicant pid: 404 cpu: 0.0%
5: mem: 8.05 MiB (0.4%) command: systemd pid: 2178 cpu: 0.0%
Info: Processes: 147 Uptime: 1h 11m Init: systemd v: 247 runlevel: 53 target: multi-user.target Compilers: gcc: 10.2.1
alt: 10 Shell: Bash (sudo) v: 5.1.4 running in: tty 0 (SSH) inxi: 3.3.01
Speed tests
Wi-Fi speed test
1
iperf3 -c 192.168.68.10 # With LAN disconnected
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Connecting to host 192.168.68.10, port 5201
[ 5] local 192.168.68.13 port 55398 connected to 192.168.68.10 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 29.0 MBytes 244 Mbits/sec 0 676 KBytes
[ 5] 1.00-2.00 sec 30.0 MBytes 252 Mbits/sec 0 691 KBytes
[ 5] 2.00-3.00 sec 32.5 MBytes 273 Mbits/sec 0 727 KBytes
[ 5] 3.00-4.00 sec 27.5 MBytes 231 Mbits/sec 9 605 KBytes
[ 5] 4.00-5.00 sec 32.5 MBytes 273 Mbits/sec 0 667 KBytes
[ 5] 5.00-6.00 sec 28.8 MBytes 241 Mbits/sec 0 703 KBytes
[ 5] 6.00-7.00 sec 32.5 MBytes 273 Mbits/sec 0 703 KBytes
[ 5] 7.00-8.00 sec 30.0 MBytes 252 Mbits/sec 0 703 KBytes
[ 5] 8.00-9.00 sec 31.2 MBytes 262 Mbits/sec 0 772 KBytes
[ 5] 9.00-10.00 sec 30.0 MBytes 252 Mbits/sec 0 772 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 304 MBytes 255 Mbits/sec 9 sender
[ 5] 0.00-10.02 sec 302 MBytes 253 Mbits/sec receiver
iperf Done.
LAN speed test
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Connecting to host 192.168.68.10, port 5201
[ 5] local 192.168.68.13 port 41131 connected to 192.168.68.10 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 114 MBytes 958 Mbits/sec 0 414 KBytes
[ 5] 1.00-2.00 sec 112 MBytes 941 Mbits/sec 0 414 KBytes
[ 5] 2.00-3.00 sec 112 MBytes 941 Mbits/sec 0 484 KBytes
[ 5] 3.00-4.00 sec 113 MBytes 945 Mbits/sec 0 484 KBytes
[ 5] 4.00-5.00 sec 112 MBytes 938 Mbits/sec 0 484 KBytes
[ 5] 5.00-6.00 sec 112 MBytes 942 Mbits/sec 0 506 KBytes
[ 5] 6.00-7.00 sec 112 MBytes 942 Mbits/sec 152 467 KBytes
[ 5] 7.00-8.00 sec 112 MBytes 942 Mbits/sec 0 478 KBytes
[ 5] 8.00-9.00 sec 112 MBytes 940 Mbits/sec 0 495 KBytes
[ 5] 9.00-10.00 sec 111 MBytes 934 Mbits/sec 0 525 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 1.10 GBytes 943 Mbits/sec 152 sender
[ 5] 0.00-10.01 sec 1.10 GBytes 940 Mbits/sec receiver
iperf Done.
Sysbench
1
sysbench cpu run --time=60 --threads=4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
sysbench 1.0.20 (using system LuaJIT 2.1.0-beta3)
Running the test with following options:
Number of threads: 4
Initializing random number generator from current time
Prime numbers limit: 10000
Initializing worker threads...
Threads started!
CPU speed:
events per second: 3303.25
General statistics:
total time: 60.0008s
total number of events: 198208
Latency (ms):
min: 1.19
avg: 1.21
max: 18.86
95th percentile: 1.25
sum: 239827.32
Threads fairness:
events (avg/stddev): 49552.0000/612.06
execution time (avg/stddev): 59.9568/0.01
eMMC speed
1
2
3
4
5
root@rock-3c:/mnt# hdparm -tT /dev/mmcblk0
/dev/mmcblk0:
Timing cached reads: 1622 MB in 2.00 seconds = 811.29 MB/sec
Timing buffered disk reads: 504 MB in 3.01 seconds = 167.48 MB/sec
Power consumption
Task | Amps | Watts |
---|---|---|
idle | 0.25 | 1.3 |
sysbench | 0.45 | 2.3 |
during boot | 0.65 | 3.3 |
Configuring FTP
Because using SFTP is somewhat slow and my devices run behind NAT, not being accessible from internet, I don’t care much about security. But SFTP uses encryption, that may slow down file transfers.
TODO: verify and make this section better.
Also mention Linux ftp clients (ncftp?)
1
2
apt install vsftpd
systemctl enable --now vsftpd.service
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
ncftp -u pavel marten.local
NcFTP 3.2.7 (Jan 01, 2024) by Mike Gleason (http://www.NcFTP.com/contact/).
Copyright (c) 1992-2018 by Mike Gleason.
All rights reserved.
Connecting to 192.168.68.10...
(vsFTPd 3.0.5)
Logging in...
Password requested by 192.168.68.10 for user "pavel".
Please specify the password.
Password: ********
Login successful.
Logged in to marten.local.
ncftp /home/pavel >
Configuring camera
Official wiki dedicated to camera is not the most helpful.
Rsetup
My camera is Waveshare RPi Camera (F), Supports Night Vision, Adjustable-Focus which should be compatible with RPI camera v1.3.
Camera connected to Raspberry Pi 3B
In rsetup
config utilities, select Overlays
, confirm warning, Manage Overlays
, wait a second, select [*] Enable Raspberry Pi Camera v1.3
among the options at the bottom of the list. Wait few minutes for system upgrade, kernel upgrade, optional kernel modules to compile and then reboot the system. Now you should see that file /dev/video0
exists.
Trying a few commands
This lists pixel formats
1
v4l2-ctl -d0 --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
Type: Video Capture Multiplanar
[0]: 'UYVY' (UYVY 4:2:2)
Size: Stepwise 32x32 - 2592x1944 with step 8/8
[1]: '422P' (Planar YUV 4:2:2)
Size: Stepwise 32x32 - 2592x1944 with step 8/8
[2]: 'NV16' (Y/CbCr 4:2:2)
Size: Stepwise 32x32 - 2592x1944 with step 8/8
[3]: 'NV61' (Y/CrCb 4:2:2)
Size: Stepwise 32x32 - 2592x1944 with step 8/8
[4]: 'YM16' (Planar YUV 4:2:2 (N-C))
Size: Stepwise 32x32 - 2592x1944 with step 8/8
[5]: 'NV21' (Y/CrCb 4:2:0)
Size: Stepwise 32x32 - 2592x1944 with step 8/8
[6]: 'NV12' (Y/CbCr 4:2:0)
Size: Stepwise 32x32 - 2592x1944 with step 8/8
[7]: 'NM21' (Y/CrCb 4:2:0 (N-C))
Size: Stepwise 32x32 - 2592x1944 with step 8/8
[8]: 'NM12' (Y/CbCr 4:2:0 (N-C))
Size: Stepwise 32x32 - 2592x1944 with step 8/8
[9]: 'YU12' (Planar YUV 4:2:0)
Size: Stepwise 32x32 - 2592x1944 with step 8/8
[10]: 'YM24' (Planar YUV 4:4:4 (N-C))
Size: Stepwise 32x32 - 2592x1944 with step 8/8
This one lists some controls, unlike Raspberry 3B, there is no bitrate and there is no H264 compressed video.
1
rock@rock-3c:/boot$ v4l2-ctl -d0 -l
User Controls
white_balance_automatic 0x0098090c (bool) : default=0 value=0
exposure 0x00980911 (int) : min=4 max=1964 step=1 default=1000 value=89
gain_automatic 0x00980912 (bool) : default=0 value=0
horizontal_flip 0x00980914 (bool) : default=0 value=0 flags=modify-layout
vertical_flip 0x00980915 (bool) : default=0 value=0 flags=modify-layout
Camera Controls
auto_exposure 0x009a0901 (menu) : min=0 max=1 default=1 value=1
Image Source Controls
vertical_blanking 0x009e0901 (int) : min=24 max=30823 step=1 default=24 value=24
horizontal_blanking 0x009e0902 (int) : min=252 max=252 step=1 default=252 value=252 flags=read-only
analogue_gain 0x009e0903 (int) : min=16 max=1023 step=1 default=32 value=16
Image Processing Controls
link_frequency 0x009f0901 (intmenu): min=0 max=3 default=0 value=0
pixel_rate 0x009f0902 (int64) : min=87500000 max=87500000 step=1 default=87500000 value=87500000 flags=read-only
I can’t get camera to work with ffmpeg
, both command fail with the same error:
1
2
ffmpeg -f video4linux2 -s 800x600 -r 20 -i /dev/video0 -codec:v h264 -b:v 2048k out.mkv
ffmpeg -f v4l2 -list_formats all -i /dev/video0
[video4linux2,v4l2 @ 0xaaab02ad9220] Not a video capture device.
/dev/video0: No such device
Gstreamer
This command should work and as of 2024-09-30 it works exactly once and works after updating system and kernel modules in early November
1
gst-launch-1.0 v4l2src device=/dev/video0 ! 'video/x-raw,format=UYVY,width=1280,height=720,framerate=30/1' ! mpph264enc ! filesink location=capture.h264
This command can fix or cause some errors:
1
media-ctl --reset
Capturing JPEGs seems impossible with automatic gain control (it’s likely needed to write program that enables v4l2 input, waits few seconds for an automatic exposure, reads buffer and saves JPEG image)
Capturing video works once after, next attempt waits infinitely and it’s likely error of video4linux libraries or kernel.
My discord message, let’s see if I can get answer.
There were some kernel modules updates and video libraries updates during Octobeer (
rsetup -> System -> System Update
) so as of 2024-11-05 gstreamer can record videos or capture images multiple time.
Troubleshooting
Wi-Fi (solved)
Autoconnect does not work on startup. Technically wifi is not present at all. No idea what happened.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
rock@rock-3c:~$ sudo -i
[sudo] password for rock:
root@rock-3c:~# nmcli -f name,autoconnect connection
NAME AUTOCONNECT
Wired connection 1 yes
SealClub5 yes
root@rock-3c:~# nmcli device
DEVICE TYPE STATE CONNECTION
eth0 ethernet connected Wired connection 1
lo loopback unmanaged --
root@rock-3c:~# rfkill
ID TYPE DEVICE SOFT HARD
0 bluetooth bt_default blocked unblocked
1 bluetooth hci0 unblocked unblocked
root@rock-3c:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 52:bb:3d:37:87:75 brd ff:ff:ff:ff:ff:ff
inet 192.168.68.16/24 brd 192.168.68.255 scope global dynamic noprefixroute eth0
valid_lft 489sec preferred_lft 489sec
inet6 fe80::f863:9af0:38a:7839/64 scope link noprefixroute
valid_lft forever preferred_lft forever
rock@rock-3c:~$ sudo -i
[sudo] password for rock:
root@rock-3c:~# nmcli d wifi connect ******
Error: No Wi-Fi device found.
Solution: This is caused by running apt upgrade
rather than using rsetup
and missing kernel modules.
mDNS client (unresolved)
1
2
root@rock-3c:~# ping marten.local
ping: marten.local: Name or service not known
Solution: None?
Camera
Solved by updating distro in early November.
Conclusion
After the evaluation, the Radxa ROCK 3C presents a mixed bag compared to the much older Raspberry Pi 3B and it’s highlights are significantly faster network and storage.
Strengths:
- Connectivity: WiFi 6 support and 1Gbit ethernet.
- Storage Speed: Faster eMMC storage compared to the SD card.
- Price-Performance Ratio: Great value when purchased from Arace Tech, overpriced from local resellers (up to triple the price). Considering price close to Raspberry Pi 5 2GB, it makes no sense.
Weaknesses:
- Support and Community: Limited official support and small community make troubleshooting hard.
- Software Stability: Issues like video capture working only once per reboot, non-functional mDNS.
- Documentation: Some documentation exists, but it’s quite horrible (missing pages, wrong links…).
Changelog
- 2024-11-05: Mentioned that video capture works after updating packages
- 2024-11-14: Shortened conclusion
- 2024-12-01: Images, minor changes
Links
- Product page - tech specs, etc.
- Arace Tech Eshop
- Explaining computers youtube video
- Official docs - getting started
- GitHub - official images
- Hardware interface description
- GPIOD, for Rock5B, but it’s the same, pins are different