LoginSignup
2
1

More than 1 year has passed since last update.

で、出たーw PL2303と思ったらPL23C3奴www

Last updated at Posted at 2021-08-10

Prolific PL2303 の USB-Serial 変換ケーブルだと思って Linux マシンに接続しても /dev/ttyUSB0 に紐付けられない、なんていうことを今年に入って経験しました。具体的には UGREEN 社の USB 2.0 to RS232 DB9 Serial Flat Cable なのですが、lsusb コマンドで見てみますとね。

% lsusb
Bus 002 Device 003: ID 067b:23c3 Prolific Technology, Inc.

あら〜。2303 でなく 23C3 ですのね〜、という。ちゃんと Prolific 社のサイトにも PL23C3 の製品ページ がある。こんなときどのようにすれば OS にこの製品を USB-Serical Controller として認識していただけるか、ということについて述べていきましょう。

まずは usbserial モジュールを読み込みます。OS インストール後のデフォルト設定では usbserial は読み込むように設定されていないでしょう。

% sudo modprobe usbserial

usbserial モジュールが読み込まれた状態で /sys/bus/usb-serial/drivers/generic/new_id にベンダ ID とプロダクト ID をスペースを間に入れて組み合わせて記載すると generic ドライバで接続された機器を利用することができるようになります。/sys/bus/usb-serial/drivers/pl2303/new_id の方がいいのかしらね。要確認です。

% sudo sh -c 'echo "067b 23c3" > /sys/bus/usb-serial/drivers/generic/new_id'

こうするだけで (既に接続されているならば) カーネルのリングバッファには以下のように出力されます。

usb 2-1.2: New USB device found, idVendor=067b, idProduct=23c3, bcdDevice= 3.05
usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 2-1.2: Product: USB-Serial Controller
usb 2-1.2: Manufacturer: Prolific Technology Inc.
usb 2-1.2: SerialNumber: DIBXf103Y23
usbserial_generic 2-1.2:1.0: The "generic" usb-serial driver is only for testing and one-off prototypes.
usbserial_generic 2-1.2:1.0: Tell linux-usb@vger.kernel.org to add your device to a proper driver.
usbserial_generic 2-1.2:1.0: generic converter detected

さて、認識されてもパーミッションとグループの設定が適切に行われていないと cu コマンドなどで接続するときに Permission Denied と怒られてしまうので、/etc/udev/rules.d/ 以下にルールファイルを作成します。ファイル名は末尾が .rules で終わりさえすればあとは適当な名前で構いません。

% sudo sh -c 'echo "KERNEL==\"ttyUSB*\", ATTRS{idVendor}==\"067b\", ATTRS{idProduct}==\"23c3\", GROUP=\"uucp\", MODE=\"0666\"" > /etc/udev/rules.d/60-usb-serial-devices.rules'
% cat /etc/udev/rules.d/60-usb-serial-devices.rules
KERNEL=="ttyUSB*", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="23c3", GROUP="uucp", MODE="0666"

無理に 1 コマンドで実現しようとするとこういうエスケープだらけの美しくないコマンドになってしまいますが気にしない (気にしろ) 。cu コマンドは Ubuntu であれば名前の通りの cu パッケージに含まれているので、cu コマンドがまだインストールされていなければ sudo apt install cu で。インストールしたら、以下のコマンドを実行してみましょう。

% cu --parity=none --nostop --line /dev/ttyUSB0 --speed 9600 dir
Connected.

catalyst> enable
Password:
catalyst# exit

あら素敵。cu コマンドで接続した対話から抜けるときは ~. と入力します。see man cu (1) です。

2
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1