Як скомпілювати модуль 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.