配置 reComputer Industrial R22xx
概述
在安装好设备后,了解如何在 reComputer Industrial R22xx 系列上配置和测试硬件组件。本 Wiki 涵盖 GPIO 映射、USER LED 测试、SPI 通信、Wi-Fi 和蓝牙扫描、LoRa®、4G、5G、通过 Mini-PCIe 的 Zigbee、RS485、RS232、CAN、DI/DO 测试、安全关机 UPS 等内容。

查询 GPIO 映射和偏移
要查询 GPIO 映射和偏移,请按照以下步骤操作:
- 复制并粘贴以下命令以查询 GPIO 映射:
cat /sys/kernel/debug/gpio
此命令将显示 GPIO 映射和偏移,为调试或配置 GPIO 引脚提供关键信息。
USER LED 测试
我们为用户提供了红、蓝、绿三种颜色的 LED。你可以进入 /sys/class/leds/ 目录查看:
1. 进入 LED 目录
cd /sys/class/leds/
ls

使用以下命令点亮对应颜色的 LED。
sudo su
echo 1 > /sys/class/leds/led-red//brightness
echo 1 > /sys/class/leds/led-blue/brightness
echo 1 > /sys/class/leds/led-green/brightness
这将点亮对应的 LED。
3. 关闭 LED(可选)
要关闭某个特定 LED,请使用:
sudo su
echo 0 > /sys/class/leds/led-red/brightness
echo 0 > /sys/class/leds/led-blue/brightness
echo 0 > /sys/class/leds/led-green/brightness
测试 SPI 通信
要通过短接 TPM 模块的 MISO 和 MOSI 引脚来测试 SPI 通信,请按照以下步骤操作:
- 克隆 spidev-test 仓库:
# Don't forget to connect to network before running command
git clone https://github.com/rm-hull/spidev-test.git
- 进入 spidev-test 目录:
cd spidev-test
- 编译 spidev_test.c 文件:
gcc spidev_test.c -o spidev_test
- 使用以下命令运行 spidev_test 程序:
./spidev_test -D /dev/spidev10.0 -v -p hello
该命令会在指定的 SPI 设备(/dev/spidev10.0)上测试 SPI 通信,启用详细输出( -v ),并发送消息 "hello"(-p hello)。 通过短接 TPM 模块的 MISO 和 MOSI 引脚,你实际上创建了一个回环场景,即 MOSI 发送的数据会在 MISO 上被接收。此设置允许你在没有实际外接设备的情况下测试 SPI 通信。
Wi-Fi 扫描
要列出可用的 Wi-Fi 网络及其详细信息,请运行:
sudo iwlist wlan0 scan
- 此命令会扫描附近所有 Wi-Fi 网络,并显示其 SSID、信号强度和加密类型。
蓝牙扫描
要扫描蓝牙设备,请按照以下步骤操作:
打开蓝牙控制界面:
sudo bluetoothctl
此命令将打开蓝牙控制界面。之后,你可以运行其他命令来扫描附近的蓝牙设备。
启用扫描:
scan on
此命令将开始扫描附近的蓝牙设备。然后你可以在 bluetoothctl 界面中使用其他命令与蓝牙设备交互,例如配对或连接。
通过 Mini-PCIe 的 LoRa®
LoRa® SPI 配置
在将 LoRa® SPI 安装到 Mini-PCIe 插槽 2 后,可以按以下步骤配置 LoRa® SPI:
- 克隆 SX1302_HAL 仓库:
cd ~/
git clone https://github.com/Lora-net/sx1302_hal
- 进入克隆的目录:
cd sx1302_hal
- 修改配置文件:
打开 I2C 设备配置文件:
sudo nano ./libloragw/inc/loragw_i2c.h
将此行修改为:
#define I2C_DEVICE "/dev/i2c-1"
修改为:
#define I2C_DEVICE "/dev/i2c-2"
将 #define I2C_DEVICE "/dev/i2c-1" 修改为 #define I2C_DEVICE "/dev/i2c-2"。 按 ctrl+x 退出,按 y 保存更改,然后按 Enter 返回命令行页面。
- 4.添加 packet_forwarder/reset_lgw.sh 文件:
sudo nano packet_forwarder/reset_lgw.sh
添加执行代码:
SX1302_RESET_PIN=632 # SX1302 reset
SX1302_POWER_EN_PIN=633 # SX1302 power enable
SX1261_RESET_PIN=634 # SX1261 reset (LBT / Spectral Scan)
# AD5338R_RESET_PIN=13 # AD5338R reset (full-duplex CN490 reference design)
固件原生支持 SPI 型号 WM1302-SPI-US915-M。如果你希望使用其他型号,可以查询对应 RESET_PIN 的定义,并参考以下命令修改 RESET_PIN。
cat /sys/kernel/debug/gpio
按 ctrl+x 退出,按 y 保存更改,然后按 Enter 返回命令行页面。
- 修改配置代码:
cp ./tools/reset_lgw.sh ./packet_forwarder
- 分别注释掉第 18、29、35、42、53 和 54 行:
nano ./packet_forwarder/global_conf.json.sx1250.US915
将 "com_path": "/dev/spidev0.0" 修改为 "com_path": "/dev/spidev2.0"。
cd ./packet_forwarder
sudo ./lora_pkt_fwd -c global_conf.json.sx1250.US915

