背景
看来我对linux的了解还不够多,以至于给自己带来了麻烦。
我正在开发几个运行Linux 的嵌入式系统(两种不同的型号)。我一直在对我使用的两个调制解调器中较新的一个的调制解调器支持代码进行故障排除。我停止了代码并尝试手动加载 usbserial 驱动程序。在较新的设备上,当我加载 usbserial 驱动程序时,四个设备出现在/dev/ttyUSB#。
我做了什么
我注意到实际上有 16ttyUSB##旧设备上始终列出的设备。他们永远不会消失。我猜[现在]这是因为旧内核的工作方式不同或其他原因。不幸的是,我继续删除了所有 16 个ttyUSB##设备。现在他们走了,不会再回来了。我不知道如何创建字符设备。我该如何取回这些设备?
内核版本:
uname -r
回报2.6.17.9-ep93xx-pxa-ads5
附加信息
如果我遗漏了一些重要信息,请发表评论,我会添加它。提前致谢!
答案1
您可以使用手动创建 /dev 条目
mknod /dev/ttyUSBn c 188 n
- 参数:
- mknod 是众所周知的创建 /dev 条目的工具
- /dev/ttyUSBn:设备名称
- c:字符设备
- 188:主设备号
- n :次设备号,ttyUSB0、ttyUSB1 等。
但设备应该根据udev规则自动创建
答案2
传统上,unix 系统有一个脚本来在 中创建条目/dev
,称为MAKEDEV
并位于 中/dev
。该脚本通常出现在 Linux 上,但在设计者假设所有设备都存在的嵌入式设备上,或者在运行 udev 的系统上可能不存在,其中设备条目通常是自动创建的。请注意,MAKEDEV
通常会在当前目录中创建条目,因此请先运行cd /dev
。
您传递给的参数没有标准/dev/MAKEDEV
- 通常参数表示要创建的一组设备条目。在 Debian 上,/dev/MAKEDEV usb
创建了ttyUSB*
以及其他一些东西。您还可以ttyUSB
在脚本中查找MAKEDEV
以找出要运行的命令行。创建设备条目的低级命令是mknod
。
如果您的系统使用 udev,请运行udevadm trigger -s usb-serial
重新创建/dev
条目以及运行与设备发现相关的任何命令。 (在这种情况下,设备是串行端口,而不是插入端口的设备。)