[Armadillo:08206] Re: Armadillo440 デバイスの実装状態を知る方法

Takenoshita Koyo email@hidden
2012年 8月 3日 (金) 15:23:47 JST


竹之下です。

> しかしながらUSBデバイスからの通信を行いたいのですがttyUSB0は無い旨のエラーで叱られます。
> 本機にどのようなデバイスが実装されどのような名前で使えるのかを知る方法を教えてください。
どんなデバイス名になるかは、接続するUSBデバイスの種類によって異なります。
USBメモリを挿した場合は、/dev/sda や /dev/sdb といった名前になります。
USB to シリアル変換ケーブルを挿した場合、/dev/ttyUSB0 になる場合もあれば、/dev/ttyACM0 に
なることもあります。これは、USB to 変換ケーブルの中で使われているチップの種類に依存します。

ということで、USBデバイスを挿したときどんな名前になるのか、よく分からないので
自分の場合、カーネルメッセージを読んで確認しています。

カーネルメッセージは、USBデバイスを接続したときに、システムコンソール[*1]に表示されます。
カーネルメッセージは、dmesgコマンドで確認することもできます。telnetやsshでログインしていて
システムコンソール以外の端末を使っている場合や、後でもう一度確認したい場合などは、dmesgコマンド
を使うとよいでしょう。

USBメモリを挿したときのカーネルメッセージは下記のようになります。

usb 2-1: USB disconnect, address 2
usb 2-1: new high speed USB device using fsl-ehci and address 3
usb 2-1: configuration #1 chosen from 1 choice
scsi0 : SCSI emulation for USB Mass Storage devices
scsi 0:0:0:0: Direct-Access     BUFFALO  USB Flash Disk   4000 PQ: 0 ANSI: 0 CCS
sd 0:0:0:0: [sda] 2007040 512-byte hardware sectors (1028 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] 2007040 512-byte hardware sectors (1028 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Assuming drive cache: write through
 sda: sda1  <-- ここ
sd 0:0:0:0: [sda] Attached SCSI removable disk

ProlificのPL2303というチップを積んだUSB to シリアル変換ケーブルを
挿した場合、下記のようなメッセージになります。

usb 2-2: new full speed USB device using uhci_hcd and address 3
usb 2-2: New USB device found, idVendor=067b, idProduct=2303
usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 2-2: Product: USB-Serial Controller
usb 2-2: Manufacturer: Prolific Technology Inc.
usb 2-2: configuration #1 chosen from 1 choice
usbcore: registered new interface driver usbserial
USB Serial support registered for generic
usbcore: registered new interface driver usbserial_generic
usbserial: USB Serial Driver core
USB Serial support registered for pl2303
pl2303 2-2:1.0: pl2303 converter detected
usb 2-2: pl2303 converter now attached to ttyUSB0  <-- ここ
usbcore: registered new interface driver pl2303
pl2303: Prolific PL2303 USB to serial adaptor driver

「ここ」と書いてあるところから、デバイスファイル名を確認します。

ここまでが、Linux一般のお話です。
===
ここから、Armadillo固有のお話になります。

Armadilloの標準カーネルでは、USB to シリアル変換ケーブル用のドライバが有効に
なっていません。そのため、USB to シリアル変換ケーブルを挿しただけでは、
使えるようになりません。USB to シリアル変換ケーブルを使えるようにするためには、
対応するチップのドライバを有効にしたカーネルを自前で作る必要があります。

カーネルにどの機能を入れるか入れないかは、カーネルコンフィギュレーションで決めます。
カーネルコンフィギュレーションの変更方法は、
ソフトウェアマニュアルの「7.1.4. イメージをカスタマイズする[*2]」や
Armadillo実践開発ガイド 第2部の「7.4. コンフィギュレーションの設定[*3]」を参照してください。

今回はUSB to シリアル変換ケーブルを使いたいとのことですので、「Linux Kernel Configuration」で、
下記のように設定を変更すればよいでしょう。

Linux Kernel Configuration
  Device Drivers  --->
    [*] USB support  --->
      <*>   USB Serial Converter support  --->             #有効にする (*印を付ける)
        [*]   USB Generic Serial Driver                    #有効にする
        <*>   USB FTDI Single Port Serial Driver           #有効にする
        <*>   USB Moschip 7840/7820 USB Serial Driver      #有効にする
        <*>   USB Prolific 2303 Single Port Serial Driver  #有効にする

FTDIとMoschip、Prolificのドライバを有効にしておけば、現在出回っているUSB to シリアル
変換ケーブルのほとんどをカバーできると思います。

--- 
*1: Armadillo-440であれば、CON3 シリアルインターフェース1
*2: http://manual.atmark-techno.com/armadillo-4x0/armadillo-400_series_software_manual_ja-1.8.0/ch07.html#sec-image-customize
*3: http://manual.atmark-techno.com/armadillo-guide/armadillo-guide-2_ja-2.2.0/ch07.html#sec_setting_of_configuration

(2012年08月03日 10:00), email@hidden wrote:
> 
> Armadillo,Linux 共に初心者です。
> Windowsの場合はどのデバイスがどのような名前で登録されているかはデバイスマネージャーで知ることができます。
> Armadilloの場合はたとえば本機ではUSBドライバはXXXという名前で実装されています・・・みたいな情報はどこからどのように取得することができるのでしょうか。
> 先日、ハード仕様のようなものを教えていただきttymxc4がUART5に結ばれているようであることは理解でき通信もできています。
> 質問していたUDP通信も自己解決できました。
> しかしながらUSBデバイスからの通信を行いたいのですがttyUSB0は無い旨のエラーで叱られます。
> 本機にどのようなデバイスが実装されどのような名前で使えるのかを知る方法を教えてください。
> お手柔らかにお願いします。
> 
> 
> 
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo


-- 
Koyo Takenoshita




armadillo メーリングリストの案内