USB host
USB Host 是指能够控制和管理 USB 设备的系统或硬件,它负责为连接的 USB 设备(如U盘、键盘、鼠标等)提供电源、数据传输和管理功能。
Quectel Pi H1 单板电脑自带2个标准USB 2.0 Type-A接口和1个USB 3.1 Type-C接口,兼容USB 2.0。USB 2.0接口最高数据传输速率可达480 Mbps,USB 3.1接口最高数据传输速率可达5 Gbps。
硬件接口
测试 USB 接口的 HOST 模式功能,我们可以测试 USB 接口连接的设备基础功能和 U 盘读写速度。

功能使用
查看所有输入设备
cat /proc/bus/input/devices
会列出系统当前识别的所有输入设备
输出示例:
I: Bus=0000 Vendor=0000 Product=0000 Version=0001
N: Name="pm8xxx_vib_ffmemless"
P: Phys=
S: Sysfs=/devices/platform/soc@0/c440000.spmi/spmi-0/0-09/c440000.spmi:pmic@9:pm7250b-vib@5300/input/input0
U: Uniq=
H: Handlers=event0
B: PROP=0
B: EV=200001
B: FF=107030000 0
Name:设备名称(如鼠标或键盘)
Handlers:设备对应的事件接口
使用 lsusb 查看 USB 设备
给 USB 接口连接读卡器、鼠标、键盘等设备,通过插拔测试设备是否正常识别和使用。
未接外设
使用lsusb命令查看当前系统识别的设备
终端输出示例:
Bus 001 Device 002: ID 1a86:8091 QinHeng Electronics USB HUB
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
已接外设
连接键盘、鼠标等设备到USB接口,使用lsusb命令查看是否新增设备
终端输出示例:USB接口连接了键盘、鼠标
Bus 001 Device 005: ID 17ef:6099 Lenovo Lenovo Traditional USB Keyboard
Bus 001 Device 004: ID 17ef:608d Lenovo Optical Mouse
Bus 001 Device 002: ID 1a86:8091 QinHeng Electronics USB HUB
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
使用 dmesg 查看插入设备的系统日志
sudo dmesg | tail -n 20
查看系统最近 20 条内核日志,用于观察设备插拔或驱动加载的情况。
U 盘读写
使用 U 盘连接到 USB 接口,使用 dd 命令测试 U 盘读写速度。
确认存储设备
使用lsblk命令确认U盘的设备名称
lsblk
终端输出示例:
sda 8:0 0 116.1G 0 disk
|-sda1 8:1 0 512M 0 part /efi
|-sda2 8:2 0 30M 0 part /var/persist
`-sda3 8:3 0 115.6G 0 part /
sdb 8:16 0 8M 0 disk
|-sdb1 8:17 0 3.5M 0 part
|-sdb2 8:18 0 512K 0 part
`-sdb3 8:19 0 3.5M 0 part
sdc 8:32 0 8M 0 disk
|-sdc1 8:33 0 3.5M 0 part
|-sdc2 8:34 0 512K 0 part
`-sdc3 8:35 0 3.5M 0 part
sdd 8:48 0 32M 0 disk
|-sdd1 8:49 0 104K 0 part
|-sdd2 8:50 0 128K 0 part
|-sdd3 8:51 0 1M 0 part
|-sdd4 8:52 0 1M 0 part
`-sdd5 8:53 0 1M 0 part
sde 8:64 0 3G 0 disk
|-sde1 8:65 0 512K 0 part
|-sde2 8:66 0 64M 0 part
|-sde3 8:67 0 256K 0 part
|-sde4 8:68 0 2M 0 part
|-sde5 8:69 0 5M 0 part
|-sde6 8:70 0 4M 0 part
|-sde7 8:71 0 8M 0 part
|-sde8 8:72 0 4M 0 part
|-sde9 8:73 0 32M 0 part
|-sde10 8:74 0 128K 0 part
|-sde11 8:75 0 80K 0 part
|-sde12 8:76 0 2M 0 part
|-sde13 8:77 0 2M 0 part
|-sde14 8:78 0 128K 0 part
|-sde15 8:79 0 32K 0 part
|-sde16 259:0 0 1M 0 part
|-sde17 259:1 0 256K 0 part
|-sde18 259:2 0 512K 0 part
|-sde19 259:3 0 256K 0 part
|-sde20 259:4 0 64M 0 part
|-sde21 259:5 0 2M 0 part
|-sde22 259:6 0 5M 0 part
|-sde23 259:7 0 4M 0 part
|-sde24 259:8 0 8M 0 part
|-sde25 259:9 0 4M 0 part
|-sde26 259:10 0 32M 0 part
|-sde27 259:11 0 128K 0 part
|-sde28 259:12 0 80K 0 part
|-sde29 259:13 0 2M 0 part
|-sde30 259:14 0 2M 0 part
|-sde31 259:15 0 128K 0 part
|-sde32 259:16 0 32K 0 part
|-sde33 259:17 0 1M 0 part
|-sde34 259:18 0 256K 0 part
|-sde35 259:19 0 4K 0 part
|-sde36 259:20 0 4K 0 part
|-sde37 259:21 0 4K 0 part
|-sde38 259:22 0 16M 0 part
|-sde39 259:23 0 30M 0 part
|-sde40 259:24 0 1M 0 part
|-sde41 259:25 0 32.6M 0 part
|-sde42 259:26 0 4K 0 part
|-sde43 259:27 0 4K 0 part
|-sde44 259:28 0 1M 0 part
|-sde45 259:29 0 8M 0 part
|-sde46 259:30 0 40M 0 part
|-sde47 259:31 0 512M 0 part
|-sde48 259:32 0 28K 0 part
|-sde49 259:33 0 512K 0 part
|-sde50 259:34 0 1M 0 part
`-sde51 259:35 0 32.6M 0 part
sdf 8:80 0 32M 0 disk
|-sdf1 8:81 0 3M 0 part
|-sdf2 8:82 0 3M 0 part
|-sdf3 8:83 0 3M 0 part
`-sdf4 8:84 0 128K 0 part
sdg 8:96 1 7.5G 0 disk
`-sdg1 8:97 1 7.5G 0 part /mnt/sdcard1
zram0 253:0 0 3.8G 0 disk [SWAP]
其中sdg为当前U盘设备名称,请根据实际情况进行替换
测试写入性能
sudo dd if=/dev/zero of=/dev/sdg bs=1M count=100
dd: Linux 系统中的一个命令行工具,用于复制和转换文件。if=/dev/zero: 指定输入文件为/dev/zero,这是一个特殊的文件,会提供无限的零字节数据。of=/dev/sdg: 指定输出文件为/dev/sdg,即 U 盘设备。bs=1M: 指定块大小为 1MB。count=100: 指定复制 100 个块。
这个命令会将 100MB 的零字节数据写入 U 盘,显示写入速度。
终端输出示例:
100+0 records in
100+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 0.0367901 s, 2.9 GB/s
测试读取性能
sudo dd if=/dev/sdg of=/dev/null bs=1M count=100
dd: Linux 系统中的一个命令行工具,用于复制和转换文件。if=/dev/sda: 指定输入文件为/dev/sda,即 U 盘设备。of=/dev/null: 指定输出文件为/dev/null,这是一个特殊的文件,会丢弃所有写入的数据。bs=1M: 指定块大小为 1MB。count=100: 指定复制 100 个块。
这个命令会将 U 盘的 100MB 数据读取到 /dev/null,并显示读取速度。
终端输出示例:
100+0 records in
100+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 4.97715 s, 21.1 MB/s