Xlib: ส่วนขยาย“ GLX” หายไป - ด้วยการ์ด NVIDIA และกราฟิกออนบอร์ด


17

ฉันมีเครื่องที่มี NVIDIA GeForce ซึ่งฉันไม่ได้ใช้เพื่อจุดประสงค์ในการแสดงผล (เช่นจอภาพไม่ได้เชื่อมต่อกับมัน) และชิปกราฟิกออนบอร์ดที่น่าเบื่อบางตัว (ด้านล่างคุณจะพบlshwรายชื่อที่เกี่ยวข้อง)

เซสชัน X ของฉันทำงานได้ดี แต่เมื่อแอพ X ส่วนใหญ่ของฉัน (ซึ่งต้องการ GFX หรือชุดเครื่องมือที่มีรูปแบบ) ทำงานพวกเขาจะปล่อยข้อความแสดงข้อผิดพลาดต่อไปนี้:

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

คำถามของฉันคือ: ฉันจะทำให้แอพของฉันสังเกตเห็นไลบรารีที่ไม่ใช่ของ NVIDIA GLX และใช้งานได้อย่างไร (โดยไม่ต้องถอดการ์ด NVIDIA และโดยไม่ต้องสลับหน้าจอเป็นพอร์ตเอาท์พุทแน่นอน)

ฉันใช้ Debian / Linux Stretch 64 บิตเคอร์เนลเวอร์ชัน 4.2.6 กับ LXDE

ผลลัพธ์ของ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ติดตั้งแพ็คเกจ
  • หากฉันบูตจาก USB ภาพสดของ Devuan ASCII ปัญหาจะไม่ปรากฏขึ้น
  • ถ้าฉันสร้างxorg.confโดยใช้Xorg :1 -configure, นี้คือสิ่งที่มันผลิต (2 'อุปกรณ์' ส่วนหนึ่งที่เกี่ยวข้องกับการintelขับรถอีกด้วยnouveau); แต่ถ้าฉันใส่ความคิดเห็นในส่วนนูโวและลองใช้ Xorg ด้วยการกำหนดค่า - มันจะไม่โหลดโดยบอกว่ามันไม่สามารถหาหน้าจอใด ๆ

ทางออกสำหรับฉันคือการลบbumblebeeและติดตั้งnvidia-bumblebee(บน Debian Jessie โดยใช้แพ็คเกจ backport gfx)
Skeen

คำตอบ:


8

ผมมาถึงที่นี่หลังจากที่ติดตั้งnvidia-currentจากพื้นที่เก็บข้อมูลแพคเกจและได้ติดอยู่บนห่วงการเข้าสู่ระบบ ฉันดูที่การเข้าสู่ระบบ~/.xsession-errorsและพบข้อผิดพลาดดังกล่าว:

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

ฉันถอนการติดตั้งไปแล้วnvidia-currentและปัญหายังคงอยู่ ฉันยังไม่ได้glx-alternative-nvidiaติดตั้ง เป็นทางเลือกสุดท้ายฉันเพียงถอนการติดตั้งทุกอย่างจากnvidiaบน Ubuntu ของฉัน (รวมถึงเนื้อหา CUDA) และทำงานได้หลังจากการรีสตาร์ท


ขออภัยที่ไม่ได้ตอบกลับก่อนหน้านี้ ฉันไม่ได้nvidia-currentติดตั้งหรือไม่มีnvidia-แพคเกจใด ๆ แต่ฉันมี CUDA ล่าสุดติดตั้งพร้อมกับไดรเวอร์ (ตัวติดตั้งด้วยตนเองจาก nvidia) ฉันรู้ว่ามันเป็นวิธีที่น่าเกลียดในการทำสิ่งต่าง ๆ แต่ฉันต้องการเวอร์ชันล่าสุด
einpoklum

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"

ใน Debian 8 Jessie ทางออกของฉันคือการลบ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
จริง ๆ แล้วฉันแค่ได้รับโมดูล founction ของ X.Org เพื่อเริ่มต้นด้วย ... ดูการแก้ไข
einpoklum

1
และคุณจะลบมันได้อย่างไร มันไม่ได้ระบุไว้ในapt-getแพ็คเกจของฉัน
villasv

1
@VillasV คุณต้องเปิดใช้งานที่contribเก็บเพื่อดู และอาจเป็นไปได้ว่าคุณยังไม่ได้ติดตั้งและสาเหตุของข้อผิดพลาดส่วนขยาย glx ที่ขาดหายไปนั้นแตกต่างกัน
svlasov

ไมเนอร์ nitpick: ทำไมคุณถึงพูดcat file | grep pattern? ทำไมไม่grep pattern file?
Timo

@Timo เป็นเพียงการตั้งค่าส่วนตัว ในประวัติเชลล์ฉันพบว่าง่ายขึ้นที่จะเห็นว่ารูปแบบการพัฒนาถ้ามันไปล่าสุด
svlasov


1

ฉันมีปัญหาหลังจากอัปเกรด Debian 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เหตุผลด้วยซ้ำ
einpoklum

1
คุณสามารถสร้างมันให้กับคุณได้sudo nvidia-xconfig
กาเบรียลแฟร์

@GabrielFair: ฉันไม่ควรทำอย่างนั้น นี่น่าจะทำให้การ์ด nVIDIA ของฉันถูกใช้สำหรับ X; และแม้ว่ามันจะไม่ - มันเป็นแนวคิดที่ไม่เหมาะสม
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: ถ้าคุณ repos ผู้ใช้ฉันคิดว่า dpkg-reconfigure "driver_package_name" จะทำเช่นเดียวกัน


1
ถ้าฉันไม่เข้าใจผิดนี่จะทำให้ X ใช้โมดูล nVIDIA GLX ซึ่งไม่ใช่สิ่งที่ฉันต้องการเพราะฉันไม่ได้ใช้ GPU เพื่อการแสดงผล
einpoklum
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.