产品系列:sTPC-EXXX-3568B(E101 / E121 / E150 / E156 / E170 / E215) · 瑞芯微 RK3568 · 10.1″ ~ 21.5″ 无风扇 ARM 触控一体机(PANEL PC)
sTPC-EXXX-3568B 系列(量产型号 sTPC-E101-3568B / E121-3568B / E150-3568B / E156-3568B / E170-3568B / E215-3568B)是基于瑞芯微 RK3568 平台的无风扇 ARM 触控一体机(PANEL PC),屏幕尺寸覆盖 10.1″ / 12.1″ / 15″ / 15.6″ / 17″ / 21.5″ 六种规格。
整机采用铝镁合金前框 + 全封闭后箱,正面为多点电容式触摸屏,背部下方集中布置电源、串口、USB、HDMI、网口等对外接口,天线与 SIM 卡位于背部上方。支持 VESA 支架与嵌入式(开孔)两种安装方式,适用于产线看板、设备 HMI、自助查询终端等工业现场。
产品特点
型号命名规则
| 字段 | 含义 |
|---|---|
| sTPC | 触控一体机系列(SmartLinc Touch Panel Computer) |
| E101 / E121 / E150 / E156 / E170 / E215 | 屏幕尺寸:10.1″ / 12.1″ / 15″ / 15.6″ / 17″ / 21.5″ |
| 3568B | 主控平台:Rockchip RK3568,B 版整机 |
| 项目 | 规格 |
|---|---|
| 处理器 | Rockchip RK3568,4 核 4 × Cortex-A55,最高主频 2.0GHz |
| GPU | Mali-G52 |
| NPU | 1 TOPS(INT8) |
| 内存 | 2GB / 4GB(板载) |
| 存储 | 板载 32GB eMMC |
| 存储扩展 | 1 × Micro SD(TF)卡槽 |
| 显示输出 | 1 × HDMI,最高支持 3840 × 2160 |
| 以太网 | 1 × 10/100/1000Mbps 速率自侦测 |
| 无线 | 板载 2.4G/5G 双频 Wi-Fi,802.11 a/b/g/n/ac + Bluetooth 5.0 |
| 4G | LTE 4G 模组 EG800AK-C(系统自动拨号),见 4.4 |
| USB | 2 × USB3.0(其中 1 路与 OTG 复用)+ 2 × USB2.0 |
| 串口 | 4 × 串口:2 × RS485 + 2 × RS232(3.5mm 间距 3P 可插拔端子),ttyS1 ~ ttyS4 |
| 音频 | 1 × SPK(8Ω 6W,PH2.0-4P),1 × Ø3.5 Mic in |
| SIM | 2 × Micro SIM 插槽(二选一使用) |
| 指示灯 | 1 × 电源指示灯(绿色),1 × 系统指示灯(蓝色) |
| 按键 | 1 × Recover 刷机键(针孔),1 × Return 返回键(短按返回 / 上电时长按 3s 进入烧录) |
| GPIO | 16 针(PH2.0-16P)端子,奇数脚 GPO / 偶数脚 GPI,选配引出,见 2.3 |
| 触摸屏 | 多点电容式,透光率 ≥ 87%,USB 控制器 |
| 操作系统 | Android 11 / Ubuntu 20.04(标准);Debian 11 按项目提供 |
| 视频编解码 | H.264 / H.265 硬件编解码(VPU),见 5.13 |
| 电源输入 | DC 12V(±0.3V),5.5×2.1mm 圆头,带过流、过压保护;E150(15″)支持 DC 12~24V 宽压 |
| 整机功耗 | ≤ 20W |
| 结构 | 铝镁合金外壳,无风扇,支持 VESA / 嵌入式安装 |
| 工作温度 | -20 ~ 70℃(10.1″ / 12.1″ / 15″);0 ~ 50℃(15.6″ / 17″ / 21.5″) |
| 存储温度 | -20 ~ 70℃(10.1″ / 12.1″ / 15″);-20 ~ 60℃(15.6″ / 17″ / 21.5″) |
| 相对湿度 | 5 ~ 95% @40℃(无凝露) |
| 振动 | 1.5Grms,IEC 60068-2-64,随机 5~500Hz,1hr/轴 |
| 冲击 | 10G,IEC 60068-2-27,半正弦波,持续 11ms |
| EMC | CE / FCC Class A |
提示:产品规格如有更改,恕不另行通知。本节数据对应规格书 v1.3(更新日期 2026-06-24)。
| 型号 | 尺寸 | 分辨率 | 亮度 | 背光 MTBF | 工作温度 | 内存 2GB 料号 | 内存 4GB 料号 |
|---|---|---|---|---|---|---|---|
| sTPC-E101-3568B | 10.1″ | 1280 × 800 | 350cd/m² | 30000hrs | -20 ~ 70℃ | B11.AE101.38.0024 | B11.AE101.38.0025 |
| sTPC-E121-3568B | 12.1″ | 1024 × 768 | 500cd/m² | 50000hrs | -20 ~ 70℃ | B11.AE121.38.0004 | B11.AE121.38.0005 |
| sTPC-E150-3568B | 15″ | 1024 × 768 | 350cd/m² | 50000hrs | -20 ~ 70℃ | B11.AE150.38.0018 | B11.AE150.38.0019 |
| sTPC-E156-3568B | 15.6″ | 1920 × 1080 | 250cd/m² | 15000hrs | 0 ~ 50℃ | B11.AE156.38.0012 | B11.AE156.38.0013 |
| sTPC-E170-3568B | 17″ | 1280 × 1024 | 250cd/m² | 30000hrs | 0 ~ 50℃ | B11.AE170.38.0010 | B11.AE170.38.0011 |
| sTPC-E215-3568B | 21.5″ | 1920 × 1080 | 250cd/m² | 30000hrs | 0 ~ 50℃ | B11.AE215.38.0006 | B11.AE215.38.0007 |
提示:各型号均为电容触摸屏 + 32GB 板载 eMMC,内存分 2GB / 4GB 两种配置,实配料号见上表;15″ 机型(E150)的电源宽压与接口组数差异见 1.2、2.3。
| 选项 | 描述 |
|---|---|
| 电源适配器 | 12V 3A 电源适配器,带国标电源线 |
| 4G 套件 | EG800AK-C 模组 + 4G 外置天线(SMA) |
| Wi-Fi 天线 | 胶棒天线、吸盘 3M 天线 |
整机为正屏 + 背出线结构:正面只有触摸屏与铝合金前框;背部上方为天线、SIM 卡座与喇叭接口区,下方为对外接口区(电源、串口、USB、HDMI、网口),四角为 VESA 安装孔。
整机对外接口在背部下方从左到右依次为:DC 12V → PWR / SYS 指示灯 → Recover → Return → MIC → RS485 → RS232 → HDMI → LAN → USB3.0 → USB2.0;背部上方自左向右为 SIM 卡座 → 4G 天线 → Wi-Fi / BT 天线 → SPK 喇叭座 → GPIO 引出座。图中标注与下表序号一一对应,点击图片可查看高清大图。
| 序号 | 丝印 | 接口 | 数量 | 说明 |
|---|---|---|---|---|
| 1 | DC 12V | 电源输入 | 1 | 5.5×2.1mm 圆头,内正外负 |
| 2 | PWR | 电源指示灯 | 1 | 绿色,通电常亮 |
| 3 | SYS | 系统指示灯 | 1 | 蓝色,系统运行时常亮 |
| 4 | Recover | 刷机键 | 1 | 针孔式,断电按住上电进入 Loader / Maskrom |
| 5 | Return | 返回键 | 1 | 轻触按键,Android 下等效 BACK |
| 6 | MIC | 麦克风输入 | 1 | Ø3.5 phone jack |
| 7 | RS485 | RS485 串口 | 2 | 3.5mm 3P 端子,A1 / B1 / G1,ttyS1 |
| 8 | RS232 | RS232 串口 | 2 | 3.5mm 3P 端子,R2 / T2 / G2,ttyS2 |
| 9 | HDMI | HDMI 输出 | 1 | 标准 A 型,最高 3840×2160 |
| 10 | LAN | 以太网 | 1 | RJ45,10/100/1000M 自适应 |
| 11 | USB3.0 | USB3.0 | 2 | 蓝色双层,下口为 OTG 复用(烧录 / ADB) |
| 12 | USB2.0 | USB2.0 | 2 | 黑色双层 |
| 13 | SIM | Micro SIM | 2 | 二选一使用 |
| 14 | 4G | 4G 天线 | 1 | SMA 接口 |
| 15 | Wi-Fi/BT | Wi-Fi 天线 | 1 | SMA 接口 |
| 16 | SPK | 扬声器 | 1 | PH2.0-4P,8Ω 6W |
| 17 | GPIO | GPIO 扩展 | 1 | 选配引出 |
| 18 | GND | 接地柱 | 1 | M4 接地螺钉 |
提示:表中数量为系列最大配置;实配组数随机型与配置而变(图中 10.1″ 样机为 RS485、RS232 各 1 组)。接线与设备节点以机器丝印为准,节点对应关系见 4.5。
整机对外均为成品连接器,无裸板插针。串口与喇叭使用 3.5mm / 2.0mm 间距可插拔端子,接线时按丝印对位,建议线径 0.2 ~ 1.5mm²,剥线长度 6 ~ 7mm。
DC 12V(5.5×2.1mm 圆头)
| 项目 | 定义 |
|---|---|
| 内芯 | +12V |
| 外环 | GND |
| 输入范围 | DC 12V ±0.3V(15″ 机型 12 ~ 24V) |
| 保护 | 过压保护、过流保护 |
RS485(3.5mm 3P 端子,2 组:ttyS1 / ttyS3)
| 脚位 | RS485-1(ttyS1) | RS485-2(ttyS3) | 说明 |
|---|---|---|---|
| 1 | A1 | A3 | 差分正(485_A) |
| 2 | B1 | B3 | 差分负(485_B) |
| 3 | G1 | G3 | 信号地 |
半双工,收发方向由硬件自动切换,无需软件控制 RTS。
RS232(3.5mm 3P 端子,2 组:ttyS2 / ttyS4)
| 脚位 | RS232-1(ttyS2) | RS232-2(ttyS4) | 说明 |
|---|---|---|---|
| 1 | R2 | R4 | 接收 RXD,接对端 TXD |
| 2 | T2 | T4 | 发送 TXD,接对端 RXD |
| 3 | G2 | G4 | 信号地 |
全双工,与外部设备连接时 R/T 交叉、GND 共地。
提示:丝印后缀与设备节点编号一致(A1 → ttyS1、R2 → ttyS2、A3 → ttyS3、R4 → ttyS4),因此 RS485 占 ttyS1 / ttyS3、RS232 占 ttyS2 / ttyS4,序号不连续属正常。
SPK(PH2.0-4P)
| 脚位 | 丝印 | 信号 | 说明 |
|---|---|---|---|
| 1 | L+ | 左声道 + | 8Ω 6W |
| 2 | L- | 左声道 - | — |
| 3 | R- | 右声道 - | — |
| 4 | R+ | 右声道 + | 8Ω 6W |
MIC(Ø3.5 phone jack)
| 部位 | 信号 | 说明 |
|---|---|---|
| TIP | MIC+ | 麦克风信号 |
| SLEEVE | GND | 地 |
USB
| 接口 | 模式 | 说明 |
|---|---|---|
| USB3.0(上排) | Host | 5Gbps,接 U 盘 / 键鼠 / 工业相机 |
| USB3.0/OTG(下排) | Host / Device | Device 模式下用于系统烧录与 ADB 调试 |
| USB2.0(双层) | Host | 480Mbps,接 U 盘 / 键鼠 / 打印机 |
HDMI / LAN / SIM
| 接口 | 规格 |
|---|---|
| HDMI | 标准 A 型 19pin,最高 3840×2160 |
| LAN | RJ45 8P8C,10/100/1000M 自适应,支持 Auto-MDIX,带 Link/Act 指示灯 |
| SIM | 2 × Micro SIM,二选一使用,插入方向以卡座丝印为准 |
GPIO(PH2.0-16P 端子,选配引出)
整机 GPIO 为选配引出(背部 GPIO 座 / 内部插针),接线按机器丝印对位。
| 脚位 | 方向 | 说明 |
|---|---|---|
| 奇数脚 1 / 3 / 5 / 7 / 9 / 11 / 13 / 15 | GPO | 通用输出,硬件固定,只作输出 |
| 偶数脚 2 / 4 / 6 / 8 / 10 / 12 / 14 / 16 | GPI | 通用输入,硬件固定,只作输入 |
GPO / GPI 由硬件固定,不能通过软件互换;下表为系统侧 GPIO 编号,与端子脚位序号是两个概念。
系统 GPIO 编号
| 用途 | 系统 GPIO 编号 |
|---|---|
| GPO(数字输出) | 95、94、21、22、140、141 |
| GPO / GPI(可输出 / 输入) | 13、14、96、93、108、107 |
GPIO 编号为内核 gpiochip 全局编号,不同固件版本可能整体偏移;未导出的引脚需先导出再操作。
| 型号 | 整机尺寸 W×H×D(mm) | 开孔尺寸(mm) | 净重 |
|---|---|---|---|
| sTPC-E101-3568B | 269 × 188 × 39 | 261 × 180 | 1kg |
| sTPC-E121-3568B | 315 × 250 × 44 | 307 × 242 | 2kg |
| sTPC-E150-3568B | 368 × 292 × 46 | 358 × 282 | 2.5kg |
| sTPC-E156-3568B | 400 × 257 × 39 | 392 × 249 | 3kg |
| sTPC-E170-3568B | 408 × 341 × 46 | 398 × 331 | 4kg |
| sTPC-E215-3568B | 549 × 341 × 46 | 539 × 330 | 5kg |
10.1″ 机型尺寸图(单位 mm):整机 269 × 188 × 39,开孔 261±2 × 180±2,安装孔 4 × Ø10,VESA 孔 4 × M4 深 6mm。其余尺寸机型的尺寸图见规格书第 2~3 页。
结构说明
Android系统
Linux系统
两个工具均为瑞芯微官方发布版本,已作为本站附件上传,下载链接见各条目末尾:
提示:驱动未安装成功时,设备管理器会出现未知设备,需重新安装驱动后再烧录。
Linux 与 Android 共用同一套瑞芯微工具烧录,整机无需拆机:USB3.0/OTG 口 接线、Recover 针孔 进入烧录模式。
① 连接 OTG 口
取一根 USB3.0 公对公双头线,一端接整机接口区下排的蓝色 USB3.0/OTG 口,另一端接电脑 USB 口:
② 安装瑞芯微 USB 驱动
进入驱动包目录,双击 DriverInstall.exe:
弹出「瑞芯微驱动助手」后点「驱动安装」,等待进度条走完:
提示:驱动异常或换电脑后无法识别设备时,先在驱动助手中点「驱动卸载」,再重新点「驱动安装」。
③ 打开烧录工具
解压工具包,双击 RKDevTool.exe:
④ 让整机进入 Loader 模式
整机先断电,用针状物按住背部 Recover 孔不松手,再接入 DC 12V 上电,约 2 秒后松开:
⑤ 确认设备已识别
RKDevTool 底部出现 发现一个 LOADER 设备 即识别成功:
若一直显示「没有发现设备」,回到第 ④ 步重新进入,或更换 USB 口与数据线。
⑥ 选择固件并升级
切到「升级固件」页,先点「固件」选择 update.img,再点「升级」:
烧录进度到 100% 后设备自动重启,首次开机约 30 ~ 60 秒。
提示:
Android 整机可用 U 盘离线升级,全程不需要连接电脑。本节只适用于 Android 固件;Linux 下的对应流程见 5.10,在线升级见 4.13。
固件来源二选一:
# 打包整包镜像 ./build.sh updateimg ls -lh rockdev/update.img
U 盘要求:FAT32 格式,可用容量 ≥ 4GB(建议 ≤ 32GB),update.img 放在根目录且文件名不变。
提示:插入 U 盘后无升级提示时,先确认文件名与 U 盘格式,再重启整机重试;Android 联网升级见 4.13。
本章只针对 Android 系统(Android 11)。Linux(Ubuntu / Debian)下的同名功能集中在第 5 章,两章界面、工具、命令均不混用;Android 应用层的接口调用统一见 4.12。
adb devices # List of devices attached # 0123456789ABCDEF device
整机与电脑同网段时,可无线调试,无需数据线。
adb connect 192.168.8.55:5555
adb devices
adb shell dumpsys wifi | grep -i "curState" adb shell ifconfig wlan0
整机为单网口(LAN,千兆自适应),Android 下设备名为 eth0。以下命令均在 adb shell 中执行,修改配置需 su 权限。
查看设备
ip link show
使用(动态 IP)
su ifconfig eth0 up ifconfig eth0 dhcp # 部分固件需改用 dhcpcd eth0
使用(静态 IP)
su ifconfig eth0 down ifconfig eth0 192.168.8.55 netmask 255.255.255.0 ifconfig eth0 up
测试
ping -c 4 192.168.8.1
提示:静态 IP 需开机自动生效时,在系统内配置 eth0 静态地址,或应用层通过 ConnectivityManager 设置以太网静态 IP。
整机 4G 采用 Quectel EG800AK-C 模组(插装于 6A12-J 载板),系统上电后自动拨号,无需手工配置。
整机仅支持下表所列 4G 模组,USB ID 用于在板端 lsusb 输出中确认模组是否已被识别:
| 模组型号 | 制式 | USB ID |
|---|---|---|
| Quectel EG800AK-C | LTE 4G | 2c7c:6002 |
4G 模组
adb shell lsusb
# Bus 002 Device 002: ID 2c7c:6002 Quectel Wireless Solutions Co., Ltd. EG800AK-C
查看信号与网络注册(AT 命令)
模组 AT 口一般为 /dev/ttyUSB2,需 root 权限:
echo -e "AT+CPIN?\r\n" > /dev/ttyUSB2 # SIM 卡是否插好 echo -e "AT+CSQ\r\n" > /dev/ttyUSB2 # 信号强度,0~99 为正常 echo -e "AT+COPS?\r\n" > /dev/ttyUSB2 # 是否注册到运营商网络 echo -e "AT+CGREG?\r\n" > /dev/ttyUSB2 # 数据网络是否就绪
提示:SIM 卡需在断电状态下插拔,热插拔可能导致模组不识别,需重新上电。
整机提供 2 路 RS485 与 2 路 RS232,Android 下节点与端子定义如下(最终以背部丝印为准):
| 接口 | 设备节点 | 引脚定义 |
|---|---|---|
| RS485-1 | /dev/ttyS1 | A1 / B1 / G1 |
| RS485-2 | /dev/ttyS3 | A3 / B3 / G3 |
| RS232-1 | /dev/ttyS2 | R2 / T2 / G2 |
| RS232-2 | /dev/ttyS4 | R4 / T4 / G4 |
Android 下串口测试统一使用 ComAssistant(串口助手 App):
提示:ComAssistant 需要 Root 权限访问 /dev/ttyS*;打开失败时先在 adb shell 中执行 su 与 ls -l /dev/ttyS* 确认节点权限。
注意事项
应用内不要直接用 shell 打开节点,使用 NodkaAPI 的 uart_ 接口(见 4.12.5):
NodkaAPI api = NodkaAPI.nodkaAPICreate(context); api.uart_open("/dev/ttyS2", 115200); api.uart_send("/dev/ttyS2", "hello".getBytes()); api.uart_receive("/dev/ttyS2", new UartReceiveDataCallback() { @Override public void onReceiveData(byte[] data) { // 处理收到的数据 } }); api.uart_close("/dev/ttyS2");
整机提供 2 × USB3.0(下排为 OTG 复用)与 2 × USB2.0,另支持 SD 卡。
U 盘
adb shell ls /storage # 可见 udisk0 或 91A3-2B1C 形式的挂载点 adb shell lsusb
SD 卡
adb shell ls /storage # 可见 xxxx-xxxx 形式的 SD 卡挂载点 adb shell dumpsys mount | grep -i mmc
提示:OTG 口在 Device 模式(烧录 / ADB)下不能同时作为 Host 使用;插 U 盘前请确认系统已退出烧录模式。Linux 下的手工挂载方法见 5.5。
整机音频由 SPK(PH2.0-4P,8Ω 6W) 输出、MIC(Ø3.5) 输入,无内置喇叭时需外接。
喇叭输出测试
麦克风录音测试
查看音频通路
adb shell dumpsys media.audio_flinger | grep -i "Output thread" adb shell getprop | grep -i audio
提示:无声音时先确认 SPK 端子 L+ / L- / R+ / R- 与喇叭线序一致,再用 adb shell tinymix 检查功放通路是否打开。Linux 下用 aplay / arecord,见 5.1。
整机支持内部屏 + HDMI 同时输出,HDMI 最高 3840 × 2160。
设置 HDMI 输出
| 模式 | 说明 |
|---|---|
| 同显(镜像) | 内部屏与 HDMI 显示相同画面,分辨率取二者较小值 |
| 异显(扩展) | 两屏独立画面,应用侧需指定 DisplayId |
命令行查看
adb shell wm size adb shell wm density adb shell dumpsys display | grep -i "mDisplayId"
提示:应用内可用 display_setScreenRotation / display_setScreenBrightness 等接口控制显示(见 4.12.3)。Linux 下用 xrandr 或 weston.ini,见 5.6。
| 项目 | 位置 | 现象 / 操作 | 判定 |
|---|---|---|---|
| PWR 指示灯 | 接口区左侧 | 接入 DC 12V 后绿色常亮 | 灯亮即电源正常 |
| SYS 指示灯 | PWR 右侧 | 系统启动完成后蓝色常亮 | 灯亮即系统运行 |
| Recover | 指示灯右侧针孔 | 断电按住 + 上电 2 秒后松开 | RKDevTool 识别到 LOADER 设备 |
| Return | Recover 右侧 | 按下返回上一级;长按上电 3s 进入烧录模式 | 界面返回 / 进入 Loader |
Return 按键测试(getevent)
adb shell getevent -l # /dev/input/event2: EV_KEY KEY_BACK DOWN # /dev/input/event2: EV_SYN SYN_REPORT 00000000 # /dev/input/event2: EV_KEY KEY_BACK UP
按下 Return 出现 DOWN,松开出现 UP,即按键与驱动正常。
Return 按键:进入烧录模式
长按 Return 按键不放,上电 3 秒后松开即可进入烧录模式,无需使用 Recover 针孔。
Recover 快速自检
断电按住 Recover 针孔再上电,RKDevTool 中出现 LOADER 设备即正常(烧录步骤见 3.3)。
提示:Recover 为针孔结构,请使用直径 ≤ 1.5mm 的针状物,避免损伤内部轻触开关。
整机为多点电容触摸屏,控制器经 USB 接入系统。
查看触摸设备
adb shell getevent -pl /dev/input/event* adb shell dumpsys input | grep -i -A2 "touch"
划线与多点检测
提示:若触摸无响应,先确认触摸 USB 线与主板连接,再用 adb shell lsusb 检查是否存在触摸控制器设备。
整机 GPIO 为选配引出(背部 GPIO 座 / 内部插针)。16 针端子的奇偶脚方向规则、系统 GPIO 编号与端子对应关系见 2.3,本节不再重复。
Android 应用通过 NodkaAPI 的 gpio_ 接口操作,无需 shell(见 4.12.4):
NodkaAPI api = NodkaAPI.nodkaAPICreate(context); api.gpio_export(95); // 导出引脚 api.gpio_direction(95, "out"); // 设为输出 api.gpio_write(95, 1); // 输出高电平 int v = api.gpio_read(95); // 回读电平 api.gpio_unExport(95); // 取消导出
提示:GPIO 编号为内核 gpiochip 全局编号,不同固件版本可能整体偏移;未导出的引脚需先 gpio_export 再操作。Linux 命令行(/sys/class/gpio)操作见 5.4。
面向 Android 应用开发,把硬件与系统能力封装为 Java 接口,应用不必直接读写 /dev 与 /sys 节点。Linux 侧不提供本套接口,请使用第 5 章的命令行方式。
接口源码包下载
包内包含 AndroidAPI.jar、libandroid-jni.so、AndroidAPI-sources.jar、Javadoc 文档、AndroidAPIDemo 示例工程与 APK、platform.jks 签名文件及 readme.txt。串口、GPIO、系统控制类接口需要系统签名或 Root 权限。
接口分类
| 前缀 | 类别 | 说明 |
|---|---|---|
| devinfo_ | 硬件及系统信息查询类 | 系统版本、CPU、内存、存储、SN 等 |
| display_ | 显示控制类 | 亮度、旋转、分辨率、导航栏与状态栏 |
| gpio_ | GPIO 控制类 | 导出、方向、读写电平 |
| uart_ | 串口控制类 | 打开、收发、关闭串口 |
| sysctrl_ | 系统控制类 | 定时开关机、立即重启、静默安装 |
1. 在 Application 的 onCreate 中创建实例
public class APIApplication extends Application { private NodkaAPI mNodkaAPI; @Override public void onCreate() { super.onCreate(); mNodkaAPI = NodkaAPI.nodkaAPICreate(this); } public NodkaAPI getNodkaAPI() { return mNodkaAPI; } }
2. 在 Activity 或 Fragment 中取用
private NodkaAPI mNodkaAPI = APIApplication.getApplication().getNodkaAPI();
提示:需在 AndroidManifest.xml 中把 android:name 指向 APIApplication;串口、GPIO、系统控制类接口需要系统签名或 Root 权限。
| 方法名 | 方法说明 |
|---|---|
| devinfo_getAndroidVersion() | 获取 Android 系统版本信息 |
| devinfo_getAvailMem() | 获取可用内存容量 |
| devinfo_getBuildNumber() | 获取系统版本号信息 |
| devinfo_getCpuCores() | 获取 CPU 核心数 |
| devinfo_getCPUCurFreqKHz() | 获取 CPU 当前运行主频 |
| devinfo_getCPUMaxFreqKHz() | 获取 CPU 最大主频 |
| devinfo_getCPUMinFreqKHz() | 获取 CPU 最小主频 |
| devinfo_getCPUTemp() | 获取 CPU 温度 |
| devinfo_getDeviceModel() | 获取设备型号信息 |
| devinfo_getKernelVersion() | 获取内核版本信息 |
| devinfo_getSerialNum() | 获取设备 SN 号 |
| devinfo_getStorageAvailableSize() | 获取本机可用存储容量 |
| devinfo_getStorageTotalSize() | 获取本机存储容量(不包括系统分区) |
| devinfo_getTotalMem() | 获取内存总容量 |
| 方法名 | 方法说明 |
|---|---|
| display_getNavBar() | 获取是否显示导航栏与状态栏 |
| display_getScreenBrightness() | 获取屏幕亮度 |
| display_getScreenRotation() | 获取屏幕旋转方向 |
| display_getWindowHeight() | 获取屏幕分辨率高度 |
| display_getWindowWidth() | 获取屏幕分辨率宽度 |
| display_setNavBar(Boolean enable) | 设置是否显示导航栏与状态栏 |
| display_setNavBarSlideShow(Boolean enable) | 设置滑动时是否显示导航栏与状态栏 |
| display_setScreenBrightness(int screenBrightness) | 设置屏幕亮度 |
| display_setScreenRotation(int rotation) | 设置屏幕旋转方向 |
| 方法名 | 方法说明 |
|---|---|
| gpio_direction(int gpioNumber, String direction) | 设置指定 GPIO 的方向(输入 / 输出) |
| gpio_export(int gpioNumber) | 导出指定 GPIO 引脚 |
| gpio_read(int gpioNumber) | 读取指定 GPIO 的电平值 |
| gpio_unExport(int gpioNumber) | 取消导出指定 GPIO 引脚 |
| gpio_write(int gpioNumber, int value) | 设置指定 GPIO 的输出电平 |
引脚编号见 4.11。
| 方法名 | 方法说明 |
|---|---|
| uart_close(String uartNode) | 关闭 uart 设备,如 /dev/ttyS2 |
| uart_getAvailableDevices() | 获取 uart 可用设备节点,返回 List<String> |
| uart_IsOpen(String uartNode) | 判断 uart 设备是否已经打开 |
| uart_open(String uartNode, int baudrate) | 打开 uart 设备并设置波特率 |
| uart_receive(String uartNode, UartReceiveDataCallback callback) | 接收串口数据,数据回调返回 |
| uart_send(String uartNode, byte[] buffer) | 发送串口数据 |
| uart_stopReceive(String uartNode) | 停止接收数据,调用后不再有回调 |
节点与测试方法见 4.5。
| 方法名 | 方法说明 |
|---|---|
| sysctrl_cancelReboot() | 取消重启设备 |
| sysctrl_cancelShutdown() | 取消自动关机 |
| sysctrl_powerOn(String time, boolean repeat) | 设置设备开机时间 |
| sysctrl_reboot(String time, boolean repeat) | 设置设备重启时间 |
| sysctrl_rebootNow() | 立即重启设备 |
| sysctrl_shutdown(String time, boolean repeat) | 设置设备关机时间 |
| sysctrl_shutdownNow() | 立即关机 |
| sysctrl_installApk(String apkPath) | 静默安装应用 |
Android 下的在线升级由预置应用 update 完成,整机需先连通外网。
应用列表中的 update 图标:
思迈联科在线升级界面:
提示:本节为 Android 联网在线升级;Android 的 U 盘离线升级见 3.4,Linux 在线升级见 5.10。
本章只针对 Linux 系统(Ubuntu 20.04 / Debian 11,部分项目为 Buildroot)。Android 下的对应功能见第 4 章。
除 5.11 交叉编译与 5.12.1 Docker 编译在开发主机上执行外,本章命令均在板端终端或 SSH 中执行。按键、指示灯与触摸屏的判定标准与第 4 章一致(见 4.9、4.10),本章不再重复。5.8 起为出厂项目常用的系统定制项。
aplay -l # 查看声卡与设备列表 aplay /nodka_test/LR_audio.wav -D hw:0,0 # 指定声卡设备播放 arecord -d 5 -f cd -r 44100 -c 2 -t wav test.wav aplay test.wav
音量调节:
alsamixer amixer -c 0 set 'Playback' 80%
提示:整机播放在 SPK 端子(PH2.0-4P)输出,需外接 8Ω 喇叭;MIC 走 Ø3.5 接口。
查看网口
ifconfig -a ip link show
命令行设置静态 IP
1. 用 vim 打开网络配置文件:vim /etc/network/interfaces
2. 按现场网络修改 IP、掩码、网关(整机为单网口,只配 eth0)
auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.2.110 netmask 255.255.255.0 gateway 192.168.2.1
3. 保存退出(vim 下按 Esc,输入 :wq),重启系统使配置生效。
提示:Ubuntu 20.04 默认由 NetworkManager 接管网络,/etc/network/interfaces 里的配置可能不生效;此时改用 5.2.2 的 nmcli 写法,或先停用 NetworkManager 再用本节方式。
设置 DNS
vi /etc/resolv.conf nameserver 114.114.114.114
网络优先级
# 临时修改,数值越小优先级越高 sudo ifmetric eth0 100 # 永久修改 sudo nmcli connection modify "有线连接名称" connection.autoconnect-priority 1 sudo nmcli connection modify "有线连接名称" ipv4.route-metric 100 sudo nmcli connection modify "有线连接名称" connection.autoconnect yes sudo systemctl restart NetworkManager
验证
ping -c 4 192.168.2.1 ping -c 4 www.baidu.com
提示:图形界面(Debian 桌面)可在「About NetworkManager Applet → Edit Connections…」中直接设置 IP、掩码、网关;没有现成连接时点右下角 + 新建。
查询并启用无线网卡
ifconfig -a # 无线网卡通常为 wlan0 ifconfig wlan0 up # 启用无线网卡 iw dev wlan0 scan # 扫描热点,获取 SSID、信号强度、加密方式
连接无线网络
nmcli d wifi connect "SSID" password "PASSWORD"
静态 IP
sudo nmcli connection modify NODKA ipv4.addresses 172.10.21.111/24 # IP / 子网掩码 sudo nmcli connection modify NODKA ipv4.gateway 172.10.21.1 # 网关 sudo nmcli connection modify NODKA ipv4.dns "114.114.114.114,61.177.7.1,8.8.8.8" # DNS sudo nmcli connection modify NODKA ipv4.method manual # 静态 sudo nmcli device disconnect wlan0 sudo nmcli device connect wlan0
动态 IP(DHCP)
sudo nmcli connection modify NODKA ipv4.method auto sudo nmcli connection modify NODKA ipv4.addresses "" # 清除静态 IP sudo nmcli connection modify NODKA ipv4.gateway "" # 清除网关 sudo nmcli connection modify NODKA ipv4.dns "" # 清除 DNS(可选) sudo nmcli connection down NODKA sudo nmcli connection up NODKA
配置为 AP 热点
IFNAME="wlan0" # 无线网卡节点 CON_NAME="One" # 热点名称 nmcli con add type wifi ifname $IFNAME con-name $CON_NAME autoconnect yes ssid $CON_NAME nmcli con modify $CON_NAME 802-11-wireless.mode ap 802-11-wireless.band bg ipv4.method shared nmcli con up $CON_NAME
提示:信号弱时可调整背部 Wi-Fi/BT 天线角度,或改用吸盘天线;连接后可用 ip addr show wlan0 查看获取到的地址。
Linux 下串口节点与 Android 一致:RS485 为 /dev/ttyS1、/dev/ttyS3,RS232 为 /dev/ttyS2、/dev/ttyS4(以背部丝印为准)。
测试工具
# 发送 com_send /dev/ttyS2 115200 # 接收(另开一个终端) com_recv /dev/ttyS2 115200
直接读写节点
stty -F /dev/ttyS2 115200 cs8 -cstopb -parenb echo "hello" > /dev/ttyS2 # 发送 cat /dev/ttyS2 # 接收
测试方式
回环、对发与转接的接法见 4.5.2,与操作系统无关,本节不重复。
注意事项
Linux 下统一通过 /sys/class/gpio 访问。端子脚位规则与系统 GPIO 编号见 2.3,本节只给操作命令。
1. 查看相关 IO 是否导出
cd /sys/class/gpio ls
2. 设置 GPO(系统配置)
for i in {95,94,21,22,140,141}; do echo out >gpio$i/direction; done for i in {13,14,96,93,108,107}; do echo out >gpio$i/direction; done
3. 设置 GPO 高 / 低
输出高电平:
for i in {95,94,21,22,140,141}; do echo 1 >gpio$i/value; done for i in {13,14,96,93,108,107}; do echo 1 >gpio$i/value; done
回读当前电平:
for i in {95,94,21,22,140,141}; do cat /sys/class/gpio/gpio$i/value; done
输出低电平:
for i in {95,94,21,22,140,141}; do echo 0 >gpio$i/value; done for i in {13,14,96,93,108,107}; do echo 0 >gpio$i/value; done
4. 设置 GPI(系统配置)
for i in {13,14,96,93,108,107}; do echo in >gpio$i/direction; done
5. 获取 GPI value
for i in {13,14,96,93,108,107}; do cat /sys/class/gpio/gpio$i/value; done for i in {95,94,21,22,140,141,13,14,96,93,108,107}; do cat /sys/class/gpio/gpio$i/direction; done
提示:GPIO 编号为内核 gpiochip 全局编号,不同固件版本可能整体偏移;若 /sys/class/gpio 下没有对应节点,先执行 echo 编号 > /sys/class/gpio/export 导出后再操作。
U 盘识别
dmesg | tail -20 # 插入后内核提示,可见设备名为 sda / sda1 lsblk # 查看块设备及挂载点
挂载与卸载
mkdir -p /mnt/USB1 mount /dev/sda1 /mnt/USB1 df -h umount /mnt/USB1
SD 卡
fdisk -l # SD 卡设备名通常为 /dev/mmcblk1p1 mount /dev/mmcblk1p1 /mnt/sdcard umount /mnt/sdcard
提示:ext4 / vfat 可直接挂载;NTFS 需安装 ntfs-3g,exFAT 需 exfat-fuse。Android 下的查看方式见 4.6。
内部屏分辨率由机型固定(见 1.3 型号与配置),HDMI 外接输出可通过 xrandr 调整。
X11 桌面
xrandr # 查看输出与可用模式 xrandr --output HDMI-1 --mode 1920x1080 --rate 60 xrandr -o left # 左旋 90° xrandr -o right # 右旋 90° xrandr -o inverted # 翻转 180° xrandr -o normal # 恢复
临时添加自定义分辨率
cvt 800 750 # 800x750 59.86 Hz (CVT) ... Modeline "800x750_60.00" 48.50 800 840 920 1040 750 753 763 779 -hsync +vsync xrandr --newmode "800x750_60.00" 48.50 800 840 920 1040 750 753 763 779 -hsync +vsync xrandr --addmode HDMI-1 800x750_60.00 xrandr --output HDMI-1 --mode 800x750_60.00
Wayland / Weston(使用 Wayland 会话时)
Ubuntu 20.04 默认使用 Xorg,xrandr 方式适用;若改用 Wayland 会话,Wayland 下不支持 xrandr,编辑 /etc/xdg/weston/weston.ini:
[output] name=HDMI-A-1 mode=1920x1080
修改后重启系统或 weston 服务生效。
双屏模式
同显(镜像)与异显(扩展)两种模式的定义见 4.8。Linux 下由桌面显示设置或 xrandr 控制两路输出的开关与位置。
sudo apt update && sudo apt install -y openssh-server sudo systemctl enable --now ssh ip addr show
电脑端传输:
scp ./update.img root@192.168.8.55:/home/root/
图形化工具可用 WinSCP / FileZilla,协议 SFTP,端口 22。
按启动时机分三种,按需选择,可叠加使用:登录前 → 登录时 → 进入图形界面后。同一程序只放一处即可。
适用于不依赖桌面、开机就要跑的后台服务。
sudo vim /etc/rc.local # 在 exit 0 之前添加 /path/to/myprogram & exit 0
说明:/path/to/myprogram 为程序完整路径;行尾的 & 让程序在后台运行,否则会阻塞后续登录流程。文件最后一行必须是 exit 0,脚本才会被执行。
提示:Ubuntu 20.04 默认未启用 /etc/rc.local,需确认 rc-local.service 已启用;只支持 systemd 的场景建议改用自建 service 或 5.8.3 的启动脚本。
只对当前用户生效,在用户登录完成时执行。
vim ~/.profile # 文件末尾追加 /path/to/myprogram & source ~/.profile
提示:~/.profile 仅对当前用户生效;需要所有用户生效时改 /etc/profile。
桌面起来之后才需要显示界面的应用(如全屏主程序)放这里。
Debian(LXDE)
vim /root/.config/lxsession/LXDE/autostart # 末尾追加 /path/to/myprogram > /dev/null 2>&1 &
Ubuntu
Ubuntu 下统一由启动脚本托管,把命令写进 /nodka_test/autorun.sh(该脚本在桌面启动后自动执行)。
sudo vim /nodka_test/autorun.sh # 末尾追加 /path/to/myprogram > /dev/null 2>&1 &
提示:> /dev/null 2>&1 用于丢弃程序输出,避免日志写满分区;& 保证后台运行。
LXDE 面板(任务栏 / 菜单栏)的配置保存在:
$HOME/.config/lxpanel/LXDE/panels/panel
用文本编辑器打开即可增删插件、调整位置与尺寸;改完执行 lxpanelctl restart,或重新登录生效。
桌面自启动文件 /root/.config/lxsession/LXDE/autostart 的默认内容:
@lxpanel --profile LXDE @pcmanfm --desktop --profile LXDE @xscreensaver -no-splash pulseaudio -D /nodka_test/autorun.sh
| 行 | 作用 |
|---|---|
| @lxpanel –profile LXDE | 启动 LXDE 面板(任务栏与菜单) |
| @pcmanfm –desktop –profile LXDE | 以 PCManFM 接管桌面,负责壁纸与图标 |
| @xscreensaver -no-splash | 屏幕保护程序 |
| pulseaudio -D | 启动音频服务 |
| /nodka_test/autorun.sh | 桌面起来后执行的自启动脚本 |
屏蔽桌面、只显示应用界面,把前三行注释掉即可:
#@lxpanel --profile LXDE #@pcmanfm --desktop --profile LXDE #@xscreensaver -no-splash pulseaudio -D /nodka_test/autorun.sh
提示:注释掉面板与 PCManFM 后,桌面无任务栏、无壁纸图标,仅显示自启动程序窗口,适合整机出厂即全屏应用的场景。
开机 LOGO 存放在 resource 分区。按 ① ~ ⑥ 顺序在整机 Linux 终端执行(需 root 权限):需要执行命令的步骤,说明文字与紧随其后的代码块对应;④ 的文件位置见下表。
① 准备 BMP 图片
准备 BMP 格式图片,并把图片尺寸设为屏幕分辨率大小(如 HDMI 1920×1080)。
② 拷贝 bmpconvert 工具并赋予可执行权限
下载 bmpconvert 转换工具(2.3 KB,解压即得脚本),解压后拷贝到 /usr/bin:
sudo cp bmpconvert /usr/bin/ sudo chmod +x /usr/bin/bmpconvert
③ 挂载 resource 分区
sudo mount /dev/block/by-name/resource /mnt
④ 放置开机 LOGO 文件
把 BMP 图片按屏幕类型放入 /mnt 对应文件名:
| 屏幕类型 | 文件位置 |
|---|---|
| HDMI / eDP / LVDS | /mnt/logo.bmp、/mnt/logo_kernel.bmp |
| MIPI | /mnt/logo_mipi.bmp、/mnt/logo_kernel_mipi.bmp |
⑤ 执行 bmpconvert 转换
HDMI / eDP / LVDS 屏执行:
sudo bmpconvert /mnt/logo.bmp sudo bmpconvert /mnt/logo_kernel.bmp
MIPI 屏改用对应文件名:
sudo bmpconvert /mnt/logo_mipi.bmp sudo bmpconvert /mnt/logo_kernel_mipi.bmp
报错处理:若步骤 ⑤ 出现如下输出,说明系统只有 python3、缺少 python 命令:
root@rk3568: bmpconvert /mnt/logo.bmp /usr/bin/env: 'python': No such file or directory root@rk3568: bmpconvert /mnt/logo_kernel.bmp /usr/bin/env: 'python': No such file or directory
先建立 python 软链,再重跑步骤 ⑤ 的两条命令:
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.9 1 sudo bmpconvert /mnt/logo.bmp sudo bmpconvert /mnt/logo_kernel.bmp
⑥ 重启系统
sudo reboot
提示:logo.bmp 为 U-Boot 阶段显示,logo_kernel.bmp 为内核启动阶段显示,两个都要替换。修改前建议先备份 /mnt 下的原文件。
HDMI:系统默认支持,默认输出 1920×1080,无需设置。
eDP / LVDS:屏参与屏体必须匹配。终端执行 dis 调出屏参设置界面,选择对应屏参后点击 Save,重启生效。
dis
Display Settings 屏参设置界面:选择与屏体一致的参数,点击 Save 保存。
Debian:修改 xorg 配置
Section "Monitor"
Identifier "eDP-1" # 屏幕节点名,用 xrandr 查询
Option "Rotate" "inverted" # 旋转方向,见下表
EndSection
| 取值 | 旋转角度 |
|---|---|
| normal | 0°(默认) |
| right | 顺时针 90° |
| inverted | 顺时针 180° |
| left | 顺时针 270° |
Ubuntu:使用 xrandr
xrandr --output HDMI-1 --rotate left # 向左旋转 90° xrandr --output HDMI-1 --rotate right # 向右旋转 90° xrandr --output HDMI-1 --rotate inverted # 旋转 180° xrandr --output HDMI-1 --rotate normal # 恢复默认
提示:把旋转命令放到 /nodka_test/autorun.sh 末尾,可开机自动生效。
触摸旋转
屏幕旋转后触摸坐标会错位,需同步修改 /usr/share/X11/xorg.conf.d/40-libinput.conf 中的 CalibrationMatrix:
Section "InputClass"
Identifier "libinput touchscreen catchall"
Option "CalibrationMatrix" "-1 0 1 0 -1 1 0 0 1"
MatchIsTouchscreen "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
EndSection
| 屏幕方向 | CalibrationMatrix |
|---|---|
| 0°(默认) | 1 0 0 0 1 0 0 0 1 |
| 90°(顺时针) | 0 1 0 -1 0 1 0 0 1 |
| 180°(上下颠倒) | -1 0 1 0 -1 1 0 0 1 |
| 270°(逆时针 90°) | 0 -1 1 1 0 0 0 0 1 |
升级由板内 /usr/bin/ota 脚本完成。按实际情况编辑该脚本、设置 FTP 地址与账号,并把相应固件放到 FTP 下载地址,然后执行 ota。需要改动的文件与对应代码如下。
① 编辑升级脚本 /usr/bin/ota
sudo vim /usr/bin/ota
② 在脚本中设置以下三项
URL=ftp://<固件服务器地址> USERNAME=<用户名> PASSWORD=<密码>
③ 保存后执行升级
ota
按提示完成升级。
提示:服务器地址、账号与固件目录由我司提供;升级过程请勿断电,完成后设备自动重启。
Linux 下由板内 /usr/bin/ota 脚本执行在线升级,U 盘作为固件暂存盘。按 ① ~ ⑤ 顺序操作:需要执行命令的步骤,说明文字与紧随其后的代码块一一对应;③④ 为条件确认,无需执行命令。
① 解除 U 盘挂载
sudo umount /dev/sdb
② 格式化 U 盘为 ext4
sudo mkfs.ext4 /dev/sdb
③ 确认系统支持在线升级
板内需已具备 /usr/bin/ota 脚本(脚本配置见 5.10.1)。
④ 确认 U 盘规格
U 盘需格式化为 linux ext4 格式,可用容量大于 8G,否则升级包无法写入。
⑤ 插网线、插 U 盘,执行升级
ota
按提示完成升级,过程中请勿断电,完成后设备自动重启。
提示:/dev/sdb 为 U 盘常见设备节点,实际以 lsblk 结果为准。本节是 Linux 在线升级(ext4、≥8G、ota 命令),与 3.4 的 Android U 盘升级(FAT32、update.img)、4.13 的 Android 在线升级是两套流程,不要混用。
Debian / Ubuntu 主机上一条命令即可装好 aarch64 交叉工具链,再用 -v 确认版本:
sudo apt install -y crossbuild-essential-arm64 aarch64-linux-gnu-gcc -v
需要特定版本时,从 ARM 官方下载对应工具链(developer.arm.com/downloads/-/gnu-a),解压后把 bin 目录加入 PATH:
export PATH=$PATH:/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/ aarch64-none-linux-gnu-gcc --version
提示:写入 ~/.bashrc 或 /etc/profile 可永久生效;路径按实际解压目录替换。
常用交叉编译工具链与获取方式:
下载:gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xz 百度网盘 提取码 hkku
提示:该工具链免安装,解压后把压缩包内 bin 目录加入 PATH 即可;编译时调用 aarch64-none-linux-gnu-gcc。
预置环境:Debian 11 → Qt 5.15.2,Ubuntu 20.04 → Qt 5.12.8。两种方式按条件选择。
用现成编译镜像,主机无需安装 Qt,隔离性好,适合批量编译。
sudo docker load < nodka_docker_qt_build_20230223.tar sudo docker run --rm --mount type=bind,source=/home/APP_PATH,target=/mnt/ -i -t 09a37c1b2fc3 /bin/bash cd /mnt qmake make
提示:镜像体积较大,由我司单独提供;容器 ID(09a37c1b2fc3)以 docker images 实际输出为准。
1. 安装 Qt Creator
sudo apt-get install qtcreator sudo apt-get install qt5-default
若 qt5-default 已被官方仓库移除,改用下面这组依赖:
sudo apt-get install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools qtcreator
2. 添加 qmake
Qt Creator → Tools → Options → Kits → Qt Versions → Add,选择板内 qmake:
/usr/local/qt5.12-arm/bin/qmake
在 Qt Versions 中添加板内 qmake 路径。
3. 配置交叉编译器
同一窗口切到 Compilers → Add → GCC,分别添加 g++ 与 gcc:
g++:/usr/bin/aarch64-linux-gnu-g++ gcc:/usr/bin/aarch64-linux-gnu-gcc
g++ 编译器位置:
gcc 编译器位置:
添加交叉编译器;主机装的是 crossbuild-essential-arm64 时编译器在 /usr/bin 下,用第三方工具链时填其安装路径。
4. 配置 Debugger(可选,在线调试用)
sudo apt install -y gdb-multiarch
板端需存在 /usr/bin/gdbserver,没有则安装 gdbserver(Buildroot 自带,无需安装)。在 Qt Creator 的 Debuggers 中添加 /usr/bin/gdb-multiarch。
5. 配置 Devices
填入板卡 IP 与用户名 root;建议给板卡设置静态 IP,避免调试中断线。
6. 配置 Kits
把前面的 Qt 版本、编译器、调试器、设备组合成一个 Kit。目标系统为 Ubuntu 时,还需在 Kit 中填写 sysroot 路径。
在 Kits 中组合 Qt 版本、编译器、调试器与设备。
板载 VPU 支持 H.264 / H.265 硬件编解码,系统已带 GStreamer 插件与 OpenGL ES / OpenCL 运行库。
GStreamer 编解码
系统自带测试脚本,直接运行即可验证硬解与硬编:
/rockchip-test/video/test_dec-gst.sh # 硬解测试 /rockchip-test/video/test_enc-gst.sh # 硬编测试
OpenGL ES
用 glmark2 跑分验证 GPU:
glmark2-es2
WebGL
打开 Chromium,在地址栏输入以下地址,查看 WebGL 与硬件加速状态:
chrome://gpu
OpenCL
clinfo
clinfo 输出:确认平台、设备与 OpenCL 版本信息。
本章为查询类命令,Android(adb shell)与 Linux 终端下基本一致,个别命令已在条目中注明差异。
cat /sys/class/thermal/thermal_zone0/temp # 输出为毫摄氏度,45200 表示 45.2℃
cat /proc/device-tree/serial-number # Android 下 getprop ro.serialno
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
free -h cat /proc/meminfo | head -3
df -h lsblk
ping -c 4 192.168.8.1 ping -c 4 www.baidu.com ping -c 1 -W 1 8.8.8.8
# 查看系统时间 date # 设置系统时间并写入 RTC 芯片 sudo date -s "2025-04-08 17:01:01" sudo hwclock -w sudo hwclock -r
验证:关机断电 5 秒以上再开机,用 date 查看时间是否保持。
提示:系统默认启用网络对时,RTC 测试需在断开外网的情况下进行。
时区设置
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime reboot
图形界面可在「首选项 → 时间和日期」中选择时区,设置其他时区只需把命令中的 Asia/Shanghai 换成对应城市。
| 现象 | 可能原因 | 处理方式 |
|---|---|---|
| 烧录工具一直显示「没有发现设备」 | 未进入 Loader / USB 驱动异常 / 线材问题 | 按 3.3 步骤 ④ 重新进入;驱动卸载后重装;更换 USB 口与数据线 |
| 设备管理器出现未知设备 | 瑞芯微 USB 驱动未装好 | 见 3.2,重新安装 DriverInstall |
| ADB 无法连接 | 未开启 USB 调试 / 接错 USB 口 | 见 4.1;确认接的是蓝色 USB3.0/OTG 下口 |
| 串口打不开或无数据 | 节点选错 / 无权限 / A-B 或 R-T 反接 | 见 4.5、5.3;按丝印核对节点与线序 |
| GPIO 读写无反应 | 未 export / 编号随固件偏移 | 见 2.3、5.4;先 export 再操作 |
| 触摸无响应或坐标错位 | 触摸 USB 线松动 / 旋转后未改 CalibrationMatrix | 见 4.10、5.9.5 |
| 屏幕旋转后界面正常但触摸反向 | 未同步修改 libinput 校准矩阵 | 见 5.9.5 触摸旋转表 |
| 开机 LOGO 不生效 | 只替换了其中一张 / 未执行 bmpconvert | 见 5.9.3,两张 logo 都要替换并转换 |
| 静态 IP 配置不生效 | NetworkManager 与 ifupdown 并存 | 见 5.2.1 提示 |
| U 盘升级无提示 | 文件名不是 update.img / 格式不是 FAT32 | 见 3.4.1,改名并重新格式化为 FAT32 |
| 项目 | 内容 |
|---|---|
| 适用产品 | sTPC-E101 / E121 / E150 / E156 / E170 / E215-3568B |
| 主控平台 | Rockchip RK3568(4 × Cortex-A55 @2.0GHz,1TOPS NPU) |
| 适用系统 | Android 11、Ubuntu 20.04(Debian 11 按项目配置) |
| 文档版本 | v1.4 |
| 更新日期 | 2026-11-11 |
| 版本 | 日期 | 修订内容 |
|---|---|---|
| v1.4 | 2026-11-11 | 全文口径对齐:统一串口组数与丝印、电源范围、系统范围、接口数量口径;GPIO 与 OTA 去重;补 SD 卡 / GPIO / 编解码规格;新增 4.13 与第 7 章附录 |
历史版本请向技术支持索取。