接口定义
1 整机接口定义及使用
Sophon-BM1684X-LD800 提供了丰富的接口,具体如下图:


| 丝印 | 设备节点 | 型号 | 备注 |
|---|---|---|---|
| ETH0 | eth0 | YT8521S | 千兆网卡(默认DHCP) |
| ETH1 | eth1 | YT8521S | 千兆网卡(静态IP:192.168.1.150) |
| enp4s0 | enp4s0 | RTL8125BG-CG | 2.5G以太网 |
| enp5s0 | enp5s0 | RTL8125BG-CG | 2.5G以太网 |
| enp6s0 | enp6s0 | RTL8125BG-CG | 2.5G以太网 |
| WIFI | wlan0 | FD7155U | 2.4/5GHz |
| 4G/5G | wwan0 | 移远 EC20/RM500U | 4G/5G 拨号 |
| HDMI | MS9132芯片 | HDMI2.0输出,最高支持4K@60fps | |
| M.2 SATA盘 | /dev/sda1 | ASM1153E | SSD固态硬盘 |
| 2.5寸SATA盘 | /dev/sdb1 | ASM1153E | 固态硬盘 |
| RS232 | /dev/ttyS2 | 串口,默认波特率9600 | |
| RS485 | /dev/ttyS1 | 串口,默认波特率9600 | |
| RTC | /dev/rtc0 | PCF8563TS | 时钟 |
| PWR LED | 红灯 | 电源灯 | |
| SYS LED | 绿灯 | 系统灯 |
1.1 前言
默认系统为 Ubuntu20.04,初始用户名和密码均为 linaro(root账户无初始密码,使用前需先用命令 sudo passwd root 设置密码)
提示
- 关机时建议使用
sudo poweroff命令,尽量避免直接断电,以免文件系统损坏 - Ubuntu 快速使用可参考 [Ubuntu 快速开始指南]
1.2 ETH 说明
-
可以通过调试串口、ssh 查看 IP 地址,例如:
neardi@3576:~$ ip aeth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.1.65 netmask 255.255.255.0 broadcast 192.168.1.255inet6 fe80::7df7:e74d:497e:345d prefixlen 64 scopeid 0x20<link>ether 62:ea:fb:ca:95:e7 txqueuelen 1000 (Ethernet)RX packets 2548 bytes 210938 (210.9 KB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 338 bytes 46899 (46.8 KB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0device interrupt 140 base 0xd000... -
静态 IP 配置
通过
/etc/netplan/01-netcfg.yaml文件配置静态 IP,默认出厂配置eth1为192.168.1.150。network:version: 2renderer: networkdethernets:eth0:dhcp4: yesaddresses: []optional: yesdhcp-identifier: maceth1:dhcp4: noaddresses: [192.168.1.150/24]optional: yesenp3s0:dhcp4: yesaddresses: []dhcp-identifier: macoptional: yes
1.3 Wi-Fi/蓝牙 使用
- 连接 wifi
-
连接 wifi 需配置
/etc/wpa_supplicant.conf文件,配置如下:ctrl_interface=/var/run/wpa_supplicantap_scan=1update_config=1network={ssid="wifi_account"psk="wifi_password"key_mgmt=WPA-PSK} -
根据配置文件连接 wifi:
wpa_supplicant -D nl80211 -i wlan0 -c /etc/wpa_supplicant.conf -B 1 -
查看连接过程,获取 ip:
dhclient -i wlan0 -v
- 连接蓝牙
-
进入交互式蓝牙控制台
bluetoothctl -
控制台内执行
[bluetooth]# power on # 开启蓝牙[bluetooth]# scan on # 扫描设备(记下目标设备MAC)[bluetooth]# pair XX:XX:XX:XX:XX:XX # 配对目标设备[bluetooth]# trust XX:XX:XX:XX:XX:XX # 信任设备[bluetooth]# connect XX:XX:XX:XX:XX:XX # 连接设备[bluetooth]# info 7D:0C:96:C6:4E:3D # 验证连接[bluetooth]# exit # 退出控制台
1.4 4G/5G 通讯模块
支持 4G 模块如 EC20, 5G 模块如 RM500U 等,拨号时模块必须接天线,否则会失败。
查看是否识别到 usb 4G/5G 模块设备:
lsusb
查看是否成功生成虚拟串口:
ls /dev/ttyUSB*
拨号命令:
sudo quectel-CM &
查看是否生成 wwan0:
ifconfig wwan0
1.5 M.2 固态硬盘和 2.5/3.5 寸 SATA 盘
执行以下命令查看硬盘:
root@bm1684:~# lsusb
Bus 002 Device 004: ID 174c:1153 ASMedia Technology Inc. ASM1153 SATA 3Gb/s bridge
Bus 002 Device 005: ID 174c:1153 ASMedia Technology Inc. ASM1153 SATA 3Gb/s bridge
执行以下命令查看分区:
lsblk
通过mount进行挂载访问:
mount /dev/sda1 /mnt
1.6 RS232 & RS485 使用
串口是一种常见的通信接口,用于与外部设备进行串行通信。提供了多个串口,分别对应不同的设备节点。在使用串口之前,需要确保串口连接正确,以及波特率和其他参数设置一致。
-
RS232节点:
/dev/ttyS2执行以下命令后可进行收发:
stty -F /dev/ttyS2 9600 cs8 -parenb -cstopb -ixoff -icanon -echo -
RS485节点:
/dev/ttyS1执行以下命令后��可进行收发:
stty -F /dev/ttyS1 9600 cs8 -parenb -cstopb -ixoff -icanon -echoRS485通过gpio控制流控,在开发板设备上运行下列命令:# 设置流控,拉高发送,拉低接收echo 510 > /sys/class/gpio/exportecho out > /sys/class/gpio/gpio510/direction# 拉高发送echo 1 > /sys/class/gpio/gpio510/value# 拉低接收echo 0 > /sys/class/gpio/gpio510/value发送字符串到主机
echo "neardi RS485 test..." > /dev/ttyS1开发板接收数据:
cat /dev/ttyS1
1.7 RTC 时钟
系统启动后使用 CST (中国标准时间),通过以下命令查看:
timedatectl
设置系统时间:
date -s "2026-12-25 14:10:00"
将系统时间写入RTC:
hwclock -w -f /dev/rtc0
读取RTC时间:
hwclock -w -f /dev/rtc0
提示
- 若已配置系统时间并写入 RTC,重启后系统时间恢复,执行以下命令,重新配置系统时间。
- 检查时间同步服务状态(看是否在运行)
systemctl status systemd-timesyncd
- 停止并禁用同步服务(避免自动回滚时间)
systemctl stop systemd-timesyncd
systemctl disable systemd-timesyncd
1.8 GPIO 输入/输出 & 继电器
# GPIO_INPUT1 索引:513
# GPIO_INPUT2 索引:514
# GPIO_INPUT3 索引:515
# GPIO_INPUT4 索引:516
# GPIO_OUT1 索引:523
# GPIO_OUT2 索引:512
# 继电器RELAY0 索引:521
# 继电器RELAY1 索引:522
# 通过以下命令使能对应GPIO
echo 512 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio512/direction
# 拉高使能
echo 1 > /sys/class/gpio/gpio512/value
2 拓展
2.1 使用 GPIO
Sophon-BM1684X-LD800 芯片包含 3 组 GPIO 控制器,每个控制 32 根 GPIO,与 Linux 的设备节点对应如下:
| GPIO 控制器 | Linux 设备节点 | GPIO 物理编号 | GPIO 逻辑编号 |
|---|---|---|---|
| #0 | /sys/class/gpio/gpiochip480 | 0 到 31 | 480 到 511 |
| #1 | /sys/class/gpio/gpiochip448 | 32 到 63 | 448 到 479 |
| #2 | /sys/class/gpio/gpiochip416 | 64 到 95 | 416 到 447 |
通过以下方式使用 GPIO:
# 进入 GPIO 控制目录
cd /sys/class/gpio
# 导出 GPIO 编号
echo 512 > export
# 设置输出模式
echo out > gpio512/direction
# 拉高拉低 GPIO
echo 1 > gpio512/value
echo 0 > gpio512/value
2.2 查询内存用量
Sophon-BM1684X-LD800 核心板板载 16GB LPDDR4x,可以分为三类:
- kernel 管理的部分,即可以用 malloc、kmalloc 等常规 API 分配出来使用。
- ION 管理的部分,预留给 TPU、VPU、VPP 使用,需要使用 ION 的 ionctl 接口,或使用 bmnnsdk2 中 bmlib 库提供的接口分配出来使用。
- 预留给固件的部分,用户无法使用。
您可以使用如下方式检查各部分内存的用量:
查看系统内存:
查看 ION 内存:

如上,通常会有 3 个 ION heap(即三块预留的内存区域),如名字所示,分别供 TPU、VPU、VPP 使用。以上示例中只打印了每个 heap 使用信息的开头,如果完整地 cat summary 文件,可以到其中分配的每块 buffer 的地址和大小信息。
2.3 读取功耗信息
执行以下命令:
sudo pmbus -d 0 -s 0x50 -i
返回:
root@bm1684:~# sudo pmbus -d 0 -s 0x50 -i
I2C port 0, addr 0x50, type 0x3, reg 0x0, value 0x0
ISL68127 revision 0x33
ISL68127 switch to output 0, ret=0
ISL68127 output voltage: 834mV
ISL68127 output current: 1900mA
ISL68127 temperature 1: 58`C
ISL68127 output power: 2W # NPU 功耗
ISL68127 switch to output 1, ret=0
ISL68127 output voltage: 957mV
ISL68127 output current: 4100mA
ISL68127 temperature 1: 58`C
ISL68127 output power: 3W # CPU/Video 等功耗
第一组信息为 npu,第二组信息为 cpu 等。
pmbus 读取的是给 npu 和 cpu 供电的传感器的温度,所以更接近核心板温度,如果需要读取温度相关,参考下一节 [读取温度]。
2.4 读取温度
-
读取 BM1684X 片上温度
执行以下命令,返回(单位为毫设置度):
root@bm1684:~# cat /sys/class/thermal/thermal_zone0/temp62000即 62.000 摄氏度。
-
读取核心板温度
执行以下命令,返回(单位为毫设置度):
root@bm1684:~# cat /sys/class/thermal/thermal_zone1/temp59000即 59.000 摄氏度。 核心板温度通常会比前面读取的片上结温内部温度低。