एक्सलिब: एक्सटेंशन "GLX" गायब है - एक NVIDIA कार्ड और ऑन-बोर्ड ग्राफिक्स के साथ


17

मेरे पास एक NVIDIA GeForce के साथ एक मशीन है जो मैं प्रदर्शन उद्देश्यों के लिए उपयोग नहीं करता हूं (यानी मॉनिटर इसके साथ जुड़ा नहीं है), और कुछ कमी बोर्ड पर ग्राफिक्स चिप। (नीचे आपको संबंधित lshwलिस्टिंग मिलेगी ।)

मेरे एक्स सत्र ठीक काम करते हैं; लेकिन जब मेरे अधिकांश एक्स ऐप (जिन्हें किसी प्रकार के फैंसी जीएफएक्स या टूलकिट की आवश्यकता होती है) चलाते हैं, तो वे निम्नलिखित त्रुटि संदेश का उत्सर्जन करते हैं:

Xlib:  extension "GLX" missing on display ":0".

मेरा सवाल यह है: मैं अपने एप्स को गैर-एनवाईवी जीएलएक्स लाइब्रेरी को कैसे नोटिस कर सकता हूं और इसका उपयोग कर सकता हूं (बिना NVIDIA कार्ड को हटाए और मॉनिटर को इसके आउटपुट पोर्ट पर स्विच किए बिना)?

मैं LXDE के साथ डेबियन / लिनक्स स्ट्रेच 64 बिट, कर्नेल संस्करण 4.2.6 का उपयोग कर रहा हूं।

का आउटपुट lshw -c display:

  *-display               
       description: VGA compatible controller
       product: GK106 [GeForce GTX 650 Ti Boost]
       vendor: NVIDIA Corporation
       physical id: 0
       bus info: pci@0000:02:00.0
       version: a1
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress vga_controller bus_master cap_list rom
       configuration: driver=nvidia latency=0
       resources: irq:17 memory:f6000000-f6ffffff memory:e0000000-e7ffffff memory:e8000000-e9ffffff ioport:e000(size=128) memory:f7000000-f707ffff
  *-display
       description: VGA compatible controller
       product: Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller
       vendor: Intel Corporation
       physical id: 2
       bus info: pci@0000:00:02.0
       version: 09
       width: 64 bits
       clock: 33MHz
       capabilities: msi pm vga_controller bus_master cap_list rom
       configuration: driver=i915 latency=0
       resources: irq:30 memory:f7400000-f77fffff memory:d0000000-dfffffff ioport:f000(size=64)

का आउटपुट glxinfo:

Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Error: couldn't find RGB GLX visual or fbconfig
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".
Xlib:  extension "GLX" missing on display ":0".

का आउटपुट cat /var/log/Xorg.0.log | grep glx:

[    19.287] (II) LoadModule: "glx"
[    19.787] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[    22.727] (II) Module glx: vendor="X.Org Foundation"

अतिरिक्त जानकारी:

  • मेरे पास glx-alternative-nvidiaपैकेज स्थापित नहीं है ।
  • यदि मैं देवुआन ASCII की लाइव-इमेज USB से बूट करता हूं, तो समस्या प्रकट नहीं होती है।
  • अगर मैं एक xorg.confप्रयोग करता हूं Xorg :1 -configure, तो यह वही पैदा करता है (2 'डिवाइस' सेक्शन, जो intelड्राइवर से जुड़ा है , दूसरे के साथ nouveau); लेकिन अगर मैं नोव्यू अनुभाग पर टिप्पणी करता हूं और उस कॉन्फ़िगरेशन के साथ Xorg चलाने की कोशिश करता हूं - तो यह लोड नहीं होगा, यह कहते हुए कि यह कोई स्क्रीन नहीं पा सकता है।

मेरे लिए समाधान निकाल रहा था bumblebeeऔर स्थापित कर रहा था nvidia-bumblebee(डेबियन जेसी पर, बैकपोर्ट gfx संकुल का उपयोग करके)।
स्कीन डेसी

जवाबों:


8

मैं nvidia-currentपैकेज रिपॉजिटरी से इंस्टॉल करने के बाद यहां पहुंचा , और एक लॉगिन लूप पर अटक गया । मैंने लॉग पर देखा ~/.xsession-errorsऔर उल्लेखित त्रुटि पाई:

Xlib: extension "GLX" missing on display ":0".

मैंने पहले ही अनइंस्टॉल कर दिया था nvidia-currentऔर समस्या बनी रही। मैंने भी glx-alternative-nvidiaस्थापित नहीं किया है अंतिम उपाय के रूप में, मैंने बस nvidiaअपने Ubuntu (CUDA सामान सहित) से सब कुछ अनइंस्टॉल कर दिया , और यह फिर से शुरू होने के बाद काम किया।


