
Ich möchte ein Spiel mit der dedizierten Grafik auf meinem Notebook spielen. Die Intel-Grafikkarte ist mir egal - ich möchte ausschließlich NVidia verwenden.
$ nvidia-smi
Mon Mar 23 20:40:58 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.64.00 Driver Version: 440.64.00 CUDA Version: 10.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 860M On | 00000000:01:00.0 Off | N/A |
| N/A 47C P8 N/A / N/A | 0MiB / 4046MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
$ glxinfo |grep OpenGL
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Haswell Mobile
OpenGL core profile version string: 4.5 (Core Profile) Mesa 19.2.8
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 19.2.8
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.1 Mesa 19.2.8
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10
OpenGL ES profile extensions:
$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)
$ lspci | grep NVIDIA
01:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 860M] (rev a2)
Aus Verzweiflung habe ich bbswitch installiert, das „AN“ anzeigt, auch wenn ich es „AUS“ schalte.
root@eevee-G551JM:/home/adam # cat /proc/acpi/bbswitch
0000:01:00.0 ON
root@eevee-G551JM:/home/adam # tee /proc/acpi/bbswitch <<<OFF
OFF
root@eevee-G551JM:/home/adam # cat /proc/acpi/bbswitch
0000:01:00.0 ON
root@eevee-G551JM:/home/adam # prime-select query
nvidia
Früher hatte ich Bumblebee auf dieser Maschine konfiguriert, aber es funktioniert nicht mehr richtig (und das Entfernen hat keine Auswirkungen auf das Rendering).
root@eevee-G551JM:/home/adam # service bumblebeed stop
root@eevee-G551JM:/home/adam # bumblebeed
[ 821.692186] [INFO]bumblebeed 3.2.1 started
[ 821.692614] [ERROR]Failed to unload module 'nvidia' (ref count: 15).
^C[ 882.413474] [WARN]Received Interrupt signal.
root@eevee-G551JM:/home/adam 5 # service bumblebeed start
root@eevee-G551JM:/home/adam # service bumblebeed status
● bumblebeed.service - Bumblebee C Daemon
Loaded: loaded (/lib/systemd/system/bumblebeed.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2020-03-23 20:52:34 CET; 1s ago
Main PID: 10898 (bumblebeed)
Tasks: 1 (limit: 4915)
CGroup: /system.slice/bumblebeed.service
└─10898 /usr/sbin/bumblebeed
Mar 23 20:52:34 eevee-G551JM systemd[1]: Started Bumblebee C Daemon.
Mar 23 20:52:34 eevee-G551JM bumblebeed[10898]: [ 903.313579] [INFO]/usr/sbin/bumblebeed 3.2.1 started
Mar 23 20:52:34 eevee-G551JM bumblebeed[10898]: [ 903.314010] [ERROR]Failed to unload module 'nvidia' (ref count: 15).
root@eevee-G551JM:/home/adam # apt install xserver-xorg-video-nvidia-440
Reading package lists... Done
Building dependency tree
Reading state information... Done
xserver-xorg-video-nvidia-440 is already the newest version (440.64.00-0ubuntu1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
$ cd /etc/modprobe.d/
$ ag nvidia
blacklist-framebuffer.conf
19:blacklist nvidiafb
bumblebee.conf
5:# do not automatically load nouveau as it may prevent nvidia from loading
7:# do not automatically load nvidia as it's unloaded anyway when bumblebeed
10:blacklist nvidia
11:blacklist nvidia-current
12:blacklist nvidia-legacy-304xx
13:blacklist nvidia-legacy-340xx
15:blacklist nvidia
16:blacklist nvidia-current
17:blacklist nvidia-current-updates
...
root@eevee-G551JM:/etc/modprobe.d # cat /etc/modules
i915
bbswitch
$ cat /etc/bumblebee/bumblebee.conf
[bumblebeed]
VirtualDisplay=:8
KeepUnusedXServer=false
ServerGroup=bumblebee
TurnCardOffAtExit=false
NoEcoModeOverride=false
Driver=
XorgConfDir=/etc/bumblebee/xorg.conf.d
XorgBinary=/usr/lib/xorg/Xorg
[optirun]
Bridge=auto
VGLTransport=proxy
PrimusLibraryPath=/usr/lib/x86_64-linux-gnu/primus:/usr/lib/i386-linux-gnu/primus
AllowFallbackToIGC=false
[driver-nvidia]
KernelDriver=nvidia
PMMethod=auto
LibraryPath=/usr/lib/x86_64-linux-gnu:/usr/lib/i386-linux-gnu
XorgModulePath=/usr/lib/x86_64-linux-gnu/nvidia/xorg,/usr/lib/xorg/modules,/usr/lib/xorg/modules/input
XorgConfFile=/etc/bumblebee/xorg.conf.nvidia
[driver-nouveau]
KernelDriver=nouveau
PMMethod=auto
XorgConfFile=/etc/bumblebee/xorg.conf.nouveau
Kann mir bitte jemand erklären, wie es sein kann, dass nvidia-smi
die Grafikkarte erkannt wird, Xorg sie aber nicht verwendet? Es ist sehr interessant, dass dies überhaupt möglich ist, aber wie bringt man das System wieder in den Zustand zurück, in dem alle Grafiken von Nvidia gerendert werden (oder besser noch, dass Bumblebee funktioniert)?
Antwort1
glxinfo ist ein Mesa-Dienstprogramm, Mesa ist der GPU-Treiber für Intel, Amd, VMware und Raspberry Pi. Daher liefert es nur Informationen über diese GPUs.
Antwort2
Es könnte etwas damit zu tun haben,Nvidia On-DemandProfil (insbesondere wenn Sie einen externen Monitor verwenden). Das Umschalten des Profils aufNvidia (Leistungsmodus)löst nvidia-settings
das gleiche Problem für mich.
Von dem, was ich genommen habe ausWie funktioniert die Option NVIDIA On-Demand in den NVIDIA X-Server-Einstellungen?, das On-Demand
Profil ermöglicht das dynamische Umschalten von Nvidia, ist aber auf den Laptop-Bildschirm beschränkt, während Performance Mode
Nvidia zum Rendern von allem verwendet wird und auf dem externen Monitor funktioniert.