Debian laptop, Nividia GPU werkend krijgen

Pagina: 1
Acties:

Vraag


  • vanaalten
  • Registratie: September 2002
  • Laatst online: 08:53
Ondertussen al ruim twintig jaar hobby-ervaring met Linux, specifiek Debian, maar alleen headless servers zonder GPU gedoe. Afgelopen jaar besloten om serieus werk te maken van het overstappen van Windows naar Linux.

Ik heb als apparaat dus een oudere laptop: Asus N56VM. Daar heb ik dus Debian 'bookworm' op geinstalleerd en voor het merendeel werkt het allemaal prima. Maar wat niet goed werkt: films (H264 gecodeerd) afspelen met VLC. Het speelt, maar haperend, stotterend, alsof de laptop het qua snelheid niet aankan. Dit probleem heb ik niet als ik onder Windows-10 afspeel, dus het zal OS gerelateerd zijn.

De laptop heeft twee GPU's: Intel HD Graphics 4000 en Nvidia GT630M. Ik gok dat bij mij enkel de Intel 4000 in gebruik is (Xorg.0.log: "glamor X acceleration enabled on Mesa Intel(R) HD Graphics 4000 (IVB GT2)").

Liefst zou ik een hybride systeem willen waarbij (automatisch?) de nVidia GPU gebruikt wordt indien nodig, maar anders is 'enkel' de nVidia GPU al goed genoeg.

Qua drivers heb ik nu al de nvidia-driver geinstalleerd, enkel is dit versie 525.125.06-1~deb12u1 - en die heeft geen support meer voor de 600-serie GPU.

Welke opties heb ik om dit op te lossen?

Optie: alle Debian nVidia-drivers er af gooien en handmatig de driver van de nVidia website installeren, versie 390.157 - die nog wel support heeft voor de GT 630M?

Optie: alle Debian nVidia-drivers er af gooien en nvidia-nouveau installeren - ik denk dat die mijn GPU ondersteund, enkel voor video accelerating (net wat mijn doel is) "requires firmware from the binary driver".

Wat is hierin de beste keuze, zonder dat ik een complete puinhoop van m'n installatie maak?

Alle reacties


  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 15-09 22:42

Hero of Time

Moderator LNX

There is only one Legend

Ik heb zelf 2 oudere systemen met een GT430 en GT610. Die laatste is enigszins vergelijkbaar met je GT630M. Voor beide systemen heb ik de nvidia-legacy-390xx-driver geïnstalleerd en dat werkt voor die kaarten prima. Ik kan video acceleratie krijgen met VDPAU.

Met m'n GT610 heb ik ook geprobeerd om met de nouveau driver video acceleratie aan de praat te krijgen. Dat gaat dan met VA-API, wat Intel en AMD ook gebruiken en in principe de dé facto standaard is in Linux. Browsers zoals Firefox kunnen hier ook gebruik van maken, terwijl VDPAU van nVidia zelf veelal niet wordt ondersteund.

Zoals je zelf opmerkt heeft die functie de firmware nodig van de gesloten driver. Die kan je zelf via een python script uit de binaire blobs halen of via firmware-misc-nonfree. Mijn pogingen om het te laten werken hebben zijn allemaal mislukt. Ik kreeg veelal geen beeld, als het al wilde beginnen met spelen.

De Intel iGPU is ook in staat om video acceleratie te doen. Hiervoor dien je mogelijk nog de juiste packages te installeren, zaken gerelateerd aan libva.

Ga dus even na waar je de laptop precies voor wilt gaan gebruiken. Is het alleen video's afspelen, dan is het wellicht zinvoller om de nVidia kaart te laten voor wat het is. Op m'n werk had ik een laptop met een 1060 en daar maakte ik geen gebruik van heb ik na een tijdje de gesloten driver verwijdert. Wat wel verschilt tussen onze systemen, is dat bij de mijne alle video uitgangen via de Intel kaart gingen. Maar bij jou kan je externe video poort mogelijk wel direct aan de nVidia hangen en heb je die kaart nodig voor beeld. Dat moet je even uitzoeken en nagaan of je dat gaat gebruiken.

