ไม่มี GLX บนการ์ด Intel ที่มีหลายหน้าพร้อมการ์ด nVidia เพิ่มเติม


10

ฉันได้ทำการตั้งค่าหลายค่าและ Xorg ของฉันมีรูปแบบเซิร์ฟเวอร์ 2 รูปแบบ หนึ่งสำหรับการ์ด nVidia และอื่น ๆ สำหรับการ์ด Intel ทั้งสองทำงานได้ แต่เซิร์ฟเวอร์ดิสเพลย์ที่กำหนดให้กับการ์ด Intel ไม่มีการเร่งด้วยฮาร์ดแวร์เนื่องจากโมดูล DRI และ GLX ที่ใช้นั้นมาจากไดรเวอร์ nVidia

ดังนั้นคำถามของฉันคือฉันสามารถกำหนดค่าเลย์เอาท์เพื่อใช้ DRI และ GLX ที่เหมาะสมกับการ์ดแต่ละใบได้หรือไม่

Xorg.conf ของฉัน:

Section "ServerLayout"
    Identifier     "Default"
    Screen      0  "Screen0" 0 0
    Option         "Xinerama" "0"
EndSection

Section "ServerLayout"
    Identifier     "TV"
    Screen      0  "Screen1" 0 0
    Option         "Xinerama" "0"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "DELL E198WFP"
    HorizSync       30.0 - 83.0
    VertRefresh     56.0 - 75.0
    Option         "DPMS"
EndSection

Section "Monitor"
    Identifier     "Monitor1"
    VendorName     "Unknown"
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GT 610"
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "intel"
    BusID          "PCI:0:2:0"
    Option         "AccelMethod" "uxa"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-1"
    Option         "metamodes" "DFP-0: nvidia-auto-select +1440+0, DFP-1: nvidia-auto-select +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

ล็อกไฟล์สำหรับ Intel:

[    18.239] 
X.Org X Server 1.13.0
Release Date: 2012-09-05
[    18.239] X Protocol Version 11, Revision 0
[    18.239] Build Operating System: Linux 2.6.24-32-xen x86_64 Ubuntu
[    18.239] Current Operating System: Linux bytewiper 3.5.0-18-generic #29-Ubuntu SMP Fri Oct 19 10:26:51 UTC 2012 x86_64
[    18.239] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.5.0-18-generic root=UUID=fc0616fd-f212-4846-9241-ba4a492f0513 ro quiet splash
[    18.239] Build Date: 20 September 2012  11:55:20AM
[    18.239] xorg-server 2:1.13.0+git20120920.70e57668-0ubuntu0ricotz (For technical support please see http://www.ubuntu.com/support) 
[    18.239] Current version of pixman: 0.26.0
[    18.239]    Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
[    18.239] Markers: (--) probed, (**) from config file, (==) default setting,
    (++) from command line, (!!) notice, (II) informational,
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[    18.239] (==) Log file: "/var/log/Xorg.1.log", Time: Wed Nov 21 18:32:14 2012
[    18.239] (==) Using config file: "/etc/X11/xorg.conf"
[    18.239] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[    18.239] (++) ServerLayout "TV"
[    18.239] (**) |-->Screen "Screen1" (0)
[    18.239] (**) |   |-->Monitor "Monitor1"
[    18.240] (**) |   |-->Device "Device1"
[    18.240] (**) Option "Xinerama" "0"
[    18.240] (==) Automatically adding devices
[    18.240] (==) Automatically enabling devices
[    18.240] (==) Automatically adding GPU devices
[    18.240] (WW) The directory "/usr/share/fonts/X11/cyrillic" does not exist.
[    18.240]    Entry deleted from font path.
[    18.240] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not exist.
[    18.240]    Entry deleted from font path.
[    18.240] (WW) The directory "/usr/share/fonts/X11/75dpi/" does not exist.
[    18.240]    Entry deleted from font path.
[    18.240] (WW) The directory "/usr/share/fonts/X11/100dpi" does not exist.
[    18.240]    Entry deleted from font path.
[    18.240] (WW) The directory "/usr/share/fonts/X11/75dpi" does not exist.
[    18.240]    Entry deleted from font path.
[    18.240] (WW) The directory "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType" does not exist.
[    18.240]    Entry deleted from font path.
[    18.240] (==) FontPath set to:
    /usr/share/fonts/X11/misc,
    /usr/share/fonts/X11/Type1,
    built-ins
[    18.240] (==) ModulePath set to "/usr/lib/x86_64-linux-gnu/xorg/extra-modules,/usr/lib/xorg/extra-modules,/usr/lib/xorg/modules"
[    18.240] (II) The server relies on udev to provide the list of input devices.
    If no devices become available, reconfigure udev or disable AutoAddDevices.
[    18.240] (II) Loader magic: 0x7f6917944c40
[    18.240] (II) Module ABI versions:
[    18.240]    X.Org ANSI C Emulation: 0.4
[    18.240]    X.Org Video Driver: 13.0
[    18.240]    X.Org XInput driver : 18.0
[    18.240]    X.Org Server Extension : 7.0
[    18.240] (II) config/udev: Adding drm device (/dev/dri/card0)
[    18.241] (--) PCI: (0:0:2:0) 8086:0152:1043:84ca rev 9, Mem @ 0xf7400000/4194304, 0xd0000000/268435456, I/O @ 0x0000f000/64
[    18.241] (--) PCI:*(0:1:0:0) 10de:104a:1458:3546 rev 161, Mem @ 0xf6000000/16777216, 0xe0000000/134217728, 0xe8000000/33554432, I/O @ 0x0000e000/128, BIOS @ 0x????????/524288
[    18.241] (II) Open ACPI successful (/var/run/acpid.socket)
[    18.241] Initializing built-in extension Generic Event Extension
[    18.241] Initializing built-in extension SHAPE
[    18.241] Initializing built-in extension MIT-SHM
[    18.241] Initializing built-in extension XInputExtension
[    18.241] Initializing built-in extension XTEST
[    18.241] Initializing built-in extension BIG-REQUESTS
[    18.241] Initializing built-in extension SYNC
[    18.241] Initializing built-in extension XKEYBOARD
[    18.241] Initializing built-in extension XC-MISC
[    18.241] Initializing built-in extension SECURITY
[    18.241] Initializing built-in extension XINERAMA
[    18.241] Initializing built-in extension XFIXES
[    18.241] Initializing built-in extension RENDER
[    18.241] Initializing built-in extension RANDR
[    18.241] Initializing built-in extension COMPOSITE
[    18.241] Initializing built-in extension DAMAGE
[    18.241] Initializing built-in extension MIT-SCREEN-SAVER
[    18.241] Initializing built-in extension DOUBLE-BUFFER
[    18.241] Initializing built-in extension RECORD
[    18.241] Initializing built-in extension DPMS
[    18.241] Initializing built-in extension X-Resource
[    18.241] Initializing built-in extension XVideo
[    18.241] Initializing built-in extension XVideo-MotionCompensation
[    18.241] Initializing built-in extension XFree86-VidModeExtension
[    18.241] Initializing built-in extension XFree86-DGA
[    18.241] Initializing built-in extension XFree86-DRI
[    18.241] Initializing built-in extension DRI2
[    18.241] (II) LoadModule: "glx"
[    18.241] (II) Loading /usr/lib/x86_64-linux-gnu/xorg/extra-modules/libglx.so
[    18.247] (II) Module glx: vendor="NVIDIA Corporation"
[    18.247]    compiled for 4.0.2, module version = 1.0.0
[    18.247]    Module class: X.Org Server Extension
[    18.247] (II) NVIDIA GLX Module  310.19  Thu Nov  8 01:12:43 PST 2012
[    18.247] Loading extension GLX
[    18.247] (II) LoadModule: "intel"
[    18.248] (II) Loading /usr/lib/xorg/modules/drivers/intel_drv.so
[    18.248] (II) Module intel: vendor="X.Org Foundation"
[    18.248]    compiled for 1.13.0, module version = 2.20.13
[    18.248]    Module class: X.Org Video Driver
[    18.248]    ABI class: X.Org Video Driver, version 13.0
[    18.248] (II) intel: Driver for Intel Integrated Graphics Chipsets: i810,
    i810-dc100, i810e, i815, i830M, 845G, 854, 852GM/855GM, 865G, 915G,
    E7221 (i915), 915GM, 945G, 945GM, 945GME, Pineview GM, Pineview G,
    965G, G35, 965Q, 946GZ, 965GM, 965GME/GLE, G33, Q35, Q33, GM45,
    4 Series, G45/G43, Q45/Q43, G41, B43, B43, Clarkdale, Arrandale,
    Sandybridge Desktop (GT1), Sandybridge Desktop (GT2),
    Sandybridge Desktop (GT2+), Sandybridge Mobile (GT1),
    Sandybridge Mobile (GT2), Sandybridge Mobile (GT2+),
    Sandybridge Server, Ivybridge Mobile (GT1), Ivybridge Mobile (GT2),
    Ivybridge Desktop (GT1), Ivybridge Desktop (GT2), Ivybridge Server,
    Ivybridge Server (GT2), Haswell Desktop (GT1), Haswell Desktop (GT2),
    Haswell Desktop (GT2+), Haswell Mobile (GT1), Haswell Mobile (GT2),
    Haswell Mobile (GT2+), Haswell Server (GT1), Haswell Server (GT2),
    Haswell Server (GT2+), Haswell SDV Desktop (GT1),
    Haswell SDV Desktop (GT2), Haswell SDV Desktop (GT2+),
    Haswell SDV Mobile (GT1), Haswell SDV Mobile (GT2),
    Haswell SDV Mobile (GT2+), Haswell SDV Server (GT1),
    Haswell SDV Server (GT2), Haswell SDV Server (GT2+),
    Haswell ULT Desktop (GT1), Haswell ULT Desktop (GT2),
    Haswell ULT Desktop (GT2+), Haswell ULT Mobile (GT1),
    Haswell ULT Mobile (GT2), Haswell ULT Mobile (GT2+),
    Haswell ULT Server (GT1), Haswell ULT Server (GT2),
    Haswell ULT Server (GT2+), Haswell CRW Desktop (GT1),
    Haswell CRW Desktop (GT2), Haswell CRW Desktop (GT2+),
    Haswell CRW Mobile (GT1), Haswell CRW Mobile (GT2),
    Haswell CRW Mobile (GT2+), Haswell CRW Server (GT1),
    Haswell CRW Server (GT2), Haswell CRW Server (GT2+),
    ValleyView PO board
[    18.248] (++) using VT number 8

[    18.593] (II) intel(0): using device path '/dev/dri/card0'
[    18.593] (**) intel(0): Depth 24, (--) framebuffer bpp 32
[    18.593] (==) intel(0): RGB weight 888
[    18.593] (==) intel(0): Default visual is TrueColor
[    18.593] (**) intel(0): Option "AccelMethod" "uxa"
[    18.593] (--) intel(0): Integrated Graphics Chipset: Intel(R) Ivybridge Desktop (GT1)
[    18.593] (**) intel(0): Relaxed fencing enabled
[    18.593] (**) intel(0): Wait on SwapBuffers? enabled
[    18.593] (**) intel(0): Triple buffering? enabled
[    18.593] (**) intel(0): Framebuffer tiled
[    18.593] (**) intel(0): Pixmaps tiled
[    18.593] (**) intel(0): 3D buffers tiled
[    18.593] (**) intel(0): SwapBuffers wait enabled

...

[    20.312] (II) Module fb: vendor="X.Org Foundation"
[    20.312]    compiled for 1.13.0, module version = 1.0.0
[    20.312]    ABI class: X.Org ANSI C Emulation, version 0.4
[    20.312] (II) Loading sub module "dri2"
[    20.312] (II) LoadModule: "dri2"
[    20.312] (II) Module "dri2" already built-in
[    20.312] (==) Depth 24 pixmap format is 32 bpp
[    20.312] (II) intel(0): [DRI2] Setup complete
[    20.312] (II) intel(0): [DRI2]   DRI driver: i965
[    20.312] (II) intel(0): Allocated new frame buffer 1920x1080 stride 7680, tiled
[    20.312] (II) UXA(0): Driver registered support for the following operations:
[    20.312] (II)         solid
[    20.312] (II)         copy
[    20.312] (II)         composite (RENDER acceleration)
[    20.312] (II)         put_image
[    20.312] (II)         get_image
[    20.312] (==) intel(0): Backing store disabled
[    20.312] (==) intel(0): Silken mouse enabled
[    20.312] (II) intel(0): Initializing HW Cursor
[    20.312] (II) intel(0): RandR 1.2 enabled, ignore the following RandR disabled message.
[    20.313] (**) intel(0): DPMS enabled
[    20.313] (==) intel(0): Intel XvMC decoder enabled
[    20.313] (II) intel(0): Set up textured video
[    20.313] (II) intel(0): [XvMC] xvmc_vld driver initialized.
[    20.313] (II) intel(0): direct rendering: DRI2 Enabled
[    20.313] (==) intel(0): hotplug detection: "enabled"
[    20.332] (--) RandR disabled

[    20.335] (EE) Failed to initialize GLX extension (Compatible NVIDIA X driver not found)

[    20.335] (II) intel(0): Setting screen physical size to 508 x 285
[    20.338] (II) XKB: reuse xkmfile /var/lib/xkb/server-B20D7FC79C7F597315E3E501AEF10E0D866E8E92.xkm
[    20.340] (II) config/udev: Adding input device Power Button (/dev/input/event1)
[    20.340] (**) Power Button: Applying InputClass "evdev keyboard catchall"
[    20.340] (II) LoadModule: "evdev"
[    20.340] (II) Loading /usr/lib/xorg/modules/input/evdev_drv.so

1
หากคุณใช้เวลา 18.04 นี่ควรเป็นเพียงแค่ Work (TM) ด้วยการสนับสนุน glvnd ในเวอร์ชันเก่าคุณต้องยุ่งกับตัวแปรสภาพแวดล้อม LD_PRELOAD เพื่อให้โปรแกรมใช้ libGL ที่ถูกต้อง แต่ตอนนี้ไม่จำเป็น: D
Léo Lam

1
@ LéoLamใช้เวลาเพียง 5 ปี ดีกว่าไม่สายฉันไม่คิด
MeanEYE

คำตอบ:


7

ตกลงพบวิธีแก้ไขปัญหา แต่มีข้อผิดพลาดที่ทำให้การเร่งฮาร์ดแวร์ไม่ทำงานบน Intel GPU ในขณะนี้ใน Ubuntu 12.10 พร้อมกับไลบรารี Mesa 9.0.1 ใหม่

ในระยะสั้นปัญหาเกิดขึ้นกับการโหลด GLX nVidia จะผลักดันโมดูล GLX ของตัวเองและก้าวเท้าของ Intel

ฉันพบวิธีแก้ปัญหาโดยสังเกตบรรทัดนี้:

[    18.240] (==) ModulePath set to "/usr/lib/x86_64-linux-gnu/xorg/extra-modules,/usr/lib/xorg/extra-modules,/usr/lib/xorg/modules"

โมดูลที่อยู่ใน/usr/lib/x86_64-linux-gnu/xorg/extra-modulesนั้นเป็นเฉพาะ nVidia ทั้งหมด ดังนั้นฉันจึงกำหนดค่า LightDM ให้ใช้สองxorg.confไฟล์ ใน Intel หนึ่งฉันได้ตั้งค่าด้วยตนเองModulePathโดยไม่รวมไดเรกทอรี nVidia ส่งผลให้โหลดโมดูล GLX ที่เหมาะสม

/etc/lightdm/lightdm.confไฟล์ของฉันมีลักษณะเช่นนี้:

[SeatDefaults]
user-session=ubuntu
greeter-session=unity-greeter
allow-guest=false

[Seat:0]
xserver-layout=Default
xserver-config=xorg.conf.nvidia

[Seat:1]
xserver-layout=TV
xserver-config=xorg.conf.intel

เพิ่มบรรทัดในxorg.conf.intel:

Section "Files"
    ModulePath     "/usr/lib/xorg/extra-modules"
    ModulePath     "/usr/lib/xorg/modules"
EndSection

1

ในด้านของฉันกับอูบุนตู 14.04, เส้นทางที่แตกต่างกันและ Nvidia แทนที่คนขับที่เป็นกรรมสิทธิ์ในlibglx.so/usr/lib/xorg/modules/extensions/libglx.so

เพื่อแก้ปัญหาผมซ้ำ/usr/lib/xorg/modulesใน/usr/lib/xorg/modules-nvidia แล้วติดตั้ง Intel มิตรlibglx.soด้วย:

sudo apt-get install --reinstall xserver-xorg-core

libglx.soคืนนี้เดิม ในการxorg.conf.nvidiaฉันเพิ่มเส้นทางไปยังโมดูลที่ถูกต้อง:

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

นอกจากนี้ใน/etc/lightdm/lightdm.confฉันต้องเพิ่ม: xserver-command=/usr/bin/X -sharevtsภายใต้[Seat:1]ส่วน เคล็ดลับนี้ได้ถูกพบที่นี่

ขอบคุณมากสำหรับMeanEYEที่ให้คะแนนฉันอย่างถูกวิธี


1

ดังนั้นฉันจึงทำการค้นคว้าเล็กน้อยและพบว่ามีหลายวิธีที่คุณสามารถใช้การตั้งค่า Multiseat (Multi-station, multi-terminal, ฯลฯ )

1)วิธีการที่ผมอยากจะแนะนำที่จะใช้มาตรฐาน Xorg ของคุณและในตัวคนขับเคอร์เนลใช้evdev นี่คือคำแนะนำเกี่ยวกับวิธีการตั้งค่า 4 GPU และ multiiseat มอนิเตอร์ 4 จอภาพโดยใช้ evdev คู่มือมีไว้สำหรับ Debian Sarge และ SiS GPUs แต่ฉันคิดว่าคุณสามารถสรุปข้อมูลที่มีประโยชน์มากมายจากคู่มือนี้: https://en.wikibooks.org/wiki/Multiterminal_with_evdev

2)วิธีอื่นคือใช้Xypherซึ่งเป็นเซิร์ฟเวอร์ X Windows อื่นที่ใช้ KDrive ฉันไม่แน่ใจว่านี่เป็นเส้นทางที่คุณต้องการไป แต่นี่คือแนวทางที่แนะนำ: https://en.wikibooks.org/wiki/en:Multiterminal_with_Xephyr

3)อีกตัวเลือกหนึ่งคือการใช้เครื่องมือที่เรียกว่าMultiseat Display Manager (MDM)ซึ่งสัญญาว่าจะทำให้กระบวนการตั้งค่าทั้งหมดเป็นไปโดยอัตโนมัติอย่างไรก็ตามดูเหมือนจะไม่ได้รับการอัปเดตดังนั้นฉันจึงไม่แนะนำ อย่างไรก็ตามคุณสามารถค้นหาได้อย่างง่ายดายด้วย Google ในฐานะทางเลือกสุดท้าย

ฉันไม่ทราบว่าคุณมีหรือยังไม่ได้ทำตามการตั้งค่าของคุณดังนั้นทางออกที่ดีที่สุดของคุณคือการอ่านคู่มือ evdevและพยายามระบุขั้นตอนที่คุณยังไม่ได้ทำ ความแตกต่างที่ยิ่งใหญ่ที่สุดที่ฉันเห็นคือ