इससे पहले जवाब न देने के लिए क्षमा करें। मैं nvidia-currentस्थापित नहीं है , न ही, वास्तव में, किसी भी nvidia-पैकेज। लेकिन मेरे पास नवीनतम CUDA स्थापित है, साथ में चालक (एनवीडिया से मैनुअल इंस्टॉलर)। मुझे पता है कि चीजों को करने का एक बदसूरत तरीका है, लेकिन मुझे नवीनतम संस्करण की आवश्यकता है।
ईनपोकलुम

1

पहले पहचान लें कि कौन सा glx मॉड्यूल उपयोग में है:

$ cat /var/log/Xorg.0.log | grep glx
[     3.622] (II) LoadModule: "glx"
[     3.624] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[     3.705] (II) Module glx: vendor="NVIDIA Corporation"

डेबियन 8 जेसी में मेरा समाधान glx-alternative-nvidiaपैकेज को हटाने के लिए था । तो रिबूट के बाद:

$ cat /var/log/Xorg.0.log | grep glx
[     3.581] (II) LoadModule: "glx"
[     3.582] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[     3.592] (II) Module glx: vendor="X.Org Foundation"

$ glxinfo | grep "OpenGL renderer"
OpenGL renderer string: Mesa DRI Intel(R) Haswell Desktop

1
मैं वास्तव में केवल X.Org founction मॉड्यूल प्राप्त करने के लिए शुरू कर रहा हूं ... संपादित करें देखें।
ईनपोकलुम

1
और आप इसे कैसे हटाते हैं? यह मेरे apt-getपैकेजों में सूचीबद्ध नहीं है।
विलास

1
@VillasV आपको contribइसे देखने के लिए भंडार को सक्षम करने की आवश्यकता है । और शायद आपने इसे स्थापित भी नहीं किया है, और इस तरह आपके लापता glx एक्सटेंशन त्रुटि का कारण अलग है।
svlasov

माइनर नाइटिक: आप क्यों कहते हैं cat file | grep pattern? क्यों नहीं grep pattern file?
टिमो

@ टिमो, सिर्फ एक व्यक्तिगत प्राथमिकता। शेल इतिहास में मुझे यह देखना आसान लगता है कि यदि यह अंतिम हो जाता है तो पैटर्न कैसे विकसित होता है।
svlasov


1

मैं शीघ्र उन्नयन के लिए रिबूट पर क्लिक करने के बाद डेबियन 9 को अपग्रेड करने के बाद मुद्दे थे।

शुरू में स्थापित करते समय मैंने wiki https://wiki.debian.org/NvidiaGraphicsDrivers में पाए गए चरणों का पालन किया

मेरे लिए महत्वपूर्ण थे ...

# apt-get update
# apt-get install -t stretch-backports nvidia-driver

फिर रिबूट प्रदर्शन किया


0

अपने कंप्यूटर में OpenGL स्थापित करें , फिर जैसा कि यहां बताया गया है , निम्नलिखित को अपने में जोड़ें /etc/X11/xorg.conf:

Section "Files"
    ModulePath "/usr/lib/nvidia-VERSION/xorg"
    ModulePath "/usr/lib/xorg/modules"
EndSection

( nvidia-VERSIONअपने निर्देशिका नाम के साथ बदलें ) इसने मेरे लिए काम किया।


1
मेरे पास पहली निर्देशिका नहीं है। वास्तव में, मेरे पास /etc/X11/xorg.confकिसी कारण से भी नहीं है ।
ईनपोकलुम

1
आप इसे अपने साथ बना सकते हैंsudo nvidia-xconfig
गेब्रियल फेयर

@ गैब्रिएलफ़ायर: मुझे बिल्कुल ऐसा नहीं करना चाहिए । यह संभवत: मेरे एनवीडिया कार्ड को एक्स के लिए इस्तेमाल किया जाएगा; और यहां तक ​​कि अगर यह नहीं होगा - यह वैचारिक रूप से अनुचित है।
einpoklum

0

समझे "विस्तार" GLX "लापता" जब मैं "डिबाइन-अपग्रेड" मेरे डेबियन (8 -> 9)। समाधान बहुत सरल था।

NVIDIA पर अपना ड्राइवर इंस्टॉलर डाउनलोड करें

service lightdm stop
#(ALT+F1) + your credentials
sudo nvidia-installer --uninstall
sudo ./NVIDIA-Linux-x86_64-340.102-custom.run #my vga GT218M [GeForce 310M]

इंस्टॉलर ने अपना काम करने के बाद, GLX वापस चला गया।

ps: यदि आप उपयोगकर्ता रिपोज करते हैं, तो मुझे लगता है कि dpkg-reconfigure "driver_package_name" ऐसा ही करेगा।


1
अगर मैं गलत नहीं हूं, तो यह एक्स को एनवीडिया जीएलएक्स मॉड्यूल का उपयोग करेगा। जो मैं नहीं चाहता, जैसा कि मैं प्रदर्शन प्रयोजनों के लिए अपने GPU का उपयोग नहीं कर रहा हूं।
ईनपोकलम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.