[Armadillo:05189] Re: Armadillo-220 USBキーボードについて
Takenoshita Koyo
email@hidden
2010年 5月 18日 (火) 19:55:07 JST
竹之下です。
手元の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
email@hidden さんは書きました:
> お世話になっております。
> 中田です。
>
> ご説明、ありがとうございます。
>
> ライブラリを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
> >
> > この問題を解決するための、御教授のほど、よろしくお願いいたします。
> >
> > ------------------------------------------------------------------------
> > 2010 FIFA World Cup News [Yahoo!Sports/sportsnavi]
> > <http://pr.mail.yahoo.co.jp/southafrica2010/>
> >
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > armadillo mailing list
> > email@hidden
> <mailto:email@hidden>
> > http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>
>
> --
> Koyo Takenoshita
>
> _______________________________________________
> armadillo mailing list
> email@hidden <mailto:email@hidden>
> 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/>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
--
Koyo Takenoshita
armadillo メーリングリストの案内