Bagaimana cara saya mengkompilasi modul DKMS untuk beberapa versi kernel di Debian?

10

Saya memiliki versi 3.16 dan 4.0 dari linux-imagepaket yang diinstal. Selama login saya dapat memilih kernel mana yang ingin saya boot di item menu "opsi lanjutan". Namun, ketika saya menginstal modul DKMS itu dikompilasi hanya untuk versi yang lebih baru:

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

Paket yang relevan ( linux-headers, linux-kbuild, linux-compiler-gcc) dipasang untuk 3,16 juga.

Mengapa paket tidak dikompilasi untuk kernel image lama? Dapatkah saya mengkonfigurasi sesuatu sehingga yang dikompilasi?

doublep
sumber
2
Apakah sudah ada, mungkin?
0xC0000022L
Saya tidak memiliki akses ke komputer itu sekarang untuk memeriksa, tetapi saya mendapat pesan yang sama mencoba menginstal ulang paket DKMS itu. Jadi, mungkin tidak.
doublep
Tidak, itu tidak diinstal. Namun, sekarang versi yang lebih baru dari paket itu menjadi tersedia, dan begitu saya memutakhirkan, paket itu secara otomatis dibuat untuk kedua kernel. Jadi, mungkin ada beberapa masalah dalam paket juga. Di sisi lain, saya melakukan upgrade ketika boot di 3.16, jadi mungkin itu selalu dibangun untuk kernel saat ini dan yang lebih baru yang diinstal ?
doublep

Jawaban:

5

Anda dapat menggunakan perintah instalasi DKMS (Ref:) man dkmsuntuk membangun kembali dan menginstal modul untuk kernel tertentu. Di bawah ini contoh yang dibuat dengan menghapus modul virtualbox untuk satu versi kernel.

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
user.dz
sumber
1
Bagus, ini berhasil. Dan untuk mempelajari modul dan versi mana yang diketahui DKMS, gunakan dkms statusperintah.
Ruslan