お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2009-09-07 22:05:09

taku_s
メンバ
登録日: 2008-12-14

USBシリアルコントローラ FTDIを使うには

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すればいいの?

このあたりの関係が良く分かりません。
ご存知のかた、ご指導お願い致します。

オフライン

 

#2 2009-09-07 22:13:17

hito
管理者
登録日: 2007-03-18

Re: USBシリアルコントローラ FTDIを使うには

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として見えるはずです。

オフライン

 

#3 2009-09-08 20:30:03

taku_s
メンバ
登録日: 2008-12-14

Re: USBシリアルコントローラ FTDIを使うには

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

オフライン

 

#4 2009-09-08 20:48:16

taku_s
メンバ
登録日: 2008-12-14

Re: USBシリアルコントローラ FTDIを使うには

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だったようです。

オフライン

 

#5 2009-09-09 12:54:24

hito
管理者
登録日: 2007-03-18

Re: USBシリアルコントローラ FTDIを使うには

EEPROMを書き換える手段がある(適正な方法でEEPROMの中身を書き換えるデータが入手できる)ならそうした方が良いかなとは思いますが、modprobe.confにoptions指定をする、という方法でも回避できると思います。

modprobe.conf options で調べてみて頂くと良いかなと。

あと大技としては、ftdi_sioのドライバを書き換えてGregKHにメールして上流で直してもらって、流れてくるのを待つという手もありますが、大変なのであまりお勧めはしません。

オフライン

 

#6 2009-09-11 08:55:57

taku_s
メンバ
登録日: 2008-12-14

Re: USBシリアルコントローラ FTDIを使うには

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の再作成が必要でしょうか?
よろしく、お願い致します。

オフライン

 

#7 2009-09-22 08:28:51

taku_s
メンバ
登録日: 2008-12-14

Re: USBシリアルコントローラ FTDIを使うには

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を書き換えるのが一番良いみたいです。

オフライン

 

#8 2013-04-17 14:12:54

HDL_TEC
新しいメンバ
登録日: 2013-04-17

Re: USBシリアルコントローラ FTDIを使うには

恐れ入ります。
vendor id (0f87)は固有の企業(当社)に割り当てられたもので、パブリックなものではありません。
どうか使用しないようにお願いいたします。

オフライン

 

#9 2013-04-17 14:17:11

HDL_TEC
新しいメンバ
登録日: 2013-04-17

Re: USBシリアルコントローラ FTDIを使うには

HDL_TEC による投稿:

恐れ入ります。
vendor id (0f87)は固有の企業(当社)に割り当てられたもので、パブリックなものではありません。
どうか使用しないようにお願いいたします。

もしも当社製品をご使用になるのでしたら問題ございません。

オフライン

 

Board footer

Powered by FluxBB