Cách bật bối cảnh GLX gián tiếp (+ iglx) trong Ubuntu 14.04 LTS với thẻ nfidia gfx


10

Tôi đang chạy một máy chủ linux để phát triển phần mềm Qt ở vị trí trung tâm.

Với hộp cửa sổ của mình, tôi sử dụng Xming làm máy chủ X cục bộ và putty để kết nối với máy chủ linux đó. Với cấu hình này, tôi có thể sử dụng tất cả các chương trình X (xclock, xterm) và GLX (qtcreator, gxlinfo, glxgears ...) tại máy chủ linux.

Máy trạm chính của tôi là một Ubuntu 14.04 LTS với thẻ nvidia gfx. Khi tôi kết nối với máy chủ linux với hệ thống ubfox của mình bằng cách sử dụng "ssh -p port # -YC my.dev.host.com" Tôi cũng có thể sử dụng tất cả các chương trình X (xclock, xterm) nhưng tôi không thể sử dụng các chương trình GLX (qtcreator, gxlinfo, glxgears ...).

Theo như tôi biết thì điều này là do máy chủ X không hỗ trợ bối cảnh GLX gián tiếp theo mặc định cho phiên bản trẻ hơn 1.16.

Vì vậy, câu hỏi của tôi ist: Làm cách nào tôi có thể kích hoạt bối cảnh GLX gián tiếp (trình điều khiển X-server và nvidida) trong bản cài đặt Ubuntu 14.04 LTS của tôi để mọi thứ hoạt động như mong đợi từ máy chủ X.

Cảm ơn bạn đã giúp đỡ!

cmks

Đây là đầu ra của glxgears, có thể giúp:

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

Câu trả lời:


8

Tôi gặp vấn đề tương tự khi chạy một số ứng dụng GL thông qua 'ssh -X' và giải quyết nó bằng cách thêm "+ iglx" vào lệnh xserver trong /usr/share/lightdm/lightdm.conf.d/50-xserver-command.conf .

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

Sau đó, bạn khởi động lại hoặc Ctrl-Alt-F1, đăng nhập và 'sudo service lightdm restart'.

Tôi hi vọng cái này giúp được!


glxdemo, glxheads và glxinfo đang hoạt động. glxgears bắt đầu nhưng chỉ hiển thị khung đầu tiên. Tôi đoán nó có liên quan đến "Chạy được đồng bộ hóa để làm mới dọc". Vẫn còn những tin nhắn libGL error: No matching fbConfigs or visuals foundlibGL error: failed to load driver: swrast
cmks 17/03/2016

Các lỗi libGL là do thử sử dụng DRI. Cài đặt LIBGL_ALWAYS_INDIRECT=1cấm sử dụng DRI sau đó không có thông báo lỗi. Nhưng glxgears vẫn chỉ hiển thị một khung hình
cmks 17/03/2016

Có thể sự cố glxgears của bạn là: bug.freedesktop.org/show_orms.cgi?id=99555 ? Có vẻ như IGLX bị hỏng ở Xorg trong khoảng một năm :(
Steve Dee

5

Một cách khác (và độc lập với trình quản lý hiển thị) để thêm các tùy chọn là thêm phần sau vào /etc/X11/xorg.conf:

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

Xorg.conf của tôi liên tục bị ghi đè mỗi khi tôi khởi động lại lightdm.
ArcaneDominion

@ArcaneDominion Đặt các lệnh trong một tệp trong /usr/share/X11/xorg.conf.d (ít nhất là trên xubfox 16.04)
gerardw

1

Tôi gặp vấn đề tương tự khi chạy chương trình OpenGL tùy chỉnh ssh -X. Các giải pháp trên đã làm việc với một sửa đổi nhỏ

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

Điều này hoạt động với máy chủ ub Ubuntu 16.04 chạy máy tính để bàn kubfox với GPU NVIDIA GTX 1070 và trình điều khiển nhị phân NVIDIA được cài đặt thông qua apt.


1
Chào mừng bạn đến hỏi Ubuntu! Tôi khuyên bạn nên chỉnh sửa câu trả lời này để mở rộng nó với các chi tiết cụ thể về nơi để thêm câu trả lời này. (Xem thêm Làm thế nào để tôi viết một câu trả lời hay? Để có lời khuyên chung về loại câu trả lời nào được coi là có giá trị nhất trên Hỏi Ubuntu.)
David Foerster

Có vẻ như các thiết lập đúng là Option "IndirectGLX" "on". Theo điều này , enableIndirectGLXphải đánh giá để TRUEnên BadValuelỗi không được trả lại. Mặc định là: FALSE= -iglx(trên dòng lệnh). Vì vậy, trên một trong hai bộ: +iglxtùy chọn dòng lệnh, HOẶC IndirectGLX "on"hoặc giá trị "trung thực" tương đương
TrinitronX

Các tài liệu của Nvidia cho các trình điều khiển nhị phân cho biết có một tùy chọn khác AllowIndirectGLXProtocolcho cùng một thứ. Tuy nhiên, tài liệu của họ hơi khó hiểu, vì họ đề cập đến BadValuelỗi sẽ được trả về với tên thiết lập là AllowIndirectGLXProtocol = "true". Điều này hoàn toàn trái ngược với những gì họ nói sau đó " The NVIDIA GLX implementation will prohibit creation of indirect GLX contexts if AllowIndirectGLXProtocol option is set to False." Vì vậy, nó khó hiểu và có thể tài liệu sai?
TrinitronX
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.