1

Я установил драйвер как * .ko (собрал его из исходного кода) и поместил в /etc/modules

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

У меня почему-то возникает ощущение, что есть способ заставить драйвер устанавливаться каждый раз при обновлении ядра, и я не делаю это вручную.

Итак, как мне это сделать?

1 ответ1

1

Если у вас есть источник к драйверу (то, что вы явно не указали в своем посте), вам придется перекомпилировать его. Существует приложение, которое может позаботиться об этом за вас, которое называется dkms для Dynamic Kernel Module Support .

По сути, вам нужно создать файл dkms.conf в каталоге, созданном с помощью un'tarring пакета, а затем поместить эти строки в файл dkms.conf :

  PACKAGE_NAME=r8168
  PACKAGE_VERSION=8.032.00
  MAKE[0]="'make'"
  BUILT_MODULE_NAME[0]=r8168
  BUILT_MODULE_LOCATION[0]="./"
  DEST_MODULE_LOCATION[0]="/kernel/updates/dkms"
  AUTOINSTALL="YES"

Каталоги идентифицируются по их относительным путям; источником этого относительного пути является каталог, в котором находится файл dkms.conf . Не забудьте проверить, что команды make правильные, вы должны будете сравнить их с обычным файлом README.txt, включенным в каждый пакет.

Теперь всегда из этого каталога мы копируем все в каталог назначения:

  sudo cp -R . /usr/src/r8168-8.032.00/

Наконец, вы говорите dkms чтобы сделать свое дело:

  dkms add -m r8168 -v 8.032.00
  dkms build -m r8168 -v 8.032.00
  dkms install -m r8168 -v 8.032.00

и вы сделали.

Редактировать:

извините, я забыл, что вам нужно установить заголовки ядра и создать /config /gcc, ... который в дистрибутивах семейства Debian (Debian, Ubuntu, Mint ... aptosid ...) можно загрузить с помощью:

   sudo apt-get install linux-headers-generic build-essential

Другие дистрибутивы имеют эквивалентные команды.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .