7,720
社区成员
发帖
与我相关
我的任务
分享设备:犀牛派 X1(高通 QCS8550,kalama)|系统:Android 13 + AidLux 3.0.0.124,Ubuntu 22.04,内核 5.15.178-android13|日期:2026-09-15 实刷,2026-09-28 复查登录和 NPU
这篇写到板上能登录、USB 摄像头能以 MJPG 出图、自带的 YOLOv5s W8A8 能在 Hexagon DSP 上跑出毫秒数。工位久坐检测在下一篇。
代码:https://github.com/peterpanstechland/rhinopi-x1-aidlux

供电只走 DC_IN。插头是 DC 5.5×2.5 mm,适配器 12V 5A。不要用手机充电器,也不要指望 Type-C 线给板子供电。刷机和 AidLux 初始化时不要拔电源。
|
线 |
插哪里 |
做什么 |
|---|---|---|
|
12V 5A 电源 |
板子 DC_IN |
唯一供电。插上后板子会自己启动 |
|
USB-A 转 USB-C |
电脑 USB-A,板子 TYPE-C |
ADB 和刷机。不要拿这根口插摄像头 |
|
网线 |
板子 WAN |
上行口,系统里是 |
|
HDMI |
板子 HDMI_OUT |
可选。接显示器。HDMI_IN 是采集口,不是显示器 |
|
键鼠、以后的 C920 |
板子 USB-A(一共 4 个) |
不要插 TYPE-C |
旁边还有 3 个 LAN。那是板载局域网,地址 192.168.1.1/24(br-lan)。电脑 SSH、网页登录都不要找这个网段。
顺序:先插 DC_IN。开机过程电源灯红灯常亮;绿灯常亮并且风扇转,才算起来了。一直红灯、风扇不转,按一下 POWER。再插 TYPE-C。要远程登录,网线插 WAN。

然后:
adb devices -l
看到 product:kalama model:RhinoPi_X1 再刷机。如果同时连着网络 ADB,刷机只用 USB 那条。

公开的融合整包当天是 RhinoPi-X1.T04_LA.user.2025121609.aidlux.zip(2025-12-16)。板上构建号已经是 RhinoPi-X1.1.user.2026070119(2026-07-01)。整包直接刷会降级。这次走拆分:先刷同日期的 Android,再装 AidLux 3.0.0.124。
站点首页打不开,用下面带目录编号的地址。网页可能要登录才能下。2026-09-14 打开时看到的是:
|
用途 |
文件 |
大小 |
|---|---|---|
|
|
60 MB / 18 MB | |
|
|
4.74 GB | |
|
|
1.85 GB | |
|
|
3.05 GB |
新板、只想少一步,用融合整包,刷完在 Android 里把 AidLux 初始化到 100%。板上版本已经比整包新,就拆开刷。OTA 只给已经是融合系统、只想升级的人。刷机会清空用户数据。
Windows 上先装驱动和 QFIL:setup.exe,然后 QPST.2.7.496.1.exe。QFIL 在 C:\Program Files (x86)\Qualcomm\QPST\bin\QFIL.exe。
对 USB 那条设备进下载模式,不要对 ip:5555 下这个命令:
adb -s <USB序列号> reboot edl
设备会变成 Qualcomm 9008,普通 adb devices 变空,这是预期。QFIL:
Configuration → FireHose:Download Protocol 选 0-Sahara,Device Type 选 ufs,勾选 Reset After Download
Select Port 选 9008,Build Type 选 Flat Build
Programmer 选解压包里的 xbl_s_devprg_ns.melf(文件类型改成所有文件)
Load XML:弹出来的 XML 都选上,会弹两次
Download。这次大约 5 分钟,看到 successful 后板子自己重启
QFIL 的成功窗口是 9 月 15 日刷机当时的,没有为了补图再刷一次。刷完 ro.build.version.incremental 仍是 RhinoPi-X1.1.user.2026070119。
adb devices 再次看到设备后,解压 AidLux zip,在 Windows 上跑 install.bat。这次推进去约 2.59 GB 的 deb,并装了 3 个 APK。然后在 Android 桌面打开 AidLux,等到 100%。整包路线没有 install.bat,刷完直接在桌面里初始化。
2026-09-15 10:38 验收:SSH、Web :8000、ADB 都通;上行仍是原来的 eth0;userdata 占用约 12G、剩余约 66G;AidLite 2.3.2.251、OpenCV 4.13.0 仍在;MediaPipe 没有。内核 5.15.178-android13,用户态 Ubuntu 22.04。这是 Android 内核加 Ubuntu rootfs。
出厂用户名和密码都是 aidlux。第一次登录后改掉。
http://<板子IP>:8000/login
ssh aidlux@<板子IP>
HDMI 本机桌面这块板还没拍过。Web 桌面和 SSH 都用过。官方入口:浏览器登录。



