web-dev-qa-db-ja.com

Linuxはシリアルポートが使用中であると教えてくれましたが、使用されていません

CrunchBang linux(Debianバリアント)では、ttyS0にCOMポートがあります。これは、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はどちらもその回線を使用して何も返さないのはなぜですか。

11
user218544

行の実際の使用法はおそらくありませんが、許可の問題があります。私のためにテストする迅速で汚い方法は実行することでした:

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"
12
IljaBek

シリアルデバイス権限は、dialoutグループのメンバーに付与されます。 /dev/ttyS0に接続するには、次のコマンドを使用して現在のユーザーをグループに追加しました。

Sudo adduser <username> dialout

2
alealmuna

これはcuのバグのようです。これを解決するには、次のコマンドを使用して/dev/ttyUSB0の所有者グループを変更します。

chown root:root /dev/ttyUSB0
1
SuB