सेटपसी पुल डिवाइस के लिए रजिस्टर मान को नहीं बदलता है (NVIDIA ड्राइवर ब्लैक स्क्रीन समस्या)


2

मैंने हाल ही में अपने मैकबुक एयर (2010 के अंत में) को उबंटू 16.04 के साथ डुअल-बूट ओएस 10.10 में स्थापित किया है, और निश्चित रूप से जिस तरह से मैं मालिकाना NVIDIA ड्राइवरों का उपयोग करते हुए ब्लैक स्क्रीन समस्या में चला गया हूं। मैंने यहां एंड्रियास को ठीक करने की कोशिश की है । यह सब तैरता हुआ प्रतीत होता है, सिवाय इसके कि जब मुझे रिबूट और जाँच करने के लिए # 4 चरण मिलता है, तो मुझे पुल डिवाइस के लिए पीसीआई-ई रजिस्टर के लिए सही परिणाम नहीं मिलता है। यह मुझे चरण 2 के लिए मिलता है:

Bus info          Device     Class          Description
=======================================================
pci@0000:00:00.0             bridge         MCP89 HOST Bridge
pci@0000:00:03.0             bridge         MCP89 LPC Bridge
pci@0000:00:15.0             bridge         NVIDIA Corporation
pci@0000:00:17.0             bridge         MCP89 PCI Express Bridge
pci@0000:02:00.0             display        MCP89 [GeForce 320M]

मैंने ग्रब स्क्रिप्ट /etc/grub.d/01_enable_vga.conf बनाई है जैसा कि वर्णित है:

cat << EOF
setpci -s "00:17.0" 3e.b=8
setpci -s "02:00.0" 04.b=7
EOF

... और अनुमतियाँ बदलीं और अपडेट की गई ग्रब ...

~> sudo chmod 755 /etc/grub.d/01_enable_vga.conf
~> sudo update-grub

... लेकिन जब मैं मशीन को रिबूट करता हूं और जांच करता हूं, तो पुल डिवाइस का मूल्य गलत है:

~> sudo setpci -s "00:17.0" 3e.b
00
~> sudo setpci -s "02:00.0" 04.b
07

क्या मैं NVIDIA ड्राइवरों को स्थापित करने से पहले इस सेट को सही ढंग से प्राप्त करने के लिए कोई सुझाव दे सकता हूं? क्या मैं गलत ब्रिज डिवाइस को बदल रहा हूं? क्या ऐसा करने के लिए इससे अच्छा तरीका है?

अग्रिम में धन्यवाद!

जवाबों:


1

जब पीसीआई-ई पुल के मूल्य में परिवर्तन नहीं होता है तो मैंने आखिरकार समस्या का समाधान किया।

यदि आप अपने Apple मैकबुक मशीन पर काम करने वाले nVidia GeForce ड्राइवरों को प्राप्त करने के लिए PCI-E ब्रिगेड रजिस्टर का उपयोग करने के लिए सेटपसी कमांड का उपयोग करने में असमर्थ हैं, तो इन चरणों को आजमाएं:

1. अपने पीसीआई-ई बस पहचानकर्ताओं का पता लगाएं

lshw -businfo -class bridge -class display

[root@kernelLinux]# lshw -businfo -class bridge -class display
Bus info          Device      Class          Description
========================================================
pci@0000:00:00.0              bridge         MCP89 HOST Bridge
pci@0000:00:03.0              bridge         MCP89 LPC Bridge
pci@0000:00:15.0              bridge         NVIDIA Corporation
pci@0000:00:17.0              bridge         MCP89 PCI Express Bridge
pci@0000:02:00.0              display        MCP89 [GeForce 320M]

आपको PCI एक्सप्रेस ब्रिज की आईडी की आवश्यकता होगी और प्रारूप XX: XX.X में आपके प्रदर्शन की आवश्यकता होगी

आपकी आईडी अलग हो सकती है।

इस उदाहरण में हमारी आईडी 00: 17.0 पीसीआई-ई ब्रिग के लिए और 02: 00.0 डिस्प्ले के लिए [जीपीयू] हैं।

2. एक GRUB स्क्रिप्ट बनाएं

हमारी स्क्रिप्ट ऊपर उल्लिखित पोस्ट की तुलना में थोड़ी अलग होगी।

