05 读取 USB 设备信息案例
1 案例简介
本案例旨在通过读取外部 USB 接口连接的设备信息,测试USB接口的读取功能
2 测试前准备
在开始测试前,请完成以下步骤完成准备工作:
2.1 安装依赖库
在开发板上更新软件包索引并安装 libusb-1.0 库,该操作需在开发板连接网络状态下进行
# 更新软件包索引
sudo apt update
# 安装libusb-1.0 库
sudo apt install libusb-1.0-0 libusb-1.0-0-dev
3 操作流程
打开终端,将本案例 bin 目录下(05-开发资料\软件开发资料\linux_demo\smdt_usb_r_demo\bin)的可执行程序 smdt_usb_r_demo 拷贝至开发板文件系统 (源码可以在 src 路径下查看)。
可选操作 : 因为开发板有配备无线网卡,所以如果终端一直显示无线网卡驱动程序生成的日志信息,可以通过以下代码修改Linux内核日志的显示级别。
#修改 Linux 内核日志的显示级别,内核的日志级别被设置为只显示紧急或更高级别的消息
echo 1 4 1 7 > /proc/sys/kernel/printk
在终端执行如下指令,切换到 smdt_usb_r_demo 可执行程序所在目录。
#切换到 smdt_usb_r_demo 可执行程序所在目录
cd ‘可执行文件所在目录’
#查看 smdt_usb_r_demo 是否在该目录下
ls
若可执行文件 smdt_usb_r_demo 在当前目录下,则修改可执行文件的权限。
#修改文件权限
chmod 777 smdt_usb_r_demo
#查询是否修改成功
ls -ld smdt_usb_r_demo
查询确认文件修改权限成功后,执行 ./smdt_usb_r_demo -h 可以查看该程序的帮助信息。
#查看帮助信息
./smdt_usb_r_demo -h
执行结果如下图:

执行 ./smdt_usb_r_demo -l 将会读取 USB 外部设备信息,并持续检测设备接入和断开状态,按 "Ctrl+C" 可退出测试
#检查外部 USB 连接设备信息
./smdt_usb_r_demo -l
4 测试效果
执行 ./smdt_usb_r_demo -l 列出开发板当前外部 USB 连接的设备信息(不显示 Linux 内核的虚拟 USB 设备),执行结果如下图:

持续检测是否有 USB 设备接入或者断开,检测间隔时间为 5s
有设备接入,终端打印如下信息:

有设备断开,终端答应如下信息:
按 "Ctrl+C" 退出测试: