私の目標は、次のコマンドを使用して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
。
答え2
J-Link SEGGERの機能を使用したいようです。データシート「仮想COMポート」を呼び出します(データシートの5.14章)。
ただし、最初に「J-Link Commander」または「J-Link Configurator」を使用してこの機能を有効にする必要があるかもしれません。どちらもWindowsアプリケーションのようです。
/dev/ttyUSB*
LinuxのデバイスノードはUSB-RS232(またはRS485)アダプタに接続されています。 Windowsでは、RS232またはRS485ポートをCOMポートと呼びます。
しかし、J-Link SEGGER(JTAGデバッガ)は、従来のRS232スタイルシリアルポートの一般的なデータ転送速度よりもはるかに高いデータ転送速度を約束するため、「仮想COMポートモード」はいいえUSB経由のデバイスのデフォルト通信モードです。代わりに、より高いデータレートを達成するためにプライマリUSBプロトコルを使用することができ、必要に応じて比較的遅い仮想COMポートエミュレーションを補助機能として有効にする必要があります。
利用可能なJ-Link設定ソフトウェアのLinuxバージョンがない場合は、適切なソフトウェアを使用してJ-LinkデバイスをWindowsシステムに一時的に接続する必要があります。これを使用してデバイス設定を変更して「Virtual COM」を有効にする必要があります。 「ポート」を選択して新しい設定を転送します。デバイスに保存し、再構成されたデバイスをLinuxシステムに戻してもう一度やり直してください。