Tl;dr: voor je kaart moet je nvidia-legacy-390xx-driver hebben.

Commandline FTW | Tweakt met mate


  • vanaalten
  • Registratie: September 2002
  • Laatst online: 08:53
Ben er mee bezig geweest in de tussentijd...
"nvidia-legacy-390xx-driver" - die suggestie was ik ook al tegengekomen, maar: die is voor Debian stable niet beschikbaar. Wel voor oudere versies en ook voor 'Sid', maar niet voor Bookworm.

Maar ondertussen wel, denk ik, bereikt wat ik zocht:
  • xserver-xorg-video-nouveau geinstalleerd
  • nvidia-driver gedeinstalleerd
  • binnen /etc/modprobe.d dingen verwijderd die nouveau op de blacklist plaatsten
  • kopie gemaakt van /usr/share/applications/vlc.desktop naar ~/.local/share/applications/vlc_nouveau.desktop
  • die vlc_nouveau.desktop gewijzigd, de "Exec" regel aangepast naar "Exec=env DRI_PRIME=1 /usr/bin/vlc --started-from-file %U"
  • die nieuwe "VLC media player Nouveau" geselecteerd als default video app
...en daarmee kan ik H264 films weer goed afspelen.

Dat alles zonder firmware van gesloten drivers te gebruiken.
De Intel iGPU is ook in staat om video acceleratie te doen. Hiervoor dien je mogelijk nog de juiste packages te installeren, zaken gerelateerd aan libva.
Hmmm, package "libva2" staat al geinstalleerd... "vainfo" output:
code:
1
2
3
4
5
6
7
8
libva info: VA-API version 1.17.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_17
libva error: /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so init failed
libva info: va_openDriver() returns 1
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_8
libva info: va_openDriver() returns 0

... lijkt ook wel in staat om een driver te laden. Wellicht is de Intel GPU toch niet krachtig genoeg?

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 15-09 22:42

Hero of Time

Moderator LNX

There is only one Legend

Grappig, jouw laptop volgens je link heeft een i7-3610QM, mijn htpc die ik tot vorig jaar in gebruik had en moeiteloos met zowel de nVidia videokaart en iGPU van de processor kon afspelen via Kodi heeft een i5-3470T. Die zouden dus dezelfde video chip moeten hebben.

Met nouveau kreeg ik geen beeld met mpv, of je wilt een groen vlak beeld noemen. :P

Ben trouwens wel benieuwd wat je nou nog meer aan info hebt van vainfo, want je toont niet alles. Dit is mijn output, met AMD:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
libva info: VA-API version 1.20.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_20
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.20 (libva 2.12.0)
vainfo: Driver version: Mesa Gallium driver 23.2.0~rc3-3 for AMD Radeon RX 7900 XTX (gfx1100, LLVM 15.0.7, DRM 3.54, 6.5.0-1-amd64)
vainfo: Supported profile and entrypoints
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointEncSlice
      VAProfileH264High               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointEncSlice
      VAProfileHEVCMain               : VAEntrypointVLD
      VAProfileHEVCMain               : VAEntrypointEncSlice
      VAProfileHEVCMain10             : VAEntrypointVLD
      VAProfileHEVCMain10             : VAEntrypointEncSlice
      VAProfileJPEGBaseline           : VAEntrypointVLD
      VAProfileVP9Profile0            : VAEntrypointVLD
      VAProfileVP9Profile2            : VAEntrypointVLD
      VAProfileAV1Profile0            : VAEntrypointVLD
      VAProfileAV1Profile0            : VAEntrypointEncSlice
      VAProfileNone                   : VAEntrypointVideoProc

Wat ik bij jou zie, is dat het iHD niet kan laden, waar dat dan ook voor is, en i965 het wel doet. Dat is voor Intel. Waar is nouveau?

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • vanaalten
  • Registratie: September 2002
  • Laatst online: 08:53
