Armadilloフォーラム

Armadillo-440 USBスキャナの挙動について

mato_developer

2019年6月20日 17時19分

お世話になっております、上園と申します。

Armadillo-440(kernel:3.14.36-at12)にてUSB 2次元コードスキャナ AT20Q-SM
(以下、 スキャナ)を使用しているのですが、USBポート別にスキャナの認識が
おかしいので、原因がお分かりになるかたがいらっしゃるのであれば、
ご教示をを願いします。

2台のスキャナをArmadillo-440のUSBポートに接続すると、
スキャナとUSBポートの組み合わせで挙動が変わり、
ある1台のスキャナでUSB2-1のみ正常認識し、他はエラーとなっています。

dmesgで状態を表示すると下記のようになります。

----------------- 1台目のスキャナ接続 -----------------------

usb 1-1: new low-speed USB device number 2 using ci_hdrc
usb 1-1: device descriptor read/64, error -110
usb 1-1: device descriptor read/64, error -110
usb 1-1: new low-speed USB device number 3 using ci_hdrc
usb 1-1: device descriptor read/64, error -110

---------------- ここまで USB1-1 接続 -----------------------------

usb 2-1: new low-speed USB device number 2 using ci_hdrc
usb 2-1: device descriptor read/64, error -71
usb 2-1: device descriptor read/64, error -71
usb 2-1: new low-speed USB device number 3 using ci_hdrc
usb 2-1: device descriptor read/64, error -71
usb 2-1: device descriptor read/64, error -71
usb 2-1: new low-speed USB device number 4 using ci_hdrc
usb 2-1: device not accepting address 4, error -71
usb 2-1: new low-speed USB device number 5 using ci_hdrc
usb 2-1: device not accepting address 5, error -71
usb usb2-port1: unable to enumerate USB device

---------------- ここまで USB2-1 接続 -----------------------------

----------------- 2台目のスキャナ接続 -----------------------

usb 1-1: new full-speed USB device number 4 using ci_hdrc
usb 1-1: device descriptor read/all, error -110
usb 1-1: new full-speed USB device number 5 using ci_hdrc
usb 1-1: device descriptor read/all, error -110
usb 1-1: new full-speed USB device number 6 using ci_hdrc
usb 1-1: device descriptor read/8, error -110
usb 1-1: device descriptor read/8, error -110
usb 1-1: new full-speed USB device number 7 using ci_hdrc
usb 1-1: can't set config #1, error -71
usb 1-1: USB disconnect, device number 7

---------------- ここまで USB1-1 接続 -----------------------------

usb 2-1: new full-speed USB device number 6 using ci_hdrc
input: DENSO WAVE INC. USB Device as /devices/platform/imx27-usb.0/ci_hdrc.1/usb2/2-1/2-1:1.0/0003:076D:0001.0001/input/input2
hid-generic 0003:076D:0001.0001: input: USB HID v1.11 Keyboard [DENSO WAVE INC. USB Device] on usb-ci_hdrc.1-1/input0
usb 2-1: USB disconnect, device number 6

---------------- ここまで USB2-1 接続 -----------------------------

ちなみに、他のUSB HIDのデバイス(キーボード、マウス、USB-シリアル変換等)は
正常に認識しています。

使用環境は以下の通りです。

使用機器 : Armadillo-440
 Linuxカーネル : linux-a400-2.07.bin.gz (kernel:3.14.36-at12)
ユーザーランド : romfs-a420-2.04.img.gz (ベーシックモデル)

USB 2次元コードスキャナ AT20Q-SM(U)
https://armadillo.atmark-techno.com/node/1397

※このページによると、Armadillo440スキャナはUSB HIDとして
   認識するとの記載あり。

以上、よろしくお願いいたします。

コメント

中村です。

> Armadillo-440(kernel:3.14.36-at12)にてUSB 2次元コードスキャナ AT20Q-SM
> (以下、 スキャナ)を使用しているのですが、USBポート別にスキャナの認識が
> おかしいので、原因がお分かりになるかたがいらっしゃるのであれば、
> ご教示をを願いします。
>
> 2台のスキャナをArmadillo-440のUSBポートに接続すると、
> スキャナとUSBポートの組み合わせで挙動が変わり、
> ある1台のスキャナでUSB2-1のみ正常認識し、他はエラーとなっています。

