如何在 /dev 中没有条目的情况下访问 USB 串行端口?

如何在 /dev 中没有条目的情况下访问 USB 串行端口?

我有一个基于 SiLabs CP2101 芯片组的 USB 转串口适配器。我正在尝试将它与 Debian 5.0 Lenny(armel 架构)一起使用。

我似乎能够获得正确的内核模块来识别适配器,但它不会创建/dev/ttyUSB0.

我运行modprobe usbserialmodprobe cp2101连接设备,得到以下输出dmesg

usb 2-1: new full speed USB device using mv5182_ehci and address 8
usb 2-1: configuration #1 chosen from 1 choice
cp2101 2-1:1.0: cp2101 converter detected
usb 2-1: reset full speed USB device using mv5182_ehci and address 8
usb 2-1: cp2101 converter now attached to ttyUSB0

然而,/dev/ttyUSB0不存在。中没有新文件/dev

find / -type f -name ttyUSB0没有给出任何结果。

我确实找到了一堆目录ttyUSB0插入设备后显示的名称为:

/sys/class/tty/ttyUSB0
/sys/bus/usb-serial/drivers/cp2101/ttyUSB0
/sys/bus/usb-serial/devices/ttyUSB0
/sys/devices/platform/mv5182_ehci.1/usb2/2-1/2-1:1.0/ttyUSB0
 ...

我在以下位置找到了一个文件,/sys/bus/usb-serial/devices/ttyUSB0/ttyUSB0/dev但它似乎不是串行端口;我无法使用screenPython的串行模块打开它。

为了进行比较,我尝试了我的 Debian 6.0 开发机器(它有一个较新版本的 cp2101 模块,现在称为cp210x),在看到 中的“转换器现在连接到 ttyUSB0”行后dmesg/dev/ttyUSB0出现了。

如何cp2101创建模块/dev/ttyUSB0?如果不能,我应该打开什么文件来访问串行端口?

答案1

您可以尝试手动制作设备节点。在我的系统上/dev/ttyUSB0major 188minor 0。希望我的假设是正确的,它是一种c表示字符设备的类型(如果不起作用,也许可以尝试u使用无缓冲的字符设备)。c

mknod /dev/ttyUSB0 c 188 0

如果这有效,并且设备文件之前自动出现,则说明您的某些内容udev出现了混乱。 USB 子系统设置或驱动程序也可能存在问题。

相关内容