LoRa® USB 配置
对于 LoRa® USB,前面的命令与 LoRa® SPI 相同。但最后一条命令需要修改为:
cho 632 > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio632/direction
echo "1" > /sys/class/gpio/gpio632/value
sudo ./lora_pkt_fwd -c global_conf.json.sx1250.EU868.USB

此命令指定用于 LoRa® USB 的配置文件。
通过 M.2 B-KEY 的 5G 蜂窝网络
要通过 minicom 使用 AT 命令与 5G/4G 模块交互,请按照以下步骤操作:
- 新建 power_5g.sh 文件:
nano power_5g.sh
使用 sudo nano 打开并输入以下命令,然后按 ctrl+x 保存并退出。
#!/bin/bash
RESET_PIN=655
POWER_PIN=660
if [ ! -d "/sys/class/gpio/gpio$RESET_PIN" ]; then
echo $RESET_PIN > /sys/class/gpio/export
fi
if [ ! -d "/sys/class/gpio/gpio$POWER_PIN" ]; then
echo $POWER_PIN > /sys/class/gpio/export
fi
echo "out" > /sys/class/gpio/gpio$RESET_PIN/direction
echo "out" > /sys/class/gpio/gpio$POWER_PIN/direction
echo 1 > /sys/class/gpio/gpio$RESET_PIN/value
echo 1 > /sys/class/gpio/gpio$POWER_PIN/value
echo "Start to reboot 5g module"
echo 0 > /sys/class/gpio/gpio$RESET_PIN/value
sleep 0.05
echo 0 > /sys/class/gpio/gpio$POWER_PIN/value
echo "5g module reboot completed"
- 执行该文件:
sudo ./power_5g.sh
等待 10-15 秒(模块上电并通过 USB 枚举需要一定时间),然后检查设备节点是否出现:
ls /dev/ttyUSB*
输出 /dev/ttyUSB0 等:

使用合适的串口和波特率打开 minicom:
sudo apt update
sudo apt install minicom
sudo minicom -D /dev/ttyUSB2 -b 115200
此命令使用指定串口(/dev/ttyUSB2)并以 115200 波特率打开 minicom。
- 打开 minicom 后,你可以开始向 4G 模块发送 AT 命令。例如:
AT
此命令用于检查模块是否有响应。如果模块工作正常,你应当收到 "OK" 的响应。
- 要使用 4G 模块拨打电话号码,可以使用 ATD 命令并在后面加上电话号码:
ATD<phone_number>;
将 phone_number 替换为你想要拨打的电话号码。 请确保在命令末尾添加分号 ;,以表示电话号码的结束。
通过 Mini-PCIe 的 4G 蜂窝网络
新建 power_4g.sh 文件:
sudo nano power_4g.sh
使用 sudo nano 打开并输入以下命令,然后按 ctrl+x 保存并退出。
# SIM_MUX_SEL
echo 655 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio655/direction
echo 0 > /sys/class/gpio/gpio655/value
echo 660 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio660/direction
echo 1 > /sys/class/gpio/gpio660/value
执行该文件:
sudo ./power_4g.sh
进入 minicom 发送命令:
sudo apt install minicom -y
sudo minicom -D /dev/ttyUSB2 -b 115200
依次按下 Ctrl+A、Z、E。先发送 AT 测试是否已连接。如果出现 OK,则表示连接成功。

