[Armadillo:07038] Re: Armadillo-420 USBメモリがマウントできません

Takenoshita Koyo email@hidden
2011年 4月 11日 (月) 19:23:01 JST


竹之下です。

> 少々、手詰まりになってしまいました。
> これ以上は、実物で色々試してみないと分かりそうにありません
実物が手に入ったので、試してみました。
入手したのは、エレコムのMF-SU204GBUです。
杉田にさんがご使用になられていたのとは、末尾がBKとBUで異なっていますが、
ここは色を表すものなので、中身は同じだと思います。

まずは、現象が再現するか確認してみました。
- Armadillo-440 液晶モデルの標準カーネル(linux-2.6.26-at14)でマウントできない
- PC Linux(Debian GNU/Linux lenny linux-2.6.26-2-amd64)でもマウントできない
- ATDE3(Debian GNU/Linux lenny linux-2.6.26-2-686) on PC Linuxだとマウントできる

ご報告いただいた通り、いずれの環境でも一応認識はするものの、ATDE3以外では
マウントできませんでした。
PC Linuxでも認識しなかったので、Armadillo特有の問題では無さそうです。
また、同じハードに繋がっているのに、素のLinuxでは認識せずに、VMwareを間に
挟むと認識するという奇妙な動作となっています。

どうも電源周りが怪しそうなので、給電ハブを間に挟んで試してみました。
- Armadilloと給電ハブを接続した後、給電ハブとMF-SU204Gを接続するとマウントできない
- MF-SU204Gと給電ハブを接続した後、給電ハブとArmadilloを接続するとマウントできる

どうやら、MF-SU204Gに先に電力を供給しておいてからプローブ処理を行うと、
認識できるようです。MF-SU204Gは、電力を供給されてから正常なデータ転送が
可能になるまでに、普通のデバイスより少し時間がかかるのではないかと、推測します。

色々なUSBメモリで動作確認を行っていますが、このような現象は初めてです。MF-SU204Gと
PC Linuxの間でも上手く行ったり行かなかったりなので、MF-SU204GとArmadillo-400シリーズは、
相性が悪いということになるかと思います。


一応、Armadilloでこのようなデバイスを扱いたいときには、回避策としてDelayed probeの
仕組みを使うことができます。Delayed probeは、USBポートに接続されたデバイスの
プローブ処理を起動時に行わず、起動完了後にsysfs経由で任意のタイミングで行えるように
するものです。元々、USBメモリ等をルートファイルシステムに使いたい場合などに、
デバイスファイルの名前が一意に決まるよう、起動時に必須でないデバイスはプローブ
しないようにするための機能ですが、今回はこれをUSBデバイスに十分に電力が供給されてから
プローブ処理を行うために使用します。


Linux Kernel Configurationで、以下の項目を選択すると、各ポートのDelayed probeが有効
になります。
Linux Kernel Configuration
  Device Drivers  --->
    [*] USB support  --->
      [ ]           Delay probe of Host2 port #Full Speedポート(CON5上段)のDelayed probeを有効にする場合、選択する
      [ ]           Delay probe of OTG port   #High Speedポート(CON5下段)のDelayed probeを有効にする場合、選択する

コンフィギュレーションを変更したカーネルで起動すると、Depaled probeが有効になっている
ポートに接続されたUSBメモリは認識されません。認識させるには、以下のコマンドを実行してください。

Full Speedポート(CON5上段)の場合
[armadillo ~]# echo 1 > /sys/devices/platform/fsl-ehci.0/delayed_probe
High Speedポート(CON5上段)の場合
[armadillo ~]# echo 1 > /sys/devices/platform/fsl-ehci.1/delayed_probe


上手く認識できると、以下のようなログが表示されると思います。

[email@hidden (ttymxc1) ~]# echo 1 > /sys/devices/platform/fsl-ehci.1/delayed_probe 
fsl-ehci fsl-ehci.1: Freescale On-Chip EHCI Host Controller
fsl-ehci fsl-ehci.1: new USB bus registered, assigned bus number 2
fsl-ehci fsl-ehci.1: irq 37, io mem 0x53ff4000
fsl-ehci fsl-ehci.1: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004
usb usb2: configuration #1 chosen from 1 choice
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 1 port detected
[email@hidden (ttymxc1) ~]# usb 2-1: new high speed USB device using fsl-ehci and address 2
usb 2-1: configuration #1 chosen from 1 choice
scsi0 : SCSI emulation for USB Mass Storage devices
scsi 0:0:0:0: Direct-Access     USB Mass Storage Device        PQ: 0 ANSI: 0 CCS
sd 0:0:0:0: [sda] 7744512 512-byte hardware sectors (3965 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] 7744512 512-byte hardware sectors (3965 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Assuming drive cache: write through
 sda:
sd 0:0:0:0: [sda] Attached SCSI removable disk

[email@hidden (ttymxc1) ~]# mount -t vfat /dev/sda /mnt/
[email@hidden (ttymxc1) ~]# ls /mnt/
pass.app/ pass.exe*


-- 
Koyo Takenoshita




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