A)ในตัวอย่าง xorg.conf มีเพียง 1 Screen และ ServerLayout ส่วน หน้าจอเพิ่มเติมและ ServerLayout ถูกกำหนดไว้ใน conf แยกกันทั้งหมด: xorg.conf.probe

B)นอกจากนี้อุปกรณ์ทั้งหมดจะถูกอ้างอิงอย่างชัดเจนโดย BusID ของพวกเขาซึ่งได้รับโดยใช้ lspci และ

C) การขัดจังหวะถูกปิดใช้งานใน irq 10

หวังว่านี่จะช่วยให้คุณพร้อมใช้งานโชคดี!


โอเคสิ่งนี้ช่วยได้มาก ฉันจะลองกับ 2 xorg.confไฟล์ที่แตกต่างกันและหวังว่ามันจะทำงานได้
MeanEYE

สิ่งนี้ยังคงไม่สามารถแก้ปัญหาของฉันเมื่อมีการโหลด nVidia GLX ในกรณีของการ์ด Intel
MeanEYE

0

ใน Ubuntu 16.04 ฉันจำเป็นต้องอัพเดต/usr/local/bin/Xwrapper ด้วย:

exec /usr/bin/Xorg -modulepath '/usr/lib/xorg/extra-modules,/usr/lib/xorg/modules' "$@"

