Modprobe - लिनक्स कमांड - यूनिक्स कमांड

नाम

modprobe - लोड करने योग्य मॉड्यूल के उच्च स्तर हैंडलिंग

SYNOPSIS

modprobe [-adnqv] [-C विन्यास ] मॉड्यूल [प्रतीक = मूल्य ...]
modprobe [-adnqv] [-C config ] [-t type ] पैटर्न
modprobe -l [-C config ] [-t type ] पैटर्न
modprobe -c [-C कॉन्फ़िगरेशन ]
modprobe -r [-dnv] [-C कॉन्फ़िगरेशन ] [मॉड्यूल ...]
modprobe -Vh

विकल्प

-ए , - कुल मिलाकर

पहली सफल लोडिंग के बाद रोकने के बजाय सभी मिलान मॉड्यूल लोड करें।

-सी , --showconfig

वर्तमान में प्रयुक्त विन्यास दिखाएं।

-सी , --config कॉन्फ़िगरेशन

कॉन्फ़िगरेशन निर्दिष्ट करने के लिए (वैकल्पिक) /etc/modules.conf की बजाय फ़ाइल कॉन्फ़िगरेशन का उपयोग करें। पर्यावरण परिवर्तक MODULECONF का उपयोग डिफ़ॉल्ट /etc/modules.conf (या /etc/conf.modules (बहिष्कृत) से एक अलग कॉन्फ़िगरेशन फ़ाइल का चयन (और ओवरराइड) करने के लिए भी किया जा सकता है।

जब पर्यावरण परिवर्तक UNAME_MACHINE सेट किया जाता है, तो मॉड्यूल्स मशीन फ़ील्ड के बजाय uname () syscall से इसके मान का उपयोग करेगा। यह मुख्य रूप से उपयोग में है जब आप 32 बिट उपयोगकर्ता स्थान में 64 बिट मॉड्यूल संकलित कर रहे हैं या इसके विपरीत, मॉड्यूल के प्रकार के लिए UNAME_MACHINE सेट करें। वर्तमान मॉड्यूल मॉड्यूल के लिए पूर्ण क्रॉस बिल्ड मोड का समर्थन नहीं करता है, यह होस्ट आर्किटेक्चर के 32 और 64 बिट संस्करणों के बीच चयन करने के लिए सीमित है।

-d , --debug

मॉड्यूल के ढेर के आंतरिक प्रतिनिधित्व के बारे में जानकारी दिखाएं।

-एच , --help

विकल्पों का सारांश प्रदर्शित करें और तुरंत बाहर निकलें।

-के , --autoclean

लोड मॉड्यूल पर 'autoclean' सेट करें। कर्नेल द्वारा प्रयुक्त होता है जब यह अनुपलब्ध सुविधा (मॉड्यूल के रूप में आपूर्ति) को संतुष्ट करने के लिए मॉडप्रोब पर कॉल करता है। -क्यू विकल्प को -के द्वारा निहित किया गया है। इन विकल्पों को स्वचालित रूप से insmod के लिए भेजा जाएगा।

-एल , --सूची

सूची मिलान मॉड्यूल।

-एन , - शो

वास्तव में कार्रवाई नहीं करते हैं, बस दिखाएं कि क्या किया जाएगा।

-q , --quiet

एक मॉड्यूल स्थापित करने में विफल insmod के बारे में शिकायत मत करो। सामान्य के रूप में जारी रखें, लेकिन चुपचाप, मॉडप्रोब परीक्षण के लिए अन्य संभावनाओं के साथ। यह विकल्प स्वचालित रूप से insmod के लिए भेजा जाएगा।

-r , --remove

कमांड लाइन पर उल्लिखित मॉड्यूल के आधार पर मॉड्यूल (ढेर) निकालें या ऑटोक्लियन करें।

-s , --syslog

Stderr के बजाय syslog के माध्यम से रिपोर्ट करें। यह विकल्प स्वचालित रूप से insmod के लिए भेजा जाएगा।

-t moduletype ; - प्रकार moduletype

केवल इस प्रकार के मॉड्यूल पर विचार करें। मॉडप्रोब केवल उन मॉड्यूल को देखेगा जिनकी निर्देशिका पथ में बिल्कुल " / moduletype / " शामिल है। moduletype में एक से अधिक निर्देशिका नाम शामिल हो सकते हैं, उदाहरण के लिए " -t ड्राइवर / नेट " xxx / ड्राइवर / नेट / और इसकी उपनिर्देशिका में मॉड्यूल सूचीबद्ध करेगा।

-v , --verbose

सभी आदेशों को उनके द्वारा निष्पादित किए जाने पर प्रिंट करें।

-V, --वर्जन

मॉडप्रोब का संस्करण प्रदर्शित करें।

ध्यान दें:

मॉड्यूल नामों में पथ नहीं होना चाहिए (नहीं '/'), न ही उनमें पिछला '.o' हो सकता है। उदाहरण के लिए, पर्ची modprobe , /lib/modules/2.2.19/net/slip और slip.o के लिए मान्य मॉड्यूल नाम है अमान्य हैं। यह कमांड लाइन और कॉन्फ़िगरेशन में प्रविष्टियों पर लागू होता है।

विवरण

मॉडप्रोब और डिप्मोड यूटिलिटीज का उद्देश्य सभी उपयोगकर्ताओं, प्रशासकों और वितरण रखरखाव के लिए लिनक्स मॉड्यूलर कर्नेल को अधिक प्रबंधनीय बनाना है।

मॉडप्रोब पूर्वनिर्धारित निर्देशिका पेड़ों में उपलब्ध मॉड्यूल के सेट से प्रासंगिक मॉड्यूल (ओं) को स्वचालित रूप से लोड करने के लिए, डिममोड द्वारा बनाई गई " मेकफ़ाइल " जैसी निर्भरता फ़ाइल का उपयोग करता है।

मॉडप्रोब का उपयोग एक मॉड्यूल, आश्रित मॉड्यूल का ढेर, या निर्दिष्ट मॉड्यूल के साथ चिह्नित सभी मॉड्यूल को लोड करने के लिए किया जाता है।

Modprobe एक मॉड्यूल स्टैक में आवश्यक सभी बेस मॉड्यूल स्वचालित रूप से लोड करेगा, जैसा कि निर्भरता फ़ाइल modules.dep द्वारा वर्णित है। यदि इन मॉड्यूल में से किसी एक की लोडिंग विफल हो जाती है, तो मौजूदा सत्र में लोड मॉड्यूल का पूरा वर्तमान ढेर स्वचालित रूप से अनलोड हो जाएगा।

Modprobe मॉड्यूल लोड करने के दो तरीके हैं। एक तरीका (जांच मोड) एक सूची से बाहर मॉड्यूल को लोड करने का प्रयास करेगा ( पैटर्न द्वारा परिभाषित)। जैसे ही एक मॉड्यूल सफलतापूर्वक लोड हो जाता है, मॉडप्रोब लोड हो जाता है। इसका उपयोग किसी ईथरनेट ड्राइवर को सूची से बाहर करने के लिए किया जा सकता है।
दूसरी तरफ modprobe का उपयोग किया जा सकता है एक सूची से सभी मॉड्यूल लोड करने के लिए। नीचे उदाहरण देखें।

विकल्प -आर के साथ , modprobe स्वचालित रूप से मॉड्यूल के ढेर को उतार देगा, जिस तरह से " rmmod -r " करता है। ध्यान दें कि केवल " modprobe -r " का उपयोग करके अप्रयुक्त ऑटोलोडेड मॉड्यूल को साफ़ कर दिया जाएगा और कॉन्फ़िगरेशन फ़ाइल /etc/modules.conf में पूर्व-और पोस्ट-निकालें आदेश भी निष्पादित करेंगे।

विकल्प -l और -t संयोजन एक निश्चित प्रकार के सभी उपलब्ध मॉड्यूल सूचीबद्ध करता है।

विकल्प -सी वर्तमान में प्रयुक्त विन्यास (डिफ़ॉल्ट + विन्यास फाइल) मुद्रित करेगा।

विन्यास

Modprobe (और depmod ) का व्यवहार (वैकल्पिक) विन्यास फाइल /etc/modules.conf द्वारा संशोधित किया जा सकता है।
इस फ़ाइल में क्या हो सकता है, इसके साथ-साथ डिफॉल्ट और मॉडप्रोब द्वारा उपयोग की जाने वाली डिफ़ॉल्ट कॉन्फ़िगरेशन के बारे में अधिक विस्तृत विवरण के लिए, modules.conf (5) देखें।

ध्यान दें कि पूर्व-और पोस्ट-निकालने के आदेश निष्पादित नहीं किए जाएंगे यदि कोई मॉड्यूल कर्नेल द्वारा "autocleaned" है! इसके बजाए लगातार मॉड्यूल स्टोरेज के लिए आने वाले समर्थन की तलाश करें।
यदि आप पूर्व-और पोस्ट-इंस्टॉल सुविधाओं का उपयोग करना चाहते हैं, तो आपको कर्नेल के लिए ऑटोक्लियन बंद करना होगा और इसके बजाय प्रत्येक क्रॉन्टाब में निम्न पंक्ति की तरह कुछ डालना होगा (यह kmod सिस्टम के लिए भी उपयोग किया जाता है) हर 2 मिनट में ऑटोक्लियन करने के लिए :

* / 2 * * * * test -f / proc / मॉड्यूल और / sbin / modprobe -r

रणनीति

विचार यह है कि मॉडप्रोब कर्नेल की वर्तमान रिलीज के लिए संकलित मॉड्यूल युक्त निर्देशिका में सबसे पहले दिखाई देगा। यदि मॉड्यूल वहां नहीं मिला है, तो मॉडप्रोब कर्नेल संस्करण (जैसे 2.0, 2.2) के लिए सामान्य निर्देशिका में दिखेगा। यदि मॉड्यूल अभी भी पाया गया है, तो मॉडप्रोब एक डिफ़ॉल्ट रिलीज के लिए मॉड्यूल युक्त निर्देशिका में देखेगा, और इसी तरह।

जब आप एक नया लिनक्स स्थापित करते हैं, तो मॉड्यूल को आपके द्वारा इंस्टॉल किए जा रहे कर्नेल के रिलीज़ (और संस्करण) से संबंधित निर्देशिका में ले जाया जाना चाहिए। फिर आपको इस निर्देशिका से "डिफ़ॉल्ट" निर्देशिका में एक सिम्लिंक करना चाहिए।

प्रत्येक बार जब आप एक नया कर्नेल संकलित करते हैं, तो " modules_install करें " कमांड एक नई निर्देशिका बनाएगा, लेकिन "डिफ़ॉल्ट" लिंक नहीं बदलेगा।

जब आप कर्नेल वितरण से संबंधित मॉड्यूल प्राप्त करते हैं तो आपको इसे / lib / मॉड्यूल के तहत संस्करण-स्वतंत्र निर्देशिकाओं में से एक में रखना चाहिए।

यह डिफ़ॉल्ट रणनीति है, जिसे /etc/modules.conf में ओवरराइड किया जा सकता है।

उदाहरण

modprobe- नेट

"नेट" टैग की गई निर्देशिका में संग्रहीत मॉड्यूल में से एक लोड करें। प्रत्येक मॉड्यूल तब तक प्रयास किया जाता है जब तक कोई सफल न हो जाए।

modprobe -a -t बूट

"बूट" टैग की गई निर्देशिकाओं में संग्रहीत सभी मॉड्यूल लोड हो जाएंगे।

modprobe पर्ची

यह मॉड्यूल slhc.o को लोड करने का प्रयास करेगा यदि इसे पहले लोड नहीं किया गया था, क्योंकि पर्ची मॉड्यूल को slhc मॉड्यूल में कार्यक्षमता की आवश्यकता होती है। यह निर्भरता फ़ाइल modules.dep में वर्णित की जाएगी जो स्वचालित रूप से depmod द्वारा बनाई गई थी

modprobe -r पर्ची

यह पर्ची मॉड्यूल को उतार देगा। यह स्वचालित रूप से एसएलएचसी मॉड्यूल को भी उतार देगा, जब तक कि इसका उपयोग किसी अन्य मॉड्यूल के साथ भी नहीं किया जाता है (उदाहरण के लिए पीपीपी)।

यह भी देखें

depmod (8), lsmod (8), कर्नेल (8), ksyms (8), rmmod (8)।

सुरक्षित मोड

यदि प्रभावी यूआईडी असली यूआईडी के बराबर नहीं है तो मॉडप्रोब चरम संदेह के साथ अपने इनपुट का इलाज करता है। अंतिम पैरामीटर हमेशा मॉड्यूल नाम के रूप में माना जाता है, भले ही यह '-' से शुरू होता है। केवल एक मॉड्यूल नाम हो सकता है और "variable = value" फ़ॉर्म के विकल्प वर्जित हैं। मॉड्यूल नाम हमेशा स्ट्रिंग के रूप में माना जाता है, सुरक्षित मोड में कोई मेटा विस्तार नहीं किया जाता है। हालांकि मेटा विस्तार अभी भी कॉन्फ़िगरेशन फ़ाइल से पढ़ने वाले डेटा पर लागू होता है।

मॉड्यूल को कर्नेल से बुलाया जाने पर यूआईडी बराबर नहीं हो सकता है, यह कर्नेल> = 2.4.0-test11 के लिए सच है। एक आदर्श दुनिया में, मॉडप्रोब कर्नेल पर भरोसा कर सकता है कि केवल मॉड्यूलोब को वैध पैरामीटर पास कर सके। हालांकि कम से कम एक स्थानीय रूट शोषण हुआ है क्योंकि उच्च स्तरीय कर्नेल कोड उपयोगकर्ता से सीधे modprobe के लिए असत्यापित पैरामीटर पारित किया गया है। तो modprobe अब कर्नेल इनपुट पर भरोसा नहीं करता है।

जब पर्यावरण केवल इन तारों में होता है तो मॉडप्रोब स्वचालित रूप से सुरक्षित मोड सेट करता है

HOME = / TERM = linux PATH = / sbin: / usr / sbin: / bin: / usr / bin

यह कर्नेल से कर्नेल से 2.2.0 2.4-test11 पर modprobe निष्पादन का पता लगाता है, भले ही uid == euid, जो पहले के कर्नेल पर करता है।

लॉगिंग कमांड्स

यदि निर्देशिका / var / log / ksymoops मौजूद है और मॉडप्रोब एक विकल्प के साथ चलाया जा सकता है जो मॉड्यूल लोड या हटा सकता है तो modprobe इसके कमांड को लॉग करेगा और / var / log / ksymoops / `date +% Y% m% d में स्थिति लौटाएगा .log` । इस स्वचालित लॉगिंग को अक्षम करने के लिए कोई स्विच नहीं है, अगर आप ऐसा नहीं करना चाहते हैं, तो / var / log / ksymoops न बनाएं। यदि वह निर्देशिका मौजूद है, तो इसे रूट के स्वामित्व में होना चाहिए और मोड 644 या 600 होना चाहिए और आपको प्रत्येक दिन या तो स्क्रिप्ट insmod_ksymoops_clean चलाया जाना चाहिए।

आवश्यक उपयोगिताएं

depmod (8), insmod (8)।

महत्वपूर्ण: यह देखने के लिए मैन कमांड ( % man ) का उपयोग करें कि आपके विशेष कंप्यूटर पर कमांड का उपयोग कैसे किया जाता है।