मैंने हाल ही में DKMS के बारे में कुछ उल्लेख देखे हैं लेकिन यह स्पष्ट नहीं है कि यह वास्तव में मेरे सिस्टम पर क्या कर रहा है।
DKMS वास्तव में क्या करता है और मैं इसका उपयोग कैसे करूं?
मैंने हाल ही में DKMS के बारे में कुछ उल्लेख देखे हैं लेकिन यह स्पष्ट नहीं है कि यह वास्तव में मेरे सिस्टम पर क्या कर रहा है।
DKMS वास्तव में क्या करता है और मैं इसका उपयोग कैसे करूं?
जवाबों:
DKMS (डायनामिक कर्नेल मॉड्यूल सपोर्ट) पैकेज ( http://linux.dell.com/dkms/ ) कर्नेल मॉड्यूल के पूरक संस्करणों को स्थापित करने के लिए सहायता प्रदान करता है। पैकेज कर्नेल ट्री में संकलित और स्थापित करता है। अनइंस्टॉल करना पिछले मॉड्यूल को पुनर्स्थापित करता है। डिफ़ॉल्ट रूप से, इंस्टॉलेशन वर्तमान कर्नेल ट्री में है, लेकिन किसी भी कर्नेल ट्री को कमांड-लाइन विकल्पों के साथ चुना जा सकता है। इसके अलावा, DKMS को नए उबंटू कर्नेल-इमेज पैकेज की स्थापना पर स्वचालित रूप से कहा जाता है, और इसलिए DKMS में जोड़े गए मॉड्यूल स्वचालित रूप से अपडेट में किए जाएंगे।
अवलोकन
DKMS के साथ एक मॉड्यूल का उपयोग करने के लिए, एक मॉड्यूल इंस्टालेशन फाइल (स्रोत कोड या बाइनरी हो सकता है) / usr / src / - में, एक कॉन्फ़िगरेशन फ़ाइल dkms.conf के साथ होती है, जो DKMS को बताती है कि मॉड्यूल को कैसे बनाया जाए / कैसे कॉन्फ़िगर किया जाए और क्या है नाम है। अधिक उन्नत परिदृश्यों के तहत, सशर्त निर्माण निर्देश और पैचिंग dkms सिस्टम द्वारा किया जा सकता है, लेकिन आपके मामले पर विचार करना आवश्यक नहीं हो सकता है।
वाल्क-के माध्यम से
मान लीजिए कि आप अपने फैंसी "भयानक एडेप्टर" के लिए एक मॉड्यूल स्थापित करना चाहते हैं। आपको एक स्रोत दिया जाता है
tarball awesome-20091211-v1.1.tgz
।DKMS के साथ, हम DKMS को बताते हैं कि कैसे आप के लिए उपयुक्त प्रविष्टियों के साथ dkms.conf फ़ाइल बनाकर। उदाहरण के लिए, के बाद हम टारबॉल unpacked है:
# cd awesome-20091211-v1.1/
# touch dkms.conf
# create dkms.conf file
# vi dkms.conf
अंदर
dkms.conf
, हम लाइनें जोड़ सकते हैं:
MAKE="make -C src/ KERNELDIR=/lib/modules/${kernelver}/build"
CLEAN="make -C src/ clean"
BUILT_MODULE_NAME=awesome
BUILT_MODULE_LOCATION=src/
PACKAGE_NAME=awesome
PACKAGE_VERSION=1.1
REMAKE_INITRD=yes
सभी निर्देशिका dkms.conf फ़ाइल के स्थान के संबंध में हैं। यह डीकेएमएस बताता है
- मॉड्यूल का निर्माण करने के लिए कमांड (निर्देशिका src / में रन बनाते हैं)।
- स्रोत ट्री को साफ़ करने के लिए कमांड (रन डायरेक्टरी src / में साफ करें)।
- .O या .ko एक्सटेंशन के बिना मॉड्यूल का नाम। यह वास्तव में मॉड्यूल की एक सरणी हो सकती है यदि कई मॉड्यूल बनाए जाते हैं, तो मैन डीकेएमएस देखें।
- जहां DKMS निर्मित मॉड्यूल पा सकते हैं।
- नाम और संस्करण DKMS को मॉड्यूल के साथ संबद्ध होना चाहिए।
- मॉड्यूल स्थापित करने के बाद initrd छवि रीमेक करने के लिए।
आप बिल्ड या इंस्टॉल करने से पहले या बाद में कॉल करने के लिए विकल्प भी जोड़ सकते हैं, अतिरिक्त (सशर्त) प्रदान कर सकते हैं, कमांड, पैच कमांड आदि बना सकते हैं। dkms.conf वास्तव में एक शेल स्क्रिप्ट में उपलब्ध है, इसलिए उचित मात्रा में प्रवंचना की जा सकती है यदि आवश्यक है। इन विकल्पों और अधिक को dkms.conf अनुभाग में मानव dkms में वर्णित किया गया है।
अगला, हम कर्नेल स्रोत ट्री / usr / src / में मॉड्यूल इंस्टालेशन फ़ाइलों की प्रतिलिपि बनाकर DKMS में मॉड्यूल स्थापित करते हैं और DKMS को नए मॉड्यूल के बारे में बताते हैं:
# ls
README dkms.conf lib src
# sudo cp -R . /usr/src/awesome-1.1
# sudo dkms add -m awesome -v 1.1
dkms does its thing...
बस! भविष्य के कर्नेल इंस्टॉलेशन के निर्माण के लिए DKMS ने अब हमारे मॉड्यूल को अपने मॉड्यूल की सूची में जोड़ा है। यह सुनिश्चित करने के लिए कि यह काम करता है और मॉड्यूल को हमारे वर्तमान कर्नेल में स्थापित करने के लिए, हम dkms को मॉड्यूल बनाने और स्थापित करने का निर्देश दे सकते हैं:
# sudo dkms build -m awesome -v 1.1
dkms does its thing.... watch for build errors... you may need to tweak dkms.conf
# sudo dkms install -m awesome -v 1.1
dkms does its thing.... module is copied into current kernel module tree
कुछ भाग्य के साथ, आपका मॉड्यूल भविष्य के कर्नेल अपडेट में इंस्टॉल और इंस्टॉल किया जाएगा।
उदाहरण
DKMS आदमी पेज DKMS साथ प्रयोग के लिए अपने पसंदीदा कर्नेल मॉड्यूल को सेट करना पर उपयोगी जानकारी है। यह व्यापक दस्तावेज नहीं है, लेकिन यह बहुत सारे सवालों के जवाब देगा। यह निम्नलिखित उदाहरणों को नोट करने में आपकी मदद कर सकता है, भले ही उपयोग किए गए मॉड्यूल वे नहीं हैं जिन्हें आप सेटअप करना चाहते हैं:
- RocketRaid - कैसे सेटअप पर दो उदाहरण Highpoint RocketRaid ड्राइवरों RR26xx और RR62x DKMS साथ।
प्रेषक: help.ubuntu.com
अधिक जानकारी यहां पाई जा सकती है: