मैं डेबियन में कई कर्नेल छवि संस्करणों के लिए डीकेएमएस मॉड्यूल कैसे संकलित करता हूं?


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

मेरे पास अभी चेक करने के लिए उस कंप्यूटर तक पहुंच नहीं है, लेकिन मुझे वही संदेश मिला है जो उस डीकेएमएस पैकेज को फिर से स्थापित करने की कोशिश कर रहा है। तो, शायद नहीं।
दोपहर

नहीं, यह स्थापित नहीं किया गया था। हालाँकि, अब उस पैकेज का एक नया संस्करण उपलब्ध हो गया, और एक बार जब मैं उन्नत हुआ, तो यह स्वचालित रूप से दोनों गुठली के लिए निर्मित हो गया। इसलिए, पैकेज में भी कुछ समस्या रही होगी। दूसरी ओर, मैंने 3.16 में बूट होने के दौरान अपग्रेड किया, तो शायद यह हमेशा चालू कर्नेल और किसी भी नए स्थापित के लिए बनाता है?
doublep

जवाबों:


5

आप man dkmsविशिष्ट कर्नेल के लिए मॉड्यूल को फिर से बनाने और स्थापित करने के लिए DKMS इंस्टॉल कमांड (Ref:) का उपयोग कर सकते हैं । एक कर्नेल संस्करण के लिए वर्चुअलबॉक्स मॉड्यूल को हटाकर बनाए गए उदाहरण के नीचे।

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 Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.