执行以下命令后,模块会自动重启。如果你没有退出 minicom,可以看到对应的配置信息。 ECM 拨号上网:
AT+QCFG="usbnet",1
直到最后一行显示 OK,即表示成功。
Note 设备需要等待一段时间,然后你可以在 ifconfig 中查看 usb0 的 IP 地址。
测试网络状态和通信:
# Check network status
ifconfig
# Test communication
ping www.baidu.com -I usb0
基于 Mini-PCIe 的 Zigbee
要测试两个 Zigbee 模块之间的 Zigbee 通信,请按照以下步骤操作:
- 检查可用串口
使用以下命令检查可用串口:
cat /dev/ttyUSB*
安装串口通信工具
- 安装串口通信工具:
sudo apt-get install cutecom
- 为协调器(第一个 Zigbee 模块)打开串口:
- 打开 cutecom 工具,并为第一个串口进行配置:
- 波特率:115200
- 在界面底部勾选 "Hex output" 选项。
- 按照以下步骤配置第一个 Zigbee 模块:
- 设置为协调器:发送命令 ‘55 04 00 05 00 05’,期望响应 ‘55 04 00 05 00 05’。
- 复位设备:按下复位按钮或发送命令 ‘55 07 00 04 00 FF FF 00 04’。
- 建立网络:发送命令 ‘55 03 00 02 02’。
- 为路由器(第二个 Zigbee 模块)打开串口: 再打开一个 cutecom 实例,并使用与之前相同的设置为第二个串口进行配置。 按照以下步骤配置第二个 Zigbee 模块:
- 设置为路由器:发送命令 ‘55 04 00 05 01 04’,期望响应 ‘55 04 00 05 00 05’。
- 复位设备:按下复位按钮或发送命令 ‘55 07 00 04 00 FF FF 00 04’。
- 建立网络:发送命令 ‘55 03 00 02 02’。
- 检查设备状态: 发送命令 ‘55 03 00 00 00’ 来检查设备状态。期望收到类似 ‘55 2a 00 00 00 01 XX XX XX XX’ 的响应,其中 ‘XX’ 表示设备信息。
- 进入透传模式: 如果建网成功,通过发送命令 55 07 00 11 00 03 00 01 13 进入透传模式。两个模块都应处于透传模式以实现直接通信。要退出透传模式,发送 "+++"。
- 补充说明:
- 如果路由器配置失败,设备可能已经是协调器。可通过命令 '55 07 00 04 02 xx xx xx' 退出网络。
- 使用命令 '55 04 0D 00 00 0D'(查询)和 '55 04 0D 01 XX XX'(设置)测试发射功率。 请确保将 /dev/ttyUSB 替换为每个 Zigbee 模块对应的正确串口。请仔细按照这些步骤操作,以成功测试两个模块之间的 Zigbee 通信。
RS485 测试
reComputer Industrial R21xx 包含 2 个 RS485 接口。下面是它们对应的 COM 端口 和 设备文件:
| RS485 接口数量 | COM 端口 | 丝印标识 | 设备文件 |
|---|---|---|---|
| RS485-2 | COM2 | A2/B2/GND3 | /dev/ttyACM1 |
| RS485-3 | COM3 | A3/B3/GND4 | /dev/ttyACM2 |
要测试 RS485 功能,可以按照以下步骤进行(以 RS485_1 和 RS485_2 为例):
- 请将 RS485_1 和 RS485_2 的 A 和 B 连接在一起。
- 分别在两个终端窗口中打开 minicom:
sudo minicom -D /dev/ttyACM1
sudo minicom -D /dev/ttyACM2
如果有扩展板,编号需要往后移一位,例如 /dev/ttyAcM2、/dev/ttyAcM3。
- 需要在两个已打开的 ACM 上执行以下操作:
-
按下 Ctrl+A,然后按 Z,会出现 Minicom Command Summary 界面:

-
再按 O 打开配置,选择 Serial port setup,并按 Enter;打开所有与 RS485 相关的选项,依次按 H/I/J/K/L 将其打开;

-
当所有选项都显示为 "YES" 后,按 Enter 返回,然后选择 Exit 退出。
以 ACM2 和 ACM3 为例: 如果要从 ACM2 发送到 ACM3,需要重新设置 ACM2:ctrl+A,然后按 Z 再按 E,然后开始串口写命令。此时可以在 ACM2 中任意打印字符串,并且可以在 ACM3 中同时看到 ACM2 的内容; 反之,如果要从 ACM3 发送到 ACM2,需要重新设置 ACM3:ctrl+A,然后按 Z 再按 E,然后开始串口写命令。此时可以在 ACM3 中任意打印字符串,并且可以在 ACM2 中同时看到 ACM3 的内容,如图所示。

