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говорит, что линия используется, но оба psи lsofничего не возвращают, используя эту строку?


Как насчет lsof / dev / ttyS0
Ciclamino

@Ciclamino Это ничего не меняет - tty является подстрокой /dev/ttyS0. Это, однако, скрывает все остальные ttys.

У меня такая же проблема. minicomРаботает нормально, но cuи screenотказывается разговаривать /dev/ttyUSB0. Мне посоветовали добавить мой пользователя к uucpи dialoutгрупп и выйти , что не поможет.
Vorac

Ответы:


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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.