Linux告诉我正在使用一个串行端口,但是没有使用


12

在CrunchBang linux(Debian变体)上,我有一个COM端口ttyS0,试图与NFC设备一起使用。libnfc回答说它看不到任何NFC设备,因此我尝试直接打开COM端口。为此,我使用了:

sudo cu -l /dev/ttyS0 -s 9600

但是,此命令返回:

cu: open (/dev/ttyS0): Permission denied
cu: /dev/ttyS0: Line in use

我不知道什么可能会使用此连接。为了找出答案,我尝试读取所有打开的进程并使用进行过滤ttyS0

ps -ef | grep tty

但对于此命令,使用不会显示任何内容ttyS0。我也尝试抓取所有打开的文件并过滤锁定ttyS0

lsof | grep tty

但这不会使用返回任何内容ttyS0

怎么可能在cu说的线路在使用中,但两者pslsof用任何回报这条线?


那么lsof / dev / ttyS0
Ciclamino 2014年

@Ciclamino不会改变-tty是的子字符串/dev/ttyS0。但是,这确实隐藏了所有其他tty。

我也有同样的问题。minicom工作正常,但cuscreen拒绝谈论到/dev/ttyUSB0。建议我将用户添加到uucpdialout组中,然后注销那无济于事。
沃拉克(Vorac)

Answers:


12

该行可能没有实际用法,但是有权限问题。为我测试的快速而肮脏的方法是执行:

ls -la /dev/ttyUSB0
sudo chmod 666 /dev/ttyUSB0

然后重试cu。如果开始工作,则需要注意相应的udev文件和用户权限/组。对于我的设备,它看起来像这样(成为plugdev组成员):

> cat /etc/udev/rules.d/42-CP210x.rules 
ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", SUBSYSTEMS=="usb",
ACTION=="add", MODE="0666", GROUP="plugdev"

2

串行设备特权被授予该dialout组的成员。为了建立联系,/dev/ttyS0我使用以下方式将当前用户添加到该组:

sudo adduser <username> dialout


1

看来这是的错误cu。我通过/dev/ttyUSB0使用以下命令更改所有者组来解决此问题:

chown root:root /dev/ttyUSB0
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.