Linux tells me a serial port is in use, but it isn't

11

2

On CrunchBang linux (Debian variant), I have a COM port on ttyS0, which I'm trying to use with an NFC device. libnfc responded that it couldn't see any NFC devices, so I tried directly opening the COM port. For this, I used:

sudo cu -l /dev/ttyS0 -s 9600

However, this command returns:

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

I don't know what could possibly be using this connection. To find out, I've tried reading all open processes and filtering for the use of ttyS0:

ps -ef | grep tty

but for this command, nothing shows up that is using ttyS0. I've also tried grabbing all open files and filtering for a lock on ttyS0:

lsof | grep tty

but this returns nothing using ttyS0.

How is it possible the cu says the line is in use, but both ps and lsof return nothing using that line?

user218544

Posted 2014-08-08T16:47:40.377

Reputation:

What about lsof /dev/ttyS0 – Ciclamino – 2014-08-09T01:45:08.877

@Ciclamino That doesn't change it - tty is a substring of /dev/ttyS0. That does, however, hide all the other ttys. – None – 2014-08-09T01:57:02.410

I have the same problem. minicom works fine, but cu and screen refuse to talk to /dev/ttyUSB0. I was advised to add my user to the uucp and dialout groups and log out that didn't help. – Vorac – 2015-10-31T01:23:27.773

Answers

11

There is probably no real usage of the line, but a permission issue. quick and dirty way to test for me was to execute:

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

and retry cu. If it starts working, you need to take care of the respective udev file and the user permissions/groups. For my device it looked like this (being member in plugdev group):

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

IljaBek

Posted 2014-08-08T16:47:40.377

Reputation: 226

2

Serial devices privileges are granted to members of the dialout group. To get connected to /dev/ttyS0 I added the current user to the group using:

sudo adduser <username> dialout

alealmuna

Posted 2014-08-08T16:47:40.377

Reputation: 21

1

It seems that this is a bug in cu. I solved this by changing owner group of /dev/ttyUSB0 using following command:

chown root:root /dev/ttyUSB0

SuB

Posted 2014-08-08T16:47:40.377

Reputation: 706