Làm cách nào để biên dịch mô-đun DKMS cho nhiều phiên bản hình ảnh hạt nhân trong Debian?


10

Tôi đã linux-imagecài đặt phiên bản 3.16 và 4.0 . Trong quá trình đăng nhập, tôi có thể chọn kernel nào tôi muốn khởi động trong mục menu "tùy chọn nâng cao". Tuy nhiên, khi tôi cài đặt một mô-đun DKMS, nó chỉ được biên dịch cho phiên bản mới hơn:

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

Gói có liên quan ( linux-headers, linux-kbuild, linux-compiler-gcc) được cài đặt cho 3.16 quá.

Tại sao gói không được biên dịch cho ảnh kernel cũ? Tôi có thể cấu hình một cái gì đó để nó được biên dịch?


2
Nó đã tồn tại, có lẽ?
0xC0000022L

Tôi không có quyền truy cập vào máy tính đó ngay bây giờ để kiểm tra, nhưng tôi nhận được thông báo tương tự khi cố gắng cài đặt lại gói DKMS đó. Vì vậy, có lẽ là không.
đôi

Không, nó đã không được cài đặt. Tuy nhiên, giờ đây, một phiên bản mới hơn của gói đó đã có sẵn và khi tôi nâng cấp, nó sẽ tự động được xây dựng cho cả hai nhân. Vì vậy, nó có thể là một số vấn đề trong gói quá. Mặt khác, tôi đã thực hiện nâng cấp trong khi khởi động vào 3.16, vì vậy có lẽ nó luôn được xây dựng cho kernel hiện tại và bất kỳ cài đặt mới hơn nào?
đôi

Câu trả lời:


4

Bạn có thể sử dụng lệnh cài đặt DKMS (Ref man dkms:) để xây dựng lại và cài đặt mô-đun cho kernel cụ thể. Bên dưới một ví dụ được tạo bằng cách loại bỏ các mô-đun hộp ảo cho một phiên bản 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

1
Tuyệt vời, công trình này. Và để tìm hiểu các mô-đun và phiên bản nào được biết đến với DKMS, hãy sử dụng dkms statuslệnh.
Ruslan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.