/etc/X11/Xsession.d/00ldlibraryสามารถทดสอบ$XDG_SEATตัวแปรและตั้งค่า export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/mesa:/usr/lib/i386-linux-gnu/mesa/เฉพาะสำหรับการ์ด Intel


0

ใน 18.04 การสนับสนุน glvnd ช่วยให้ผู้ใช้สามารถติดตั้งไดรเวอร์ของ Mesa และ Nvidia ได้อย่างง่ายดายโดยไม่ต้องยุ่งกับ LD_PRELOAD! ทุกสิ่งที่ตัวแปรสภาพแวดล้อมและสคริปต์ wrapper ไม่จำเป็นตอนนี้


ตั้งแต่นี้ไม่ได้มีแท็กเฉพาะรุ่นอูบุนตูและคำตอบที่มีอยู่ไม่ได้อย่างเต็มที่ทำงานร่วมกับระบบของฉัน (Ubuntu 15.10) logindผมโพสต์คำตอบนี้ซึ่งการใช้งาน

โดยทั่วไปเพื่อให้ GLX และ libGL ทำงานคุณต้องกำหนดค่าทั้งเซิร์ฟเวอร์ X และเซสชันผู้ใช้เพื่อใช้งานการใช้งานที่ถูกต้องของ libGL ทั้งนี้ขึ้นอยู่กับที่นั่ง

ดังนั้นคุณต้องมีสคริปต์ตัวตัดคำเพื่อให้ LightDM เริ่มต้น X และสคริปต์ Xsession เพื่อตั้งค่าLD_LIBRARY_PATHเพื่อให้เซสชันใช้ libGL ที่ถูกต้อง


ใน/etc/X11/Xsession.d/00ldlibrary:

#!/bin/bash

if ps aux | grep "/usr/local/bin/X $DISPLAY" | grep -q seat1; then
    export LD_LIBRARY_PATH=/usr/lib/nvidia-352:/usr/lib32/nvidia-352
fi
if ps aux | grep "/usr/local/bin/X $DISPLAY" | grep -q seat0; then
    export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/mesa:/usr/lib/i386-linux-gnu/mesa/
fi

(สมมติว่า seat1 ใช้ nvidia และ seat0 mesa)


ในทำนองเดียวกันคุณต้องล้อมเซิร์ฟเวอร์ X ( /usr/local/bin/X):

#!/bin/bash

if grep -q seat1 <<<$*; then
    export LD_LIBRARY_PATH=/usr/lib/nvidia-352
    echo "Detected seat1, using nvidia-352 libs"
fi
if grep -q seat0 <<<$*; then
    export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/mesa
    echo "Detected seat0, using mesa libs"
fi

exec /usr/bin/Xorg "$@"

สุดท้ายคุณจะต้องกำหนดค่า LightDM เพื่อใช้สิ่งเหล่านี้ใน/etc/lightdm/lightdm.conf:

