Armadillo-810(開発セット標準イメージ※1)をWindows※2 PCにUSBケーブル接続すると、Windowsからは複数のUSBデバイスとして認識されます。
これはArmadillo-810の「USBガジェット」機能によるものですが、実際に使用するにはWindows側のデバイスドライバー設定が必要ですので、その手順を紹介します。
※1 出荷状態搭載イメージ、及びダウンロードに置かれているイメージファイル(Linuxカーネルとユーザーランド)に相当。
※2 Microsoft Windows XP/7/8で、動作確認しています。
1. Windowsデバイスドライバーの準備
各USBデバイスに対応したWindowsデバイスドライバーの設定に必要な.infファイルを準備します。
Windowsに初期認識されるデバイス名 | .infファイル | .infファイル適用後のデバイス名 |
---|---|---|
USB Composite Device | 不要 | USB Composite Device |
RNDIS/Ethernet Gadget | linux.inf | Linux USB Ethernet/RNDIS Gadget |
UVC Camera | 不要 | UVC Camera |
CDC Serial | linux-cdc-acm.inf | Gadget Serial |
リンクされている.infファイル※3を、Armadillo-810を接続するWindows PCでダウンロードしてください。
必ず拡張子「.inf」である必要があります。ブラウザの右クリックから「名前を付けてリンク先を保存」するなどして、正しいファイル名でダウンロードしてください。
※3 Linuxカーネルソースの Documentation/usb ディレクトリにも、同じ.infファイルが含まれています。
2. Armadillo-810の接続と起動
Armadillo-810をPCに接続します。下記は、カメラモデル開発キットで拡張ボード01(Aコネクタ用)を接続済みの場合の例です。
拡張ボード01を接続している場合、ジャンパは全てオープン(ジャンパソケットを接続していない状態)にします。 開発用USBシリアル変換アダプタのスライドスイッチは、次のように設定します。
Armadillo-810の接続手順や設定方法は、製品マニュアルに記載されています。マニュアル記載の注意事項には、必ず従ってください。
3. .infファイルの適用
Armadillo-810のLinuxを起動すると、Windowsにデバイスが自動認識され「デバイスドライバ―をインストールしています」と表示されます。しかし、初回接続の場合「RNDIS/Ethernet Gadget」と「CDC Serial」のデバイスドライバ―は見つかりません。ここで、先に用意した「.infファイル」を適用する必要があります。
デバイスマネージャーに表示された「!」マークがついた状態の各デバイスに、.infファイルを適用する手順は以下の通りです。
- 「RNDIS/Ethernet Gadget」または「CDC Serial」を右クリックし、「ドライバー ソフトウェアの更新」を選択
- 「コンピューターを参照してドライバー ソフトウェアを検索します」を選択
- 「参照」ボタンをクリックし、.infファイルのあるディレクトリを選択
- 「次へ」ボタンをクリック
- 「閉じる」ボタンをクリック
「Windowsセキュリティ」により署名のないドライバーと判定されると、「ドライバー ソフトウェアの発行元を検証できません」といったメッセージダイアログが表示されます。使用するためには、「このドライバー ソフトウェアをインストールします」を選択してください。
Windows 8では、署名のないドライバーのインストールができません。Windowsのスタートアップ設定 (Microsoft社サイトWindowsヘルプ)を参照して、「ドライバー署名の強制」を無効にしてから.infファイルの適用を行ってください。
これで、Windows上から各USBデバイスを使用することができます。
4. 動作確認
それぞれのデバイスの動作を確認します。
UVCガジェット (UVC Cameraデバイス)
PCにインストールされているカメラ表示(ビデオキャプチャ)アプリケーションで、Armadillo-810のカメラ画像を表示できます。
Windows XPでは、エクスプローラーの「マイ コンピュータ」にある「USBビデオ デバイス」からカメラ表示可能です。
Windows 7/8にも対応したフリーウェアとしては、YAWCAMなどがあります。
シリアルガジェット (Gadget Serial)
Gadget SerialのCOM番号を確認(デバイスマネージャーの「ポート(COMとLPT)」下にある名称で確認できます)し、このポートにシリアル接続ターミナル(Tera Termなど)から接続します。
Armadillo-810シリアルポートのコマンドプロンプトから、以下のように実行します。
[armadillo ~]# echo ::respawn:/sbin/getty -L 115200 ttyGS0 >> /etc/inittab [armadillo ~]# kill -SIGHUP 1
すると、シリアルガジェット側のターミナルにログインプロンプトが表示されます。
atmark-dist v1.31.0 (AtmarkTechno/Armadillo-810) Linux 3.4-at1 [armv7l arch] armadillo810-0 login:
新たなプロンプトからは、「guest」ユーザーでログインできます。
イーサネットガジェット (Linux USB Ethernet/RNDIS Gadget)
イーサネットガジェットにより追加されたネットワークポートは、Windowsの持つ「自動プライベートIPアドレス指定(APIPA)」機能により、自動的にIP設定されます。
[armadillo ~]# ping 169.254.185.149 PING 169.254.185.149 (169.254.185.149): 56 data bytes 64 bytes from 169.254.185.149: icmp_seq=0 ttl=128 time=2.0 ms
Windowsがpingに応答しない場合、ファイアーウォールの設定を確認してping応答を許可するように設定してください。
Windowsの持つ「インターネット接続の共有」により、ネットワークポートにDHCPサーバー機能を持たせることが可能ですが、Armadillo-810のユーザーランドイメージv1.02まででDHCPによるIP取得が失敗する問題がありました。v1.03(atmark-dist-20130704)以降でDHCPクライアントのタイムアウト時間設定が変更されており、問題は解消しています。