अप्रत्यक्ष GLX संदर्भों (+ iglx) को Ubuntu 14.04 LTS में nvidia gx-card के साथ कैसे सक्षम करें


10

मैं एक केंद्रीय स्थान पर क्यूटी-सॉफ्टवेयर-विकास के लिए एक लिनक्स-होस्ट चला रहा हूं।

अपने विंडोज़ बॉक्स के साथ मैं Xming को एक स्थानीय एक्स-सर्वर और पोटीन के रूप में उस लिनक्स-होस्ट से कनेक्ट करने के लिए उपयोग करता हूं। इस विन्यास के साथ मैं linux-host में सभी X (xclock, xterm) और GLX (qtcreator, gxlinfo, glxgears ...) कार्यक्रमों का उपयोग कर सकता हूं।

मेरा मुख्य कार्य केंद्र एक ubuntu 14.04 LTS है, जिसमें nvidia gfx कार्ड है। जब मैं "ssh -p पोर्ट # -YC my.dev.host.com" का उपयोग करके अपने ubuntu-system के साथ लिनक्स-होस्ट से जुड़ता हूं, तो मैं सभी एक्स प्रोग्राम (xclock, xterm) प्रोग्राम का भी उपयोग कर सकता हूं, लेकिन मैं GLX प्रोग्राम नहीं कर सकता (qtcreator, gxlinfo, glxgears ...)।

जहाँ तक मुझे पता चला है क्योंकि एक्स-सर्वर न तो संस्करण छोटे 1.16 के लिए डिफ़ॉल्ट रूप से अप्रत्यक्ष जीएलएक्स संदर्भों का समर्थन करता है।

तो मेरे सवाल ist: मैं अपने ubuntu 14.04 LTS इंस्टॉलेशन में अप्रत्यक्ष GLX संदर्भों (X-server और nvidida ड्राइवर) को X- सर्वर से अपेक्षित रूप से काम करने के लिए कैसे सक्षम कर सकता हूं।

हर प्रकार की सहायता के लिए आपका धन्यवाद!

cmks

यहाँ glxgears का उत्पादन है, शायद इससे मदद मिलती है:

root@my.dev.host.com:~# LIBGL_DEBUG=verbose glxgears 
libGL: screen 0 does not appear to be DRI2 capable
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/tls/swrast_dri.so
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so
libGL: Can't open configuration file /root/.drirc: No such file or directory.
libGL: Can't open configuration file /root/.drirc: No such file or directory.
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  154 (GLX)
  Minor opcode of failed request:  3 (X_GLXCreateContext)
  Value in failed request:  0x0
  Serial number of failed request:  35
  Current serial number in output stream:  37

जवाबों:


8

जब मैंने 'ssh-x' के माध्यम से कुछ GL अनुप्रयोगों को चलाने के दौरान एक समान समस्या थी और /usr/share/lightdm/lightdm.conf.d/50-xsver-command.conf में xserver- कमांड में "+ iglx" जोड़कर इसे हल किया। ।

[SeatDefaults]
# Dump core
xserver-command=X -core +iglx

जिसके बाद आप रिबूट या Ctrl-Alt-F1, लॉगिन, और 'sudo service lightdm पुनरारंभ'।

आशा है कि ये आपकी मदद करेगा!


glxdemo, glxheads और glxinfo अब काम कर रहे हैं। glxgears शुरू होता है, लेकिन केवल पहला फ्रेम दिखाता है। मुझे लगता है कि यह "ऊर्ध्वाधर ताज़ा करने के लिए सिंक्रनाइज़ चल रहा है" से संबंधित है। अभी भी संदेश हैं libGL error: No matching fbConfigs or visuals foundऔरlibGL error: failed to load driver: swrast
cmks

DRI का उपयोग करने की कोशिश के कारण libGL त्रुटियाँ होती हैं। स्थापना LIBGL_ALWAYS_INDIRECT=1में डीआरआई की का उपयोग कर की अनुमति नहीं देतीं तो कोई त्रुटि संदेश है। लेकिन glxgears अभी भी केवल एक ही फ्रेम दिखाता है
सेमी

क्या आपका glxgears क्रैश हो सकता है: bugs.freedesktop.org/show_bug.cgi?id=99555 ? लग रहा है कि IGLX Xorg में लगभग एक साल से टूटा हुआ है :(
स्टीव डी

5

विकल्प जोड़ने के लिए एक वैकल्पिक (और प्रदर्शन-प्रबंधक-स्वतंत्र) तरीका /etc/X11/xorg.conf पर निम्न अनुभाग जोड़ना है:

Section "ServerFlags"
    Option "IndirectGLX" "on"
EndSection

मेरा xorg.conf मुझे पुनः आरंभ होने वाले ओवरराइट को जारी रखता है lightdm
10

@ArcaneDominion /usr/share/X11/xorg.conf.d में फ़ाइल में कमांड डालें (कम से कम xubuntu 16.04 पर)
gerardw

1

मैं एक ही मुद्दे पर एक ओपन OpenGL कार्यक्रम चल रहा था ssh -X। उपरोक्त समाधान में मामूली संशोधन के साथ काम किया गया

Section "ServerFlags"  
    Option "AllowIndirectGLX" "on"  
    Option "IndirectGLX" "on"  
EndSection  

यह ubuntu 16.04 सर्वर के साथ काम कर रहा है जो कि NVIDIA GTX 1070 GPU और NVIDIA बाइनरी ड्राइवर के साथ kubuntu- डेस्कटॉप चला रहा है।


1
उबंटू पूछने के लिए आपका स्वागत है! मैं इस उत्तर को संपादित करने की सलाह देता हूं कि इसे विशिष्ट विवरणों के साथ विस्तारित किया जाए कि इसे कहां जोड़ा जाए। (यह भी देखें कि मैं एक अच्छा उत्तर कैसे लिख सकता हूँ? सामान्य सलाह के लिए किस तरह के उत्तर उबंटू पूछें पर सबसे अधिक मूल्यवान माना जाता है।)
डेविड फ़ॉस्टर

लगता है जैसे सही सेटिंग है Option "IndirectGLX" "on"। अनुसार यह करने के लिए , enableIndirectGLXकरने के लिए मूल्यांकन करना चाहिए TRUEताकि BadValueत्रुटि दी नहीं है। डिफ़ॉल्ट है: FALSE= -iglx(कमांड लाइन पर)। तो या तो सेट पर: +iglxकमांड लाइन विकल्प, IndirectGLX "on"या समतुल्य "सत्य" मान
TrinitronX

बाइनरी ड्राइवरों के लिए एनवीडिया डॉक्स कहते हैं कि एक AllowIndirectGLXProtocolही चीज़ के लिए एक और विकल्प है। हालाँकि, उनके डॉक्स कुछ भ्रामक हैं, क्योंकि वे उल्लेख करते हैं कि BadValueत्रुटि उनके सेटिंग नाम के साथ वापस आ जाएगी AllowIndirectGLXProtocol = "true"। यह पूरी तरह से विपरीत है कि वे बाद में क्या कहते हैं " The NVIDIA GLX implementation will prohibit creation of indirect GLX contexts if AllowIndirectGLXProtocol option is set to False." तो यह भ्रामक है, और शायद डॉक्स गलत हैं?
ट्रिनिट्रॉनएक्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.