Hero of Time schreef op zaterdag 23 september 2023 @ 22:45:
Ben trouwens wel benieuwd wat je nou nog meer aan info hebt van vainfo, want je toont niet alles.
Oh, de rest leek mij minder interessant, maar dat is wellicht ook omdat ik zelf niet wist hoe te interpreteren. Volledig:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
libva info: VA-API version 1.17.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_17
libva error: /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so init failed
libva info: va_openDriver() returns 1
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_8
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.17 (libva 2.12.0)
vainfo: Driver version: Intel i965 driver for Intel(R) Ivybridge Mobile - 2.4.1
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Simple            : VAEntrypointEncSlice
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointEncSlice
      VAProfileH264High               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointEncSlice
      VAProfileH264StereoHigh         : VAEntrypointVLD
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
      VAProfileNone                   : VAEntrypointVideoProc
      VAProfileJPEGBaseline           : VAEntrypointVLD
Wat ik bij jou zie, is dat het iHD niet kan laden, waar dat dan ook voor is, en i965 het wel doet. Dat is voor Intel. Waar is nouveau?
Hmmm, hier begin ik dan toch wel behoorlijk verdwaald te raken in het GPU-driverwereldje. Want nee, vainfo laat niets voor nouveau zien, ook niet als ik eerst "DRI_PRIME=1" doe.

Enkel als ik 'glxheads' uitvoer, met of zonder "DRI_PRIME=1" zie ik verschil in de output:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
vanaalten@laptop:~$ glxheads
glxheads: exercise multiple GLX connections (any key = exit)
Usage:
  glxheads xdisplayname ...
Example:
  glxheads :0 mars:0 venus:1
Name: :0
  Display:     0x55862b61e1b0
  Window:      0x4e00002
  Context:     0x55862b63bff0
  GL_VERSION:  4.2 (Compatibility Profile) Mesa 22.3.6
  GL_VENDOR:   Intel
  GL_RENDERER: Mesa Intel(R) HD Graphics 4000 (IVB GT2)

en
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
vanaalten@laptop:~$ DRI_PRIME=1 glxheads
glxheads: exercise multiple GLX connections (any key = exit)
Usage:
  glxheads xdisplayname ...
Example:
  glxheads :0 mars:0 venus:1
Name: :0
  Display:     0x55c7f33cb1b0
  Window:      0x4e00002
  Context:     0x55c7f33e8ff0
  GL_VERSION:  4.3 (Compatibility Profile) Mesa 22.3.6
  GL_VENDOR:   nouveau
  GL_RENDERER: NVC1

Verwarrend, dit. Is het mij nu onduidelijk of de Intel GPU een driver mist (toch die iHD driver wellicht?).

En dan is het wel fijn dat ik met nouveau die DRI_PRIME setting wel het oorspronkelijke probleem heb opgelost, maar het niet helemaal snappen hoe het in elkaar zit maakt het nog niet echt bevredigend.

Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 15-09 22:42

Hero of Time

Moderator LNX

There is only one Legend

Installeer eens MPV en ga hier mee testen. Je kan op de cli namelijk direct opgeven of het vaapi moet gebruiken via de '--vo' optie. Het geeft wat meer info in de terminal dan VLC zou doen verwacht ik en bij mij had ik dus geen goed beeld bij VA-API acceleratie voor video afspelen. Gebruikte ik de Intel gpu, dan werkte het wel. En m'n cpu gebruik was ook een stuk lager. In Firefox maakt het maar een beetje verschil tussen software en hardware decoding (software zijnde wanneer ik op de nVidia werkte met de gesloten driver, nouveau wilde ook niet lekker werken daar en de about:support output gaf dat ook aan).

Wat meer info over mpv en hardware decoding, van de manpage:
code:
1
2
3
4
--vo=<driver>
       Specify  the  video output backend to be used. See VIDEO
       OUTPUT DRIVERS for details and descriptions of available
       drivers.


Er is een punt waarbij je ook kan zeggen: het werkt, geen idee hoe of waarom, maar ik vind het wel best.

Commandline FTW | Tweakt met mate

Pagina: 1