Debian не обнаруживает последовательную плату PCI после перезагрузки

Долгое время, так как я использовал FreeBSD, но он похож на Вас, означает pkg_add -r ?

Насколько я могу сказать, pkg_add принимает значение по умолчанию к URL на основе uname -r.

Таким образом, возможно, необходимо обновить основную систему с помощью инструкций в руководстве (например, Восстанавливая "мир".

Или возможно PACKAGESITE, PACKAGEROOT и переменные среды PKG_ADD_BASE могут помочь?

4
13.02.2017, 00:01
2 ответа

Путем это обычно работает:

  • Исходный код модуля содержит вызовы к MODULE_DEVICE_TABLE макрос для объявления таблицы идентификаторов устройств, которые поддерживает этот модуль.
  • В скомпилированном модуле псевдонимы хранятся как значения названных символов __mod_alias_NNN где NNN являются целыми числами. Значение кодирует идентификацию шины для устройства, например. pci:v00009710d00009865sv*sd*bc*sc*i* для устройства PCI, идентифицированного как поставщик 0x9710, устройство 0x9865.
    Они также хранятся под именем __mod_pci_device_table для устройств PCI, __mod_usb_device_table для USB-устройств, и т.д.
  • depmod программа создает отображение таблицы псевдонима __mod_alias_NNN значения к имени модуля. Эта таблица хранится в файле modules.alias в корне каталога модулей ядра, например. /lib/modules/2.6.32-5-amd64/modules.alias.
    Это также создает файлы как modules.pcimap, modules.usbmap, …, которые используются устаревшей инфраструктурой замены в горячем режиме, которая была включена в категорию назад в modprobe.
  • Когда ядро обнаруживает устройство, для которого не присутствует никакой драйвер, оно пытается загрузить модуль путем называния программы обозначенной kernel.modprobe sysctl, который является /sbin/modprobe по умолчанию. Ядро передает аргумент modprobe это указывает на то, какой драйвер требуют. Для устройства PCI это - имя как pci:v00009710d00009865sv*sd*bc*sc*i*.
  • modprobe поиски модуля с именем. Если это находит модуль с требуемым именем (после того, как следование за псевдонимом определило в его конфигурационных файлах, которые включают /etc/modprobe.d/*.conf и /lib/modules/$(uname -r)/modules.alias), это загружает тот модуль.
    modprobe не загрузит модуль, который был помещен в черный список a blacklist директива в ее конфигурационных файлах.

Выполненный lspci -n видеть идентификаторы PCI Вашего устройства и проверять цепочку выше для наблюдения, где что-то пошло не так, как надо.

Иногда драйвер работает на устройство, которое очень похоже на устройство, это предназначается для, но имеет другой идентификатор PCI. В этом случае возможно, что драйвер будет работать, но не будет загружен автоматически, потому что это не объявляет идентификатор PCI для Вашего устройства. Можно добавить псевдоним вручную в /etc/modprobe/my_aliases.conf.

Можно вынудить модуль быть загруженным автоматически во время начальной загрузки путем добавления его имени к /etc/modules.

7
27.01.2020, 20:49

Быстрое исправление должно было бы бежать за каждой перезагрузкой

modprobe mcs9865
modprobe mcs9865-isa

мне кажется, как будто модули ядра не являются автоматической вставкой.

существует init сценарий, таким образом, Вам, возможно, просто придется добавить его к уровню выполнения по умолчанию с этим

sudo update-rc.d mcs9865 defaults
2
27.01.2020, 20:49

Теги

Похожие вопросы