Ubuntu の 10.10 や 11.04 でシリアル通信ができない

シリアルケーブルをUSBに変換するコネクタを使って,BioloidというROBOTIS社のロボットを,PCで制御する際の問題について.

dmesg で確認すると,/dev/ttyUSB0 に接続されたと表示される.

Jun  7 21:32:21 lupind kernel: [42456.164391] usb 2-1: new full speed USB device using uhci_hcd and address 12
Jun  7 21:32:22 lupind kernel: [42456.348034] usb 2-1: New USB device found, idVendor=067b, idProduct=2303
Jun  7 21:32:22 lupind kernel: [42456.348309] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Jun  7 21:32:22 lupind kernel: [42456.348319] usb 2-1: Product: USB-Serial Controller
Jun  7 21:32:22 lupind kernel: [42456.348330] usb 2-1: Manufacturer: Prolific Technology Inc.
Jun  7 21:32:22 lupind kernel: [42456.348696] usb 2-1: configuration #1 chosen from 1 choice
Jun  7 21:32:22 lupind kernel: [42456.357887] pl2303 2-1:1.0: pl2303 converter detected
Jun  7 21:32:22 lupind kernel: [42456.410898] usb 2-1: pl2303 converter now attached to ttyUSB0

が,C++などでシリアル通信プログラムを書くと,接続の段階で失敗する.

Ubuntu10.10でUSBシリアルケーブルのデバイス制御がおかしい?に書いてある方法を実行すると,解決できた.

まず

sudo modprobe -r pl2303

でモジュール pl2303 を削除し,次に

sudo modprobe pl2303

で再度モジュールを読み込む.

とりあえずは,これで解決する.


Ubuntu の 10.10, 11.04 でこの問題を確認し,上記の方法で解決できた.