RS232 测试
reComputer Industrial R21xx 包含 2 个 RS232 接口,对应的 COM 端口 和 设备文件 如下:
| RS232 接口数量 | COM 端口 | 丝印标识 | 设备文件 |
|---|---|---|---|
| RS232-1 | COM1 | RX1/TX1/GND1 | /dev/ttyACM0 |
| RS232-2 | COM2 | RX2/TX2/GND2 | /dev/ttyACM1 |
由于 RS232 为全双工通信,直接将 RS232 的 TX 和 RX 短接即可进行回环测试。

你需要打开两个终端,如果连接了扩展板则使用 ACM1,如果未连接扩展板则使用 ACM2: 终端 1:*
sudo minicom -D /dev/ttyACM1 -b 9600
如果未连接扩展板,需要将 /dev/ttyACM1 改为 /dev/ttyACM0。
终端 2:
printf "hello seeed\r\n" > /dev/ttyACM1
终端 1 会显示终端 2 请求打印的内容。

DI(数字输入)测试
reComputer Industrial R21xx 包含 4 个 DI 接口,用户可以根据实际需求对这些接口进行配置。
| 接口数量 | DI 接口 | 对应扩展 GPIO |
|---|---|---|
| 4 | DI1 | GPIO588 |
| DI2 | GPIO589 | |
| DI3 | GPIO590 | |
| DI4 | GPIO595 |
DI 接口的输入类型为 PNP。支持的输入电压为 5VDC~24VDC,电流 - 1000mA。 要测试 DI 的功能,可以按照以下步骤进行测试:
- 已完成 reComputer Industrial R21xx 的 DI 接口与外部负载之间的连接。
- 输入以下命令获取 GPIO 的状态:
echo 588 > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio588/direction
cat /sys/class/gpio/gpio588/value
- 当外部电平为高时,/sys/class/gpio/gpio588/value 的值为 0;当外部电平为低时,/sys/class/gpio/gpio588/value 的值为 1。
DO(数字输出)
reComputer Industrial R21xx 包含 4 个 DO 接口,用户可以根据实际需求对这些接口进行配置。
| 接口数量 | DI 接口 | 对应扩展 GPIO |
|---|---|---|
| 4 | DO1 | GPIO638 |
| DO2 | GPIO637 | |
| DO3 | GPIO590 | |
| DO4 | GPIO636 | |
| DO5 | GPIO635 |
DO 接口的输出类型为晶体管。支持的输出电压为 60 VDC 以下,电流能力为 500 mA。 要测试 DO 的功能,可以按照以下步骤进行测试:
- 已完成 reComputer Industrial R21xx 的 DO 接口与外部负载之间的连接。
- 输入以下命令将输出设置为高电平或低电平:
echo 638 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio638/direction
echo 1 > /sys/class/gpio/gpio638/value
echo 0 > /sys/class/gpio/gpio638/value
- 当外部电平为高时,/sys/class/gpio/gpio638/value 的值为 0;当外部电平为低时,/sys/class/gpio/gpio638/value 的值为 1。
CAN 测试
回环测试
| 接口数量 | DI 接口 | 对应扩展 GPIO |
|---|---|---|
| 2 | CAN_H/CAN_L | can0 |
由于 reComputer Industiral R22xx 仅配备单路 CAN 接口,无法独立进行回环测试。要验证其通信功能,需要一个外部对端设备或 USB 转 CAN 适配器。在本次测试中,将使用配备双路 CAN 接口的 reComputer Industiral R21xx 作为对端节点,与 reComputer Industiral R22xx 建立连接。具体的连接方案和配置步骤请参考以下教程:
- 使用两根杜邦线将 can0 和 can1 的 H-H 与 L-L 短接,形成最小回路测试。
CAN_H─────●───── CAN-H
CAN_L─────●───── CAN-L
G_CAN_H─────●───── G_CAN
- 确认系统中确实出现了 can0 和 can1 这两个网络接口,以防驱动未加载:
# should print can0 can1
ls /sys/class/net | grep can
# should see "successfully initialized"
dmesg | grep -i can
- 将两个 CAN 接口设置为 500 kbit/s 并上线,准备收发数据(为安全起见,将其设置为低电平): R22xx:
sudo ip link set can0 down
sudo ip link set can0 up type can bitrate 500000
R21xx:
sudo ip link set can1 down
sudo ip link set can1 up type can bitrate 500000
- 通信测试(单向) 使用 can-utils 来发送和接收数据。
步骤 A:R21xx(CAN1)发送 → R22xx(CAN0)接收
-
R22xx:candump can0
-
R21xx:cansend can1 123#DE.AD.BE.EF.CA.FE.00.11
步骤 B:R22xx(CAN0)发送 → R21xx(CAN1)接收
-
R21xx:candump can1
-
R22xx:cansend can0 555#1122334455667788
USB Hub 测试
要测试 USB hub,可以按照以下步骤进行:
- 运行 lsusb 命令检查是否检测到 USB hub。该命令会列出所有已连接的 USB 设备,包括 hub。
lsusb
运行该命令后,应显示系统中已连接 USB 设备的信息,包括存在的任何 USB hub。 如果 USB hub 工作正常,你应当能在 lsusb 命令的输出中看到它的详细信息。如果没有列出,可能是 hub 本身或其与系统连接存在问题。在这种情况下,你可能需要对 USB hub 或其连接进行排查。
RTC(实时时钟)测试
要测试实时时钟(RTC)功能,请按以下步骤操作:
- 禁用自动时间同步:
sudo systemctl stop systemd-timesyncd
sudo systemctl disable systemd-timesyncd
- 设置时间: 将 RTC 设置为特定的日期和时间:
sudo hwclock --set --date "2025-10-23 16:00:00"
- 将 RTC 时间同步到系统 将系统时间更新为与 RTC 时间一致:
sudo hwclock --hctosys
- 检查 RTC 时间:
sudo hwclock -r
该命令将读取并显示存储在 RTC 中的时间。
- 断开 RTC 的电源,等待几分钟,然后重新接通电源并再次检查 RTC 时间,以确认它是否保持了正确时间。

