ฉันจะรวบรวมโมดูล DKMS สำหรับรุ่นเคอร์เนลหลายรุ่นใน Debian ได้อย่างไร


10

ฉันlinux-imageติดตั้งแพ็คเกจเวอร์ชัน 3.16 และ 4.0 แล้ว ในระหว่างการเข้าสู่ระบบฉันสามารถเลือกเคอร์เนลที่ฉันต้องการบูตในรายการเมนู "ตัวเลือกขั้นสูง" อย่างไรก็ตามเมื่อฉันติดตั้งโมดูล 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 นั้นใหม่ ดังนั้นอาจจะไม่
doublep

ไม่มันไม่ได้ติดตั้ง อย่างไรก็ตามตอนนี้มีแพ็คเกจรุ่นใหม่ที่พร้อมใช้งานและเมื่อฉันอัพเกรดแล้วมันจะถูกสร้างขึ้นโดยอัตโนมัติสำหรับเมล็ดทั้งสอง ดังนั้นอาจมีปัญหาบางอย่างในแพ็คเกจเช่นกัน บนมืออื่น ๆ ที่ผมดำเนินการอัพเกรดในขณะที่บูตใน 3.16 ดังนั้นบางทีมันก็สร้างสำหรับเคอร์เนลในปัจจุบันและที่ติดตั้งใหม่คน?
doublep

คำตอบ:


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คำสั่ง
Ruslan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.