[Armadillo:05212] Re: Armadillo-220 USBキーボードについて

email@hidden
2010年 5月 24日 (月) 16:40:44 JST


お世話になっております。
中田です。


ご説明、ありがとうございます。


カーネルを、linux-2.6.26に変更したところ、正常に動作しました。




お忙しいところ、御教授していただき、誠にありがとうございました。


 

竹之下です。

手元のArmadillo-220で実行してみたところ、少し現象が異なるようです。

使用したソフトウェアのバージョンは、以下の通りです。
linux: 2.6.12.3-a9-17
libusb: libusb-0.1-4-arm-cross 0.1.12-5 (Debian etch用のパッケージ)

サンプルソースコード
http://download.atmark-techno.com/misc/softwaredesign_2007-11/chapter5/libusb-sample.c

をATDE2で以下のようにビルドしました。
arm-linux-gnu-gcc libusb-sample.c -lusb

そして、作成されたa.outと/usr/arm-linux-gnu/lib/libusb-0.1.so.4.4.4
をArmadilloに転送し、/lib/libusb-0.1.so.4という名前でlibusb-0.1.so.4.4.4
へのリンクを張っています。

USBキーボードを挿して実行すると、以下のようなエラーになりました。

[email@hidden (ttyAM0) /home/ftp/pub]# ./a.out 
USB-DEV: 0x05af/usb 1-1: usbfs: interface 0 claimed while 'a.out' sets config #1
0x0507 "?"
usb 1-1: usbfs: interface 1 claimed while 'a.out' sets config #1
usb 1-1: usbfs: process 940 (a.out) did not claim interface 0 before use
read error: -16usb 1-1: usbfs: process 940 (a.out) did not claim interface 0 before use

read error: -16usb 1-1: usbfs: process 940 (a.out) did not claim interface 0 before use
(延々に同じエラーが続く)

元々の記事では、linux-2.6.18を使用していたので、カーネルのバージョンが異なる
ことが原因かもしれません。

もし、よろしければ、linux-2.6.26を試すことはできますでしょうか?
http://armadillo.atmark-techno.com/dev/kernel-beta-release-20100108