看门狗定时器测试
要执行看门狗测试,请按以下步骤操作:
- 安装看门狗软件:
sudo apt install watchdog
- 编辑看门狗配置文件:
# make sure you install vim already, if haven't, can install by the command below
sudo apt-get install vim
sudo vim /etc/watchdog.conf
按如下方式修改配置:
watchdog-device = /dev/watchdog
# Uncomment and edit this line for hardware timeout values that differ
# from the default of one minute.
watchdog-timeout = 120
# If your watchdog trips by itself when the first timeout interval
# elapses then try uncommenting the line below and changing the
# value to 'yes'.
#watchdog-refresh-use-settimeout = auto
# If you have a buggy watchdog device (e.g. some IPMI implementations)
# try uncommenting this line and setting it to 'yes'.
#watchdog-refresh-ignore-errors = no
# ====================== Other system settings ========================
#
# Interval between tests. Should be a couple of seconds shorter than
# the hardware time-out value.
interval = 15
max-load-1 = 24
#max-load-5 = 18
#max-load-15 = 12
realtime = yes
priority = 1
你可以根据需要调整其他设置。
- 确保看门狗服务正在运行:
sudo systemctl start watchdog
- 要测试看门狗功能,执行以下命令来模拟系统死机:
sudo su
echo 1 > /proc/sys/kernel/sysrq
echo "c" > /proc/sysrq-trigger
该命令会触发内核崩溃,并应导致看门狗重启系统。
- 监控系统,以确认其在指定超时时间后重新启动。 这些步骤将帮助你测试并确保系统上的看门狗定时器功能正常。

