Автоматическая загрузка модифицированного драйвера устройства nvme вместо драйвера устройства nvme по умолчанию во время загрузки

#linux-kernel #linux-device-driver #kernel-module #device-driver

#linux-ядро #linux-device-driver #kernel-module #драйвер устройства

Вопрос:

Я изменил драйвер устройства nvme по умолчанию в соответствии с моим проектом, и я пытаюсь автоматически загрузить модифицированный драйвер nvme (mnvme) во время загрузки, но безуспешно.

Я отредактировал файл /lib/modules/{kernel-version}/modules.alias, чтобы включить «mnvme» вместо «nvme», но «nvme» по умолчанию продолжает загружаться.

Я также вижу mnvme: ошибка проверки модуля: отсутствует подпись и / или требуемый ключ — заражение ядра в сообщениях ядра.

Примечание: я могу вручную удалить «nvme» и загрузить «mnvme», используя команды rmmod и insmod соответственно. Я бы предпочел делать это автоматически во время загрузки

Спасибо, Бала.

Комментарии:

1. Существует специальная папка, вызываемая extra under /lib/modules/$KVER/kernel . Он содержит модули, которые переопределяют существующие.

Ответ №1:

Для автоматической загрузки вашего модуля:

  1. Скопируйте все файлы .ko, связанные с вашим модулем, в соответствующее расположение в разделе /lib/modules/{kernel-version}/kernel/ , например, в разделе /lib/modules/4.1.19-v7 /kernel/drivers/nvme/ для драйвера nvme.

  2. Выполнить depmod -a . Это должно обновить информацию, требуемую, modprobe которая используется для автоматической загрузки модифицированного модуля. Полезным ресурсом для загрузки модулей ядра является раздел 1.2 «Как модули попадают в ядро?» этого руководства http://www.tldp.org/LDP/lkmpg/2.6/lkmpg.pdf .

  3. Если вы изменили какие-либо заголовки, которые вам нужны в пользовательском пространстве, обязательно обновите соответствующий файл заголовка в разделе /usr/include .

Чтобы избежать сообщения о заражении, зафиксируйте внесенные вами изменения, например git commit -sam "...." .