[Seat:*]
# needed to use the correct libraries for mesa/nvidia,
# along with a Xsession.d script (00ldlibrary)
xserver-command=/usr/local/bin/X
session-setup-script=/etc/X11/Xsession.d/00ldlibrary

สำหรับรายละเอียดเพิ่มเติมให้ดูที่multiseat-mesa-nvidia repoซึ่งมีรายละเอียดเพิ่มเติมและมีไฟล์และสคริปต์การกำหนดค่าที่สมบูรณ์


-1

ฉันใช้ Arch linux แต่สิ่งนี้ช่วยให้ฉันได้ทั้ง Intel และ Nvidia ที่เป็นกรรมสิทธิ์ของฉันซึ่งเต็มไปด้วยgl/vaapi/vdpauฟังก์ชั่นการใช้งาน

สิ่งที่คุณต้องทำ (q & d):

nvidia-utilsติดตั้งที่เป็นกรรมสิทธิ์

คัดลอก/usr/lib/xorg/modulesไปยัง/usr/lib/xorg/modules_nvidia

ดาวน์โหลดและแกะล่าสุดlibva-intel-driver, mesa-vdpau, mesa, mesa-libglและxorg-serverเป็นแพคเกจที่เหมาะสมสถาปัตยกรรมของคุณในไดเรกทอรีที่แยกต่างหาก จากนั้นcp -r(ในฐานะรูท / sudo) เนื้อหาของ"separate directory"/usr/libสิ่งที่ต้องการ/usr/lib_intelและ"separate directory"/usr/lib/xorg/modules/*ไปยัง/usr/lib/xorg/modulesไดเรกทอรีที่แท้จริงของคุณ(เขียนทับ)

และ

echo "/usr/lib_intel" > /etc/ld.conf.d/intel_glx.conf
ldconfig

รีสตาร์ทX-Serversลองglxinfo

นี้จะทำลายตัวเองในการอัพเดท nvidia แน่นอน

ฉันพบว่านี่ไม่ทำงานเมื่อรีบูตเครื่อง

แฮ็คที่ดีกว่ามาก:

อย่าสร้างไฟล์ ld.so.conf.d / ให้เพิ่มสิ่งต่อไปนี้ลงใน / usr / bin / X แทน:

PREV_LD_LIBRARY_PATH=$LD_LIBRARY_PATH
if [[ "$@" == *"vt7"* ]]
then
export LD_LIBRARY_PATH=/usr/lib_intel;$PREV_LD_LIBRARY_PATH
export LD_PRELOAD=/usr/lib_intel/libGL.so
fi

เปลี่ยน "vt7" เป็นสิ่งที่ตัวจัดการการแสดงผลของคุณใช้เพื่อเริ่ม intel x-server ของคุณ (: 0,: ​​2, vt7, vt8, isolatodevice = ... )

แน่นอนคุณยังสามารถคัดลอก / usr / bin / X ไปยัง / usr / bin / Xintel และแก้ไขแทนชี้ wm ของคุณไปที่ไฟล์นี้ (kdm 'ServerCmd')

จากนั้นแก้ไขหรือสร้างไฟล์เซสชั่นใหม่ของคุณคือ / usr / bin / startkde (ไม่ตรวจสอบ DISPLAY #!) เพิ่ม:

export LD_LIBRARY_PATH=/usr/lib_intel;$PREV_LD_LIBRARY_PATH
export LD_PRELOAD=/usr/lib_intel/libGL.so

ด้วยวิธีนี้คุณไม่จำเป็นต้องเขียนทับอะไรเลย rm'ing ไดเร็กทอรี / usr / lib_intel และการรีเซ็ตไฟล์ที่แก้ไข 2 ไฟล์คือทุกสิ่งที่คุณต้องทำเพื่อลบแฮ็คนี้อีกครั้ง


Ubuntu ค่อนข้างแตกต่างจาก Arch Linux ดังนั้นในขณะที่แนวคิดทั่วไปดี ( LD_LIBRARY_PATH) มันจะไม่ทำงานบนระบบ Ubuntu
Léo Lam
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.