Probléma: Nvidia videokártyád van, Nouveou helyett az Ubuntu által javasolt, de zárt gyári illesztőprogramot használod. Ubuntu 18.04 → 20.04 irányú disztribúció frissítés után vagy olykor egyszerű rendszerfrissítés után nincs grafikus felület. A képernyő villódzik pár percig, majd sötét marad. Videokártyád pedig régi, az Nvidia már nem támogatja.
A rendszernaplóban azt látod, hogy a Gnome nem tud elindulni, mert nem fut az X. De azért próbálkozik:
okt 26 23:50:39 K50IE gnome-session[359233]: gnome-session-check-accelerated: GLES Helper exited with code 256 okt 26 23:50:39 K50IE gnome-session-c[359235]: eglGetDisplay() failed okt 26 23:50:39 K50IE gnome-session[359233]: gnome-session-check-accelerated: GL Helper exited with code 256 okt 26 23:50:39 K50IE gnome-session[359234]: Current serial number in output stream: 20 okt 26 23:50:39 K50IE gnome-session[359234]: Serial number of failed request: 19 okt 26 23:50:39 K50IE gnome-session[359234]: Value in failed request: 0x0 okt 26 23:50:39 K50IE gnome-session[359234]: Minor opcode of failed request: 3 (X_GLXCreateContext) okt 26 23:50:39 K50IE gnome-session[359234]: Major opcode of failed request: 151 (GLX) okt 26 23:50:39 K50IE gnome-session[359234]: X Error of failed request: BadValue (integer parameter out of range for operation) okt 26 23:50:37 K50IE gnome-session-binary[359090]: WARNING: App 'org.gnome.Shell.desktop' exited with code 1 okt 26 23:50:37 K50IE gnome-session-binary[359090]: Unrecoverable failure in required component org.gnome.Shell.desktop okt 26 23:50:37 K50IE gnome-session[359090]: gnome-session-binary[359090]: WARNING: App 'org.gnome.Shell.desktop' exited with code 1 okt 26 23:50:37 K50IE gnome-shell[359110]: Failed to create backend: No drm devices found okt 26 23:50:36 K50IE at-spi-bus-launcher[359073]: X connection to :0 broken (explicit kill or server shutdown). okt 26 23:50:36 K50IE gnome-session-binary[358976]: CRITICAL: We failed, but the fail whale is dead. Sorry.... okt 26 23:50:36 K50IE gnome-session-binary[358976]: WARNING: software acceleration check failed: A gyermekfolyamat a következő kóddal lépett ki: 1 okt 26 23:50:36 K50IE gnome-session[358976]: gnome-session-binary[358976]: CRITICAL: We failed, but the fail whale is dead. Sorry.... okt 26 23:50:36 K50IE gnome-session[358976]: gnome-session-binary[358976]: WARNING: software acceleration check failed: A gyermekfolyamat a következő kóddal lépett ki: 1
Az X pedig nem fér hozzá a videokártyához:
okt 26 23:50:38 K50IE /usr/lib/gdm3/gdm-x-session[359129]: (II) LoadModule: "fbdevhw" okt 26 23:50:38 K50IE /usr/lib/gdm3/gdm-x-session[359129]: (II) Loading sub module "fbdevhw" okt 26 23:50:38 K50IE /usr/lib/gdm3/gdm-x-session[359129]: (EE) open /dev/dri/card0: No such file or directory okt 26 23:50:38 K50IE /usr/lib/gdm3/gdm-x-session[359129]: (WW) Falling back to old probe method for modesetting okt 26 23:50:38 K50IE /usr/lib/gdm3/gdm-x-session[359129]: (EE) open /dev/dri/card0: No such file or directory okt 26 23:50:38 K50IE /usr/lib/gdm3/gdm-x-session[359129]: (EE) [drm] Failed to open DRM device for pci:0000:02:00.0: -19
A hiba oka: nézzük meg közelebbről, próbáljuk meg kézzel feltelepíteni az illesztőprogramot. Ekkor ezt kapjuk:
# apt install nvidia-340 Csomaglisták olvasása... Kész Függőségi fa építése Állapotinformációk olvasása... Kész nvidia-340 már a legújabb verzió (340.108-0ubuntu5.20.04.2). 0 frissített, 0 újonnan telepített, 0 eltávolítandó és 0 nem frissített. 1 nincs teljesen telepítve/eltávolítva. A művelet után 0 B lemezterület kerül felhasználásra. Folytatni akarja? [I/n] y Beállítás: nvidia-340 (340.108-0ubuntu5.20.04.2) ... dpkg: hiba: version '-' has bad syntax: revision number is empty dpkg: hiba: version '-' has bad syntax: revision number is empty update-initramfs: deferring update (trigger activated) INFO:Enable nvidia-340 DEBUG:Parsing /usr/share/ubuntu-drivers-common/quirks/put_your_quirks_here DEBUG:Parsing /usr/share/ubuntu-drivers-common/quirks/dell_latitude DEBUG:Parsing /usr/share/ubuntu-drivers-common/quirks/lenovo_thinkpad Removing old nvidia-340-340.108 DKMS files... ------------------------------ Deleting module version: 340.108 completely from the DKMS tree. ------------------------------ Done. Loading new nvidia-340-340.108 DKMS files... Building for 5.11.0-38-generic Building for architecture x86_64 Building initial module for 5.11.0-38-generic ERROR: Cannot create report: [Errno 17] File exists: '/var/crash/nvidia-340.0.crash' Error! Bad return status for module build on kernel: 5.11.0-38-generic (x86_64) Consult /var/lib/dkms/nvidia-340/340.108/build/make.log for more information. dpkg: hiba a csomag feldolgozásakor: nvidia-340 (--configure): installed nvidia-340 package post-installation script subprocess returned error exit status 10 Aktiválók feldolgozása: libc-bin (2.31-0ubuntu9.2) ... Aktiválók feldolgozása: initramfs-tools (0.136ubuntu6.6) ... update-initramfs: Generating /boot/initrd.img-5.11.0-38-generic Hibák történtek a feldolgozáskor: nvidia-340 E: Sub-process /usr/bin/dpkg returned an error code (1)
Ha belekukkantunk a /var/lib/dkms/nvidia-340/340.108/build/make.log
fájlba, akkor egy csomó warning után találunk egy (pár) errort is:
In file included from /var/lib/dkms/nvidia-340/340.108/build/nv-frontend.c:13: /var/lib/dkms/nvidia-340/340.108/build/nv-linux.h: At top level: /var/lib/dkms/nvidia-340/340.108/build/nv-linux.h:122:10: fatal error: asm/kmap_types.h: Nincs ilyen fájl vagy könyvtár 122 | #include <asm/kmap_types.h> /* page table entry lookup */ | ^~~~~~~~~~~~~~~~~~ compilation terminated. make[2]: *** [scripts/Makefile.build:288: /var/lib/dkms/nvidia-340/340.108/build/nv-frontend.o] Error 1 make[2]: Target '__build' not remade because of errors. make[1]: *** [Makefile:1849: /var/lib/dkms/nvidia-340/340.108/build] Error 2 make[1]: Target 'modules' not remade because of errors. make[1]: Leaving directory '/usr/src/linux-headers-5.11.0-38-generic' NVIDIA: left KBUILD. nvidia.ko failed to build! make: *** [Makefile:202: nvidia.ko] Error 1 make: Target 'module' not remade because of errors.
Ez röviden azt jelenti, hogy a 340.108-as Nvidia illesztőprogram teljes egészében inkompatibilis a jelenlegi kernellel. Nem mintha eddig nem lett volna sejthető.
[morgás on] Mivel ez a probléma nem tegnap ugrott ki a bokorból, ráadásul az alapértelmezett, hosszan támogatott Ubuntu HWE csomaggal jön elő, nem igazán értem, hogy miért nincs még javítva. Akár úgy is, hogy átlag felhasználó ne is tudja a zárt illesztőprogramok közül telepíteni az inkompatibilis illesztőprogramot. [morgás off]
Megoldás #1: Használhatod tovább a meglévő 5.11-es kerneledet, ugyanakkor be kell érned a Nouveou-val. Ezt az utat akkor javaslom, hogy van olyan hardvered, amit a Linux 5.11 támogat, de a korábbi 5.4 még nem. Ugyanakkor együtt tudsz élni azzal a tudattal, hogy a Nouveou sok esetben lassabb és bugosabb lehet mint a gyári illesztőprogram, illetve az energiagazdálkodás területén lévő hiányosságai miatt előfordulhat, hogy a videokártyád jobban melegszik (ami laptop esetén csökkent üzemidőt jelent).
Ha ezt választod, akkor töröld az illesztőprogramot:
# apt purge nvidia-340
és indítsd újra a géped. Kész vagy.
Megoldás #2: Telepíted a továbbra is hosszan támogatott, de mindenképp régebbi 5.4-es Linux kernelt. Előnye, hogy megy vele a gyári Nvidia illesztőprogram, hátránya, hogy az 5.4 relatív régi kernel, és ha újabb hardvered van lehet, hogy döcögős a támogatás.
Ebben az esetben először távolítsd el a nem működő illesztőprogram darabjait:
# apt purge nvidia-340
Majd telepítsd a linux-generic csomagot:
# apt install linux-generic
Indítsd újra a gépet és nézd meg, hogy elindul-e az 5.4-es kernel, és minden működik-e vele. Az 5.4-esnek kell(ene) az alapértelmezettnek lennie, elvileg ez tölt be automatikusan. Ugyanakkor mindenképp figyelj indításkor, hogy mi indul el. Ha az 5.11-es lenne az alapértelmezett, akkor kézzel indítsd el az 5.4-est. Látványos előrelépés, hogy újra van grafikus felület. Hurrá!
Töröld a linux-generic-hwe-20.04 csomagot:
# apt purge linux-generic-hwe-20.04
Lesznek innentől szükségtelenné vált csomagok, ezeket is érdemes törölni:
# apt autoremove
Lehet, hogy beragadt pár 5.11-es kernel csomag, amiket az autoremove nem szúrt ki. Takarítsuk le ezeket is:
# apt purge linux-image-*5.11*
Végül telepítsd a zárt illesztőprogramot. Ezt megteheted a következő paranccsal vagy grafikus felületen a megszokott „Szoftver és frissítések” ablak „További illesztőprogramok” fülén. Nincs különbség.
# ubuntu-drivers install nvidia
A telepítés ezúttal sikerülni fog (remélem, két gépen is tesztelve). Indítsd újra a géped és kész is vagy.
Jogosan merülhet fel a kérdés, hogy mi a különbség az # ubuntu-drivers install nvidia
módú illesztőprogram telepítés és az # apt install nvidia-340
közt. A válasz az, hogy míg az apt-os megoldás csak magát az illesztőprogramot teszi fel (ami sokszor elég is), az ubuntu-drivers még extra konfigurálást és egyéb telepítéseket is végez, mindezt azért, hogy minél jobb legyen a felhasználói élmény. Például míg az ubuntu-drivers felteszi az nvidia-settings grafikus beállítóprogramot, addig az apt-os megoldás nem.