USB ターゲット (USB Gadget) の設定
このドキュメントでは組込み Linux 開発用 CPU ボード Bishop を USB ターゲット (USB Gadget) として使用する手順を紹介します。
Bishop の USB ターゲットサポートは実験的なものです。正式にはサポートしていません。
- 1. 概要
- 2. Linux カーネルのビルド
- 3. 動作確認
- 4. USB ホスト側の設定
- 4.1. USB ホストが Linux の場合
- 4.2. USB ホストが Windows の場合
- 5. 関連リンク
1. 概要
Linux カーネルに含まれる USB デバイスドライバは、
- USB ホスト
- USB ターゲット (USB Gadget)
の2種類に大別されます。
通常の使用では、Bishop「に」USB 接続されたデバイス (マウスや、USB カメラなど) を動作させる USB ホストドライバしか意識しませんが、USB ターゲットのドライバを使うことで、Bishop「を」USB バス上のデバイスとして動作させることができます。
標準 Linux カーネルに含まれる USB ターゲットのドライバには
- USB-Ether
- USB-シリアル変換器
- USB マスストレージ
- MIDI
などがあります。
以降では 例として USB-Ether を有効にする手順を説明します。
2. Linux カーネルのビルド
USB ターゲットとして Linux カーネルを再構築します。
$ cd linux-2.6.26.8-pylone0 $ make ARCH=arm menuconfig Device Drivers -> [*] USB support-> <*> USB Gadget Support -- USB Gadget Support-> USB Peripheral Controller-> ( ) Renesas M66592 USB Peripheral Controller (X) S3C2410 USB Device Controller ( ) Dummy HCD (DEVELOPMENT) <M> USB Gadget Drivers <M> Ethernet Gadget (with CDC Ethernet support) [*] RNDIS support (Bishop を Windows からも認識させるために必要) $ make ARCH=arm CROSS_COMPILE=arm-linux-gnu- uImage modules
ここでは USB-Ether をモジュールとしますので、make のターゲットとしてuImage に加えて modules が必要です。
ビルドが終わったら arch/arm/boot/uImage と drivers/usb/gadget/g_ether.koが生成されていることを確認してください。
3. 動作確認
USB ターゲットを有効にしたカーネルで Bishop を起動して、g_ether.ko モジュールの動作確認をします。
Bishop 上で g_ether.ko をロードしてIPアドレスを割り当て:
bishop:#~ insmod g_ether.ko bishop:#~ ifconfig usb0 <IPアドレス> netmask <マスク>
この時のアドレスは eth0 などと重複しないネットワークにしてください。
4. USB ホスト側の設定
これまでの手順により g_ether モジュールが組み込まれた Bishop をUSB ホストに接続するとベンダ ID が 0x0525、プロダクト ID が 0xA4A2 のUSB-Ether コンバータとして認識されます。
USB ホスト側のネットワークアダプタ設定をすれば Bishop が USB 接続の LAN インタフェースとして使うことができます。
ping を Bishop → ホスト、 Host ← Bishop で送ったり、Telnet や SSHでログインしてみると確認できるでしょう。
以降では USB ホスト側の具体的な手順について説明します。
4.1. USB ホストが Linux の場合
ほとんどの環境では Bishop を USB ホストに接続すると usbnet ドライバ がロードされネットワークインタフェース usb0 [1] として認識される筈です。
もし認識されなければ usbnet モジュールの有無を確認してください。
# modprobe usbnetusbnet モジュールが無ければホスト側 Linux を再構築する必要があります。
Device Drivers->
[*] Network device support ->
USB Network Adapters ->
<M> Simple USB Network Links (CDC Ethernet subset)
[*] Embedded ARM Linux links (iPaq, ...)認識が成功したら、インタフェースに IP アドレスを振ります。この時のネットワークアドレスは Bishop 側の設定に合わせておきます。
# ifconfig usb0 <IPアドレス> netmask <マスク>4.2. USB ホストが Windows の場合
Linux カーネルのソースコードに含まれる INF ファイル (Documentation/usb/linux.inf) を使って、Windows に標準で含まれる RNDIS ドライバを使用します。
ホスト側の USB コネクタに Bishop を接続すると、新しいネットワークインターフェースとして認識されドライバが要求されます。ウィザードに従って linux.inf を直接指定すれば 標準 RNDIS ドライバがインストールされます。
後は Linux の場合と同様に、適宜 IP アドレスとネットワークアドレスを設定すれば Bishop をネットワークアダプタとして使用できます。
5. 関連リンク
- ^ 通常 0 ですが、既に別の USB-Ether が使用されていると変わります。
著作権と免責
Copyright © 2012 Pylone, Inc.
この文書の著作権は株式会社パイロンが保有します。
この文書は「現状のまま(as is)」で提供され、明示的であるかどうかを問わず、内容についてなんら保証するものではありません。
この文書には、技術的な誤り、誤植、不適格な表現や未完成部分等を含む可能性があります。従って、この文書は予告無しに追加、変更、削除される可能性があります。
この文書は「クリエイティブ・コモンズ-表示-2.1-日本 以降」(CC-by-2.1 or later) の下で配布されています。