[Armadillo:07860] Re: armadillo-220 でUSBキーボード

Masahiro Hanada email@hidden
2012年 1月 26日 (木) 23:24:18 JST


花田です。

> /dev/consokeが(標準状態の)シリアルポートである状態で
> USBキーボードを使う方法はありますでしょうか?
> 
> /dev/keyboard なんていうデバイスがあるかと
> 思いましたが,さすがにそれは甘い考えでした.

USBのキーボードやマウスといいますのは、HID(Human Interface Device)クラスの
標準にのっとる形で実現されておりまして。
カーネルデバイスドライバもこれに対応した形で存在し、
それをInput layerという形式で操作できるように引き出されています。

Device Drivers  --->
    Input device support  --->
    <*> Generic input layer (needed for keyboard, mouse, ...)
    ---   Userland interfaces
    <*>   Event interface
    USB support  --->
    <*> USB Human Interface Device (full HID) support
    [*]   HID input layer support

> 検索していたら
> 特集 : 最新組み込みLinux実践講座Part5
> http://armadillo.atmark-techno.com/articles/sd-a500-embedded-course-ch5
> 
> という2007年の記事を見つけましたが,ここに書かれたことは
> atmark-dis-20111220 の場合にも通用するでしょうか?

こちらの方は「libusb」という(カーネルが持つInputデバイスドライバを使わず)
ユーザーランドからUSBデバイスそのものを直接触るための方法を解説しておりまして、
「普通のキーボード入力」を扱いたい場合は、一旦忘れてください。

話を戻しまして。

手元のATDEで実験してみるとわかりやすいと思います。
(デバイスを触るので、rootで行ってください)

atde# hexdump /dev/input/event0

とやってみてからキーボードを操作してみると、

0000000 5f48 4f21 4379 0004 0004 0004 001c 0000
0000010 5f48 4f21 4381 0004 0001 001c 0000 0000
0000020 5f48 4f21 4382 0004 0000 0000 0000 0000

のように入力のたびに表示され、ATDEでは/dev/input/event0が
キーボードに結び付けられていることがわかります。

ちなみに/dev/input/event1で同じことをやってみると、
こちらはマウスに結び付けられているのがわかります。

…と。外部のURLになってしまって恐縮ですが、
後はこちらのページがそのまま続きになると思います。

Linux Input Subsystemの使い方
http://www.tatapa.org/~takuo/input_subsystem/input_subsystem.html

Armadillo-220シリーズでも標準イメージでInput lyaer/HIDドライバが
有効になっており、ATDEと同様に動作するはずです。

____________________________________________________

    花田 政弘 (はなだ まさひろ)

      (株)アットマークテクノ 開発部
        TEL: 011-207-6550    FAX: 011-207-6570
        URL: http://www.atmark-techno.com/

    E-mail: email@hidden
____________________________________________________




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