Instalacja sterownika nvidia 340.108

Witam mam problem z instalacją sterownika. Posiadam laptopa SAMSUNG R580

  • Procesor: Intel Core i5-520M (2.40 GHz / L2 cache 3 MB)
  • Chipset: Intel HM55
  • Pamięć operacyjna: 8 GB (4 GB + 4 GB) DDR3 RAM
  • Grafika: nVIDIA GeForce GT 330M z 1 GB własnej pamięci
  • Dysk twardy: 120GD SSD
  • Komunikacja: WiFi 802.11 b/g/n, Bluetooth 2.1+EDR, LAN

Wiem, że te strowniki nie są wspierane przez NVIDIA od ponad roku. Ostatnie oficjalne wydanie było dla kernel 5.4.

Znalazłem pachowane sterowniki nvidia z kernelem, ale są tylko do wersji kernela 5.8
https://nvidia.if-not-true-then-false.com

Poszperałem dalej i znalazłem tutorial na angielskim forum manjaro, że jest możliwość instalacji tych sterowników na wyższych kernelach, ale trzeba sterownik zintegrować z posiadanym w manjaro kernelem. Myślałem, że uda mi się samemu przygotować taki sterownik, ale się przeliczyłem.

Proszę o pomoc przy przygotowaniu takich sterowników i uruchomiu na manjaro.
Chyba, że jest ktoś kto zna inny łatwiejszy sposób na uruchomieniu 340xx na kernelu 5.15.

A w czym konkretnie jest problem? Jakie błędy, na jakim etapie się pojawiają? Te instrukcje, z tego co wiem, wciąż są aktualne i powinny działać bez problemu.

Na stronie
https://www.if-not-true-then-false.com/
są sterowniki do jądra 5.17 włącznie.
Ostatnia aktualizacja 21.05.2022r.
Właśnie je zainstalowałem na 5.17, działają bez zarzutu.

Oczywiście wykonałem wcześniejsze kroki przed przystąpieniem do kompilacji

Kompiluje plik pobrany ze źródła

 git clone https://github.com/philmmanjaro/nvidia-340xx-dkms.git
cd ../nvidia-340xx-dkms && makepkg -si

przy wykonywaniu kompilacji wyskakuje błąd

[maciej@maciej-virtualbox lib32-nvidia-340xx-utils]$ cd ../nvidia-340xx-dkms && makepkg -si
==> Tworzenie pakietu: nvidia-340xx 340.108-1 (śro, 25 maj 2022, 13:31:23)
==> Sprawdzanie zależności potrzebnych do uruchomienia...
==> Sprawdzanie zależności potrzebnych do budowy...
==> Pobieranie źródeł...
  -> Pobieranie NVIDIA-Linux-x86_64-340.108-no-compat32.run...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 36.9M  100 36.9M    0     0  5128k      0  0:00:07  0:00:07 --:--:-- 5491k
  -> Znaleziono 0001-kernel-5.7.patch
  -> Znaleziono 0002-kernel-5.8.patch
  -> Znaleziono 0003-kernel-5.9.patch
  -> Znaleziono 0004-kernel-5.10.patch
==> Sprawdzanie plików source za pomocą b2sums...
    NVIDIA-Linux-x86_64-340.108-no-compat32.run ... Zgadza się
    0001-kernel-5.7.patch ... Zgadza się
    0002-kernel-5.8.patch ... Zgadza się
    0003-kernel-5.9.patch ... Zgadza się
    0004-kernel-5.10.patch ... Zgadza się
==> Rozpakowywanie źródeł...
==> Rozpoczynanie prepare()...
Creating directory NVIDIA-Linux-x86_64-340.108-no-compat32
Verifying archive integrity... OK
Uncompressing NVIDIA Accelerated Graphics Driver for Linux-x86_64 340.108...........................................................................................................................................................................................................
patching file kernel/Makefile
patching file kernel/conftest.sh
patching file kernel/dkms.conf
patching file kernel/nv-drm.c
patching file kernel/nv-linux.h
patching file kernel/nv-procfs.c
patching file kernel/nv-time.h
patching file kernel/nv.c
patching file kernel/os-interface.c
patching file kernel/uvm/Makefile
patching file kernel/uvm/conftest.sh
patching file kernel/uvm/nvidia_uvm_lite.c
patching file kernel/nv-linux.h
patching file kernel/nvidia-modules-common.mk
patching file kernel/os-mlock.c
patching file kernel/uvm/nvidia_uvm_lite_api.c
patching file kernel/nv-drm.c
patching file kernel/nv-linux.h
patching file kernel/nv.c
patching file kernel/uvm/nvidia_uvm_linux.h
patching file kernel/nv-drm.c
Hunk #1 succeeded at 364 (offset 42 lines).
==> Wchodzenie do środowiska fakeroot...
==> Rozpoczynanie package_nvidia-340xx-dkms()...
==> Sprzątanie instalacji...
  -> Usuwanie libtool plików...
  -> Usuwanie niechcianych plików...
  -> Usuwanie statycznych plików bibliotek
  -> Kompresowanie stron man oraz info...
