Драйверы NVidia для нового ядра (старая карта)

Имею относительно старую видеокарту GF9600GT, openSUSE Tumbleweed.

Для этой карты нужен драйвер G03 (340.108 на данный момент).
В репозитории Tumbleweed такой отсутствует.

Приходится использовать установщик от NVidia: NVIDIA-Linux-x86_64-340.*.run. Но со сменой версии ядра почти всегда возникают проблемы при компиляции и установке. NVidia не успевает обновлять (или не стремится). Патчи под новое ядро появляются, тем не менее. Если хорошо напрячься, то можно поискать и пропатчить нвидевский установщик.

В очередной раз искал патч для ядра 5.6. Нашёл сайт с готовым пропатченным инсталлятором](https://www.if-not-true-then-false.com/). Там ориентир на Fedora, но не важно в данном случае. Установил NVIDIA-Linux-x86_64-340.108-patched-kernel-5.6.run. Работает с ядром 5.6.12-1-default.

Ссылка на страницу с файлами:
https://nvidia.if-not-true-then-false.com/

… но зачем?!

Другие возможности:

  1. Nvidia Kepler и новее
  2. ATI/AMD Radeon + Mesa 3D
  3. Leap с постоянным ядром (5.3 у Leap 15.2)

Зачем мне эти советы?

Они могут быть не для тебя.

Пытался собрать на пропатченом под 5.9 штатное ядро от 15.2 не собирается 340.108, что вы делали?? Опишите пожалуйста подробно.
Дело в том что сначала мне выдавало ошибку:

ERROR: Neither the ‘/usr/src/linux/include/linux/version.h’ nor the ‘/usr/src/linux/include/generated/uapi/linux/version.h’ kernel header file exists. The most likely reason
for this is that the kernel source files in ‘/usr/src/linux’ have not been configured.

потом стал искать этот файл и у меня он есть

find / -name version.h

/usr/src/linux-5.3.18-lp152.50/arch/x86/math-emu/version.h
/usr/src/linux-5.3.18-lp152.50/include/xen/interface/version.h
/usr/src/linux-5.3.18-lp152.50/include/uapi/linux/dvb/version.h
/usr/src/linux-5.3.18-lp152.50/drivers/net/ethernet/chelsio/cxgb3/version.h
/usr/src/linux-5.3.18-lp152.50/drivers/net/wireless/ath/carl9170/version.h
/usr/src/linux-5.3.18-lp152.50/drivers/net/wireguard/version.h
/usr/src/linux-5.3.18-lp152.50-obj/x86_64/preempt/include/generated/uapi/linux/version.h
/usr/src/linux-5.3.18-lp152.50-obj/x86_64/preempt/include/config/arch/want/compat/ipc/parse/version.h
/usr/src/linux-5.3.18-lp152.50-obj/x86_64/preempt/include/config/suse/version.h
/usr/src/linux-5.3.18-lp152.50-obj/x86_64/preempt/include/config/gcc/version.h
/usr/src/linux-5.3.18-lp152.50-obj/x86_64/preempt/include/config/clang/version.h
/usr/src/linux-5.3.18-lp152.50-obj/x86_64/default/include/generated/uapi/linux/version.h
/usr/src/linux-5.3.18-lp152.50-obj/x86_64/default/include/config/arch/want/compat/ipc/parse/version.h
/usr/src/linux-5.3.18-lp152.50-obj/x86_64/default/include/config/suse/version.h
/usr/src/linux-5.3.18-lp152.50-obj/x86_64/default/include/config/gcc/version.h
/usr/src/linux-5.3.18-lp152.50-obj/x86_64/default/include/config/clang/version.h
/usr/include/elfutils/version.h
/usr/include/linux/version.h
/usr/include/linux/dvb/version.h
/home/usr/include/linux/version.h
/home/usr/include/linux/dvb/version.h
find: ‘/run/user/1000/gvfs’: Отказано в доступе

Я его скопировал в нужную папку но при сборке модуля вываливается ошибка

-> Performing CC sanity check with CC=“/usr/bin/cc”.
-> Kernel source path: ‘/usr/src/linux’
-> Kernel output path: ‘/usr/src/linux’
-> Performing rivafb check.
-> Performing nvidiafb check.
-> Performing Xen check.
-> Performing PREEMPT_RT check.
-> Cleaning kernel module build directory.
executing: ‘cd ./kernel; /usr/bin/make clean’…
-> Building NVIDIA kernel module:
executing: ‘cd ./kernel; /usr/bin/make module SYSSRC=/usr/src/linux SYSOUT=/usr/src/linux NV_BUILD_MODULE_INSTANCES=’…
NVIDIA: calling KBUILD…
make[1]: Entering directory ‘/usr/src/linux-5.3.18-lp152.50’
test -e include/generated/autoconf.h -a -e include/config/auto.conf || (
echo >&2;
echo >&2 " ERROR: Kernel configuration is invalid.“;
echo >&2 " include/generated/autoconf.h or include/config/auto.conf are missing.”;
echo >&2 " Run ‘make oldconfig && make prepare’ on kernel src to fix it.";
echo >&2 ;
/bin/false)

 ERROR: Kernel configuration is invalid.
        include/generated/autoconf.h or include/config/auto.conf are missing.
        Run 'make oldconfig && make prepare' on kernel src to fix it.

Makefile:612: include/config/auto.conf: No such file or directory
make[1]: *** [Makefile:690: include/config/auto.conf] Error 1
make[1]: Leaving directory ‘/usr/src/linux-5.3.18-lp152.50’
NVIDIA: left KBUILD.
nvidia.ko failed to build!
make: *** [Makefile:202: nvidia.ko] Error 1
-> Error.
ERROR: Unable to build the NVIDIA kernel module.
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.

ЗЫ Карта GF 8600GT M на ноуте DELL.

https://forums.developer.nvidia.com/t/patches-for-340-108-and-5-6-rc-need-help-with-driver-init/111760/12

У меня скаченные по ссылке установщики драйверов выдают такую ошибку

ERROR: Neither the ‘/usr/src/linux/include/linux/version.h’ nor the ‘/usr/src/linux/include/generated/uapi/linux/version.h’ kernel header file exists. The most likely reason
for this is that the kernel source files in ‘/usr/src/linux’ have not been configured.

Что я не так делаю!? Помогите пожалуйста!

Файлы ядра для разработки установлены?

YaST -> Шаблоны -> “Разработка ядра Linux”.

  • “Разработка на С/С++” и “Основы разработки” наверное.

Нужны пакеты kernel-devel и kernel-default-devel.