如何在Ubuntu 10.10(Maverick Meerkat)上连接到串口转USB设备的终端?

77

我正在尝试使用minicom连接一个通过USB串口转换器连接的串行设备。这是一个PL2303芯片,根据我所读的所有信息,不需要额外的驱动程序。该设备被识别为PL2303。

我在minicom方面是个初学者。这是正确的命令吗?还是我需要配置一些东西?

$ sudo minicom --device /dev/ttyUSB0
minicom: cannot open /dev/ttyUSB0: No such file or directory

$ sudo lsusb -v

Bus 002 Device 006: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Device Descriptor:
  bLength                18
  bDescriptorType         1

$ tail /var/log/syslog  #then removed and attached the device.
Mar 13 23:31:49 ubuntu kernel: [807996.786805] usb 2-1: pl2303 converter now attached to ttyUSB0
Mar 13 23:34:44 ubuntu kernel: [808172.155129] usb 2-1: USB disconnect, address 7
Mar 13 23:34:44 ubuntu kernel: [808172.156321] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0
Mar 13 23:34:44 ubuntu kernel: [808172.156374] pl2303 2-1:1.0: device disconnected
Mar 13 23:34:52 ubuntu kernel: [808179.497856] usb 2-1: new full speed USB device using uhci_hcd and address 8
Mar 13 23:34:52 ubuntu kernel: [808179.785845] pl2303 2-1:1.0: pl2303 converter detected
Mar 13 23:34:52 ubuntu kernel: [808179.872309] usb 2-1: pl2303 converter now attached to ttyUSB0

在这里,lsusb的输出基本上是无用的。当您插入设备时,请将输出发布到系统日志中。 - Ignacio Vazquez-Abrams
查看ls -al /dev/ttyUSB*的输出可能也很有用,因为它可能不会显示为0。另请参见http://www.linux.org/docs/ldp/howto/Serial-HOWTO-11.html。 - dj_segfault
1
修改后附加日志文件输出,确认/dev/ttyUSB0为设备。那么为什么minicom无法连接到/dev/ttyUSB0呢? - codingJoe
有很多可能的问题(udev是否正在运行,devfs是否已挂载,适当的热插拔脚本是否已安装),而且它们都与编程无关。您的问题最终将被移至SuperUser.com。 - Ben Voigt
你确定你的minicom支持在命令行上指定串行设备吗?我的不支持(尽管我会得到一个相应的错误消息,而不是你得到的那个)。Ubuntu文档也没有表明已经添加了这种功能,但也许它们已经过时了。你可以尝试按照它们中的设置说明进行设置:https://help.ubuntu.com/community/Minicom 此外,像dj_segfault建议的那样发布ls -al /dev/tty/USB*,也许你有一个分层的/dev目录,它们在子目录中? - Chris Stratton
11个回答

95

首先使用dmesg | grep tty命令检查系统是否识别您的适配器。 然后尝试使用sudo minicom -s运行minicom,进入"串口设置"并将第一行更改为/dev/ttyUSB0

别忘了使用"Save setup as dfl"将配置保存为默认值。这在VirtualBox上的Ubuntu 11.04中对我有效。


5
另外,将用户添加到“dialout”组中,因为您需要对设备具有写访问权限。 - Vassilis
7
也许应该使用/dev/ttyACM0而不是/dev/ttyUSB0 - Matthias Dieter Wallnöfer
2
@MatthiasDieterWallnöfer 这取决于。 - Simon A. Eugster

19
每次插入转换器时,您都需要设置权限。我使用PuTTY进行连接。为此,我创建了一个小的Bash脚本来处理权限并启动PuTTY:
#!/bin/bash
sudo chmod 666 /dev/ttyUSB0

putty

附言:我永远不会建议将权限设置为777。


6
在更改权限之前,尝试将您的用户添加到“dialout”和/或“uucp”组中是值得一试的,因为这样您可能就不需要再更改权限了! - Vassilis
我可以补充一下:@Vassilis的答案至今仍然正确(即使在Ubuntu 20上也是如此)。如果你运行了ls -l /dev/ttyUSB0并查看了设备的“组”所有者,那么这将是一个线索,告诉你需要将你的用户添加到哪个组中。最后,第三列是“nobody”权限,这意味着如果你要修改权限,尤其不要更改该列(这对你的用户没有帮助,而且可能会授予不安全进程的权限,例如你运行的Web服务器)。请参见:usermod -a -G dialout $USER - Scott Prive

11

长期读者,第一次帮助者;)

我正在经历与Prolific USB <->串行适配器相同的可怕体验,到目前为止,Linux是最容易让它工作的系统。

