ブログ

Armadillo-810をHIDデバイスとして動作させてみる (キーボード編)

at_takuya.sasaki
2017年2月5日 19時37分

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に記載されたサンプルアプリをビルドします。 ソースコードは以下からダウンロードしてください。

hid_gadget_test.c

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

以上です。