जवाबों:
नोट: ब्लैक लिस्ट करना उन मॉड्यूल्स के लिए काम नहीं करेगा, जो कर्नेल इमेज में बने होते हैं (अर्थात एक अलग
.ko
फाइल के माध्यम से लोड नहीं किए जाते हैं। ऐसे मॉड्यूल्स को डिसेबल करने का एकमात्र तरीका कर्नेल पैरामीटर (यदि उपलब्ध हो) या कर्नेल को फिर से जमा करके होता है।
/etc/modprobe.d/blacklist
सिंटैक्स का उपयोग करके अपनी फ़ाइल खोलें और ड्राइवर नाम जोड़ें:
blacklist driver-name
संपादित करें: 12.10 (12.04?) के बाद के संस्करणों में फ़ाइल है /etc/modprobe.d/blacklist.conf
अपने बॉक्स को रिबूट करें और लिनक्स कर्नेल में मॉड्यूल की स्थिति दिखाने के लिए lsmod कमांड का उपयोग करें
नोट : यहाँ driver-name
आपके इच्छित ब्लैकलिस्ट ड्राइवर का नाम है। उदाहरण के लिए, यदि आप एनआईसी कार्ड ड्राइवर को निष्क्रिय करना चाहते हैं, तो आप lspci -v
टर्मिनल में कमांड कमांड का उपयोग करके अपने लैन कार्ड के लिए कर्नेल ड्राइवर का नाम पा सकते हैं ।
उदाहरण के लिए मेरा आउटपुट था:
........ ........ 6: 00.0 ईथरनेट कंट्रोलर: ब्रॉडकॉम कॉरपोरेशन नेटलिंक BCM5906M फास्ट ईथरनेट पीसीआई एक्सप्रेस (संशोधित 02) सबसिस्टम: लेनोवो डिवाइस 3861 झंडे: बस मास्टर, तेजी से devsel, विलंबता 0, IRQ 46 B8000000 पर मेमोरी (64-बिट, नॉन-प्रीफेटेबल) [आकार = 64K] [अक्षम] पर विस्तार रोम क्षमताओं: उपयोग में कर्नेल चालक: tg3 कर्नेल मॉड्यूल: tg3 ........ ........
यहाँ, मैं देख रहा हूँ कि ड्राइवर है tg3
। इसलिए आपको tg3
इसके स्थान पर (या आपके ड्राइवर को) लिखना होगा driver-name
।
Lubuntu 12.10
), कोई /etc/modprobe.d/blacklist
फ़ाइल नहीं है । एक /etc/modprobe.d/blacklist.conf
फाइल है
blacklist.conf
फ़ाइल मौजूद की जरूरत नहीं है। आप एक फ़ाइल my-mom-is-awesome
वहाँ रख सकते हैं और यह काम करेगा। यदि आपको कोई विशिष्ट नाम बनाना है, तो किसी विशिष्ट चीज़ को ब्लैकलिस्ट करने के लिए, जैसे blacklist-nouveau
भी हो , जो भी हो , उसे पसंद करें ।
जब आप सिंटैक्स के साथ बूट करते हैं तो आप उन्हें ग्रब कमांड लाइन (लिनक्स लाइन) पर अस्थायी रूप से ब्लैकलिस्ट कर सकते हैं
module_to_blacklist.blacklist=yes
i915: unknown parameter 'blacklist' ignored
:।
modprobe.blacklist=module_to_blacklist
?
modprobe.blacklist=module_to_blacklist
( man modprobe
विवरण के लिए देखें)
कम से कम Ubuntu 16.04 LTS में मॉड्यूल को ब्लैकलिस्ट करने का दूसरा तरीका कर्नेल कमांड लाइन में निम्न पंक्ति जोड़कर है:
modprobe.blacklist=MODULE_NAME
/ Etc / modprobe सिस्टम का उपयोग करना सबसे अच्छा तरीका है, लेकिन यह एक विकल्प है जिसका उपयोग चुटकी में अपनी GRUB कमांड लाइन को बूट में संपादित करके किया जा सकता है।
इसे संपादन / आदि / डिफ़ॉल्ट / ग्रब द्वारा और GRUB_CMDLINE_LINUX_DEFAULT
वैरिएबल में जोड़कर भी स्थायी बनाया जा सकता है । उदाहरण के लिए, मेरे / etc / default / grub में मेरे पास है:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash modprobe.blacklist=nouveau"
फिर मैं दौड़ता हूं update-grub2
, फिर update-initramfs -u
। रिबूट के बाद, आप मॉड्यूल से मुक्त हो जाएंगे, जब तक कि बूट के बाद कुछ भी इसे लोड न करे।
यह विधि ईएल वेरिएंट (RHEL, CentOS, SciLinux) में भी काम करती है, लेकिन आपको उस डिस्ट्रो के तरीकों का उपयोग ग्रब और इनिटर्ड को अपडेट करने के लिए करना होगा।
(नोव्यू को ब्लैकलिस्ट करने की कोशिश करने वालों पर ध्यान दें: सुनिश्चित करें कि एक्स को चालू करके लोड न करें systemctl set-default multi-user.target
, अन्यथा जब एक्स शुरू होता है तो यह फिर से नोव्यू लोड करेगा!)
हाल के रिलीज में, आपको अपनी ब्लैक लिस्ट फ़ाइल में इंस्टॉलेशन निर्देश का उपयोग करने की आवश्यकता है
install modulename /bin/false
मॉड्यूल के नाम के साथ ऊपर "modulename" बदलें। यह जबरन इसकी लोडिंग को रोकेगा।
आप modprobe.conf के लिए मैनुअल में स्थापित निर्देश के बारे में अधिक जानकारी प्राप्त कर सकते हैं
man modprobe.conf
/etc/modprobe/blacklist.conf
, मॉड्यूल को अभी भी मैन्युअल रूप से लोड किया जा सकता है modprobe <module_name>
। install <module_name> /bin/false
विधि का उपयोग करना इस विफलता को वांछित बनाता है।
इनमें से कोई भी समाधान 16.04 LTS पर i915.ko के लिए काम नहीं किया।
मेरे द्वारा पाया गया (गंदा) समाधान नाम बदलने का था
/lib/modules/4.4.0-22-generic/kernel/drivers/gpu/drm/i915/i915.ko
/usr/lib/xorg/modules/drivers/modesetting_drv.so
/usr/lib/xorg/modules/drivers/intel_drv.so
दुर्भाग्य से, बाहरी वीजीए स्क्रीन को अब मान्यता नहीं मिली है: {
sudo update-initramfs -u
/etc/modeprobe.d/ फ़ाइलों को संशोधित करने के बाद है