> お世話になっております。
> 中田です。
>  
> ご説明、ありがとうございます。
>  
> ライブラリをArmadilloにコピーし、シンボリックリンクを貼ったところ、
> 実行することが出来ました。
>  
> しかし、以下の表示がされてしまい、
> USBキーボードのキー入力を表示することが出来ませんでした。
>  
> USB-DEV: 0x05af/usb 1-1: usbfs: interface 1 claimed by usbhid while 
> '0518_armusb1' sets config #1
> 0x0507 "?"
> usb_set_configuration() error.
>  
> 「usb_set_configuration() error.」という表示内容から、
>  御社の『特集 : 最新組み込みLinux実践講座Part5』
> ( http://armadillo.atmark-techno.com/articles/sd-a500-embedded-course- 
> ch5 )
> に記載されているlibusbのサンプルコードの68行目に入ってしまったのだと思う 
> のですが、
> 解決方法が分かりません。
>  
> 使用しているUSBキーボードは、エレコム製 TK-UP87MPBKで、
> ベンダIDは0x05AF、プロダクトIDは0x0507です。
>  
> この問題を解決するための、御教授のほど、よろしくお願いいたします。
>  
> 
>  
> 中田さん
> 
> はじめまして。
> 竹之下といいます。
> 
> まず、libusbに関してですが、
>  > ./a.out: error while loading shared libraries: libusb-0.1.so.4: cannot
>  > open shared object file: No such file or directory
> これは、"libusb-0.1.so.4"という名前のシェアードライブラリのファイルが
> 見つからないために、このようなエラーが発生しています。
> 
> 「●図1 ARM クロスlibusb パッケージのインストール」の手順をおこなった場合、
> 開発PCの"/usr/arm-linux-gnu/lib/"ディレクトリにライブラリファイルが
> インストールされています。
> 
> [PC ~]$ ls -l /usr/arm-linux-gnu/lib/libusb*
> lrwxrwxrwx 1 root root    19 2010-05-17 11:48 
> /usr/arm-linux-gnu/lib/libusb-0.1.so.4 -> libusb-0.1.so.4.4.4
> -rw-r--r-- 1 root root 28892 2007-02-13 11:23 
> /usr/arm-linux-gnu/lib/libusb-0.1.so.4.4.4
> -rw-r--r-- 1 root root 31710 2007-02-13 11:23 
> /usr/arm-linux-gnu/lib/libusb.a
> -rw-r--r-- 1 root root  803 2010-05-17 11:48 
> /usr/arm-linux-gnu/lib/libusb.la
> lrwxrwxrwx 1 root root    19 2010-05-17 11:48 
> /usr/arm-linux-gnu/lib/libusb.so -> libusb-0.1.so.4.4.4
> 
> これらのファイルのうち、"libusb-0.1.so.4.4.4"を、Armadilloの"/lib"ディレ 
> クトリに
> コピーして、開発用PCと同じように"libusb.so"、"libusb-0.1.so.4"という名前 
> でシンボリックリンク
> を貼ってください。
> 
> libusbに限らず、「error while loading shared libraries」となった場合は、 
> 大抵Armadilloの
> "/lib"ディレクトリにライブラリがないことが原因です。
> 
> 次に、usbfsのマウントについてです。
>  > mount: Mounting usbfs on /proc/bus/usb failed: Device or resource busy
> これは、既にusbfsがマウントされているために、エラーになっているのだと思 
> います。
> 
> Armadillo-220のRecoverイメージとBaseイメージでは、"/etc/init.d/rc"で 
> usbfsをマウント
> しています。
> 
> mountコマンドで確認してみてください。
> 
>  > はじめまして
>  > 中田と申します。
>  > Armadillo-220とUSBキーボードの接続について、質問があります。
>  >
>  > Armadillo-220とUSBキーボードを接続して、
>  > 御社の『特集 : 最新組み込みLinux実践講座Part5』
>  > ( http://armadillo.atmark-techno.com/articles/sd-a500-embedded-course-
>  > ch5 )
>  > に記載されているlibusbのサンプルコードを動かしてみようと思ったのですが、
>  > うまくいきません。
>  > 手順は、以下のとおりです。
>  > 1. 上記サイトに記載されているlibusbのサンプルコードを、VMware上でコンパ
>  > イル。
>  > 2. コンパイルしたファイルを、ftpを用いてarmadilloのpubフォルダ内にコ 
> ピー。
>  > 3. armadilloのpubフォルダ内にて、権限を変更したのち実行。
>  >   # chmod +x a.out
>  >   # ./a.out
>  > すると、以下のエラーが表示されてしまいます。
>  > ./a.out: error while loading shared libraries: libusb-0.1.so.4: cannot
>  > open shared object file: No such file or directory
>  >
>  > また、メーリングリスト内にusbfsをmountする方法が記載されてましたので、
>  > ([Armadillo:01889] http://lists.atmark-
>  > techno.com/pipermail/armadillo/2007-August/001889.html )
>  > Armadilloにusbfsをmountしようとしましたが、以下のエラーが表示されてしま
>  > い、mountすることが出来ませんでした。
>  > mount: Mounting usbfs on /proc/bus/usb failed: Device or resource busy
>  >
>  > この問題を解決するための、御教授のほど、よろしくお願いいたします。
>  >
>  > ------------------------------------------------------------------------
>  >
>  >
>  > ------------------------------------------------------------------------
>  >
>  > _______________________________________________
>  > armadillo mailing list
>  > http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
> 
> 
> -- 
> Koyo Takenoshita
> 
> _______________________________________________
> armadillo mailing list
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
> 
> ------------------------------------------------------------------------
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> armadillo mailing list
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo


-- 
Koyo Takenoshita

_______________________________________________
armadillo mailing list
http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo

--------------------------------------
2010 FIFA World Cup News [Yahoo!Sports/sportsnavi]
http://pr.mail.yahoo.co.jp/southafrica2010/
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://lists.atmark-techno.com/pipermail/armadillo/attachments/20100524/4202cdba/attachment.html>


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