嵌入式Linux设备中串口设备文件名不固定问题

在嵌入式Linux下,USB设备节点的名称ttyUSB是根据设备的插拔顺序而动态分配的,因此可能会导致设备节点名称不固定的问题。解决这个问题的方法有以下几种:

使用udev规则创建符号链接到固定路径:

如果USB设备是一个串口设备,可以使用udev规则创建一个符号链接到固定路径。

可以通过编写udev规则来为USB设备创建一个固定的符号链接。

首先,使用lsusb命令获取设备的Vendor ID和Product ID。

我这里是 1a96:7123, 当然你可以不连接USB设备输入lsusb,连接上后再输一次lsusb,多加出现的那一行就是对应的ID啦。

然后,创建一个udev规则文件,例如/etc/udev/rules.d/99-usb-serial.rules,并添加以下内容:

bash 复制代码
# 添加如下规则,根据设备的ACTION、KERNEL、idVendor和idProduct属性来匹配USB串口设备,并创建一个名为my_device的符号链接。
ACTION=="add", KERNEL=="ttyUSB*", ATTRS{idVendor}=="xxxx", ATTRS{idProduct}=="xxxx", SYMLINK+="my_device"
 
# 或者
KERNEL=="ttyUSB*", ATTRS{idVendor}=="xxxx", ATTRS{idProduct}=="xxxx", MODE:="0777", SYMLINK+="my_device"

# 或者
SUBSYSTEM=="usb", ATTRS{idVendor}=="xxxx", ATTRS{idProduct}=="xxxx", MODE="0777"

将xxxx和yyyy替换为实际的Vendor ID和Product ID。

最后,执行如下命令使规则生效

bash 复制代码
# 重启udev服务
service udev reload
service udev restart

# 或者执行
sudo udevadm control --reload-rules

现在,USB设备将在插入时创建一个名为my_device的符号链接,可以通过该链接访问设备。

使用USB串口设备的固定路径:

如果USB设备是一个串口设备,可以通过修改内核参数来分配一个固定的设备路径。在启动时,可以通过内核命令行参数console=ttyUSB0来指定设备路径为ttyUSB0。这样,每次启动时,USB设备都将被分配到相同的设备节点。

相关推荐
木由里予1 分钟前
TEE(Trusted Execution Environment)技术详解
java·linux·开发语言·网络·嵌入式硬件·android-studio
元岳数字人小元6 分钟前
易部署易运维!AI数字人一体机实现场景长效运营
运维·人工智能·人机交互·交互·源代码管理
小比特-combat15 分钟前
FreeRTOS任务通知
java·服务器·前端
深圳市益普科技有限公司19 分钟前
半导体mes厂家有哪些?从自动检验与AOI集成看mes厂家的检验自动化水平
运维·自动化
开开心心_Every32 分钟前
电脑文件搜索软件支持内容和拼音搜索
linux·服务器·人工智能·r语言·pdf·音视频·symfony
国产化创客38 分钟前
Kindle --FBInk绘图与zforce2 触摸应用开发
linux·物联网·智能家居·智能硬件
宵时待雨40 分钟前
linux笔记归纳13:Socket编程UDP
linux·服务器·笔记·udp
2603_9547083140 分钟前
微能网协调控制箱的核心价值:让多种能源“协同作战”
大数据·运维·网络·人工智能·架构·能源
码上有光41 分钟前
make和makefile(自动化构建)
android·运维·自动化
bksczm41 分钟前
Linux之应用层层协议认知(TCP协议编程模块化demo) —— 兼论守护进程机制
linux·运维·服务器