==> Sprawdzanie problemów z pakietami...
==> Tworzenie pakietu "nvidia-340xx-dkms"...
  -> Generowanie pliku .PKGINFO...
  -> Generowanie pliku .BUILDINFO...
  -> Generowanie pliku .MTREE...
  -> Kompresowanie pakietu...
==> Opuszczanie środowiska fakeroot.
==> Ukończono tworzenie: nvidia-340xx 340.108-1 (śro, 25 maj 2022, 13:31:35)
==> Instalowanie grupy pakietów nvidia-340xx za pomocą pacman -U...
wczytywanie pakietów…
rozwiązywanie zależności…
szukanie sprzecznych pakietów...

Pakiety (2) dkms-3.0.3-1  nvidia-340xx-dkms-340.108-1

Do pobrania:         0,04 MiB
Do zainstalowania:  14,74 MiB

:: Kontynuować instalację? [T/n] t
:: Pobieranie pakietów…
 dkms-3.0.3-1-any       36,2 KiB  41,6 KiB/s 00:01 [######################] 100%
(2/2) sprawdzanie kluczy w bazie                   [######################] 100%
(1/2) sprawdzanie spójności pakietów               [######################] 100%
(1/2) wczytywanie listy plików                     [######################] 100%
(2/2) sprawdzanie konfliktów plików                [######################] 100%
(2/2) sprawdzanie dostępnego miejsca na dysku      [######################] 100%
:: Przetwarzanie zmian pakietu... 
(1/2) instalowanie dkms                            [######################] 100%
Opcjonalne zależności dla dkms
    linux-headers: build modules against the Arch kernel [zainstalowano]
    linux-lts-headers: build modules against the LTS kernel
    linux-zen-headers: build modules against the ZEN kernel
    linux-hardened-headers: build modules against the HARDENED kernel
(2/2) instalowanie nvidia-340xx-dkms               [######################] 100%
Opcjonalne zależności dla nvidia-340xx-dkms
    linux-headers: Build the module for Manjaro kernel [zainstalowano]
:: Uruchamianie po-transakcji...
(1/2) Arming ConditionNeedsUpdate...
(2/2) Install DKMS modules
==> dkms install --no-depmod nvidia/340.108 -k 5.15.41-1-MANJARO
Error! Bad return status for module build on kernel: 5.15.41-1-MANJARO (x86_64)
Consult /var/lib/dkms/nvidia/340.108/build/make.log for more information.
==> WARNING: `dkms install --no-depmod nvidia/340.108 -k 5.15.41-1-MANJARO' exited 10

w związku z tym, że jestem świeży w kwestii linuxa nie jestem w stanie poradzić sobie z tym błędem

czy wykonałeś kompilacje zgodnie z tym tutorialem :

inttf NVIDIA 340.xx, 418.xx, 435.xx Patcher for Kernel 5.17/5.16/5.15/5.14/5.13 [BASH Script] – If Not True Then False ?

tu jest przedstawiony sam proces kompilacji. Czy byłbyś tak uprzejmy i napisał mi krok po kroku jak takie sterowniki zainstalować po kompilacji?

Czy przy instalacji sterownika 340.xx mogę się wspierać instrukcją przedstawioną przez kolegę Bartka z kanału Świat Linuxa?

Sposób jaki przywołałeś w pierwszym swoim wpisie działa do jądra 5.10 włącznie.
Krótki opis postępowania ze skryptem ze strony if-not… zawarłem we wpisie
tutaj
Jeśli zbyt lakoniczny (nie wiem jak zaawansowany jesteś, np czy posługujesz się mc ) to postaram się go rozwinąć.

Jestem początkującym użytkownikiem linuxa. Nawet nie wiem co znaczy skrót “mc”. Po mimo tego, że jestem świeżakiem to staram się na własną rękę znaleźć rozwiązania napotkanych problemów, aby móc się czegoś nauczyć. Niestety zdarzają się sytuacje jak ta ze sterownikami, że sytuacja mnie przerasta. Dlatego postanowiłem poszukać pomocy u innych użytkowników bardziej zaznajomionych z linuxem.

Ten komunikat wygląda niemal dokładnie tak samo jak ten. Rozwiązaniem jest dodanie export IGNORE_CC_MISMATCH=1 do /etc/profile, restart komputera i ponowne wykonanie tych instrukcji:

Twój wpis z 25.05 13:46 sugeruje że przeszedłeś proces łatania przy pomocy skryptu

inttf-nvidia-patcher.sh

W takim razie w katalogu, w którym uruchamiałeś skrypt pojawił się zbiór
NVIDIA-Linux-x86_64-340.108-patched-kernel-5.17.run
Sprawdź to poleceniem ls.
Teraz musisz przejść do trybu znakowego np naciskając Ctrl-Alt-F2.
Zaloguj się jako root., przejdź do katalogu, w którym jest
NVIDIA-Linux-x86_64-340.108-patched-kernel-5.17.run
i uruchom go:

./NVIDIA-Linux-x86_64-340.108-patched-kernel-5.17.run

Program poprosi o akceptację warunków licencji po czym rozpocznie pracę od czasu do czasu zadając pytania lub żądając potwierdzenia komunikatu. Wszystkie potwierdzaj ENTER-em. Na końcu zakomunikuje że sterowniki zostały pomyślnie zainstalowane.
W trakcie instalacji na ekranie mogą pojawić się różne śmieci, nie przejmuj się tym.

Reboot i komputer powinien wystartować w trybie graficznym na sterownikach zamkniętych.

Przy próbie instalacji sterownika otrzymuje taki komunikat błędu:

ERROR: You appear to be running an X server; please exit X before installing.  For further details, please see the section INSTALLING THE NVIDIA DRIVER in the README available on the Linux driver download page at www.nvidia.com.
ERROR: Installation has failed.  Please see the file '/var/log/nvidia-installer.log' for details.  You may find suggestions on fixing installation problems in the README available on the Linux driver download page at www.nvidia.com.

No to zbliżamy się do pomyślnego końca.
Po Ctrl-Alt-F2 i zalogowaniu się jako root wydaj polecenie
systemctl isolate multi-user
To polecenie przełącza system w tryb czysto znakowy, bez X-ów.
dalej jak poprzednio:

./NVIDIA-Linux-x86_64-340.108-patched-kernel-5.17.run

Po wykonaniu polecenia:

systemctl isolate multi-user

Podczas instalacji występują następujące błędy:

Czy zrobiłeś reboot tak jak w komunikacie na 2. foto?
Jeśli tak to jak wystartował komp? W trybie graficznym czy znakowym?

Poradziłem sobie z problemem. Sterowniki udało się zainstalować wszystko pięknie działa.

Problem udało się rozwiązać na podstawie postu:

wystarczyło utworzyć plik:

sudo nano /etc/X11/xorg.conf.d/30-nvidia-ignoreabi.conf

i dodać do pliku następującą zawartość:

Section "Files"
  ModulePath   "/usr/lib64/nvidia/xorg"
  ModulePath   "/usr/lib64/xorg/modules"
EndSection

Section "Device"
  Identifier "Nvidia Card"
  Driver "nvidia"
  VendorName "NVIDIA Corporation"
EndSection

Section "ServerFlags"
  Option "IgnoreABI" "1"
EndSection

W moim przypadku pojawił się jeszcze błąd nagłówków jądra

rozwiązałem go zgodnie z tym poradnikiem:

Po rozwiązaniu powyższych problemów sterowniki zainstalowały się i system po restarcie uruchomił się w trybie graficznym już na świeżo zainstalowanych sterownikach nvidia340.xx-patch.

Bardzo dziękuje za pomoc przy rozwiązaniu problemu kolego “flasza”. Temat uważam za zamknięty.

Cieszę się że się udało.
Muszę przyznać że się zagapiłem i nie powiedziałem ci o nagłówkach do jądra.
Ważna jest też linia

Option "IgnoreABI" "1"

Problem był opisywany na forum kilka miesięcy temu.

Pozdrowienia!

Jeszcze mam jedno pytanie odnośnie realizacji przełączania się karty graficznej miedzy zintegrowaną, a dedykowaną. Czy w linuxie takie coś w ogóle jest realizowane? W windows było tak, że system i programy odpalały się na karcie zintegrowanej. Aby program lub gra odpalały się na karcie dedykowanej trzeba było w ustawieniach karty wskazać program, który miał się odpalać na karcie o wyższej wydajności.