通过 GPIO 控制蜂鸣器
与蜂鸣器对应的 GPIO 为 gpio627。输入以下脚本以打开/关闭蜂鸣器:
- 打开蜂鸣器:
echo 627 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio627/direction
echo 1 > /sys/class/gpio/gpio627/value
- 关闭蜂鸣器:关闭蜂鸣器:
echo 627 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio627/direction
echo 0 > /sys/class/gpio/gpio627/value
TPM 2.0
如果你将 TPM 2.0 模块连接到设备,以下代码可以帮助检查 TPM 连接情况。
ls /dev | grep tpm
输出结果说明:
如果你在输出中看到 tpm0 和 tpmrm0,这意味着系统已检测到 TPM(可信平台模块)设备并可用。这表明 TPM 硬件已被识别且可访问,这是一个良好信号。你可以在确认这些设备存在且可访问的前提下,继续使用与 TPM 相关的功能或应用程序。
ATECC608A
要与 ATECC608A 设备交互并生成随机序列号,请按以下步骤操作:
- 克隆 atecc-util 仓库:
curl -LJO https://github.com/wirenboard/atecc-util/releases/download/v0.4.12/atecc-util_0.4.12_arm64.deb
- 将 .deb 软件包的内容解压到当前目录:
dpkg -x ./atecc-util_0.4.12_arm64.deb .
- 进入 atecc 目录:
cd usr/bin
- 生成随机序列号:
./atecc -b 10 -s 192 -c 'serial'
该命令指示 ATECC 工具使用插槽 10(-b 10),将序列号大小设置为 192 位 ( -s 192 ),并生成一个随机序列号 ( -c 'serial' )。输出将是生成的序列号,例如 "01235595d3d621f0ee"。 通过该过程,你可以与 ATECC608A 设备交互并执行各种操作,例如生成随机序列号。
与 EEPROM 交互
以下是与 EEPROM(电可擦可编程只读存储器)交互的命令:
- 为 EEPROM 设备文件授予完全权限(读、写和执行):
sudo chmod 777 /sys/bus/i2c/devices/10-0050/eeprom
- 将字符串 "This is a test string" 写入 EEPROM 设备:
echo "This is a test string" > /sys/bus/i2c/devices/10-0050/eeprom
- 读取 EEPROM 设备的内容,并使用 hexdump 工具以 十六进制 格式显示:
cat /sys/bus/i2c/devices/6-0050/eeprom | hexdump -C
检查 SSD 是否被检测到
要列出包括 SSD 在内的磁盘,可以使用 fdisk -l 命令。具体如下:
sudo fdisk -l
该命令会显示系统中连接的所有磁盘列表,如果 SSD 被正确检测到,也会包含在内。请查找代表 SSD 的条目,它们通常以 /dev/sd 开头,后面跟一个字母(例如 /dev/sda, /dev/sdb, 等)。 在确定与 SSD 对应的条目后,你可以根据需要继续对其进行分区或格式化。
用于安全关机的 UPS
CPU 与直流电源输入之间的 GPIO6 用于在电源掉电时向 CPU 报警。然后 CPU 应在超级电容能量耗尽前,通过脚本执行一些紧急操作并运行“$ shutdown”。 使用此功能的另一种方式是:当 GPIO 引脚状态变化时发起关机。给定的 GPIO 引脚被配置为输入按键,用于产生 KEY_POWER 事件。systemd-logind 处理该事件并发起关机。
- 硬件连接。
请确保 UPS 设备的 'CM5_UPS_DET' 引脚连接到 R21xx 设备的 GPIO16 引脚。
- 修改配置文件。
- 打开终端。
- 执行以下命令编辑配置文件:
sudo nano /boot/firmware/config.txt
- 在文件末尾添加以下内容:
dtoverlay=gpio-shutdown,gpio_pin=GPIO16,active_low=1

