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

Ste*_*der 5 usb debian serial-port

我有一个基于 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
Run Code Online (Sandbox Code Playgroud)

然而,/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
 ...
Run Code Online (Sandbox Code Playgroud)

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

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

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

Law*_*ceC 6

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

mknod /dev/ttyUSB0 c 188 0
Run Code Online (Sandbox Code Playgroud)

如果这有效,并且设备文件之前自动出现,那么您中的某些内容udev就搞砸了。USB 子系统设置或驱动程序也可能存在问题。