2.4. 连接开发板
本章
提示:
开发板
的 默认 用户 名为 root,密码为 root。本
章节 涉及 的 所有 驱动 和 软件包,既 可 通过 software_tools 页面 在线 下载,也 可 在 SDK 交付 包 的 software_tools目录中 直接 获取。
2.4.1. 通过串口连接
串口
2.4.1.1. 硬件连接
X5 EVB 开发板CH340N 驱动

2.4.1.2. Windows上使用串口
安装驱动
在Windows上CH340驱动,用户software_tools/serial_to_usb_drivers 目录COM设备:

连接使用
PC 上
PC 端
波特率(Baud rate):115200
数据位(Data bits):8
奇偶校验(Parity):None
停止
位(Stop bits):1 流控(Flow Control):无
1、点击 Quick Connect 按钮,打开

2、在 Quick Connect 对话框

3、点击 Quick Connect 对话框

4、输入root,密码 root 即可
2.4.1.3. Ubuntu 上使用串口
Ubuntu 操作系统USB-串口 转换/dev/ttyUSB*(* 代表
在 Ubuntu 上
使用 minicom
sudo apt-get install minicom
连接ls /dev/ttyUSB* 确认/dev/ttyUSB0:
$ ls /dev/ttyUSB*
/dev/ttyUSB0
使用 sudo 权限
$ sudo minicom -D /dev/ttyUSB0
Welcome to minicom 2.7.1
OPTIONS: I18n
Compiled on Dec 23 2019, 02:06:26.
Port /dev/ttyUSB0, 11:55:56
Press CTRL-A Z for help on special keys
以上
+-------------------------------------------------------------------+
Minicom Command Summary |
| |
| Commands can be called by CTRL-A <key> |
| |
| Main Functions Other Functions |
| |
| Dialing directory..D run script (Go)....G | Clear Screen.......C |
| Send files.........S Receive files......R | cOnfigure Minicom..O |
| comm Parameters....P Add linefeed.......A | Suspend minicom....J |
| Capture on/off.....L Hangup.............H | eXit and reset.....X |
| send break.........F initialize Modem...M | Quit with no reset.Q |
| Terminal settings..T run Kermit.........K | Cursor key mode....I |
| lineWrap on/off....W local Echo on/off..E | Help screen........Z |
| Paste file.........Y Timestamp toggle...N | scroll Back........B |
| Add Carriage Ret...U |
| |
| Select function or press Enter for none. |
+--------------------------------------------------------------------+
根据O 进入
+-----[configuration]------+
| Filenames and paths |
| File transfer protocols |
| Serial port setup |
| Modem and dialing |
| Screen and keyboard |
| Save setup as dfl |
| Save setup as.. |
| Exit |
+--------------------------+
把Serial port setup,按 Enter 键
+-----------------------------------------------------------------------+
| A - Serial Device : /dev/ttyUSB0 |
| B - Lockfile Location : /var/lock |
| C - Callin Program : |
| D - Callout Program : |
| E - Bps/Par/Bits : 115200 8N1 |
| F - Hardware Flow Control : No |
| G - Software Flow Control : No |
| |
| Change which setting? |
+-----------------------------------------------------------------------+
注意: Hardware Flow Control 和 Software Flow Control 都
设置Enter键Save setup as dfl 按 Enter 键
2.4.2. 通过网口连接
开发板
用户
开发板
与 PC 直连。为 避免 网络 环境 造成 的 额外 干扰,本文 推荐 用户 优先 使用 PC 直连 方式。 开发板
和 PC 同时 接入 局域网。由于 开发板 默认 不 使用 DHCP 功能,因此 接入 局域网 时,需要 确认 局域网 是否 支持 设置 静态 IP。
为
两者
的 IP 地址 处于 同一 网段(简单 来说 就是 IP 地址 的 前 几段 需要 相同),例如 开发板 的IP: 192.168.1.10、PC的IP:192.168.1.100两者
的 子网掩码(255.255.255.0)、网关(192.168.1.1)保持一致 关闭 PC 的
网络 防火墙
如果ifconfig 命令
IP 地址:192.168.1.10
掩码:255.255.255.0
网关:192.168.1.1
如果ifconfig <target eth dev> <target ip> netmask <target netmask> 来eth0 设备192.168.1.110,掩码255.255.254.0,那么ifconfig eth0 192.168.1.110 netmask 255.255.254.0。更
如果
确认
2.4.2.1. Windows 网络配置
以
IP 地址:192.168.1.100
掩码:255.255.255.0
网关:192.168.1.1
配置
1、在网络连接中
2、找到Internet协议
3、在

2.4.2.2. Ubuntu 网络配置
以
IP 地址:192.168.1.100
掩码:255.255.255.0
网关:192.168.1.1
配置
1、在 Ubuntu 界面系统设置 -> 点击网络 -> 在 有线连接 中
2、在IPv4,进行
3、选择手动,设置地址、子网掩码、网关,点击应用,重启

网络
2.4.2.3. 终端软件配置
PC 上
1、点击 Quick Connect 按钮,选择 Protocol 为 SSH2
2、填写 Hostname 为开发板IP地址(192.168.1.10), SSH2 方式

3、其他
4、Telnet 登陆
5、SSH2 登陆
2.4.3. 通过 USB 口连接
开发板Micro USB 2.0 接口,模块接口Device 模式。该
2.4.3.1. Windows 上安装软件
安装 USB 驱动
对于 Windows 操作系统,在adb 和 fastboot 功能
在
U-Boot 2022.10-gc52e405209 (Nov 26 2024 - 14:20:51 +0800)
Model: Horizon X5
... (省略) ...
Hit any key to stop autoboot: 0
Hobot>
Hobot>fastboot 0
select emmc(0) as flash medium
do fastboot usb
未USB download gadget 的

此时,用户
1、解压 sunrise5_winusb.zip。
2、进入 sunrise5_winusb,右键install_driver.bat,选择以管理员身份运行。
成功

安装 USB 工具
在 SDK 交付
选择
一个 不带 空格、中文、特殊字符 的 文件夹 解压 platform-tools_r34.0.5-windows.zip,例如解压 到 D:\platform-tools。

打开 Windows 系统
的 高级 环境 配置,把 这 两个 工具包 的 路径 添加 到 环境变量 中。

正确命令提示符,执行 adb --version 和 fastboot --version 即可

提示:
如果fastboot工具,该 fastboot 支持 oem ramdump 命令。
2.4.3.2. Ubuntu 上安装软件
安装 USB 驱动
Ubuntu 等 Linux 主机
苹果电脑
Ubuntu 主机
配置 udev 规则, 拷贝
software_tools/adb_and_fastboot/51-drobotics-usb.rules到/etc/udev/rules.d目录中 sudo cp software_tools/adb_and_fastboot/51-drobotics-usb.rules /etc/udev/rules.d
使能
新 规则 sudo udevadm control --reload-rules sudo udevadm trigger
将
用户 添加 到 plugdev 组 sudo usermod -aG plugdev $(whoami)
重新
登录 shell,通过 groups 命令 查看 用户组 列表
安装 USB 工具
运行
sudo apt install android-tools-adb
sudo apt install android-tools-fastboot
sudo apt-get install dfu-util
执行 adb --version 命令
$ adb --version
Android Debug Bridge version 1.0.39
Version 1:8.1.0+r23-5ubuntu2
Installed as /usr/lib/android-sdk/platform-tools/adb
执行 fastboot --version 命令
$ fastboot --version
fastboot version 1:8.1.0+r23-5ubuntu2
Installed as /usr/lib/android-sdk/platform-tools/fastboot
执行 dfu-util --version 命令
$ dfu-util --version
dfu-util 0.9
Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
提示: 如果fastboot工具,该 fastboot 支持 oem ramdump 命令。
2.4.3.3. 使用 adb
开发板adbd 服务,开发板adb shell 进行
将Micro USB 接入 PC 后,设备Andoroid Composite ADB Interface,如下

除了

未
用户
使用 的 Micro USB 数据线 不 支持 数据通信,PC 无法 完成 设备 的 识别; 开发板
未 启动 adbd 服务。
用户
通过
串口 或者 网口 登陆 开发板,执行 ps | grep adbd命令,确认 adbd 进程是否 启动; 如果 adbd 进程
未 启动,使用 命令 /etc/init.d/usb-gadget.sh restart adb启动服务,启动 log 如下: Detecting platform: board : Horizon Robotics X5 SOM board udc : 35300000.dwc3 ... (省略) ... OK Creating Config Init functions... funciton_init, but do nothing, please init on[ 378.910299] file system registered demand OK Bind functions... Bind functions according to .usb-config file bind adb... ... (省略) ... Binding USB Device Controller OK Run some userspace daemons(eg. usb_camera)... usb-gadget start succeed. usb-gadget restart succeed.
如果 adbd 进程
启动 后 PC 机 仍 无法 识别 adb 端口,则 用户 需要 自行 确认 Micro USB数据线是否 存在 异常。
常用命令
adb shell
adb pull
adb push
# adb shell 目前没有 export 相关环境变量,需要做一下配置,否则部分程序会因为缺少环境变量而无法运行,以下两种方法都可以解决问题
# 方法一: 连接上后手动 source /etc/profile
adb shell
source /etc/profile
# 方法二:按下述方法操作, export 相关环境变量,这种方式存在 tab 无法使用的缺点
adb shell "ENV=/etc/profile sh -i"
2.4.3.4. 使用 fastboot
fastboot 主要
方法
一:启动 开发板 进入 shell 后,执行 reboot -m usb2 -f命令,重启设备 后,开发板 会 自动 进入 fastboot 模式; # reboot -m usb2 -f 155.850561] reboot: Restarting system with command 'usb2' ... (省略) ... boot action: FASTBOOT USB2.0 select emmc(0) as flash medium do fastboot usb
方法
二:启动 开发板 进入 uboot 命令行 模式 后,执行 fastboot 0命令让 开发板 进入 fastboot 模式; U-Boot 2022.10-gc52e405209 (Nov 26 2024 - 14:20:51 +0800) Model: Horizon X5 ... (省略) ... Hit any key to stop autoboot: 0 Hobot> Hobot>fastboot 0 select emmc(0) as flash medium do fastboot usb
最
fastboot flash addr:0x0 emmc_disk.simg
烧写fastboot reboot 命令
整体

支持
fastboot flash uboot uboot.img # 烧录uboot分区
fastboot flash miniboot miniboot.img # 烧录miniboot分区
fastboot flash boot boot.img # 烧录boot分区
fastboot flash system system.img # 烧录system分区
注意:
烧录
miniboot_all时不能 按 分区 名 miniboot 进行 烧录,需要 使用 flash addr:0x0命令,如:
fastboot flash addr:0x0 miniboot_all.img
原因: 由于 miniboot_all.img 指
建议
个人电脑(PC)和 开发板 通过 USB 数据线 直连。中间 不要 通过 USB hub 转接,否则 有 可能 影响 传输 稳定性,导致 升级 失败。
2.4.3.5. 使用 dfu
dfu 主要
开发板dfu 0 命令run dfu_emmc 命令。
U-Boot 2022.10-gca2c6582a0 (Mar 13 2024 - 19:04:15 +0800)
Model: Horizon X5
... (省略) ...
Hobot>dfu 0
DFU alt info setting: done
PC 端
dfu-util -l
例如, 我们

整体
dfu-util -a 0 -D emmc_disk.img
# 如果主机端有多个dfu设备, 例如有些笔记本的相机也是一个dfu设备, 则可以采用-d参数指定设备id进行选定, 命令如下:
# 逗号是必须的, dfu分为run-time形态和dfu形态, 需要逗号后的id来匹配dfu形态设备
dfu-util -d,3652:0530 -a 0 -D emmc_disk.img
整体

按
# 实际分区号, 即-a后的序号请参考dfu-util -l列出来的分区信息
dfu-util -a 2 -D uboot.img # 烧写uboot分区
dfu-util -a 5 -D boot.img # 烧写boot分区
dfu-util -a 6 -D system.img # 烧写system分区
2.4.3.6. 虚拟网卡介绍
当
1、RNDIS(Remote NDIS):
简要
介绍: RNDIS (Remote network Driver Interface Specification) 协议是 微软 对于 CDC-ECM 的 变种 实现,主要 用于 简化 Windows 平台 中 USB 网络设备 的 驱动 开发。 用法: RNDIS 常用
于 连接 嵌入式 系统 或 移动 设备 到 计算机,以 提供 网络连接。 RNDIS 数据传输
模型 很 复杂,每个 USB 消息 都 包含 了 多个 以太网 包, RNDIS 默认 期待 自己 作为 USB 配置 中 的 唯一 功能, 所以 对于 USB 复合 设备 需要 注意,RNDIS 它 期待 自己 是 第一个 usb 配置
2、CDC-ECM(Ethernet Control Model):
简要
介绍: Ethernet Control Model 是另 一种 用于 USB 设备 和 主机 之间 进行 网络通信 的 协议。它 允许 将 USB 设备 模拟 为 一个 以太网 适配器,实现 了 对 网络层(OSI 模型 中 的 第三层)的 透明 访问。 用法: ECM 通常
用于 嵌入式 系统 或 其他 设备,特别 是 在 需要 直接 在 USB 上 运行 网络协议 栈 的 场景 下。相比 RNDIS,ECM 通常 具有 更 低 的 复杂度 和 更 少 的 开销,因为 它 不 需要 模拟 TCP/IP 协议 栈。
2.4.3.7. 虚拟网卡(rndis)
开发板
/etc/init.d/usb-gadget.sh restart rndis
Windows10 免驱,PC 和
在 Windows 上
配置Remote NDIS网卡
1、打开打开网络和Internet设置。
2、进入网络和Internet设置更改适配器选项。
3、找到Remote NDIS连接: 在网络连接窗口属性。
4、配置IP地址: 在本地连接属性窗口Internet 协议版本 4 (TCP/IPv4)或属性。
5、手动Internet 协议版本 4 (TCP/IPv4)属性窗口使用以下 IP 地址,然后
6、保存确定按钮
配置usb0网卡
1、登录
2、配置IP地址: 执行 ifconfig usb0 192.168.10.111 命令usb0 的 IP 地址
执行ping测试:
1、确认
2、在PC上ping 192.168.10.111 (假设
3、检查ping测试来自 192.168.10.111 的回复 的
配置

2.4.3.8. 虚拟网卡(cdc-ecm)
开发板
/etc/init.d/usb-gadget.sh restart ecm
网络
2.4.3.9. 更多功能
执行 /etc/init.d/usb-gadget.sh --help 命令
root@buildroot:~# /etc/init.d/usb-gadget.sh --help
USB2.0 Gadget
Detecting platform:
board : D-Robotics X5 EVB LP4 1_B board
udc : 35300000.usb
Usage: /etc/init.d/usb-gadget.sh {start|stop|restart} [options]
options:
detail gadget-composite config, using .usb/.default-config in default
adb launch adbd
msd run as gadget mass storage device
msd-ram run as gadget mass storage device(with ddr storage)
hid run as hid gadget
rndis run as rndis gadget
ecm run as cdc ether gadget
uvc run as uvc gadget
uac1 usb audio class specification 1
uac2 usb audio class specification 2
uvc-hid uvc + hid composite gadget
uvc-uac1 uvc + uac1 composite gadget
uvc-uac2 uvc + uac2 composite gadget
uvc-hid-uac1 uvc + hid + uac1 composite gadget
uvc-hid-uac2 uvc + hid + uac2 composite gadget
uvc-rndis uvc + rndis composite gadget
uvc-ecm uvc + cdc ether composite gadget
uvc-acm uvc + acm(serial) composite gadget
uvc-rndis-uac1 uvc + rndis + uac1 composite gadget
uvc-rndis-uac2 uvc + rndis + uac2 composite gadget
uvc-ecm-uac1 uvc + ecm + uac1 composite gadget
uvc-ecm-uac2 uvc + ecm + uac2 composite gadget
rndis-hid rndis + hid composite gadget
rndis-uac1 rndis + uac1 composite gadget
msd-uac1 msd + uac1 composite gadget
hid-uac1 hid + uac1 composite gadget
uvc-adb uvc + adb composite gadget
rndis-adb rndis + adb composite gadget
hid-adb hid + adb composite gadget