私はLinuxのデバイスドライバにはとても新しく、現在現在はUSBドライバで作業中です。私はロード可能なモジュールとしてUSB関連のドライバを作成し、それらを削除/再挿入する必要があります。しかし、私は特定の問題に直面しています。私は、クアルコムのSnapdragon 820プロセッサ(APQ8096)に基づいてDragonboard 820に取り組んでいます。再挿入時にUSBドライバがクラッシュする
Linuxカーネルのバージョン:3.18.20
Androidのバージョン:ドライバの6.0
挿入は最初time.Hereは挿入の順序で動作します。
insmodのdwc3-msm.ko
insmodのdwc3-pci.ko dwc3.ko
insmodののDBM-1_4.ko
insmodののDBM-1_5.ko
insmodのdbm.ko insmodの
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 'は次のように出力します。 、(逆の順序で)ドライバを削除しようとしているときに
[email protected]:/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はinsertion.However後によく働く3人のドライバー-phy_msm_qusb、phy_msm_ssusb_qmpとxhci_hcdは削除されず、他のドライバーの再挿入は、(クラッシュxhci_plat_hcdを再挿入しながら)。これらのドライバーを強制的に取り外すと、非常に不安定で残りのドライバーの取り外し時または再挿入中にクラッシュすることがあります。 誰かがこれに関する入力を持っているなら、それは高く評価されます。
おかげ(
-DCC_HAVE_ASM_GOTO
フラグを使用して再コンパイル)永久マークモジュールの溶液です。 'xhci_hcd'はexit関数がないので永久に表示されます。追加すると永久に表示されなくなり、削除することができます。他の2つについては、あなたは正しいです、彼らはいくつかの未知のプロセスによって使用されています。私はこれらのドライバがロード可能なモジュールとしてコンパイルされることを意図しておらず、したがってこのアプローチをあきらめていることを知らされています。 – Jay