刷完自带:6 核,三丛集最高约 3187 / 2803 / 2016 MHz;内存 14 GiB;Python 3.10.12;numpy 1.26.4;OpenCV 4.13.0;AidLite 2.3.2.251;NPU 插件 aidlite-qnn236。还有 aidcv-sdk、aidstream-gst、aid-mms。MediaPipe 未安装。9 月 14 日空闲温度 cpuss-0 约 39.4°C,nspss-0 约 34.1°C。9 月 28 日复查,AidLite 版本没变,温度差零点几度。
NPU 后端是 aidlite-qnn236,不要按旧文档去装 qnn216。缺组件时点装:
sudo aid-pkg update
sudo aid-pkg install aidlite-sdk
sudo aid-pkg install aidlite-qnn236
cd ~/rhinopi-lab/examples/01_env_check
python3 check_env.py
不要跑 apt upgrade。2026-09-15 在这块板上跑过一次,libkmod2 升到 29-1ubuntu1.1,kmod 停在 29-1ubuntu1。厂商包 mod-blacklist 占着 /etc/modprobe.d/blacklist.conf,新的 kmod 覆盖不了。systemd、udev 等大约 31 个包停在已解包未配置。这个状态下先不要重启。只把这一对对齐,不要再全量升级:
sudo cp -a /etc/modprobe.d/blacklist.conf /etc/modprobe.d/blacklist.conf.bak
cd /tmp
apt-get download kmod=29-1ubuntu1.1
sudo dpkg -i --force-overwrite /tmp/kmod_29-1ubuntu1.1_arm64.deb
sudo DEBIAN_FRONTEND=noninteractive apt-get --fix-broken install -y \
-o Dpkg::Options::="--force-confold"
sudo dpkg --audit
修完后两个包都是 29-1ubuntu1.1,AidLite 和 OpenCV 都还在。源里当时仍有大约 265 个可升级包,没有继续升。同款记录:apt upgrade 修复。缺某个命令用 sudo apt install <包名>,或走 aid-pkg。
相机插板子的 USB-A,不要插 TYPE-C。未插摄像头时,板上已经有 video0(cam-req-mgr)和 video1(cam_sync)。cv2.VideoCapture(0) 打开的是高通相机框架,不是 UVC。

2026-09-15 插上 Logitech C920(046d:082d,USB 2.0,uvcvideo)之后:
|
节点 |
名字 |
能不能采集 |
|---|---|---|
|
|
|
不能 |
|
|
|
不能 |
|
|
|
能 |
|
|
同一只 C920 |
不能。UVC metadata |
|
|
|
不能。硬解节点 |
换摄像头不要写死 2。官方示例相机 05a3:9230 同样落在 video2 / video3。说明:USB 摄像头。
1280×720 的 YUYV 在 USB 2.0 上只有 10 fps。先设 MJPG:
cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc(*"MJPG"))
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1280)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 720)
cd ~/rhinopi-lab/examples/usb_camera
python3 probe.py
当天 CAP_V4L2 + MJPG + 1280×720,循环 30.46 fps,平均 32.82 ms。C920 的预览静图还没补拍,数字是 9 月 15 日的。下一篇的工位检测吃的就是这一路。
模型是镜像自带的 YOLOv5s W8A8,不是从模型广场另下的:
/usr/local/share/aidlite/examples/aidlite_qnn236/data/qnn_yolov5_multi/cutoff_yolov5s_640_sigmoid_w8a8.qnn236.ctx.bin
TYPE_QNN236 + TYPE_DSP。计时只包住 set_input + invoke + get_output。letterbox 和 YOLO 后处理不在里面。
cd ~/rhinopi-lab/examples/02_compute_bench
python3 bench.py
2026-09-14,640 输入,warmup 5 次、循环 20 次:
|
后端 |
平均 |
最小 |
最大 |
|---|---|---|---|
|
numpy |
15.841 ms |
11.556 |
23.960 |
|
OpenCV 预处理 |
3.446 ms |
0.760 |
18.291 |
|
QNN236 DSP |
4.772 ms |
4.634 |
4.967 |
NPU 标准差 0.107 ms,大约 210 次/秒。这是纯推理节拍,不是带画框的端到端帧率。

9 月 28 日同一命令:numpy 15.935 ms,OpenCV 预处理 2.229 ms,NPU 平均 4.734 ms(最小 4.620,最大 4.979,约 211 次/秒)。OpenCV 这项两次差了约 1 ms,以当场输出为准。NPU 仍在 4.7 ms 附近。
和模型广场卡片比之前,先确认对方是不是也不含前后处理。下一篇底栏里的 NPU 脉冲大约 9–20 ms,那一段把 letterbox 算进去了,不能拿来替换这 4.7 ms。
|
现象 |
先查 |
|---|---|
|
只有红灯,风扇不转 |
DC 是不是 12V 5A、是不是插在 DC_IN;按一下 POWER |
|
|
TYPE-C 是否插紧、线是不是只能充电、高通驱动是否装上 |
|
没有 9008 |
再对 USB 设备执行一次 |
|
QFIL 失败 |
Programmer 和 XML 是不是这一包里的;Device Type 是不是 |
|
初始化停住 |
先等几分钟;供电是不是 12V 5A |
|
ping 不通 |
网线是否在 WAN。插在 LAN 上会进 |
|
|
刚跑过 |
|
|
0 是 |
|
720p 只有十几帧 |
FourCC 还是 YUYV,先设 MJPG |
刷机失败走阿加犀售后。这里没有写强刷。
下一篇用这只摄像头和板上的上半身 TFLite 做工位久坐检测。量化 YOLO 只留在底栏里看 DSP 还通不通。
刷机到上手(本篇)
工位检测