[〜#〜] usb [〜#〜] シリアルポートを115,200ボーで接続するプロジェクトでUbuntu10.04からアップグレードしました。これをアップグレードした後、動作しませんでしたが、再起動して接続できました。システムをシャットダウンして再起動してから、接続できませんでした。シリアルラインは、間違ったボーレートで接続されているように見えます(次のような文字列が高速です:
"'''''''''''''''''ppppp'''''''''''''''pppppp'''''''''''"...
USBデバイスが認識され、/dev/ttyUSB0
として設定されています。 stty
でボーレートを設定しようとすると、次のようになります。
$ Sudo stty -F /dev/ttyUSB0 115200
stty: /dev/ttyUSB0: unable to perform all requested operations
9600
に設定しようとすると、うまくいくようです。
$ Sudo stty -F /dev/ttyUSB0 9600
しかし、他のものは失敗します:
$ Sudo stty -F /dev/ttyUSB0 4800
stty: /dev/ttyUSB0: unable to perform all requested operations
Sttyが見るものは次のとおりです。
$ stty -F /dev/ttyUSB0
speed 9600 baud; line = 0;
min = 1; time = 0;
-brkint -icrnl -imaxbel
-opost -onlcr
-isig -icanon -iexten -echo -echoe -echok -echoctl -echoke
Stty(echo、echoeなど)を使用して他の値を変更できますが、ボーレートは変更できません。
誰かが Minicom でボーを設定できるというコメントをオンラインで見ましたが、コマンドラインからではなかったので、Minicomを入手して試してみましたが、同じ結果が得られました(ボーレートが間違っているようです) )。
Setserialも試しましたが、/dev/ttyUSB
デバイスの受け入れも拒否されます。
$ Sudo setserial /dev/ttyUSB0 -a
Cannot get serial info: Invalid argument
$ Sudo setserial /dev/ttyS0 -a
/dev/ttyS0, Line 0, UART: 16550A, Port: 0x03f8, IRQ: 4
Baud_base: 115200, close_delay: 50, divisor: 0
closing_wait: 3000
Flags: spd_normal skip_test
最後に、デバイスとdmesgからのセットアップを次に示します。
$ ls -l /dev/ttyUSB*
crw-rw-rw- 1 root dialout 188, 0 Nov 19 15:53 /dev/ttyUSB0
crw-rw-rw- 1 root dialout 188, 1 Nov 19 16:00 /dev/ttyUSB1
$ dmesg | grep ttyUSB
[ 32.444445] usb 4-1: generic converter now attached to ttyUSB0
[ 32.444549] usb 8-2: generic converter now attached to ttyUSB1
私はUbuntu10.04でこのデバイスを数か月使用していて、先週は使用できましたが、シャットダウンして再起動してから使用できませんでした。私はオンラインで調べて、同様の問題を抱えている人を何人か見つけましたが、解決策を持っている人はいません。この問題を解決するにはどうすればよいですか?
何が起こったのかはまだわかりませんが、現在は機能しています。同じ問題が発生した場合は、「modprobe -r usbserial」(古いドライバーをmodprobe -fでロードできるかどうかを確認することを考えていましたが、ロードできませんでした)を試し、モジュール「modprobeusbserial」をリロードしました。 。今回はシリアルが正しく機能しました-理由はわかりません。
今私がsttyをするとき、それは報告します:
~$ stty -F /dev/ttyUSB0
speed 115200 baud; line = 0;
min = 1; time = 0;
-brkint -icrnl -imaxbel
-opost
-isig -icanon -iexten -echo
ボーレートを変更できます(9600に変更してから115200に戻しました)。
したがって、満足のいく答えはありませんが、再起動後に初めて機能し始めたのと同じように、それで遊んでみると機能するようです。
設定を変更するには、デバイスファイルへの書き込み権限が必要です。あなたは簡単なリストでそれを制御することができます。例えば。
$ ls -l
crw-rw-r-T 1 root dialout 188, 0 jan 9 16:16 /dev/ttyUSB0
上記の場合、全員に読み取り権限(r
)があり、スーパーユーザーroot
とdialout
グループにも書き込み権限(rw
)があります。
dialout
グループのメンバーである場合は、上記のstty -F /dev/ttyUSB0 115200
コマンドを使用して、何も追加せずに速度を変更できます。それ以外の場合は、Sudo
を使用する必要があります。
id
コマンドを使用してメンバーシップステータスを制御できます。