
Ubuntu日本語フォーラム

ログインしていません。
Ububtu9.04で、USBシリアルコントロールチップを使った機器を使いたいんですが、いろいろ調べてもどうも良く分かりません。
まず、USBを差し込んでも認識されません。
PL2303チップを使ったUSBシリアルケーブルは何もしないでも認識されて/dev/ttyUSB0ができたのに
SynapticでFTDIで検索すると、libftdi1とftdi-eepromがあります
どうやらftdi-eepromはチップのROMの書き換えプログラムらしいが、ROMにベンダID、プロダクトIDを書き込ま無くても動くらしい。
libftdi1をインストールすれば動くの?
一方、FTDIのHPにはftdi_sio.tar.gzがあり中身は
ftdi_sio.c
ftdi_sio.h
Makefile
Rules.make
があり、これをmakeすればいいの?
このあたりの関係が良く分かりません。
ご存知のかた、ご指導お願い致します。
オフライン
taku_s による投稿:
Ububtu9.04で、USBシリアルコントロールチップを使った機器を使いたいんですが、いろいろ調べてもどうも良く分かりません。
まず、USBを差し込んでも認識されません。
とりあえず「dmesgのうち、絶対に必要ないと断言できる部分をのぞいたもの」と、「lsusb -vvのうち、問題のデバイスであると断定できるもの」を貼ってください。
また、lsusbの出力から読み取れるようであれば、ftdiのUSB-RS232Cはベンダによってデバイスコードが書き換えられているので、
sudo modprobe ftdi_sio vendor=0x**** product=0x****
をvendor,productを埋めて実行すれば/dev/ttyUSBとして見えるはずです。
オフライン
hitoさま
ご指導ありがとうございます。
Linuxの知識が乏しいものですから、どこが必要か良く分からないんですが、とりあえず
dmesgの内容
[ 3.147053] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input5
[ 3.513086] usb 1-5: new high speed USB device using ehci_hcd and address 3
[ 3.602846] r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded
[ 3.602890] r8169 0000:02:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
[ 3.602926] r8169 0000:02:00.0: setting latency timer to 64
[ 3.603088] r8169 0000:02:00.0: irq 2299 for MSI/MSI-X
[ 3.604870] eth0: RTL8102e at 0xf7c5c000, 00:1e:68:d3:16:8c, XID 24a00000 IRQ 2299
[ 3.860303] usb 1-5: configuration #1 chosen from 1 choice
[ 4.148086] usb 3-1: new full speed USB device using uhci_hcd and address 2
[ 4.330652] usb 3-1: configuration #1 chosen from 1 choice
[ 4.510088] PM: Starting manual resume from disk
[ 4.510096] PM: Resume from partition 8:7
[ 4.510100] PM: Checking hibernation image.
[ 4.510356] PM: Resume from disk failed.
[ 4.553328] kjournald starting. Commit interval 5 seconds
lsusb -vvの結果
Bus 003 Device 002: ID 0f87:1009
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x0f87
idProduct 0x1009
bcdDevice 4.00
iManufacturer 1
iProduct 2
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 32
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 98mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 2
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
オフライン
hitoさま
sudo modprobe ftdi_sio vendor=0x0f87 product=0x100
で、ttyUSB0ができました。ありがとうございました。
起動時にこの状態にする方法はどうすればよいでしょうか?
ちなみに自動認識されるデバイスは
idVender 0x0403 Future Technology Devices International, Ltd
idProduct 0x6001 FT232 USB-Serial (UART) IC
となっていました。
認識されないデバイスのEEPROMの内容を書き換えれば、自動認識されるものでしょうか?
勘違いしてましたが、どちらのデバイスもチップは同じFT232だったようです。
オフライン
EEPROMを書き換える手段がある(適正な方法でEEPROMの中身を書き換えるデータが入手できる)ならそうした方が良いかなとは思いますが、modprobe.confにoptions指定をする、という方法でも回避できると思います。
modprobe.conf options で調べてみて頂くと良いかなと。
あと大技としては、ftdi_sioのドライバを書き換えてGregKHにメールして上流で直してもらって、流れてくるのを待つという手もありますが、大変なのであまりお勧めはしません。
オフライン
hitoさま
modprobe.confのoptionsを調べてみたんですが、難しいです。
まず、/etc/modprobe.d内に
alsa-base.conf
blacklist.conf
blacklist-ath_pci.conf などがあり
この中の、alsa-base.confに
options ftdi_sio vendor=0x0f87 product=0x1009 を追加してみたんですがダメでした。
書き方、書く場所はここで良いのでしょうか?
initrdの再作成が必要でしょうか?
よろしく、お願い致します。
オフライン
FTDIに問い合せたところ
http://www.ftdichip.com/Documents/TechnicalNotes/TN_106_Adding_Custom_VID_PID_In_Linux_FT_000106.pdf
ここを見ろとのこと
で、書かれている内容は
Linuxで使う場合、ソースコードをDLし
ftdi_sio.hに
#define FTDI_My_VID 0x0f87
#define FTID_My_PID 0x1009 を追加
ftdi_sio.cのstatic struct usb_device_id id_table_combine[] ={ に
{ USER_DEVICE(FTDI_MyVID, FTDI_My_PID) }, を追加してmakeしろとのことでした。
makefileも入ってますので、これで利用できると思うんですが、
ただ、カーネルが更新されると、毎回ftdi_sioを更新する羽目になると思います。
ヘッダーファイルのコメントを読むと、一般にVID = 0x0403 PID = 0x6001にす
るように書いてあり、EPROMを書き換えるのが一番良いみたいです。
オフライン
恐れ入ります。
vendor id (0f87)は固有の企業(当社)に割り当てられたもので、パブリックなものではありません。
どうか使用しないようにお願いいたします。
オフライン
HDL_TEC による投稿:
恐れ入ります。
vendor id (0f87)は固有の企業(当社)に割り当てられたもので、パブリックなものではありません。
どうか使用しないようにお願いいたします。
もしも当社製品をご使用になるのでしたら問題ございません。
オフライン