AT20Q-SMのマニュアルを読むと、ファームウェアがいろいろあったり、
また、動作モードが2種類(USB-COM、USBキーボード)が設定できるようですが、
試された2台は完全に同じ状態でしょうか?

正常認識した方のスキャナで、別のUSBポートで認識できない問題は、
スキャナをUSBポートに接続する前にあらかじめ次のコマンドを
実行することで解決できるかもしれません。

# echo Y > /sys/module/usbcore/parameters/old_scheme_first

--
なかむら

中村様

お世話になっております、上園です。
ご指摘いただきましてありがとうございます。

>動作モードが2種類(USB-COM、USBキーボード)が設定できるようですが、
>試された2台は完全に同じ状態でしょうか?

動作モードについては、2台ともUSBキーボードに設定しています。
 
 他のメンバーが、別機種で使用してた際にスキャナはUSBモードに設定した、
 と言っていましたが、念のためマニュアルに従い、再度USBキーボードの設定を行いました。

 結果として、同じ現象が発生します。

>スキャナをUSBポートに接続する前にあらかじめ次のコマンドを
>実行することで解決できるかもしれません。

ご指摘の件については、当方も調べたところ同じ内容が記載されているページがありました。

http://www.guyrutenberg.com/2008/06/26/usb-1-4-device-descriptor-read64…

そのため、/etc/config/rc.localに記述してみましたが、同じ現象が発生します。

 前回の内容に記載漏れがあったと内容としては、USB1-1に刺した場合デバイスが"low-speed"で
 認識されることがあります。ただ毎回そうということはなく、"full-speed"で認識されることも
 あります。

 USB2-1は"low-speed"で認識されることはありません。

引き続きスキャナ側の調査を行います。

以上、よろしくお願いいたします。

中村です。

> >スキャナをUSBポートに接続する前にあらかじめ次のコマンドを
> >実行することで解決できるかもしれません。
>
> ご指摘の件については、当方も調べたところ同じ内容が記載されているページがありました。
>
> http://www.guyrutenberg.com/2008/06/26/usb-1-4-device-descriptor-read64…
>
> そのため、/etc/config/rc.localに記述してみましたが、同じ現象が発生します。

rc.loalに
echo Y > /sys/module/usbcore/parameters/old_scheme_first
を記述して、"flatfsd -s"で保存して電源を切り、
スキャナを接続した状態で電源ONでArmadillo起動しょうか?

もしそうならば、次の手順でためしてみてください。
1) スキャナを接続せずにArmadillo起動
2) コンソールからrootでログインして "echo Y > /sys/.../old_scheme_first"を実行
3) スキャナを接続
4) コンソールのメッセージを確認

--
なかむら

中村様

お世話になっております、上園です。

>rc.loalに
> echo Y > /sys/module/usbcore/parameters/old_scheme_first
>を記述して、"flatfsd -s"で保存して電源を切り、
>スキャナを接続した状態で電源ONでArmadillo起動しょうか?

 記述と保存はご指摘の通りです。

 スキャナの接続は、Armadillo起動とログイン(root権限)をしてから行います。

>もしそうならば、次の手順でためしてみてください。

 この方法で行いましたが、現象は同じでした。

 1台目はUSBのどちらのポートにつないでもエラーコードを出力します。

 2台目はUSB2-1(USBポートの下段)のみ正常認識します。
 USB1-1(USBポートの上段)では接続時にエラーコードを出します。

 
 ------------------------------------------------

 スキャナーメーカーのホームページには最新のファームがあったのですが、
 現製品の検証用となっているのと、担当者が休みなのでファーム更新の
 可否が不明なので、ファームを最新にしての確認ができません。

 こちらは、週明けにファーム更新ができたら確認してみます。 

中村です。

> >もしそうならば、次の手順でためしてみてください。
>
>  この方法で行いましたが、現象は同じでした。

これでダメだとするとold_scheme_firstとは別の問題のようですね。

USBの上段でも下段でもダメな方のスキャナは、
相変わらずダメでしょうか?

