Xlib: thiếu tiện ích mở rộng GLX bổ sung - với thẻ NVIDIA và đồ họa trên máy bay


17

Tôi có một máy có NVIDIA GeForce mà tôi không sử dụng cho mục đích hiển thị (tức là màn hình không được kết nối với nó) và một số chip đồ họa trên bo mạch mờ. (Dưới đây bạn sẽ tìm thấy lshwdanh sách có liên quan .)

Phiên X của tôi hoạt động tốt; nhưng khi hầu hết các ứng dụng X của tôi (yêu cầu bất kỳ loại GFX hay bộ công cụ ưa thích nào) chạy, chúng sẽ phát ra thông báo lỗi sau:

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

Câu hỏi của tôi là: Làm thế nào tôi có thể làm cho ứng dụng của mình chú ý đến thư viện GLX không phải của NVIDIA và sử dụng nó (mà không cần tháo thẻ NVIDIA và không chuyển đổi màn hình sang các cổng đầu ra của nó)?

Tôi đang sử dụng Debian / Linux Stretch 64bit, phiên bản kernel 4.2.6, với LXDE.

Đầu ra của 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)

Đầu ra của 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".

Đầu ra của 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"

Thông tin thêm:

  • Tôi chưa glx-alternative-nvidiacài đặt gói.
  • Nếu tôi khởi động từ USB hình ảnh trực tiếp của Devuan ASCII, vấn đề không biểu hiện.
  • Nếu tôi tạo một xorg.confcách sử dụng Xorg :1 -configure, đây là những gì nó tạo ra (2 phần 'Thiết bị', một phần được liên kết với inteltrình điều khiển, phần khác với nouveau); nhưng nếu tôi nhận xét phần nouveau và thử chạy Xorg với cấu hình đó - nó sẽ không tải, nói rằng nó không thể tìm thấy bất kỳ màn hình nào.

Giải pháp cho tôi là gỡ bỏ bumblebeevà cài đặt nvidia-bumblebee(trên Debian Jessie, sử dụng các gói gfx backports).
Skeen

Câu trả lời:


8

Tôi đến đây sau khi cài đặt nvidia-currenttừ kho lưu trữ gói và bị kẹt trên một vòng lặp đăng nhập . Tôi nhìn vào nhật ký ~/.xsession-errorsvà thấy lỗi được đề cập:

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

Tôi đã gỡ cài đặt nvidia-currentvà vấn đề vẫn tồn tại. Tôi cũng không glx-alternative-nvidiacài đặt. Như một phương sách cuối cùng, tôi chỉ cần gỡ cài đặt mọi thứ nvidiatrên Ubuntu của mình (bao gồm cả công cụ CUDA) và nó đã hoạt động sau khi khởi động lại.


Xin lỗi vì đã không trả lời này trước đây. Tôi không nvidia-currentcài đặt, trên thực tế, bất kỳ nvidia-gói nào . Nhưng tôi đã cài đặt CUDA mới nhất, với trình điều khiển đi kèm (trình cài đặt thủ công từ nvidia). Tôi biết đó là một cách xấu để làm mọi thứ, nhưng tôi cần phiên bản mới nhất.
einpoklum - phục hồi Monica

1

Đầu tiên xác định mô-đun glx nào đang được sử dụng:

$ 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"

Trong Debian 8 Jessie, giải pháp của tôi là gỡ bỏ glx-alternative-nvidiagói. Vì vậy, sau khi khởi động lại:

$ 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
Tôi thực sự chỉ nhận được mô-đun founction X.Org để bắt đầu với ... xem chỉnh sửa.
einpoklum - phục hồi Monica

1
Và làm thế nào để bạn loại bỏ nó? Nó không được liệt kê trên apt-getgói của tôi .
biệt thự

1
@VillasV bạn cần kích hoạt contribkho lưu trữ để xem nó. Và có lẽ bạn thậm chí không cài đặt nó, và do đó, nguyên nhân thiếu lỗi mở rộng glx của bạn là khác nhau.
Svlasov

Tiểu nitlog: tại sao bạn nói cat file | grep pattern? Tại sao không grep pattern file?
Timo

@Timo, chỉ là một sở thích cá nhân. Trong lịch sử shell tôi thấy dễ dàng hơn để xem mô hình phát triển như thế nào nếu nó kéo dài.
Svlasov


1

Tôi gặp sự cố sau khi nâng cấp Debian 9 sau khi nhấp vào dấu nhắc khởi động lại để nâng cấp.

Khi cài đặt ban đầu, tôi đã làm theo các bước được tìm thấy trong wiki https://wiki.debian.org/NvidiaGraphicsDrivers

Những người quan trọng đối với tôi là ...

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

Sau đó thực hiện khởi động lại


0

Cài đặt OpenGL trong máy tính của bạn, sau đó như được đề cập ở đây , thêm phần sau vào /etc/X11/xorg.conf:

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

(Thay thế nvidia-VERSIONbằng tên thư mục của bạn) Điều này làm việc cho tôi.


1
Tôi không có thư mục đầu tiên. Trong thực tế, tôi thậm chí không có một /etc/X11/xorg.conflý do.
einpoklum - phục hồi Monica

1
Bạn có thể tạo nó cho bạn vớisudo nvidia-xconfig
Gabriel Fair

@GabrielFair: Tôi hoàn toàn không nên làm điều đó. Điều này có thể sẽ làm cho thẻ nVIDIA của tôi được sử dụng cho X; và ngay cả khi nó sẽ không - nó không phù hợp về mặt khái niệm.
einpoklum - phục hồi Monica

0

Có "phần mở rộng" GLX "mất tích" khi tôi "nâng cấp" bản sửa lỗi của mình (8 -> 9). Giải pháp khá đơn giản.

Tải xuống trình cài đặt trình điều khiển của bạn trên 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]

Sau khi trình cài đặt thực hiện công việc của nó, GLX đã quay trở lại.

ps: Nếu bạn sử dụng repos, tôi nghĩ rằng một "driver_package_name" dpkg-cấu hình lại sẽ làm điều tương tự.


1
Nếu tôi không nhầm, điều này sẽ khiến X sử dụng mô-đun nVIDIA GLX. Đó không phải là điều tôi muốn, vì tôi không sử dụng GPU của mình cho mục đích hiển thị.
einpoklum - phục hồi Monica
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.