y_ich
2015年9月3日 13時39分
市川といいます。
Armadillo-EVA 1500でUSB デバイス機能(マスストレージ)を使用する為に製品マニュアル、
「Howto : Armadillo-410 液晶モデル開発セット で USB デバイス機能を使用する」
を参考に設定していますがCON9がUSBデバイスとして機能しません。
どの様に設定すれば宜しいでしょうか。
1.コンフィギュレーションでは以下の様にしています。
Device Drivers --->
[*] USB support --->
--- USB support
USB Mass Storage support
*** USB Miscellaneous drivers ***
USB Gadget Support --->
--- USB Gadget Support
Renesus R8A66597 USB Peripheral Controller
[*] on-chip USBHS type with extended bulk endpoint support
USB Gadget Drivers
Mass Storage Gadget
2.上記コンフィギュレーション内容でビルド後ImageファイルをSDカードの/bootに書き込みます。
(SDブートにしています)
3.SDカードでarmadillo-EVA 1500を起動後上記ビルドで作成されたg_mass_storage.koをロード
insmod g_mass_storage.ko file=/dev/sda1 stall=0
としますが以下のメッセージがでてロードできません。
g_mass_storage: Unknown symbol usb_gadget_probe_driver (err 0)
g_mass_storage: Unknown symbol usb_gadget_unregister_driver (err 0)
Error: could not insert module g_mass_storage.ko: Unknown symbol in module
どの様にすれば宜しいでしょうか。
以上、宜しくお願い致します。
コメント
y_ich
市川です。
make modules_installとmodproveでモジュールの追加を実行してみました。
makeは
make ARCH=arm INSTALL_MOD_PATH=/tmp/mod modules_installで
INSTALL drivers/scsi/scsi_wait_scan.ko
INSTALL drivers/usb/gadget/g_mass_storage.ko
INSTALL drivers/usb/gadget/gadgetfs.ko
INSTALL drivers/usb/gadget/r8a66597-udc.ko
INSTALL drivers/usb/gadget/udc-core.ko
INSTALL drivers/usb/storage/usb-storage.ko
INSTALL fs/nfs/blocklayout/blocklayoutdrive.ko
DEPMOD 3.4.81-ae1500-at2
が表示され、/tmp/mod/lib/modules/3.4.81-ae1500-at2/kernel/drivers/usb/gadget/にg_mass_storage.koは生成されました。
modprobe g_mass_storage.ko file=/dev/sda1の結果は
FATAL: Module g_mass_storage.ko not found.となり追加できませんでした。
ちなみに
insmod udc-core.ko
insmod g_mass_storage.ko file=/dev/sda1
の結果は
Error: could not insert module g_mass_storage.ko: No such device
となり追加できませんでした。(sda1はUSBメモリーがありマウントすれば読み取れます)
以上ですが見直すところ等有りましたら宜しくお願い致します。
at_mizo
y_ich
市川です。
# modprobe g_mass_storage を実行しました。
ERROR: could not insert 'g_mass_storage': No such device
となります。
他に試したことですが、
ドライバが入っていませんがSW2.4オフの状態でUSBケーブルをCON9とPCで接続するとPCは無反応でした。
この後でUSBケーブルを抜くと
hub 1-0:1.0: over-current condition on port 1
hub 3-0:1.0: over-current condition
となり、I/Oがホストの場合の表示に見えます。
以上ですが宜しくお願い致します。
at_mizo
溝渕です。
> # modprobe g_mass_storage を実行しました。
>
> ERROR: could not insert 'g_mass_storage': No such device
> となります。
モジュールはどこに配置しましたか?
modules.*(modules.depなど)や、*.koファイルが入っているkernel/は、
/lib/modules/`uname -r`
以下にあることが期待されています。
詳しくは、modprobeのmanページを参照してください。
[atde]$ man modprobe
以上です。
y_ich
at_mizo
溝渕です。
> INSTALL drivers/scsi/scsi_wait_scan.ko
> INSTALL drivers/usb/gadget/g_mass_storage.ko
> INSTALL drivers/usb/gadget/gadgetfs.ko
> INSTALL drivers/usb/gadget/r8a66597-udc.ko
> INSTALL drivers/usb/gadget/udc-core.ko
> INSTALL drivers/usb/storage/usb-storage.ko
> INSTALL fs/nfs/blocklayout/blocklayoutdrive.ko
r8a66597-udcもモジュールにしているのですね。
恐らく、g_mass_storageはr8a66597-udcに依存していないので(modules.depを
確認してみてください)、まず、r8a66597-udcを登録する必要があると思います。
# modprobe r8a66597-udc
を実行すると、モジュールが正しく登録されるか確認してみてください。
以上です。
y_ich
お世話になります。市川です。
modprobe r8a66597-udc の結果は
r8a66597_udc: Unknown symbol usb_get_transceiver (err 0)
r8a66597_udc: Unknown symbol usb_put_transceiver (err 0)
ERROR: could not insert 'r8a66597_udc':: Unknown symbol in module, or unkown parameter (see dmesg)
で登録できませんでした。
引数が足りないのでしょうか。恥ずかしながら分っておりません。
プロダクトマニュアルの7.4.11.USBファンクションを参照して
カーネルコンフィギュレーションを実機では
Device Drivers --->
[*] USB support --->
--- USB support
<M> USB Mass Storage support
*** USB Miscellaneous drivers ***
<M> USB Gadget Support --->
--- USB Gadget Support
<M>] Renesus R8A66597 USB Peripheral Controller
[*] on-chip USBHS type with extended bulk endpoint support
USB Gadget Drivers
<M> Mass Storage Gadget
で
<M> Renesus R8A66597 USB Peripheral Controller
の様にしているので r8a66597-udc もモジュールになっていると思います。
マニュアルでは
<*> USB Peripheral Controller (Renesas R8A66597 USB Peripheral Controller) --->
(X) Renesas R8A66597 USB Peripheral Controller <CONFIG_USB_R8A66597>
となっており実機と若干異なります。
実機でのマスストレージのコンフィギュレーションは正しいでしょうか。
また、マニュアルと同じコンフィギュレーションのソースは有りますか。
以上、宜しくお願いします。
y_ich
お世話になります。市川です。
以下で使用することが出来ました。
Device Drivers --->
[*] USB support --->
--- USB support
<*> USB Mass Storage support
<*> USB Gadget Support --->
<*> USB Peripheral Controller (Renesas R8A66597 USB Peripheral Controller)
[*] on-chip USBHS type with extended bulk endpoints support
<M> USB Gadget Drivers
<M> Mass Storage Gadget
<*> GPIO based peripheral-only VBUS sensing 'transceiver'
モジュール化する所を誤っていたようです。
以上、ありがとうございました。
at_mizo
2015年9月10日 16時33分
溝渕です。
> 3.SDカードでarmadillo-EVA 1500を起動後上記ビルドで作成されたg_mass_storage.koをロード
> insmod g_mass_storage.ko file=/dev/sda1 stall=0
> としますが以下のメッセージがでてロードできません。
上記手順だと、g_mass_storageが必要とするudc-coreなどのカーネルモジュー
ルがロードされません。そのため、
> g_mass_storage: Unknown symbol usb_gadget_probe_driver (err 0)
> g_mass_storage: Unknown symbol usb_gadget_unregister_driver (err 0)
> Error: could not insert module g_mass_storage.ko: Unknown symbol in module
のようにg_mass_storageのロードに失敗しています。
静的にドライバを組み込むか、次のようにmake modules_installを利用してカー
ネルモジュールをインストールすると解決できます。
# USB Gagetはドライバの依存関係を把握するのが大変と思うので、手動での依
存関係解決はあまりおすすめしません。
[atde]$ cd linux-3.4-ae1500-[version]
[atde]$ mkdir /tmp/mod
[atde]$ make ARCH=arm INSTALL_MOD_PATH=/tmp/mod modules_install
上記の例だと、/tmp/mod/以下にモジュールがインストールされるので、これを
Armadillo-EVA 1500のルートファイルシステムにそのままコピーしてください。
コピー後は、modprobeを利用したカーネルモジュールの追加が可能になると思
います。
# modprobeは、ドライバの依存関係を解決してくれるためinsmod/rmmodよりも
容易に使用できるかと思います。
以上、お試しください。