>  2台目はUSB2-1(USBポートの下段)のみ正常認識します。
>  USB1-1(USBポートの上段)では接続時にエラーコードを出します。

Armadillo-440のUSBは、
400シリーズのハードウェアマニュアル記載のように、
上段と下段で仕様が異なりますので、
このあたりが何か影響しているのでしょう。

--
なかむら

中村様

 お世話になっております、上園です。
 ご連絡がおくれまして申し訳ございません。

>USBの上段でも下段でもダメな方のスキャナは、
>相変わらずダメでしょうか?

 こちらの方は相変わらずです。
 
 WindowsやDebianをインストールしたPCのUSBポートでは問題なく認識&動作しています。
 少なくともスキャナの故障ではありません。

>Armadillo-440のUSBは、
>400シリーズのハードウェアマニュアル記載のように、
>上段と下段で仕様が異なりますので、
>このあたりが何か影響しているのでしょう。

確かに440のハードウエアマニュアルには、USB上段はHigh Speed対応が記載されていません。
 スキャナのマニュアルにはUSBに関しての詳しい仕様は記載されていません。
(近年のパソコンのUSBは、USB3.0が標準なのでHigh Speed対応の有無を記載していないのかもしれません。)

 AtmarkTechnoのページにはポートによる記載はないので、現状は接続ポートによる制限する、
 という対応をとるしかなさそうです。

 いろいろとご相談いただきましてありがとうございます。

中村です。

あくまで「試しに・・・」ですけど、

> >USBの上段でも下段でもダメな方のスキャナは、
> >相変わらずダメでしょうか?
>
>  こちらの方は相変わらずです。

市販のUSBハブを経由してつなぐと認識したりしませんか?

もう1台の下段はOKで上段NGの方も、
上段でUSBハブを経由してみるとか。

USBハブは、バスパワーではなくセルフパワーのでも
試してみるといいと思います。

何か手がかりが得られるかもしれません。

--
なかむら

中務様

お世話になっております、上園です。

>市販のUSBハブを経由してつなぐと認識したりしませんか?

普通のUSBハブが社内に無かったので、Surface用ドッキングステーションで試したところ、
手持ちのスキャナ全部が3台のArmadillo-440の両方USBポートで認識/動作しました。

使用したドッキングステーションは以下のものです。
https://direct.sanwa.co.jp/ItemPage/400-HUB039S2?utm_medium=Release&utm…

(LANとHDMIもArumadillo上で認識したが、動作確認はしていない)

なお、ハードウエアの構成としてUSBハブは使用しないこと、
USBが1ポートでも認識できるためそちらにスキャナを接続する、
ということが社内で決定しています。

それでも「USBハブを使えばスキャナ問題を回避できる」、というのは大きな収穫でした。
本来ならこれを手掛かりにしたいのですが、社内の方針が決まった以上は
これ以上の時間が割けないのが現状です。

貴重なご意見とお時間をいただきましてありがとうございました。

中村です。

> 普通のUSBハブが社内に無かったので、Surface用ドッキングステーションで試したところ、
> 手持ちのスキャナ全部が3台のArmadillo-440の両方USBポートで認識/動作しました。

これだけでははっきりはしませんが、
Armadillo-440のUSBバス電源容量の可能性もありますね。

USBハブなしで認識できるスキャナをハブなしで下段にさして、
USB電源チェッカーで電流を測ってみるといいかも、です。

> なお、ハードウエアの構成としてUSBハブは使用しないこと、

はい、たぶんそうだろうなぁ、と思って、
先ほどは「試しに・・・」と書きました。

--
なかむら

中村様

お世話になっております、上園です。

ドッキングステーションに電源供給せず動作させてみましたが、
やはりというか、上段のみ動作しません。

そのため、

>Armadillo-440のUSBバス電源容量の可能性もありますね。

多分これが原因だと思います。
ちなみに、スキャナのマニュアルによると消費電力は最大で500mAでした。

ハードウエアマニュアルにUSBの電源の記載の注釈がありますので、
デバイスの組み合わせによって、供給先を変更する必要があります。

以上、参考までにお知らせいたします。