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 でこの問題を確認し,上記の方法で解決できた.