리눅스는 직렬 포트가 사용 중이라고 말하지만 그렇지 않습니다. use 이 연결을 사용할 수있는

CrunchBang 리눅스 (데비안 변형)에는 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반환 아무것도 그 선을 사용하지?



답변

회선의 실제 사용법은 없지만 권한 문제 일 수 있습니다. 나를 테스트하는 빠르고 더러운 방법은 다음을 실행하는 것이 었습니다.

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"

답변

직렬 장치 권한은 dialout그룹 구성원에게 부여됩니다 . 연결하려면 /dev/ttyS0다음을 사용하여 현재 사용자를 그룹에 추가했습니다.

sudo adduser <username> dialout


답변

이것은의 버그 인 것 같습니다 cu. /dev/ttyUSB0다음 명령 을 사용하여 소유자 그룹을 변경 하여이 문제를 해결했습니다 .

chown root:root /dev/ttyUSB0