Я начинаю разработку драйвера устройства Linux для устройства PCI, подключенного через слот расширения PCIe ноутбука.
При загрузке все работает прекрасно. Тем не менее, я пытаюсь получить базовую поддержку Hotplug в Интернете. Когда я извлекаю карту, я вижу (в dmesg
), что вызывается правильный материал для удаления. Однако при повторной вставке карты ничего не происходит. Если я вручную удалю модуль, а затем вставлю карту (или вставлю карту после загрузки), то я увижу, что модуль называется init
, но не probe
. Кроме того, устройство не отображается в выводе lspci
.
Однако, если я echo 1 > /sys/bus/pci/rescan
, то он появляется в выводе lspci
, но модуль не загружается с ошибками (pci_enable_device failed with code -22
).
Любые идеи, где даже начать диагностику этого? Неспособность выполнить .probe
меня действительно озадачивает.
Я должен упомянуть, что здесь подключена плата FPGA, поэтому, возможно, что-то не так в самом устройстве, но я все равно ожидаю, что зонд запустится, а затем выйдет из строя со странной ошибкой позже.