Ubuntu 14.04 や Raspbian で PC-OP-RS1 (ftdi_sio) の /dev/ttyUSB0 が生成されない件への対応

スポンサーリンク

Ubuntu 14.04 (64bit) や Raspbian で Baffalo 製パソコン用学習リモコン PC-OP-RS1 を動かそうとしました.

Ubuntu 13.04 のときと同じやり方 [Ubuntu 13.04] PC-OP-RS1 だと,/dev/ttyUSB0 が生成されません.

例えば,

sudo modprobe ftdi_sio vendor=0x0411 product=0x00b3

dmesg の結果,

[   92.196992] usbcore: registered new interface driver usbserial
[   92.197001] usbcore: registered new interface driver usbserial_generic
[   92.197010] usbserial: USB Serial support registered for generic
[   92.201276] ftdi_sio: unknown parameter 'vendor' ignored
[   92.201282] ftdi_sio: unknown parameter 'product' ignored
[   92.201423] usbcore: registered new interface driver ftdi_sio
[   92.201432] usbserial: USB Serial support registered for FTDI USB Serial Device

どうやらカーネル 3.12 以降で変更が入ったようです.Ubuntu 14.04 は 3.13.0-24-generic #47-Ubuntu SMP Fri May 2 23:30:00 UTC 2014,Raspbian は 3.12.20+ #687 PREEMPT Fri May 30 16:39:11 BST 2014 armv6l GNU/Linux でした.

以下は Ubuntu 14.04 の場合ですが,Raspbian でも同様です.

modprobe ftdi_sio errors
https://bbs.archlinux.org/viewtopic.php?id=175499

Bug 1071914 – Regression: Kernel update made Brainboxes ExpressCard device stop working
https://bugzilla.redhat.com/show_bug.cgi?id=1071914

vender 0x0411, product 0x00b3 である場合,/sys/bus/usb-serial/drivers/ftdi_sio/new_id に下記のように追記しておきます.

0411 00b3

その後,確認してみます.

ls -al /dev/ttyUSB*

できました.

crw-rw---- 1 root dialout 188, 0 Jun  3 00:05 /dev/ttyUSB0

OS を再起動すると設定が無効化されて一からやり直さないといけないので,OS 起動時に modprobe 等設定を行いたい場合は,/etc/modules と /etc/rc.local に追記しておきます.

例えば,

/etc/modules

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.

lp
rtc
ftdi_sio

#

/etc/rc.local

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

modprobe ftdi-sio
echo "0411 00b3" > /sys/bus/usb-serial/drivers/ftdi_sio/new_id

exit 0