1. はじめに
Armadillo-810をUSB HIDデバイスとして動作させ、PCやタブレット端末側からArmadillo-810がHIDデバイス(キーボードやマウスなど)として見えるようにすることを目的とします。
まずは以下のドキュメントに記載されているテストアプリケーションを動作させてみたいと思います。
https://www.kernel.org/doc/Documentation/usb/gadget_hid.txt
2. カーネルイメージの作成
gadget_hid.txtに記載されたコードを、USB HIDガジェットのソースコードと、Armadillo-810固有部のソースコードに埋め込みます。 パッチは以下からダウロードしてください。
linux-3.4-at20_a810_usbhid_support.patch
2.1. パッチの適用
atmark@atde5:~/linux-3.4-at20$ patch -p1 < ../linux-3.4-at20_a810_usbhid_support.patch
2.2. menuconfigで USB HIDガジェットを有効化
Linux/arm 3.4-at20 Kernel Configuration Device Drivers ---> [*] USB support ---> <*> USB Gadget Support ---> <*> USB Gadget Drivers (HID Gadget) ---> ★ HID Gadget を選択
2.3. makeしてイメージを作成
3. サンプルアプリのビルド
gadget_hid.txtに記載されたサンプルアプリをビルドします。 ソースコードは以下からダウンロードしてください。
3.1. ビルド
atmark@atde5:~$ arm-linux-gnueabihf-gcc hid_gadget_test -o hid_gadget_test
4. サンプルアプリの実行
4.1. Armadillo-810を起動
ひとまず試すだけなのでUSBメモリかネットワークなどを使って hid_gadget_test をArmadillo-810に転送してください。
Armadillo-810とATDE5が入ったWindowsPCを USBケーブルで接続した状態で、Armadillo-810を起動します。
4.2. デバイスの割り当て
起動が完了すると、ATDE5の「取り外し可能デバイス」に [ Netchip HID Gadet ]という項目が追加されていると思います。 このデバイスをATDE5側に [接続] してください。
[接続]するとArmadillo-810側には以下のログが出てくるかと思います。
g_hid gadget: high-speed config #1: HID Gadget
4.3. ATDE5上で[端末]を開きます
4.4. Armadillo-810側でサンプルアプリを実行します。
[root@armadillo810-0 (ttySC2) ~]# ./hid_gadget_test /dev/hidg0 keyboard ~(省略)~
以下のように p [リターンキー], w [リターンキ―], d [リターンキー] ,--return [リターンキー]と打つと、
p w d --return
ATDE5側の [ 端末 ] 上で pwd が受け付けられていることがわかるかと思います。
atmark@atde5:~$ pwd /home/atmark
以上です。