USBシリアルポートを介して115,200ボーで組み込みデバイスを接続するプロジェクトで、Ubuntu 10.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
私はこのデバイスを Ubuntu 10.04 で数か月間使用しており、先週は使用できましたが、シャットダウンして再起動してから使用できませんでした。オンラインで調べたところ、同様の問題を抱えている人が何人か見つかりましたが、解決策はありませんでした。この問題を解決するにはどうすればよいですか?