Banana Pi BPI-W3 是 Banana Pi 团队面向专业和企业用户设计开发的单板计算机。它搭载 Rockchip RK3588 SoC,由四核 Arm Cortex-A76 和四核 Cortex-A55 组成八核 CPU,支持动态调频,最高主频为 2.4 GHz;同时集成高性能 3D/2D 图形加速模块和算力为 6 TOPS 的 NPU。
| 更多信息: 香蕉派 BPI-W3 |
BPI-W3 主板
电源(三选一)
支持 USB Type-C PD 2.0,电压/电流规格为 9 V/2 A、12 V/2 A、15 V/2 A 或 20 V/2 A
12 V 直流适配器,插头内径 2.5 mm
PoE 12V
系统安装介质(二选一)
MicroSD/TF 卡启动
一张 Class 10 或更高等级、容量至少为 8 GB 的 MicroSD/TF(SDHC)卡,以及一个读卡器
以下是一些经过 ArmSoM 团队测试和验证的高速 TF 卡:
SanDisk 32 GB TF(MicroSD)卡(推荐开发使用)
SanDisk 32 GB TF(MicroSD)行车记录仪/安防监控专用存储卡(推荐长期运行使用)
闪迪 TF 8G Class10 microSD
闪迪 TF 128G Class10 microSD XC TF 128G 48MB/S
板载 eMMC 启动
一根 USB-A 转 USB-C 数据线,用于通过 Type-C 接口将镜像写入 ArmSoM-W3 的 eMMC,或执行 fastboot/adb 命令;使用时连接 ArmSoM-W3 与电脑。
USB 键盘和鼠标
HDMI 显示器和 HDMI 线缆
BPI-W3 配备全尺寸 HDMI 接口,最高支持 8K@60 显示输出。
系统通过 HDMI EDID 确定最佳显示分辨率。支持 1080p(或 4K/8K)的显示器和电视会选择相应分辨率;如果不支持 1080p,则选择下一个可用分辨率。
以太网线
BPI-W3 支持最高 2.5GbE 的有线网络连接。
网线用于将 BPI-W3 连接到本地网络和互联网。
摄像头模组
BPI-W3 支持摄像头功能。
推荐使用 IMX415 模块,可通过 Banana Pi 官方商店购买。
LCD 显示屏
BPI-W3 支持 LCD 显示功能。
建议使用 Display 10.1 HD,可通过官方商店购买。
音频线
可通过标准 3.5 mm 插孔连接扬声器或耳机播放音频。
WiFi/Bluetooth 卡
支持市场上常见的无线模块,请查看支持列表的无线部分。
推荐使用 RTL8852BE 或 AP6256
USB-A 转 USB-C 数据线
下载并安装 Rockchip USB 驱动程序
下载 Rockchip USB 下载工具
该工具默认使用中文。解压后,如需切换为英文,请用记事本等文本编辑器打开 RKDevTool_Release_v2.84/config.ini,文件开头内容如下:
#Language Selection: Selected=1(Chinese); Selected=2(English)
[Language]
Kinds=2
Selected=1
LangPath=Language\
打开 RKDevTool.exe,切换到“升级固件”页面。按“固件”按钮打开需要升级的镜像文件。升级工具显示详细的固件信息。
按住 MASKROM 键,同时使用 Type-C 数据线将 W3 连接到电脑。(如果 eMMC 中已有镜像,请在按住 MASKROM 键的同时按一下 RESET 键。)
按“升级”按钮开始升级。
如果升级失败,可先单击“EraseFlash”擦除 eMMC,然后重新升级镜像。
| 此方法适用于 Ubuntu 和 Armbian 镜像。 |
使用 Balena Etcher 写入镜像。
Balena Etcher 是 Balena 提供的开源图形化镜像写入工具,可将操作系统镜像写入 SD 卡或 U 盘。
单击“Flash from file”选择镜像。
单击“Select target”选择目标存储设备。
单击“Flash!”开始写入。
| Debian 镜像使用此方法。 |
将容量至少为 8 GB 的 SD 卡通过读卡器连接到 Windows 电脑。
运行 SD_Firmware_Tool,勾选“SD 卡启动”,选择正确的可移动磁盘和固件镜像,然后单击“创建”并等待写入完成。
| Ubuntu |
将镜像复制到 U 盘。用 SD 卡启动 W3,同时插入 U 盘。
执行
mount /dev/sda1 /mnt
cd /mnt
sudo dd if=w3-ubuntu-xxxx.img of=/dev/mmcblk0 bs=10M
| Armbian |
将已写入镜像的 SD 卡插入 W3,然后通电启动。
执行
sudo armbian-config
最后关闭系统并断开电源,取出 SD 卡,再次上电即可从 eMMC 启动。
| Debian 镜像使用此方法。 |
下载并安装 Rockchip USB 驱动程序
下载 Rockchip USB 下载工具
该工具默认使用中文。解压后,如需切换为英文,请用记事本等文本编辑器打开 RKDevTool_Release_v2.84/config.ini,文件开头内容如下:
#Language Selection: Selected=1(Chinese); Selected=2(English)
[Language]
Kinds=2
Selected=1
LangPath=Language\
打开 RKDevTool.exe,切换到“升级固件”页面。按“固件”按钮打开需要升级的镜像文件。升级工具显示详细的固件信息。
按住 MASKROM 键,同时使用 Type-C 数据线将 W3 连接到电脑。(如果 eMMC 中已有镜像,请在按住 MASKROM 键的同时按一下 RESET 键。)
按“升级”按钮开始升级。
如果升级失败,可先单击“EraseFlash”擦除 eMMC,然后重新升级镜像。
使用有线网络时,请将网线插入 ArmSoM-W3 的 RJ45 接口,系统桌面会弹出有线连接提示。
手动配置以太网的方法如下。
切换到 root 用户
sudo su
使用 ifconfig 命令检查以太网是否正常工作。输出中应显示 eth0 或 enP4p65s0 网卡及其 IP 地址;还可使用 ping 测试网络连通性。
ifconfig
ping www.baidu.com
如果无法 ping 通,请尝试:
$ sudo dhclient eth0
或
$ sudo dhclient enP4p65s0
查看系统中的声卡。
armsom@armsom-w3:/# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: rockchipdp0 [rockchip,dp0], device 0: rockchip,dp0 spdif-hifi-0 [rockchip,dp0 spdif-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: rockchipes8316 [rockchip-es8316], device 0: fe470000.i2s-ES8316 HiFi es8316.7-0011-0 [fe470000.i2s-ES8316 HiFi es8316.7-0011-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 3: rockchiphdmi0 [rockchip-hdmi0], device 0: rockchip-hdmi0 i2s-hifi-0 [rockchip-hdmi0 i2s-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 4: rockchiphdmi1 [rockchip-hdmi1], device 0: rockchip-hdmi1 i2s-hifi-0 [rockchip-hdmi1 i2s-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
BPI-W3 提供两个 USB 2.0 接口和两个 USB 3.0 接口。
BPI-W3 配备全功能 USB Type-C 3.0 接口,支持最高 8K@30fps 的 DP 显示输出。
BPI-W3 配备两个 HDMI 输出接口,均支持 CEC 和 HDMI 2.1,最高分辨率分别为 8Kp60 和 4Kp60。
| 使用前请确认 HDMI 线缆的接口规格。 |
BPI-W3 使用 RK3588 原生 HDMI RX 接口,可通过 v4l2 命令测试 HDMI 输入。
查看所有视频节点
ls /dev/video*
使用 v4l2-ctl 的 -d 参数指定视频节点,再用 -D 参数查看节点信息;根据驱动名称查找 rk_hdmirx 设备。
armsom@armsom-w3:/# v4l2-ctl -d /dev/video0 -D
Driver Info:
Driver name : rk_hdmirx
Card type : rk_hdmirx
Bus info : fdee0000.hdmirx-controller
Driver version : 5.10.66
Capabilities : 0x84201000
Video Capture Multiplanar
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x04201000
Video Capture Multiplanar
Streaming
Extended Pix Format
查询当前分辨率和图像格式:
armsom@armsom-w3:/# v4l2-ctl -d /dev/video17 --get-fmt-video
Format Video Capture Multiplanar:
Width/Height : 3840/2160
Pixel Format : 'NV16'
Field : None
Number of planes : 1
Flags : premultiplied-alpha, 000000fe
Colorspace : Unknown (1025fcdc)
Transfer Function : Unknown (00000020)
YCbCr Encoding : Unknown (000000ff)
Quantization : Default
Plane 0 :
Bytes per Line : 3840
Size Image : 16588800
将图像文件保存到设备并使用 7yuv 等查看:
v4l2-ctl --verbose -d /dev/video17 \
--set-fmt-video=width=3840,height=2160,pixelformat='NV16' \
--stream-mmap=4 --stream-skip=3 \
--stream-to=/data/4k60_nv16.yuv \
--stream-count=5 --stream-poll
BPI-W3 配有电源 LED 和用户 LED。
电源指示 LED:绿色,ArmSoM-W3 通电后默认常亮。
用户指示 LED:蓝色,默认通过闪烁表示内核正在运行。
用户可以通过命令进行控制:
armsom@armsom-w3:/# sudo su
root@armsom-w3:/# echo timer > /sys/class/leds/blue:status/trigger
root@armsom-w3:/# echo activity > /sys/clas
BPI-W3 配备 hym8563 RTC 芯片。
首先,插入 RTC 电池为 RTC IC 供电。
| RTC 电池应保持连接,并确认系统已经创建 hym8563 RTC 设备。 |
armsom@armsom-w3:/# dmesg | grep rtc
[ 6.407133] rtc-hym8563 6-0051: rtc information is valid
[ 6.412731] rtc-hym8563 6-0051: registered as rtc0
[ 6.413779] rtc-hym8563 6-0051: setting system clock to 2022-06-22T01:22:26 UTC (1655860946)
找到 rtc0 后,使用以下命令设置系统时间并同步到 rtc0。
armsom@armsom-w3:/# hwclock -r
2023-11-03 10:32:40.461910+00:00
armsom@armsom-w3:/# date
11/03/2023 Friday 10:33:12 UTC
armsom@armsom-w3:/# hwclock -w
armsom@armsom-w3:/# hwclock -r
armsom@armsom-w3:/# poweroff
取出 RTC 电池,等待至少 10 分钟后重新装入并启动 ArmSoM-W3,检查 RTC 时间是否与系统时钟同步。
armsom@armsom-w3:/# hwclock -r
2023-11-03 10:35:40.461910+00:00
armsom@armsom-w3:/# date
11/03/2023 Friday 10:36:01 UTC
BPI-W3 支持 5 V 风扇,使用 1.25 mm 连接器。
armsom@armsom-w3:/# echo 0 > /sys/devices/platform/fd8b0010.pwm/pwm/pwmchip*/export
armsom@armsom-w3:/# echo 10000 > /sys/devices/platform/fd8b0010.pwm/pwm/pwmchip*/pwm0/period
armsom@armsom-w3:/# echo 5000 > /sys/devices/platform/fd8b0010.pwm/pwm/pwmchip*/pwm0/duty_cycle
armsom@armsom-w3:/# echo inversed > /sys/devices/platform/fd8b0010.pwm/pwm/pwmchip*/pwm0/polarity
armsom@armsom-w3:/# echo 1 > /sys/devices/platform/fd8b0010.pwm/pwm/pwmchip*/pwm0/enable
armsom@armsom-w3:/# echo 0 > /sys/devices/platform/fd8b0010.pwm/pwm/pwmchip*/pwm0/enable
BPI-W3 提供两个 M.2 连接器:
开发板正面有一个带 2230 安装孔的 M.2 E-Key 连接器,提供单通道 PCIe 2.1、USB、SATA、SDIO、PCM 和 UART 信号,支持标准工业 M.2 WiFi 6 模块。
Banana Pi 推荐使用 RTL8852BE 或 AP6256。将模块安装到 BPI-W3 的 M.2 E-Key 插槽并完成 WiFi 配置后即可联网。
# 加载驱动程序
armsom@armsom-w3:/# insmod system/lib/modules/rtkm.ko
armsom@armsom-w3:/# insmod system/lib/modules/rtkm.ko
armsom@armsom-w3:/# insmod /usr/lib/modules/rtk_btusb.ko
armsom@armsom-w3:/# lsmod
Module Size Used by
8852be 4030464 0
rtkm 16384 1 8852be
rtk_btusb 57344 0
# 1. 切换到超级用户模式
armsom@armsom-w3:/# sudo su
# 2. 开启 WiFi
root@armsom-w3:/# nmcli r wifi on
# 3. 扫描 WiFi 网络
root@armsom-w3:/# nmcli dev wifi
# 4. 连接 WiFi 网络
root@armsom-w3:/# nmcli dev wifi connect "wifi_name" password "wifi_password"
# 1. 启动蓝牙服务
armsom@armsom-w3:/# service bluetooth start
# 2. 进入 bluetoothctl
armsom@armsom-w3:/# bluetoothctl
# 3. 输入以下命令进行连接
armsom@armsom-w3:/# power on
armsom@armsom-w3:/# agent on
armsom@armsom-w3:/# default-agent
armsom@armsom-w3:/# scan on
armsom@armsom-w3:/# pair yourDeviceMAC
BPI-W3 背面有一个四通道 PCIe 3.0 的 M.2 M-Key 连接器,并设有标准 2280 安装孔,可安装 M.2 2280 NVMe SSD。
| 此 M.2 接口不支持 M.2 SATA SSD。 |
armsom@armsom-w3:/# mkdir temp
armsom@armsom-w3:/# mount /dev/nvme0n1 temp
armsom@armsom-w3:~# arecord -D hw:1,0 -f S16_LE -t wav -c2 -r 16000 -d 3 t.wav
Recording WAVE 't.wav' : Signed 16 bit Little Endian, Rate 16000 Hz, Stereo
armsom@armsom-w3:~# aplay t.wav
Playing WAVE 't.wav' : Signed 16 bit Little Endian, Rate 16000 Hz, Stereo
OV13850 模块具有以下特点:
像素尺寸:1.12 μm × 1.12 μm 13 兆像素,每秒 30 帧 支持的图像尺寸:13.2 MP(4224 × 3136)、10 MP(4224 × 2376)、2K(2112 × 1568)、EIS 1080P(2112 × 1188)、EIS 720P(1408 × 792)等 两线串行总线控制(SCCB) 多达 4 通道 MIPI 串行输出 工作温度范围:0~60 ℃;存储温度范围:-30~80 ℃
| OV13850 摄像头引脚 | ||
|---|---|---|
引脚编号 |
信号 |
说明 |
1 |
GND |
接地 |
2 |
CSI_RX_D3N |
通道 3 差分负信号 |
3 |
CSI_RX_D3P |
通道 3 差分正信号 |
4 |
GND |
接地 |
5 |
CSI_RX_D2N |
通道 2 差分负信号 |
6 |
CSI_RX_D2P |
通道 2 差分正信号 |
7 |
GND |
接地 |
8 |
NC |
未连接 |
9 |
NC |
未连接 |
10 |
GND |
接地 |
11 |
CSI_RX_D1N |
通道 1 差分负信号 |
12 |
CSI_RX_D1P |
通道 1 差分正信号 |
13 |
GND |
接地 |
14 |
CSI_RX_D0N |
通道 0 差分负信号 |
15 |
CSI_RX_D0P |
通道 0 差分正信号 |
16 |
GND |
接地 |
17 |
CSI_RX_CLK0N |
输出时钟差分负信号 |
18 |
CSI_RX_CLK1P |
输出时钟差分正信号 |
19 |
MIPI_VSYNC |
帧同步信号 |
20 |
MIPI_CLKOUT |
时钟信号 |
21 |
NC |
未连接 |
22 |
NC |
未连接 |
23 |
MIPI_CSI_PDN |
控制信号 |
24 |
I2C_SCL |
I2C 时钟信号 |
25 |
I2C_SDA |
I2C 数据信号 |
26 |
NC |
未连接 |
27 |
RESET |
全局复位信号 |
28-29 |
VCC_3V3 |
VCCIO |
30-31 |
VCC_5V0 |
VCCIO |
摄像头采用 IMX415 模块。连接摄像头模块并上电后,可查看启动日志。
armsom@armsom-w3:/# dmesg | grep imx415
[ 2.547754] imx415 3-001a: driver version: 00.01.08
[ 2.547767] imx415 3-001a: Get hdr mode failed! no hdr default
[ 2.547819] imx415 3-001a: Failed to get power-gpios
[ 2.547826] imx415 3-001a: could not get default pinstate
[ 2.547831] imx415 3-001a: could not get sleep pinstate
[ 2.547850] imx415 3-001a: supply dvdd not found, using dummy regulator
[ 2.547918] imx415 3-001a: supply dovdd not found, using dummy regulator
[ 2.547945] imx415 3-001a: supply avdd not found, using dummy regulator
[ 2.613843] imx415 3-001a: Detected imx415 id 0000e0
[ 2.613890] rockchip-csi2-dphy csi2-dphy0: dphy0 matches m00_b_imx415 3-001a:bus type 5
[ 18.386174] imx415 3-001a: set fmt: cur_mode: 3864x2192, hdr: 0
[ 18.389067] imx415 3-001a: set exposure(shr0) 2047 = cur_vts(2250) - val(203)
使用 v4l2-ctl 捕获图像:
armsom@armsom-w3:/# v4l2-ctl -d /dev/video11 --set-fmt-video=width=3840,height=2160,pixelformat=NV12 --stream-mmap=3 --stream-skip=60 --stream-to=/tmp/cif73.out --stream-count=3 --stream-poll
使用 gst-launch-1.0 直接显示视频:
armsom@armsom-w3:/# gst-launch-1.0 v4l2src device=/dev/video11 ! video/x-raw,format=NV12,width=3840,height=2160, framerate=30/1 ! xvimagesink
摄像头采用 OV13850 模块。连接摄像头模块并上电后,可查看启动日志。
root@armsom-w3:/# dmesg | grep ov13850
[ 3.555686] ov13850 3-0010: driver version: 00.01.05
[ 3.555722] ov13850 3-0010: Failed to get power-gpios, maybe no use
[ 3.555762] ov13850 3-0010: Looking up avdd-supply from device tree
[ 3.555773] ov13850 3-0010: Looking up avdd-supply property in node /i2c@feab0000/ov13850@10 failed
[ 3.555794] ov13850 3-0010: supply avdd not found, using dummy regulator
[ 3.555874] ov13850 3-0010: Looking up dovdd-supply from device tree
[ 3.555883] ov13850 3-0010: Looking up dovdd-supply property in node /i2c@feab0000/ov13850@10 failed
[ 3.555895] ov13850 3-0010: supply dovdd not found, using dummy regulator
[ 3.555927] ov13850 3-0010: Looking up dvdd-supply from device tree
[ 3.555935] ov13850 3-0010: Looking up dvdd-supply property in node /i2c@feab0000/ov13850@10 failed
[ 3.555945] ov13850 3-0010: supply dvdd not found, using dummy regulator
[ 3.555972] ov13850 3-0010: could not get default pinstate
[ 3.555979] ov13850 3-0010: could not get sleep pinstate
[ 3.561005] ov13850 3-0010: Detected OV00d850 sensor, REVISION 0xb2
[ 3.561027] rockchip-csi2-dphy csi2-dphy0: dphy0 matches m00_b_ov13850 3-0010:bus type 5
使用 v4l2-ctl 捕获图像:
armsom@armsom-w3:/# v4l2-ctl -d /dev/video11 --set-selection=target=crop,top=0,left=0,width=2112,height=1568 --set-fmt-video=width=2112,height=1568,pixelformat=NV12 --stream-mmap=3 --stream-to=/nv12.bin --stream-count=1 --stream-poll
使用 gst-launch-1.0 直接显示视频:
armsom@armsom-w3:/# gst-launch-1.0 v4l2src device=/dev/video11 ! video/x-raw,format=NV12,width=2112,height=1568, framerate=30/1 ! xvimagesink
连接 USB 3.0 摄像头后,打开 Qt V4L2 Test Utility 应用进行测试。
打开视频节点:video21
单击摄像头按钮,即可看到实时画面。
BPI-W3 的 MIPI DSI 最高支持 4K@60Hz 分辨率。
演示视频:https://www.youtube.com/watch?v=y7mYxn3rq0U
准备工具
使用 Ubuntu 18.04 或 Ubuntu 20.04 操作系统。
一块 W3-PRO 开发板
准备步骤
首先确认 Ubuntu 系统已经安装 Docker;如未安装,请参考 Docker 官方安装文档。
获取源代码和已经配置好环境的 Docker 镜像。
在电脑上创建 rknpu 文件夹,并将固件复制到该文件夹。
rknpu/rknn-toolkit2-1.4.0/docker$ ls
md5sum.txt rknn-toolkit2-1.4.0-cp36-docker.tar.gz rknn-toolkit2-1.4.0-cp38-docker.tar.gz
运行以下命令启动 Docker 镜像;启动后会进入镜像的 Bash 环境。
docker run -t -i --privileged -v /dev/bus/usb:/dev/bus/usb rknn-toolkit2:1.4.0-cp38 /bin/bash
通过添加“-v <host src folder>:<image dst folder>”参数,将示例代码目录映射到 Docker 环境,例如:
docker run -t -i --privileged -v /dev/bus/usb:/dev/bus/usb -v /your/rknn-toolkit2-1.x.x/examples:/examples rknn-toolkit2:1.x.x /bin/bash
映射后,主机与容器中的代码会保持同步。
RKNN 服务需要在开发板上运行。
BOARD ARCH 在 64 位 Linux 系统中对应 aarch64 目录,在 32 位系统中对应 armhf 目录。
使用 adb 将 Linux/rknn server/${B0ARD_ ARCH}/usr/bin/ 中的所有文件推送到 /usr/bin
使用 adb 将 Linux/librknn api/${BOARD ARCH}/librknrnt.so 推送到 /usr/1ib
进入开发板串口终端,执行以下命令
chmod +x /usr/bin/rknn server
chmod +X /usr/bin/start_ rknn.sh
chmod +X /usr/bin/restart rknn.sh
restart_ rknn. sh
运行程序
先在 Docker 镜像中执行 adb devices,并记下 adb 设备 ID。
进入 /examples/onnx/yolov5 并修改 test.py:
ret = rknn.init_runtime(target='rk3588', device_id=DEVICE_ID, perf_debug=True,eval_mem=True)
outputs = rknn.inference(inputs=[img])
ret = rknn.eval_perf(inputs=[img], is_print=True)
cv2.imwrite("result.jpg", img_1)
原文件默认没有上述四行调用,请将其添加到 test.py。
运行 python3 test.py。
BPI-W3 的三色 LED 被配置为 LED 类设备。蓝色 LED 未激活时,绿色 LED 会亮起,表示开发板已通电。向 /sys/class/leds/blue:status/trigger 写入相应值可控制蓝色 LED 的工作模式;默认只有 root 用户拥有写入权限,默认模式为 heartbeat。
linaro@linaro-alip:/home/linaro# sudo su // linaro password
root@linaro-alip:/home/linaro# echo timer > /sys/class/leds/blue:status/trigger
root@linaro-alip:/home/linaro# echo activity > /sys/class/leds/blue:status/trigger
使用 cat 读取 trigger 属性可列出所有可用的 LED 模式,方括号中的值表示当前模式。
root@linaro-alip:/home/linaro# cat /sys/class/leds/blue:status/trigger
none rfkill-any rfkill-none kbd-scrolllock kbd-numlock kbd-capslock kbd-kanalock kbd-shiftlock kbd-altgrlock kbd-ctrllock kbd-altlock kbd-shiftllock kbd-shiftrlock kbd-ctrlllock kbd-ctrlrlock tcpm-source-psy-4-0022-online mmc2 mmc1 timer oneshot disk-activity disk-read disk-write ide-disk mtd nand-disk heartbeat backlight gpio cpu cpu0 cpu1 cpu2 cpu3 cpu4 cpu5 cpu6 cpu7 mmc0 [activity] default-on transient flash torch panic netdev rfkill0
在 none 模式下,向 /sys/class/leds/blue:status/brightness 写入数值可手动控制蓝色 LED。
root@linaro-alip:/home/linaro# echo none > /sys/class/leds/blue:status/trigger
root@linaro-alip:/home/linaro# echo 1 > /sys/class/leds/blue:status/brightness
root@linaro-alip:/home/linaro# echo 0 > /sys/class/leds/blue:status/brightness
红色 LED 的控制方式相同,其类设备路径为 /sys/class/leds/red:status/trigger。
BPI-W3 配备一颗 hym8563 RTC 芯片。
首先插入 RTC 电池为 RTC 芯片供电,并保持电池与 RTC 接口连接。
其次,检查驱动是否加载成功。
root@linaro-alip:~# dmesg | grep rtc
[ 3.149263] rtc-hym8563 6-0051: rtc information is valid
[ 3.154624] rtc-hym8563 6-0051: registered as rtc0
[ 3.155646] rtc-hym8563 6-0051: setting system clock to 2021-01-01T12:00:05 UTC (1609502405)
最后检查能否查看和设置时间。
root@linaro-alip:~# hwclock -r
2022-08-07 13:38:24.370866+00:00
root@linaro-alip:~# date
2022年 08月 07日 星期日 13:38:41 UTC
root@linaro-alip:~# hwclock -w
YouTube 视频:https://youtu.be/y7mYxn3rq0U
使用 Ubuntu 18.04 或 Ubuntu 20.04 操作系统。
一块 W3-PRO 开发板
首先确认 Ubuntu 系统已经安装 Docker;如未安装,请参考 Docker 官方安装文档。
获取源代码和已经配置好环境的 Docker 镜像。
在电脑上创建 rknpu 文件夹,并将固件复制到该文件夹。
rknpu/rknn-toolkit2-1.4.0/docker$ ls
md5sum.txt rknn-toolkit2-1.4.0-cp36-docker.tar.gz rknn-toolkit2-1.4.0-cp38-docker.tar.gz
运行以下命令启动 Docker 镜像;启动后会进入镜像的 Bash 环境。
docker run -t -i --privileged -v /dev/bus/usb:/dev/bus/usb rknn-toolkit2:1.4.0-cp38 /bin/bash
通过添加“-v <host src folder>:<image dst folder>”参数,将示例代码目录映射到 Docker 环境,例如:
docker run -t -i --privileged -v /dev/bus/usb:/dev/bus/usb -v /your/rknn-toolkit2-1.x.x/examples:/examples rknn-toolkit2:1.x.x /bin/bash
映射后,主机与容器中的代码会保持同步。
RKNN 服务需要在开发板上运行。
BOARD ARCH 在 64 位 Linux 系统中对应 aarch64 目录,在 32 位系统中对应 armhf 目录。
adb push all files in Linux/rknn server/${B0ARD_ ARCH}/usr/bin/ to /usr/bin
adb push Linux/librknn api/${BOARD ARCH}/ librknrnt. so to /usr/1ib
进入开发板串口终端,执行以下命令:
chmod +x /usr/bin/rknn server
chmod +X /usr/bin/start_ rknn.sh
chmod +X /usr/bin/restart rknn.sh
restart_ rknn. sh
先在 Docker 镜像中执行 adb devices,并记下 adb 设备 ID。
进入 /examples/onnx/yolov5 并修改 test.py:
ret = rknn.init_runtime(target='rk3588', device_id=DEVICE_ID, perf_debug=True,eval_mem=True)
outputs = rknn.inference(inputs=[img])
ret = rknn.eval_perf(inputs=[img], is_print=True)
cv2.imwrite("result.jpg", img_1)
原文件默认没有上述四行调用,请将其添加到 test.py。
运行 python3 test.py。