Як скомпілювати модуль DKMS для декількох версій зображення ядра в Debian?


10

У мене встановлені версії 3.16 та 4.0 linux-imageпакета. Під час входу я можу вибрати пункт ядра, який я хочу завантажувати в пункті «Додаткові параметри». Однак, коли я встановлюю модуль DKMS, він складається лише для нової версії:

Setting up fglrx-modules-dkms (1:14.12-1) ...
Loading new fglrx-14.12 DKMS files...
Building only for 4.0.0-1-amd64

Відповідні пакети ( linux-headers, linux-kbuild, linux-compiler-gcc) встановлені на 3.16 теж.

Чому пакет не збирається для старого зображення ядра? Чи можу я щось налаштувати, щоб воно було складено?


2
Чи воно вже існує, можливо?
0xC0000022L

Зараз у мене немає доступу до цього комп’ютера, щоб перевірити, але мені надійшло те саме повідомлення, що намагається перевстановити пакет DKMS. Отже, напевно, ні.
подвоєння

Ні, він не був встановлений. Однак тепер стала доступною нова версія цього пакету, і коли я оновив, він автоматично створився для обох ядер. Отже, це могло бути певною проблемою і в пакеті. З іншого боку, я здійснив оновлення під час завантаження в 3.16, тому, можливо, воно завжди створюється для поточного ядра та будь-яких встановлених новіших ?
подвійний

Відповіді:


5

Ви можете використовувати команду встановлення DKMS (Ref:) man dkmsдля відновлення та встановлення модуля для конкретного ядра. Нижче наведено приклад, створений шляхом видалення модулів virtualbox для однієї версії ядра.

sudo dkms install <module-name>/<module-version> -k <kernel-version>

$ dkms status
vboxhost, 5.0.10, 4.2.0-21-generic, x86_64: installed
vboxhost, 5.0.10, 4.2.0-22-generic, x86_64: installed
vboxhost, 5.0.10, 4.2.0-23-generic, x86_64: installed
vboxhost, 5.0.10, 4.2.0-25-generic, x86_64: installed

$ sudo dkms remove vboxhost/5.0.10 -k 4.2.0-22-generic
...

$ dkms status
vboxhost, 5.0.10, 4.2.0-21-generic, x86_64: installed
vboxhost, 5.0.10, 4.2.0-23-generic, x86_64: installed
vboxhost, 5.0.10, 4.2.0-25-generic, x86_64: installed


$ sudo dkms install vboxhost/5.0.10 -k 4.2.0-22-generic

Kernel preparation unnecessary for this kernel.  Skipping...

Building module:
cleaning build area....
make KERNELRELEASE=4.2.0-22-generic -C /lib/modules/4.2.0-22-generic/build M=/var/lib/dkms/vboxhost/5.0.10/build...............
cleaning build area....

DKMS: build completed.

vboxdrv.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/4.2.0-22-generic/updates/dkms/

vboxnetflt.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/4.2.0-22-generic/updates/dkms/

vboxnetadp.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/4.2.0-22-generic/updates/dkms/

vboxpci.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/4.2.0-22-generic/updates/dkms/

depmod....

DKMS: install completed.

$ dkms status
vboxhost, 5.0.10, 4.2.0-21-generic, x86_64: installed
vboxhost, 5.0.10, 4.2.0-22-generic, x86_64: installed
vboxhost, 5.0.10, 4.2.0-23-generic, x86_64: installed
vboxhost, 5.0.10, 4.2.0-25-generic, x86_64: installed

1
Чудово, це працює. А щоб дізнатися, які модулі та версії відомі DKMS, використовуйте dkms statusкоманду.
Руслан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.