Na Linuksie CrunchBang (wariant Debian) mam port COM ttyS0
, którego próbuję używać z urządzeniem NFC. libnfc odpowiedział, że nie widzi żadnych urządzeń NFC, więc spróbowałem bezpośrednio otworzyć port COM. Do tego użyłem:
sudo cu -l /dev/ttyS0 -s 9600
Jednak to polecenie zwraca:
cu: open (/dev/ttyS0): Permission denied
cu: /dev/ttyS0: Line in use
Nie wiem, co mogłoby być możliwe przy użyciu tego połączenia. Aby się dowiedzieć, próbowałem przeczytać wszystkie otwarte procesy i filtrować na potrzeby ttyS0
:
ps -ef | grep tty
ale dla tego polecenia nic się nie wyświetla ttyS0
. Próbowałem także pobrać wszystkie otwarte pliki i filtrować w celu zablokowania ttyS0
:
lsof | grep tty
ale to nic nie zwraca za pomocą ttyS0
.
Jak to możliwe, cu
że linia jest w użyciu, ale obie ps
i lsof
nic nie zwracają za pomocą tej linii?
linux
serial-port
Aza
źródło
źródło
/dev/ttyS0
. To jednak ukrywa wszystkie inne tty.minicom
działa dobrze, alecu
iscreen
odmawiają rozmawiać/dev/ttyUSB0
. Poradzono mi, aby dodać użytkownika do mojegouucp
idialout
grup i zalogować się, że nie pomogło.Odpowiedzi:
Prawdopodobnie nie ma rzeczywistego wykorzystania linii, ale problem z uprawnieniami. szybkim i brudnym sposobem przetestowania dla mnie było wykonanie:
i spróbuj ponownie
cu
. Jeśli zacznie działać, musisz zadbać o odpowiedniudev
plik i uprawnienia / grupy użytkowników. Dla mojego urządzenia wyglądało to tak (będąc członkiemplugdev
grupy):źródło
Wygląda na to, że jest to błąd
cu
. Rozwiązałem ten problem, zmieniając grupę właścicieli za/dev/ttyUSB0
pomocą następującego polecenia:źródło
Uprawnienia do urządzeń szeregowych są przyznawane członkom
dialout
grupy. Aby się połączyć/dev/ttyS0
, dodałem bieżącego użytkownika do grupy, używając:sudo adduser <username> dialout
źródło