1

私はLinuxデバイスドライバーに非常に慣れておらず、現在USBドライバーに取り組んでいます。USB 関連のドライバーをローダブル モジュールとして作成し、必要に応じて削除/再挿入する必要があります。しかし、特定の問題に直面しています。Qualcomm Snapdragon 820 プロセッサ (APQ8096) に基づく Dragonboard 820 に取り組んでいます。

Linux カーネル バージョン: 3.18.20

Android バージョン: 6.0

ドライバーの挿入作業は初回のみです。挿入の順番はこちらです。
insmod dbm.ko
insmod dbm-1_4.ko
insmod dbm-1_5.ko
insmod dwc3.ko
insmod dwc3-msm.ko
insmod dwc3-pci.ko

insmod ehci-hcd.ko
insmod ehci-pci.ko

insmod xhci-hcd.ko

insmod xhci-pci.ko
insmod xhci-plat-hcd.ko

insmod phy-msm-ssusb-qmp.ko
insmod phy-msm-qusb.ko

insmod usb-storage.ko

「lsmod」は次の出力を提供します。

root@msm8996:/system/lib/modules # lsmod Module Size Used by usb_storage 55391 0 phy_msm_qusb 18820 4 phy_msm_ssusb_qmp 17033 2 xhci_plat_hcd 6509 0 xhci_pci 4916 0 xhci_hcd 158558 2 xhci_plat_hcd,xhci_pci,[permanent] ehci_pci 4594 0 ehci_hcd 69125 1 ehci_pci dwc3_pci 2890 0 dwc3_msm 50671 0 dwc3 237561 1 dwc3_msm dbm_1_5 6526 0 dbm_1_4 6197 0 dbm 2119 3 dwc3_msm,dbm_1_5,dbm_1_4

USB は挿入後に正常に動作します。ただし、ドライバーを (逆の順序で) 削除しようとすると、3 つのドライバー (phy_msm_qusb、phy_msm_ssusb_qmp、および xhci_hcd) が削除されず、他のドライバーを再挿入するとクラッシュします (xhci_plat_hcd を再挿入する際)。これらのドライバーを強制的に削除すると、非常に不安定になり、残りのドライバーの削除時または再挿入時にクラッシュします。したがって、誰かがこれについて意見を持っていれば、それは大歓迎です。

4

1 に答える 1