在CentOS上,我不需要安装任何驱动程序等等。话虽如此,

  • dmesg | grep -i ttydmesg | grep -i usb 显示了 /dev/ttyUSB0.
  • screen ttyUSB0 9600 在 OSX 中能行得通但我这里却无法成功
  • minicom 对我来说是新的,但它抱怨缺少 /dev/modem

然而这有所帮助:https://www.centos.org/forums/viewtopic.php?t=21271

所以先安装 minicom (yum install minicom) 然后进入其设置界面 (minicom -s)。

接着选择 Serial Port Setup 并将串行设备 (选项 A) 更改为 /dev/ttyUSB0,或者您的设备文件名因发行版而异略微不同。

然后将波特率 (选项 E) 更改为9600,其余应为默认 (8N1 Y N)。

保存为默认设置,然后简单的 minicom 即可解决问题。

希望对你有所帮助。


1
优秀的SO写作风格 :) - ryanjdillon
1
我能够使用 screen -U /dev/ttyUSB0 115200 连接到 PL2303。 - Jesusaur

8
串口通信程序 moserialgtkterm 提供了一种简单的检查连接并修改 /dev/ttyUSB0(或 /dev/ttyUSB1 )设置的方法。即使只有一个 USB 转 RS232 适配器,n 设计ations 的 /dev/ttyUSBn 可以并且会定期更改!在选择适当的端口时,moserialgtkterm 都将显示相关的端口指定在它们各自的下拉菜单中。

请查看help.ubuntu.com/community/Minicom,了解有关 minicom 的详细信息。


2
Cutecom是一款直观的串口监视器。请务必注意设备权限:最好打开它们:chmod 777 /dev/ttyUSB0。 - gatorback

5

我使用adduser *用户名* dialout解决了这个问题。之前,即使是重新启动电脑或拔掉并重新插入串口适配器,也只有这样才能让它正常工作。


1
请问您能否在提供的解释中再加入一些详细描述? - abarisone

1

我曾经遇到过完全相同的问题,通过执行chmod 777 /dev/ttyUSB0命令解决了。之前唯一能让它工作的方法是重启虚拟机或者重新插拔USB串口适配器,但现在再也没有出现这个错误了。我的操作系统是OS X,而虚拟机运行的是Ubuntu 10.04(Lucid Lynx)。


5
是的,如果作为普通用户运行,权限可能成为问题。然而,请注意在此问题中,minicom是使用sudo以root身份运行的。通常,在访问权限方面的首选解决方案是将需要访问串口设备文件并具有所需权限的用户分配给拥有这些文件的组 - 在Ubuntu上通常是“dialout”组。 - Chris Stratton
2
有关“dialout”组的更多详细信息,请参阅askubuntu.com上的相关问题。 - Don Kirkby

1

我遇到了同样的minicom错误,"无法打开/dev/ttyUSB0:没有此文件或目录"

三个注意事项:

  1. 当我连接到我的Prolific Technology PL2303 USB /串行适配器的串行端口时,如果设备关闭,我会遇到这个错误。打开设备(运行Linux的嵌入式控制器)后,minicom才能正常连接。

  2. 我必须以超级用户身份运行(即sudo minicom

  3. 有时我不得不拔下并重新插入USB转串口适配器才能使minicom连接到它。

我在Windows 7上运行的VMware中运行Ubuntu 10.04 LTS(Lucid Lynx)。在这种情况下,请确保通过右键单击VMware窗口右下角的USB /串行USB图标并选择连接(与主机断开连接)将设备连接到VM操作系统。

记得按下 Ctrl + A 以获取minicom提示,并键入X退出程序。仅退出运行minicom的终端会使进程继续运行。


拔掉插头再重新插上对我有用,谢谢! - Patrick

0
这就可以了
sudo apt remove brltty 

0

我刚刚拿到了带有内置PL2302转换芯片的GUC232A电缆。

除了将自己和br添加到组dialout中,我在/usr/share/doc/bottlerocket的README.Debian文件中发现了这个有用的提示:

该软件包使用debconf配置/dev/firecracker符号链接, 如果您需要在将来更改符号链接,请运行以下命令:

dpkg-reconfigure -pmedium bottlerocket

然后会提示您输入新的串口并修改符号链接。这是正确使用bottlerocket所必需的。

我按照提示操作,哇!bottlerocket能够与我的X-10设备通信了。


0

在Ubuntu上使用Putty 无需安装PL2303驱动程序 只需键入命令以启用Putty Sudo chmod 666 /dev/ttyUSB0 完成 打开Putty。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接