2012-11-19 58 views
7

組み込みデバイスをUSBシリアルポート経由で115,200ボーで接続するプロジェクトで、Ubuntu 10.04からアップグレードしました。これをアップグレードした後、動作しませんでしたが、再起動して接続できました。私のシステムをシャットダウンして再起動したので、私は接続できませんでした。 USBデバイスが/dev/ttyUSB0として認識され、設定されている私はsttyでボーレートを設定しようとするとUSBシリアルポートでUbuntu 12.04のボーレートを設定できません

"'''''''''''''''''ppppp'''''''''''''''pppppp'''''''''''"... 

:。それが接続されているように、シリアルラインは、間違ったボー・レート(のように見えるような文字の速い列を見て私が取得:

$ sudo stty -F /dev/ttyUSB0 115200 
stty: /dev/ttyUSB0: unable to perform all requested operations 

私は9600に設定しようとすると、動作しているようです:

$ sudo stty -F /dev/ttyUSB0 9600 

しかし、何かFA ILS:

$ 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 

Iにstty(エコー、ECHOE、など)を使用して他の値を変更することができますが、ないボーレート:

ここ
$ sudo stty -F /dev/ttyUSB0 4800 
stty: /dev/ttyUSB0: unable to perform all requested operations 

はsttyのは、見ているものです。

誰かが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の下で数ヶ月間使用され、先週使用することができましたが、シャットダウンして再起動してからはできませんでした。私はオンラインで見てきましたが、同様の問題を抱える少数の人々が見つかりましたが、解決策はありませんでした。この問題を解決するにはどうすればよいですか?

+0

setserialを使ってみましたか? – exussum

+0

yes、setserialは/ dev/ttyUSB0を "無効な引数"と呼びます(質問の終わりを参照)。 – user1835090

答えて

3

私はまだ何が起こったのかわかりませんが、今は動作しています。同じ問題を抱えている人のために、私は "modprobe -r usbserial"を試みました(私の考えは、古いドライバがmodprobe -fをロードできるかどうかを確認することでした)、その後、 "modprobe usbserial" 。今回はシリアルが正常に機能しました。なぜか分かりません。今

私はそれを報告しSTTYん:

~$ stty -F /dev/ttyUSB0 
speed 115200 baud; line = 0; 
min = 1; time = 0; 
-brkint -icrnl -imaxbel 
-opost 
-isig -icanon -iexten -echo 

と私は(私は戻っ115200に、その後9600にそれを変更して)ボーレートを変更することができます。

満足できる答えはありませんが、再起動後初めて動作したように見えるのは明らかです。

+0

古いスレッドですが、コマンド( 'stty -F/dev/ttyUSB0')を繰り返すだけで動作します。なぜ2回の試行が必要なのか分かりませんが、それはうまくいくはずです。 – corpico

0

設定を変更するには、デバイスファイルに対する書き込み権限が必要です。あなたは簡単なリストでそれを制御することができます 。例えば。誰も上記の場合

$ ls -l 
crw-rw-r-T 1 root dialout 188, 0 jan 9 16:16 /dev/ttyUSB0 

スーパーrootdialoutグループを許可(r)を読んだことが、あまりにも書き込み許可(rw)を持っています。

あなたがdialoutグループのメンバーである場合、あなたがそうでなければ、あなたがsudoを使用する必要があります上記のstty -F /dev/ttyUSB0 115200 コマンドによって余分なものなしでスピード を変更することができます。

idコマンドでメンバーシップステータスを制御できます。

関連する問題