ホットプラグ可能でなければならない PCIe デバイス用の Linux PCI ドライバーを作成しています。
このデバイスは、ケーブルを介して、PCIe スロットに収まる PCIe リドライバー カードに接続されます。
起動時にデバイスが接続されている場合は、 で見つけることができlspci
、ドライバーは正常にプローブします。ただし、実行時にケーブルが取り外された場合でも、デバイスが存在するものとして表示され、「1」を にエコーした後でもlspci
、ドライバの PCIメソッドは呼び出されません。remove
/sys/bus/pci/rescan
起動時にデバイスが接続されていない場合、この問題は逆になります。lspci
ケーブルが接続された後でも、この問題は表示されず、probe
メソッドは呼び出されません。
私のモジュールはpci_register_driver()
andpci_unregister_driver()
ライブラリを使用しています。ドライバーはprobe
およびremove
メソッドのみを使用し (suspend
またはなしresume
)、 および をid_table
初期化しvendor id
ますdevice id
。
ホットプラグ対応の PCI デバイスを登録するために呼び出す必要がある Linux カーネルの関数はありますか?