Jak skompilować moduł DKMS dla wielu wersji obrazu jądra w Debianie?


10

Mam linux-imagezainstalowane wersje 3.16 i 4.0 pakietu. Podczas logowania mogę wybrać jądro, które chcę uruchomić w menu „Opcje zaawansowane”. Jednak gdy instaluję moduł DKMS, jest on kompilowany tylko dla nowszej wersji:

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

Odpowiednie pakiety ( linux-headers, linux-kbuild, linux-compiler-gcc) są zainstalowane na 3,16 zbyt.

Dlaczego pakiet nie jest kompilowany dla starego obrazu jądra? Czy mogę skonfigurować coś, aby zostało skompilowane?


2
Może już istnieje?
— 0xC0000022L

Nie mam teraz dostępu do tego komputera, aby to sprawdzić, ale otrzymałem ten sam komunikat, próbując ponownie zainstalować ten pakiet DKMS. Więc prawdopodobnie nie.
— doublelep

Nie, nie został zainstalowany. Jednak teraz dostępna jest nowsza wersja tego pakietu, a kiedy go zaktualizowałem, został on automatycznie zbudowany dla obu jąder. Może to być także problem w pakiecie. Z drugiej strony przeprowadziłem aktualizację podczas uruchamiania w wersji 3.16, więc może zawsze kompiluje się dla bieżącego jądra i innych zainstalowanych nowszych ?
— doublelep

Odpowiedzi:


5

Możesz użyć polecenia instalacji DKMS (Ref:), man dkmsaby przebudować i zainstalować moduł dla określonego jądra. Poniżej przykład utworzony przez usunięcie modułów virtualbox dla jednej wersji jądra.

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
Świetnie, to działa. Aby dowiedzieć się, które moduły i wersje są znane DKMS, użyj dkms statuspolecenia.
— Ruslan
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.