私の目標は、次のコマンドを使用してSeggerシリアルリンクを介してARM mmcと通信することです。
python3 -m serial.tools.miniterm -e /dev/ttyUSB3 115200
ただし、次のエラー メッセージが表示されます。
No such file or directory: '/dev/ttyUSB3'
dmesgを使用すると、USBポートに接続されているSeggerシリアルデバイスを表示できます(下記参照)。
[159707.574338] usb 1-3: new full-speed USB device number 17 using xhci_hcd
[159707.724537] usb 1-3: New USB device found, idVendor=1366, idProduct=0101, bcdDevice= 1.00
[159707.724542] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[159707.724545] usb 1-3: Product: J-Link
[159707.724546] usb 1-3: Manufacturer: SEGGER
[159707.724548] usb 1-3: SerialNumber: 000801025943
だからUSB3に接続しましたが、シリアルリンクを開くことができないようです。また、これを参照してください:
USER@USERdev:/dev$ ls -ld ttyU*
ls: cannot access 'ttyU*': No such file or directory
なぜシリアルリンクを開くことができないのか知っていますか?私はDebian 11.7を使用しています。
助けてくれてありがとう :)
ベストアンサー1
多くのデバイスアクセスの問題は、グループメンバーシップの変更で解決できます。
sudo journalctl --follow
接続されているデバイスを見ると、デバイス名を見つけることができます。または、ls -1 /dev >dev.before
デバイスを接続して10秒間待ちますls -1 /dev >dev.after;diff dev.{before,after}
。
特に、ls -l
グループ表示権限(2番目のrwx
三重項)が「」rw
(例: " -rw-rw----
")の場合、デバイスを所有するグループに自分自身を追加すると、rw
アクセス権が付与されます。
それだけです:
# change to your device name
device="/dev/ttyUSB3"
sudo adduser $USER $(stat -c "%G" $device)
これにより、デバイスを使用できるグループのメンバーになることができますrw
。しかし、もう一つのステップがあります。
すべてのプロセスを新しいグループのメンバーにするには、ログアウトしてログインします。グループメンバーシップは時間ベースで設定されますlogin
。
新しいグループから単一のプロセスを作成するには(テスト用、ログアウト/ログイン前):
newgrp $(stat -c "%G" $device)
またはグループ名を入力してください。望むよりman newgrp
。