Skip to main content

लिनक्स / यूनिक्स कमांड के बारे में सब कुछ: modprobe

लिनक्स में हार्ड और सॉफ्ट लिंक (जून 2026)

लिनक्स में हार्ड और सॉफ्ट लिंक (जून 2026)
Anonim

नाम

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

सार

modprobe -adnqv -सी config मॉड्यूल प्रतीक = मूल्य …modprobe -adnqv -सी config -टी प्रकार पैटर्नmodprobe -एल -सी config -टी प्रकार पैटर्नmodprobe -सी -सी config modprobe -r -dnv -सी config मॉड्यूल …modprobe -Vh

विकल्प

-ए, --सब

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

-सी, --showconfig

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

-सी, --config config

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

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

-d, --debug

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

-h, --मदद

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

-k, --स्वतः स्वच्छ

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

-l, --सूची

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

-n, --प्रदर्शन

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

-q, --शांत

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

-r, --हटाना

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

-s, --syslog

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

आयकर moduletype ; --प्रकार moduletype

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

-v, --verbose

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

-V, --वर्जन

का संस्करण प्रदर्शित करेंmodprobe.

ध्यान दें:

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

कमांड का विवरण

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

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

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

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

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

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

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

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

विन्यास

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

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

रणनीति

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

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

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

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

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

उदाहरण

modprobe- नेट

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

modprobe -a -t बूट

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

modprobe पर्ची

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

modprobe -r पर्ची

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

यह भी देखें:

depmod (8),lsmod(8), kerneld(8), ksyms(8), rmmod(8).

सुरक्षित मोड

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

मॉड्यूल को कर्नेल से बुलाया जाने पर यूआईडी बराबर नहीं हो सकता है, यह कर्नेल> = 2.4.0-test11 के लिए सच है। एक आदर्श दुनिया में,modprobe कर्नेल पर भरोसा कर सकते हैं केवल modprobe के लिए वैध पैरामीटर पास करने के लिए। हालांकि कम से कम एक स्थानीय रूट शोषण हुआ है क्योंकि उच्च स्तरीय कर्नेल कोड उपयोगकर्ता से सीधे modprobe के लिए असत्यापित पैरामीटर पारित किया गया है। तो 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 एक विकल्प के साथ चलाया जा सकता है जो मॉड्यूल को लोड या हटा सकता है तो modprobe इसके कमांड को लॉग करेगा और स्थिति वापस कर देगा / var / log / ksymoops / `दिनांक +% वाई% एम% d.log` । इस स्वचालित लॉगिंग को अक्षम करने के लिए कोई स्विच नहीं है, अगर आप ऐसा नहीं करना चाहते हैं, तो न बनाएं / Var / log / ksymoops । यदि वह निर्देशिका मौजूद है, तो इसे रूट के स्वामित्व में होना चाहिए और मोड 644 या 600 होना चाहिए और आपको स्क्रिप्ट चलाना चाहिएinsmod_ksymoops_clean हर दिन या तो।

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

depmod(8), insmod(8).

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