[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 メーリングリストの案内