保存并退出编辑器(按 Ctrl+O 保存,Enter 确认,然后按 Ctrl+X 退出)。
- 准备 Python 脚本
- 新建一个 Python 脚本文件:
cd ~
sudo nano ups_shutdown.py
- 将以下代码复制并粘贴到该文件中:
import RPi.GPIO as GPIO
import time, os
num = 0
GPIO.setmode(GPIO.BCM)
# Set GPIO16 to input mode
# Add 500ms anti-shake time to stabilize the software
GPIO.setup(16, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.add_event_detect(16, GPIO.FALLING, bouncetime=500)
while True:
if GPIO.event_detected(16):
print("...External power off...")
print("")
# Sync data to disk
os.system('sync')
print("...Data saving...")
print("")
# Sleep for 3 seconds
time.sleep(3)
# Synchronize data again
os.system('sync')
# Countdown 5 seconds
while num < 5:
print('----------')
s = 5 - num
print('---' + str(s) + '---')
num = num + 1
time.sleep(1)
print('----------')
# Execute shutdown command
os.system('sudo shutdown -h now')
保存并退出编辑器(按 Ctrl+O 保存,Enter 确认,Ctrl+X 退出)。
- 运行脚本。
- 打开终端。
- 执行以下命令来运行脚本:
sudo python3 ups_shutdown.py
使用 sudo 以确保脚本具有执行关机命令的足够权限。
- 模拟断电测试
- 切断外部电源。
- 观察系统是否会自动保存数据并关机。

- 验证结果
- 重新接通电源。
- 检查系统数据是否完整且能正常启动。
- 如需了解 UPS 功能,请联系我们获取更多信息。
- 报警信号为低电平有效。
AI 加速器
reComputer Industrial R21xx 上的 M.2 M-KEY 2240 插槽用于安装 PCIE M.2 AI 加速器。而 R21xx-12 系列已预装 Hailo-8 M.2 AI 加速模块,性能最高可达 26TOPS。 如果你购买的是 R21xx-10 系列产品,则需要另行购买 Hailo 的 NPU 模块以启用 AI 功能。 设备已预装 Hailo 加速器驱动,因此你可以直接使用并运行测试用例:
- 进入测试用例目录
cd /mnt/hailo-rpi5-examples/
- 启动虚拟环境
source ./setup_env.sh
- 运行简单检测示例
python basic_pipelines/detection_simple.py

要关闭应用程序,请按 Ctrl+C。
这是检测示例的轻量级版本,主要侧重于在尽量降低 CPU 负载的同时展示 Hailo 的性能。内部的 GStreamer 视频处理流水线通过最小化视频处理任务进行了简化,并使用 YOLOv6 Nano 模型。
如果你购买的 reComputer 不包含 Hailo-8,并计划购买 Hailo 设备进行集成,请参考 Hailo 官方文档 (https://github.com/hailo-ai) 配置固件和环境,并运行示例以验证设备是否可以正常使用。
PoE IP 摄像机
reComputer Industrial R22xx 系列专为高密度 IP 视频流和工业自动化而设计。其配备 5 个物理千兆以太网端口,采用混合总线架构,以确保最大带宽和稳定性。
内部总线分布:
- eth0(原生):直接连接到 SoC。具有最低延迟,推荐用作 主上行链路(WAN) 或 管理端口。
- eth1(USB 扩展):位于原生端口旁边的独立端口。通过 USB 3.0 总线 扩展,并支持 PoE 输出。
- eth2、eth3、eth4(PCIe 扩展):连续的三个端口。通过 PCIe 总线 扩展,并支持 PoE 输出。
- 技术规格
| 类别 | 规格 | 备注 |
|---|---|---|
| 端口总数 | 1(原生)+ 4(扩展) | 5x RJ45 千兆以太网 |
| PoE 模式 | Alternative A(模式 A) | 通过数据线对(1/2, 3/6)供电 |
| 单端口 PoE 输出 | 12W(最大) | 针对标准 IP 摄像机优化 |
| 并行 PoE 输出 | 所有 4 个端口同时支持 12W | 需要足够的系统电源输入 |
| 电源输入范围 | 9V - 36V DC | 内部升压电路将电压升至 48V 以供 PoE 使用 |
| 安全特性 | 过流与欠压保护 | 严禁热插拔 |
- 关键安全指南
- 禁止热插拔:
警告:当 PoE 供电处于激活状态(GPIO 高电平)时插拔网线,会产生瞬态浪涌,可能损坏 LAN7800 或 PCIe 桥接芯片。务必遵循“先连接,再上电”原则。
- 电源推荐:
虽然设备支持 9V 输入,但我们建议使用 24V 工业电源,功率至少 72W(3A),以确保在 4 个 PoE 端口满载(4 × 12W)时仍具有较高的转换效率。
- 配置步骤
- 步骤 1:禁用冲突服务
为防止桌面级网络管理器覆盖工业静态 IP 设置,请禁用
NetworkManager。
# Switch to systemd-networkd
sudo systemctl disable --now NetworkManager
sudo systemctl mask NetworkManager
sudo systemctl enable --now systemd-networkd
- 步骤 2:启用 PoE 自动供电(GPIO)
在
/etc/rc.local中exit 0行之前添加以下命令,以确保开机时启用 PoE 供电。
# Export and set PoE Enable Pin (Example: GPIO 532)
echo 652 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio652/direction
echo 1 > /sys/class/gpio/gpio652/value
- 步骤 3:多网口 IP 部署
为每个端口分配独立子网,并使用 RouteMetric 确保
eth0仍然是访问互联网的默认网关。
# Configure eth0 (WAN/DHCP) - Highest Priority
sudo bash -c 'cat > /etc/systemd/network/10-eth0.network <<EOF
[Match]
Name=eth0
[Network]
DHCP=yes
[DHCPv4]
RouteMetric=10
EOF'
# Configure eth1-eth4 (Static IP Segments)
for i in {1..4}; do
sudo bash -c "cat > /etc/systemd/network/20-eth$i.network <<EOF
[Match]
Name=eth$i
[Network]
Address=10.0.$((i+2)).10/24
[IPv4]
RouteMetric=$((100+i))
EOF"
done
- 验证与故障排查
- 检查总线连接情况
使用
lspci和lsusb来验证系统是否识别到所有控制器:
- PCIe 扩展端口(eth2-4):运行
lspci | grep Ethernet - USB 扩展端口(eth1):运行
lsusb -t并查找lan78xx驱动。
- 常见问题
- 问:为什么我的摄像机一直在重启?
- 答:检查摄像机的功耗是否超过 12W。高功率云台摄像机或带有强红外补光灯的摄像机可能会超过此限制。
- 问:我可以使用 12V DC 输入来供电 PoE 吗?
- 答:可以。内部电路会将 12V 升压到 48V。但请确保你的 12V 电源能够承受较大的电流,因为在较低输入电压下转换损耗更高。
- 问:接口名称不是 eth1-4。
- 答:使用
ip link查找实际的内核名称(例如enp1s0),并在.network文件中更新Name=字段。
- 答:使用
- 4 路 PoE 摄像机支持状态:

reComputer R22 与 reCamera
本指南提供了通过 PoE 将 reCamera(一款基于 RISC-V 平台、面向快速边缘 AI 部署的开源模块化 AI 摄像机)连接到 reComputer R22 的分步说明。内容涵盖使用 Node-RED 部署 RTSP 流,并在 R22 上预览实时画面。
- 硬件连接与初始化
- 兼容型号: reCamera 系列(PoE 版本,例如 LH-AR01)。
- 物理连接: 使用标准以太网线将 reCamera 连接到 R22 上任意一个 PoE 端口(eth1-eth4)。
- 启用 PoE 供电:
在 R22 终端中运行以下命令以启用 48V 输出:
# Enable GPIO 652
echo 652 > /sys/class/gpio/export
echo out > /sys/class/gpio/652/direction
echo 1 > /sys/class/gpio/652/value

- reCamera 配置(一键 Node-RED 导入)
使用预配置的 flows.json 快速部署带身份验证的 RTSP 流。
- 访问控制台: 在浏览器中打开
http://10.0.3.200:1880(reCamera 默认 IP)。 - 导入配置:
- 点击右上角菜单图标
≡-> Import。 - 上传 flows.json 文件并点击 Import。
- 点击右上角菜单图标
- 自定义身份验证(必需):
- 双击流程中的
RTSP Output节点。 - 在 Authentication 部分设置你的凭据:
- Username:
seeed - Password:
seeed
- Username:
- 双击流程中的
- 部署: 点击右上角红色 Deploy 按钮。

- 在 R22 上预览视频流
由于 R22(基于 CM4/CM5)支持硬件解码,我们推荐使用 VLC 或 FFplay 进行验证。
- 方案 A:使用 VLC 图形界面(推荐)
- 在 R22 终端中输入
vlc打开播放器。 - 进入 Media -> Open Network Stream。
- 输入带身份验证的 RTSP URL:
rtsp://seeed:[email protected]:554/live - 点击 Play。
- 方案 B:使用命令行(快速测试)
直接复制并运行以下命令:
ffplay -fflags nobuffer -flags low_delay rtsp://seeed:[email protected]:554/live
- 故障排查
| 问题 | 可能原因 | 解决方案 |
|---|---|---|
| 无法 Ping 通 10.0.3.200 | R22 内部 IP 冲突 | 检查 eth3/eth4 是否都使用 10.0.3.10。手动修改其中一个。 |
| reCamera 无法启动 | 未启用 PoE 供电 | 确保 GPIO 652 被设置为 1 且输入电源 > 12V/3A。 |
| 视频卡顿/延迟 | 网络或 MTU 问题 | 确保在 R22 与 reCamera 之间没有大量广播流量。 |

技术支持与产品讨论
感谢你选择我们的产品!我们将为你提供多种支持,确保你在使用我们产品的过程中尽可能顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。