मैंने दो चीजों पर ध्यान दिया है। Grub2 ने distro (मेरा है Centos) इंस्टॉलेशन प्रक्रिया का उपयोग करके इंस्टॉल किया है जिसमें सेटपसी ग्रब मॉड्यूल नहीं है। यही कारण है कि बूट करते समय ग्रब रजिस्टर में बदलाव नहीं करता है। फिर रजिस्टरों को बदलने के लिए कमांड चलाने से पहले सेटपसी मॉड्यूल को ग्रब में लोड करना आवश्यक है।

Grub2-efi-मॉड्यूल डाउनलोड करें

उबुन्टु लिनक्स

sudo apt-get install grub-efi-amd64-bin

फेडोरा लिनक्स

sudo dnf install grub2-efi-modules

CentOS लिनक्स

sudo yum install grub2-efi-modules

मॉड्यूल / usr / lib / grub / x86_64-efi / में स्थापित किया जाएगा, लेकिन setpci मॉड्यूल फ़ाइलों को / boot / efi / EFI / ubuntu / x86_64-efi / में मौजूद होना चाहिए

X86_64-efi फ़ोल्डर बनाएँ।

उबंटू फोल्डर / बूट / ईएफआई / आपकी मशीन पर अलग हो सकता है यह निर्भर करता है कि आपने इसे ओएस इंस्टॉलेशन प्रक्रिया में कैसे नाम दिया है, इसे पेस्ट न करें। इसे सही रास्ते से बदलें।

sudo mkdir /boot/EFI/ubuntu/x86_64-efi

Grp2 फ़ोल्डर में सेटपसी मॉड्यूल फाइल कॉपी करें

sudo cp /usr/lib/grub/x86_64-efi/setpci.* /boot/EFI/ubuntu/x86_64-efi

01_enable_vga.conf फ़ाइल बनाएँ।

फ़ाइल में कोड की ये पंक्तियाँ होनी चाहिए:

पीसीआई-पुल के लिए 00: 17.0 और अपने मूल्यों के साथ प्रदर्शन [जीपीयू] के लिए 02: 00.0 की जगह मत भूलना।

sudo nano /etc/grub.d/01_enable_vga.conf

cat << EOF
insmod setpci
setpci -s "00:17.0" 3e.b=8
setpci -s "02:00.0" 04.b=7
EOF

फिर मरम्मत की अनुमति

sudo chmod 755 /etc/grub.d/01_enable_vga.conf

और /boot/efi/EFI/ubuntu/grub.cfg को अपडेट करें

उबुन्टु लिनक्स

sudo update-grub

यह आदेश केवल अन्य वितरणों पर करें (अपडेट-ग्रब के बाद उबंटू पर आवश्यक नहीं):

grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

3. अपने सिस्टम को रिबूट करें और रजिस्टर की जांच करें

अपनी मशीन को रिबूट करें और जांचें कि क्या यह काम कर रहा है। अपने साथ फिर से आईडी बदलें। आपके टर्मिनल को अंततः 08 (पीसीआई-ई पुल) और 07 (जीपीयू) दिखाना चाहिए।

sudo setpci -s "00:17.0" 3e.b
08

sudo setpci -s "02:00.0" 04.b
07

4. nVidia ड्राइवर स्थापित करें

स्क्रीनशॉट: http://imgur.com/a/YiBXi


स्क्रीनशॉट ..
ylwghst

0

मुझे भी यही समस्या थी और google की वजह से यहाँ मिला। ऐसा लगता है कि आप और मैं दोनों फाइल /etc/grub.d/01_enable_vga.conf द्वारा भ्रमित थे

आप चाहते हैं कि फ़ाइल में बिल्ली कमांड हो, आप इसे बिल्ली के साथ नहीं बनाना चाहते हैं (ठीक है, आप इसे नेस्टेड बिल्ली के साथ बना सकते हैं)। तो यह प्रयास करें:

sudo bash -c "cat > /etc/grub.d/01_enable_vga.conf" << END
cat << EOF
setpci -s "00:17.0" 3e.b=8
setpci -s "02:00.0" 04.b=7
EOF
END

मुझे यहां जवाब मिला: मैकबुक प्रो 7,1 + उबंटू 16.04 एलटीएस + एनवीडिया ड्राइवर

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.