电子说
首先感谢发烧友和和合众恒跃提供的这么好的机会,让我可以近距离接触并使用到高端的 RK3588 智能盒。这次,我想在这款设备上实现具有 Local AI 功能的工业用照明控制器。
今天上午收到了快递,就迫不及待的拍照留念。
再看一些和我手机 Magic 3 大小的对比图。AI300G 整体尺寸,长款和 Magic 3大小差不对,高度略微比身份证的宽度窄一点点。
硬件的靓照看了之后,下面就到了基本功能测试环节,这里主要参考的文档是《HZHY-AI300G 测试手册》。因为我本次的项目主要使用的接口是网口和USB口。
这里我重点测试下网口速度以及 USB 功能。而软件方便,我本次的项目开发会涉及到应用层和驱动层的开发,这里我也简单分别写一个 hello world 的 APP 和 KO。
因为暂时没有何时的 HDMI 显示器,这里就从 DBG 口登陆测试,首先按照下图接好硬件,串口波特率选择 115200。
上电,就会看到类似下面的打印:
DDR d5483af87d cym 23/11/23-16:15:24,fwver: v1.15
LPDDR4X, 1600MHz
channel[0] BW=16 Col=10 Bk=8 CS0 Row=16 CS=1 Die BW=16 Size=1024MB
channel[1] BW=16 Col=10 Bk=8 CS0 Row=16 CS=1 Die BW=16 Size=1024MB
channel[2] BW=16 Col=10 Bk=8 CS0 Row=16 CS=1 Die BW=16 Size=1024MB
channel[3] BW=16 Col=10 Bk=8 CS0 Row=16 CS=1 Die BW=16 Size=1024MB
Manufacturer ID:0x13
CH0 RX Vref:28.9%, TX Vref:22.8%,0.0%
CH1 RX Vref:28.5%, TX Vref:25.8%,0.0%
CH2 RX Vref:30.5%, TX Vref:22.8%,0.0%
CH3 RX Vref:30.1%, TX Vref:22.8%,0.0%
change to F1: 528MHz
change to F2: 1068MHz
change to F3: 1560MHz
change to F0: 1600MHz
out
U-Boot SPL board init
U-Boot SPL 2017.09-ge4e124926e-230922 #lxh (Sep 25 2023 - 10:58:38), fwver: v1.13
unknown raw ID 0 0 0
unrecognized JEDEC id bytes: 00, 00, 00
Trying to boot from MMC2
MMC: no card present
mmc_init: -123, time 2
spl: mmc init failed with error: -123
Trying to boot from MMC1
SPL: A/B-slot: _a, successful: 0, tries-remain: 7
Trying fit image at 0x4000 sector
## Verified-boot: 0
## Checking atf-1 0x00040000 ... sha256(2e8446f969...) + OK
## Checking uboot 0x00200000 ... sha256(e56d1a10f2...) + OK
## Checking fdt 0x00345598 ... sha256(a434b1c4fe...) + OK
## Checking atf-2 0xff100000 ... sha256(9f75e6ec37...) + OK
## Checking atf-3 0x000f0000 ... sha256(c80587de50...) + OK
## Checking optee 0x08400000 ... sha256(4b2d406bfc...) + OK
Jumping to U-Boot(0x00200000) via ARM Trusted Firmware(0x00040000)
Total: 147.10/347.522 ms
INFO: Preloader serial: 2
NOTICE: BL31: v2.3():v2.3-662-g4acbe711b-dirty:finley.xiao, fwver: v1.44
NOTICE: BL31: Built : 16:44:24, Nov 7 2023
INFO: spec: 0x1
INFO: code: 0x88
INFO: ext 32k is not valid
INFO: ddr: stride-en 4CH
INFO: GICv3 without legacy support detected.
INFO: ARM GICv3 driver initialized in EL3
INFO: valid_cpu_msk=0xff bcore0_rst = 0x0, bcore1_rst = 0x0
INFO: l3 cache partition cfg-0
INFO: system boots from cpu-hwid-0
INFO: idle_st=0x21fff, pd_st=0x11fff9, repair_st=0xfff70001
INFO: dfs DDR fsp_params[0].freq_mhz= 1596MHz
INFO: dfs DDR fsp_params[1].freq_mhz= 528MHz
INFO: dfs DDR fsp_params[2].freq_mhz= 1068MHz
INFO: dfs DDR fsp_params[3].freq_mhz= 1560MHz
INFO: BL31: Initialising Exception Handling Framework
INFO: BL31: Initializing runtime services
INFO: BL31: Initializing BL32
I/TC:
I/TC: OP-TEE version: 3.13.0-752-g62aa10b78 #hisping.lin (gcc version 10.2.1 20201103 (GNU Toolchain for the A-profile Architecture 10.2-2020.11 (arm-10.16))) #2 Mon Sep 25 1
0:04:34 CST 2023 aarch64, fwver: v1.15
I/TC: Primary CPU initializing
I/TC: Primary CPU switching to normal world boot
INFO: BL31: Preparing for EL3 exit to normal world
INFO: Entry point address = 0x200000
INFO: SPSR = 0x3c9
U-Boot 2017.09_HZHY-AI300G_v1.0.0_20240417-231011-dirty #hzhy (May 13 2024 - 19:32:35 +0800)
Model: Rockchip RK3588 Evaluation Board
MPIDR: 0x81000000
PreSerial: 2, raw, 0xfeb50000
DRAM: 4 GiB
Sysmem: init
Relocation Offset: eda18000
Relocation fdt: eb9fa260 - eb9fecc8
CR: M/C/I
Using default environment
optee api revision: 2.0
mmc@fe2c0000: 1, mmc@fe2e0000: 0
Bootdev(atags): mmc 0
MMC0: HS400 Enhanced Strobe, 200Mhz
PartType: EFI
TEEC: Waring: Could not find security partition
DM: v2
boot mode: None
RESC: 'boot', blk@0x0001c753
resource: sha256+
FIT: no signed, no conf required
DTB: rk-kernel.dtb
HASH(c): OK
I2c0 speed: 100000Hz
vsel-gpios- not found!
en-gpios- not found!
vdd_cpu_big0_s0 800000 uV
vsel-gpios- not found!
en-gpios- not found!
vdd_cpu_big1_s0 800000 uV
I2c1 speed: 100000Hz
vsel-gpios- not found!
en-gpios- not found!
vdd_npu_s0 800000 uV
spi2: RK806: 2
ON=0x40, OFF=0x00
vdd_gpu_s0 750000 uV
vdd_cpu_lit_s0 750000 uV
vdd_log_s0 750000 uV
vdd_vdenc_s0 init 750000 uV
vdd_ddr_s0 850000 uV
serdes_power_init failed to get serdes misc device
get vp0 plane mask:0x5, primary id:2, cursor_plane:-1, from dts
get vp1 plane mask:0xa, primary id:3, cursor_plane:-1, from dts
get vp2 plane mask:0x140, primary id:8, cursor_plane:-1, from dts
get vp3 plane mask:0x280, primary id:9, cursor_plane:-1, from dts
Could not find baseparameter partition
Model: HZHY-AI300G
MPIDR: 0x81000000
Minidump: init...
Rockchip UBOOT DRM driver version: v1.0.1
使用 root 和 root 登陆系统,先检查下UBoot 和 内核的版本信息:
root@arm64-ubuntu:~# cat /proc/cmdline
storagemedia=emmc androidboot.storagemedia=emmc androidboot.mode=normal uboot_version=U-Boot 2017.09_HZHY-AI300G_v1.0.0_2024041 androidboot.verifiedbootstate=orange rw rootwait earlycon=uart8250,mmio32,0xfeb50000 console=ttyFIQ0 irqchip.gicv3_pseudo_nmi=0 root=PARTUUID=614e0000-0000 rcupdate.rcu_expedited=1 rcu_nocbs=all androidboot.fwver=ddr-v1.15-d5483af87d,spl-v1.13,bl31-v1.44,bl32-v1.15,uboot-ZHY-AI300G-05/13/2024
root@arm64-ubuntu:~# cat /proc/version
Linux version 5.10.198_HZHY-AI300G_v1.0.5_20240417 (hzhy@ubuntu) (aarch64-none-linux-gnu-gcc (GNU Toolchain for the A-profile Architecture 10.3-2021.07 (arm-10.29)) 10.3.1 20210621, GNU ld (GNU Toolchain for the A-profile Architecture 10.3-2021.07 (arm-10.29)) 2.36.1.20210621) #8 SMP Fri May 31 16:56:42 CST 2024
再看下设备树和 rootfs 的版本信息:
root@arm64-ubuntu:~# cat /sys/firmware/devicetree/base/version
v1.0.6_20240531
root@arm64-ubuntu:~# cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.6 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.6 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
ROOTFS_VERSION=HZHY-AI300G v1.0.4_20240531
准备好了不?开始真正的测试环节:
root@arm64-ubuntu:~# ifconfig
docker0: flags=4099< UP,BROADCAST,MULTICAST > mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255
ether 02:42:77:14:a1:fb txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth0: flags=4099< UP,BROADCAST,MULTICAST > mtu 1500
ether 5a:6f:7b:1b:c9:6b txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 83
eth1: flags=4099< UP,BROADCAST,MULTICAST > mtu 1500
ether 56:6f:7b:1b:c9:6b txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 109
lo: flags=73< UP,LOOPBACK,RUNNING > mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10< host >
loop txqueuelen 1000 (Local Loopback)
RX packets 264 bytes 20541 (20.5 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 264 bytes 20541 (20.5 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
使用 rfkill unblock 0 ,然后 ifconfig wlxc8fe0ff45177 up 开启 wifi 后还是不行,
使用 iw 检测网卡(竟然崩溃了):
root@arm64-ubuntu:~# iw wlxc8fe0ff45177 scan
scan aborted!
wifi 还是开起来了,询问了技术支持,建议使用图形化配置,我就尝试安装了 xrdp,并启用远程桌面连接测试:
发现 wifi 还是开不起来,呜呜呜,说是周一找研发看看,所以今天只能暂时搁置了。
hzhy@arm64-ubuntu:~/Public/test_ko$ dmesg | tail
[ 2394.886591] usb 5-1: SerialNumber: E58E1676
[ 2394.889056] usb-storage 5-1:1.0: USB Mass Storage device detected
[ 2394.891147] scsi host0: usb-storage 5-1:1.0
[ 2395.908271] scsi 0:0:0:0: Direct-Access Generic Flash Disk 8.07 PQ: 0 ANSI: 4
[ 2395.913117] sd 0:0:0:0: [sda] 30720000 512-byte logical blocks: (15.7 GB/14.6 GiB)
[ 2395.914388] sd 0:0:0:0: [sda] Write Protect is off
[ 2395.914410] sd 0:0:0:0: [sda] Mode Sense: 23 00 00 00
[ 2395.915766] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 2395.925599] sda: sda1
[ 2395.933335] sd 0:0:0:0: [sda] Attached SCSI removable disk
hzhy@arm64-ubuntu:~/Public$ gcc hello_world.c
hzhy@arm64-ubuntu:~/Public$ ./a.out
Hello World!
hzhy@arm64-ubuntu:~/Public$ cat hello_world.c
#include < stdio.h >
int main()
{
printf("Hello World!rn");
return 0;
}
合众横跃的 AI300G 智能盒子,体积小巧,接口丰富,整个无风扇设计特别新颖!特别是技术支持的响应很及时,值得点赞。这真是一个嵌入式端的性能小怪兽!!!
目前残留的问题:
全部0条评论
快来发表一下你的评论吧 !