Ядро & Оборудование
   903

[РЕШЕНО] nvidia-340xx есть ли жизнь без поддержки?

Ребят, подскажите, пожалуйста, есть ли способ использовать проприетарный драйвер который больше не поддерживается? Может кто собирал из AURа или из .run скрипта? поделитесь опытом.
Карта — GeForce 9600GT.

37 комментариев

avatar
.run с сайта нвидиа сразу надо забыть. А в манжаро nvidia-340 есть в репах. Пока проблем нет.
0
avatar
В репах то оно есть, да только вот ставить отказывается
Спойлер!
$ sudo mhwd -a pci nonfree 0300
> Using config 'video-nvidia-340xx' for device: 0000:01:00.0 (0300:10de:0622) Display controller nVidia Corporation G94 [GeForce 9600 GT]
> Installing video-nvidia-340xx…
Sourcing /etc/mhwd-x86_64.conf
Has lib32 support: true
Sourcing /var/lib/mhwd/db/pci/graphic_drivers/nvidia-340xx/MHWDCONFIG
Processing classid: 0300
Sourcing /var/lib/mhwd/scripts/include/0300
Processing classid: 0302
:: Обновление баз данных пакетов…
ошибка: не найдена цель: linux58-nvidia-340xx
core не устарел
extra не устарел
community не устарел
multilib не устарел
Error: pacman failed!
Error: script failed!

Зачем он пытается ставить linux58-nvidia-340xx, которого нет — вопрос. Подумал, что он вяжется к версии ядра, которая 5.8...., загрузился с более ранним ядром, он все равно ищет inux58-nvidia-340xx.
Так что вопрос остается открытым.
0
avatar
Попробуйте загрузку с лайф сд с несвободными драйверами. Уже на этом этапе будет все понятно.
?
p5ql/epu q9300
0
avatar
Пробовал такой вариант, не загрузился.
0
avatar
Пока решения нет. На Linux58 драйвера нет. Сам на компе (на работе) остался на Linux57, так-как со свободными (на этом ящике) есть артефакты.
0
avatar
DKMS же в AUR есть.
0
avatar
из AUR не собирается, ругается на отсутствие исходников ядра, как я понимаю.
Спойлер!
Сборка nvidia-340xx…
/var/tmp/pamac-build-jaro/nvidia-340xx/PKGBUILD: строка 30: /usr/src/linux/version: Нет такого файла или каталога
==> Сборка пакета nvidia-340xx 340.108-12 (Вс 25 окт 2020 13:52:03)
==> Проверка зависимостей для запуска…
==> Проверка зависимостей для сборки…
==> Получение исходных файлов…
-> Найден NVIDIA-Linux-x86_64-340.108-no-compat32.run
-> Найден 0001-kernel-5.7.patch
-> Найден 0002-kernel-5.8.patch
-> Найден 0003-kernel-5.9.patch
==> Проверка файлов source с использованием b2sums…
NVIDIA-Linux-x86_64-340.108-no-compat32.run… Готово
0001-kernel-5.7.patch… Готово
0002-kernel-5.8.patch… Готово
0003-kernel-5.9.patch… Готово
==> Удаление директории '$srcdir/'…
==> Распаковка исходных файлов…
==> Запускается 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
==> Удаление директории '$pkgdir/'…
==> Запускается build()…
NVIDIA: calling KBUILD…
make[1]: *** /usr/src/linux: Нет такого файла или каталога. Останов.
NVIDIA: left KBUILD.
nvidia.ko failed to build!
make: *** [Makefile:202: nvidia.ko] Ошибка 1
==> ОШИБКА: Произошел сбой в build().
Прерывание…
0
avatar
linux***-headers?
0
avatar
linux***-headers?
та нет, скрипт просто модули искал, они в арче видать их в /usr/src/linux положили
?
Отправка специалистом технической поддержки ссылки на руководство по эксплуатации и другую документацию, не является отказом в предоставлении поддержки.
bash.org
0
avatar
У меня скрипт и на ядре 5.7… выдает тот-же результат
Спойлер!
[[email protected] ~]$ uname -a
Linux st1 5.7.19-2-MANJARO 1 SMP PREEMPT Fri Aug 28 20:22:12 UTC 2020 x86_64 GNU/Linux
[[email protected] ~]$ sudo mhwd -a pci nonfree 0300
> Using config 'video-nvidia-340xx' for device: 0000:01:00.0 (0300:10de:0622) Display controller nVidia Corporation G94 [GeForce 9600 GT]
> Installing video-nvidia-340xx…
Sourcing /etc/mhwd-x86_64.conf
Has lib32 support: true
Sourcing /var/lib/mhwd/db/pci/graphic_drivers/nvidia-340xx/MHWDCONFIG
Processing classid: 0300
Sourcing /var/lib/mhwd/scripts/include/0300
Processing classid: 0302
:: Обновление баз данных пакетов…
предупреждение: nvidia-340xx-utils-340.108-1 не устарел — пропускается
ошибка: не найдена цель: linux58-nvidia-340xx
core не устарел
extra не устарел
community не устарел
multilib не устарел
Error: pacman failed!
Error: script failed!
[[email protected] ~]$
0
avatar
Попробовать как посоветовал Gambit_VKM стоит.
?
p5ql/epu q9300
0
avatar
yay nvidia-340xx-dkms:
Спойлер!
==> Исходные файлы готовы.
/home/unit/.cache/yay/nvidia-340xx/PKGBUILD: строка 30: /usr/src/linux/version: Нет такого файла или каталога
==> ОШИБКА: Cannot find the fakeroot binary.
ошибка сборки: nvidia-340xx (nvidia-340xx-dkms)
Последний раз редактировалось
0
avatar
Загляните Коментарии
?
p5ql/epu q9300
0
avatar
Не уверен, что я на 100% понимаю суть проблемы, но на мой взгляд проблема, в моем случае, заключается в отсутствии исходников ядра (или уже собранного ядра) по пути /usr/src/linux/version. Каждая попытка собрать пакет из AUR (с разными версиями ядра) обрывается сообщением — ".../usr/src/linux/version: Нет такого файла или каталога", т.к. скрипт пытается наложить патчи на ядро, а ядро по искомому пути отсутствует.)
а в приведенной Вами ссылке они во-всю обсуждают работоспособность самих патчей)
0
avatar
надо этот путь в PKGBUILD`e поменять
?
Отправка специалистом технической поддержки ссылки на руководство по эксплуатации и другую документацию, не является отказом в предоставлении поддержки.
bash.org
+1
avatar
Так а где найти иходники/заголовки? на что менять?) я, кроме бинарных пакетов, которые в кэше pacman, не нашел ничего связанного с ядром.
0
avatar
ищи в /usr/lib/modules/extramodules…
и редактиируй пкгбуилд под свое конкретное ядро, я бы помог, но у меня 390 нивидиа, и чтобы его собрать, надо полсистемы удалить, будут вопросы пищи, будем разбираться
Последний раз редактировалось
?
Отправка специалистом технической поддержки ссылки на руководство по эксплуатации и другую документацию, не является отказом в предоставлении поддержки.
bash.org
+2
avatar
В общем исходники нашел, пути указал, сборка продвинулась, но не далеко)
Спойлер!
==> Запускается build()…
NVIDIA: calling KBUILD…
make[1]: вход в каталог «/usr/lib/modules/5.9.1-1-MANJARO»
make[1]: *** Нет правила для сборки цели «modules». Останов.
make[1]: выход из каталога «/usr/lib/modules/5.9.1-1-MANJARO»
NVIDIA: left KBUILD.
nvidia.ko failed to build!
make: *** [Makefile:202: nvidia.ko] Ошибка 1
==> ОШИБКА: Произошел сбой в build().
Прерывание…
теперь ему правила сборки модулей подавай!)
0
avatar
пробуй во так, только поменяй на свое ядро
Спойлер!
# Maintainer: Jerry Xiao <[email protected]>
# Maintainer: graysky <graysky AT archlinux DOT us>
# Contributor: Giancarlo Razzolini <grazzoliniarchlinux.org>
# Contributor: Eric Bélanger <ericarchlinux.org>

pkgbase=nvidia-340xx
pkgname=(nvidia-340xx nvidia-340xx-dkms)
pkgver=340.108
pkgrel=12
pkgdesc="NVIDIA drivers for linux, 340xx legacy branch"
arch=('x86_64')
url="https://www.nvidia.com/"
makedepends=("nvidia-340xx-utils=${pkgver}" 'linux>=5.5' 'linux-headers>=5.5')
conflicts=('nvidia')
license=('custom')
options=(!strip)
source=("https://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/NVIDIA-Linux-x86_64-${pkgver}-no-compat32.run"
  0001-kernel-5.7.patch
  0002-kernel-5.8.patch
  0003-kernel-5.9.patch
)
b2sums=('6538bbec53b10f8d20977f9b462052625742e9709ef06e24cf2e55de5d0c55f1620a4bb21396cfd89ebc54c32f921ea17e3e47eaa95abcbc24ecbd144fb89028'
        '7150233df867a55f57aa5e798b9c7618329d98459fecc35c4acfad2e9772236cb229703c4fa072381c509279d0588173d65f46297231f4d3bfc65a1ef52e65b1'
        'b436095b89d6e294995651a3680ff18b5af5e91582c3f1ec9b7b63be9282497f54f9bf9be3997a5af30eec9b8548f25ec5235d969ac00a667a9cddece63d8896'
        '947cb1f149b2db9c3c4f973f285d389790f73fc8c8a6865fc5b78d6a782f49513aa565de5c82a81c07515f1164e0e222d26c8212a14cf016e387bcc523e3fcb1')
_pkg="NVIDIA-Linux-x86_64-${pkgver}-no-compat32"

# default is 'linux' substitute custom name here
_kernelname=linux
_kernver="$(</usr/src/$_kernelname/version)"
_kernver="$(</lib/modules/extramodules-5.8-MANJARO/version)"
_extradir="/usr/lib/modules/$_kernver/extramodules"

prepare() {
  sh "${_pkg}.run" --extract-only

  cd "${_pkg}"
  patch -Np1 -i ../0001-kernel-5.7.patch
  patch -Np1 -i ../0002-kernel-5.8.patch
  patch -Np1 -i ../0003-kernel-5.9.patch

  cp -a kernel kernel-dkms
}

build() {
  cd "${_pkg}/kernel"
  make SYSSRC="/usr/src/$_kernelname" module
  make SYSSRC=/usr/lib/modules/"${_kernver}/build" module

  cd uvm
  make SYSSRC="/usr/src/$_kernelname" module
  make SYSSRC=/usr/lib/modules/"${_kernver}/build" module
}

package_nvidia-340xx() {
  pkgdesc="NVIDIA drivers for linux, 340xx legacy branch"
  depends=('linux>=5.3.6' "nvidia-340xx-utils=$pkgver" 'libgl')

  install -Dt "${pkgdir}${_extradir}" -m644 \
    "${srcdir}/${_pkg}/kernel"/{nvidia,uvm/nvidia-uvm}.ko

  find "${pkgdir}" -name '*.ko' -exec gzip -n {} +

  echo "blacklist nouveau" |
    install -Dm644 /dev/stdin "${pkgdir}/usr/lib/modprobe.d/nvidia-340xx.conf"
}

package_nvidia-340xx-dkms() {
    pkgdesc="NVIDIA driver sources for linux, 340xx legacy branch"
    depends=('dkms' "nvidia-340xx-utils=$pkgver" 'libgl')
    optdepends=('linux-headers: Build the module for Arch kernel')
    provides=("nvidia-340xx=$pkgver")
    conflicts+=('nvidia-340xx')

    cd "${_pkg}"

    install -dm 755 "${pkgdir}"/usr/src
    cp -dr --no-preserve='ownership' kernel-dkms "${pkgdir}/usr/src/nvidia-${pkgver}"
    cat "${pkgdir}"/usr/src/nvidia-${pkgver}/uvm/dkms.conf.fragment >> "${pkgdir}"/usr/src/nvidia-${pkgver}/dkms.conf

    echo "blacklist nouveau" |
        install -Dm644 /dev/stdin "${pkgdir}/usr/lib/modprobe.d/${pkgname}.conf"
}

# vim:set ts=2 sw=2 et:
Последний раз редактировалось
?
Отправка специалистом технической поддержки ссылки на руководство по эксплуатации и другую документацию, не является отказом в предоставлении поддержки.
bash.org
0
avatar
блин, оно решетки посъедало, вот pastebin.com/7LSa4Kjv<
manjarqo, это лечится?
Последний раз редактировалось
?
Отправка специалистом технической поддержки ссылки на руководство по эксплуатации и другую документацию, не является отказом в предоставлении поддержки.
bash.org
0
avatar
В общем в скриптах не силен (100 раз уже переписал PKGBUILD) в итоге снова ошибка:
Спойлер!
[[email protected] nvidia-340xx]$ makepkg -sri
==> Сборка пакета nvidia-340xx 340.108-12 (Вт 27 окт 2020 13:57:12)
==> Проверка зависимостей для запуска…
==> Проверка зависимостей для сборки…
==> Получение исходных файлов…
-> Найден NVIDIA-Linux-x86_64-340.108-no-compat32.run
-> Найден 0001-kernel-5.7.patch
-> Найден 0002-kernel-5.8.patch
-> Найден 0003-kernel-5.9.patch
==> Проверка файлов source с использованием b2sums…
NVIDIA-Linux-x86_64-340.108-no-compat32.run… Готово
0001-kernel-5.7.patch… Готово
0002-kernel-5.8.patch… Готово
0003-kernel-5.9.patch… Готово
==> Распаковка исходных файлов…
==> Запускается prepare()…
Creating directory NVIDIA-Linux-x86_64-340.108-no-compat32
The directory 'NVIDIA-Linux-x86_64-340.108-no-compat32' already exists. Please either
move the existing directory out of the way, or specify a
different directory with the '--target' option.
==> ОШИБКА: Произошел сбой в prepare().
Прерывание…
[[email protected] nvidia-340xx]$
не могу понять, что ему мешает создать каталог NVIDIA-Linux-x86_64-340.108-no-compat32.
каталог сборки:
Спойлер!
[[email protected] nvidia-340xx]$ ls -l
итого 37908
-rw-r--r-- 1 jora jora 25417 окт 27 13:31 0001-kernel-5.7.patch
-rw-r--r-- 1 jora jora 3104 окт 27 13:31 0002-kernel-5.8.patch
-rw-r--r-- 1 jora jora 3508 окт 27 13:31 0003-kernel-5.9.patch
-rw-r--r-- 1 jora jora 38769859 окт 27 13:48 NVIDIA-Linux-x86_64-340.108-no-compat32.run
-rw-r--r-- 1 jora jora 3051 окт 27 13:57 PKGBUILD
drwxr-xr-x 3 jora jora 4096 окт 27 13:57 src
[[email protected] nvidia-340xx]$
0
avatar
different directory with the '--target' option.
different directory with the '--target' option
удали папку src там где собираешь и повтори попытку, вот эту
drwxr-xr-x 3 jora jora 4096 окт 27 13:57 src

там как раз и живет каталог NVIDIA-Linux-x86_64-340.108-no-compat32, который already exists
Последний раз редактировалось
?
Отправка специалистом технической поддержки ссылки на руководство по эксплуатации и другую документацию, не является отказом в предоставлении поддержки.
bash.org
0
avatar
Всё ок, вернулись к проблеме сборки модуля)
Спойлер!
[[email protected] nvidia-340xx]$ makepkg -sri
==> Сборка пакета nvidia-340xx 340.108-12 (Вт 27 окт 2020 21:22:11)
==> Проверка зависимостей для запуска…
==> Проверка зависимостей для сборки…
==> Получение исходных файлов…
-> Найден NVIDIA-Linux-x86_64-340.108-no-compat32.run
-> Найден 0001-kernel-5.7.patch
-> Найден 0002-kernel-5.8.patch
-> Найден 0003-kernel-5.9.patch
==> Проверка файлов source с использованием b2sums…
NVIDIA-Linux-x86_64-340.108-no-compat32.run… Готово
0001-kernel-5.7.patch… Готово
0002-kernel-5.8.patch… Готово
0003-kernel-5.9.patch… Готово
==> Распаковка исходных файлов…
==> Запускается 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
==> Запускается build()…
NVIDIA: calling KBUILD…
make[1]: вход в каталог «/usr/lib/modules/5.8.16-2-MANJARO»
make[1]: *** Нет правила для сборки цели «modules». Останов.
make[1]: выход из каталога «/usr/lib/modules/5.8.16-2-MANJARO»
NVIDIA: left KBUILD.
nvidia.ko failed to build!
make: *** [Makefile:202: nvidia.ko] Ошибка 1
==> ОШИБКА: Произошел сбой в build().
Прерывание…
[[email protected] nvidia-340xx]$

В PKGBUILD изменил секцию
Спойлер!
build() {
cd "${_pkg}/kernel"
make SYSSRC="/usr/src/$_kernelname" module

cd uvm
make SYSSRC="/usr/src/$_kernelname" module

на

build() {
cd "${_pkg}/kernel"
make SYSSRC="/usr/lib/modules/$_kernelname" module

cd uvm
make SYSSRC="/usr/lib/modules/$_kernelname" module
}

где $_kernelname в начале задан как _kernelname=5.8.16-2-MANJARO
Короче хз где эти правила взять!
0
avatar
там же не так было, а вот так
build() {
cd "${_pkg}/kernel"
make SYSSRC=/usr/lib/modules/"${_kernver}/build" module

cd uvm
make SYSSRC=/usr/lib/modules/"${_kernver}/build" module

ты какой PKGBUILD использовал?
У меня все собралось с первого раза
Последний раз редактировалось
?
Отправка специалистом технической поддержки ссылки на руководство по эксплуатации и другую документацию, не является отказом в предоставлении поддержки.
bash.org
+1
avatar
меняю пути
_kernver="$(</usr/src/$_kernelname/version)"
на
_kernver="$(</usr/lib/modules/extramodules-5.9-MANJARO/version)"

make SYSSRC="/usr/lib/modules/5.9.1-1-MANJARO" module
на
make SYSSRC="/usr/lib/modules/5.9.1-1-MANJARO" module

в итоге тоже получаю Нет правила для сборки цели «modules»
Последний раз редактировалось
0
avatar
так ты не то меняешь!!!
?
Отправка специалистом технической поддержки ссылки на руководство по эксплуатации и другую документацию, не является отказом в предоставлении поддержки.
bash.org
0
avatar
я же жирным по зеленому выделил слово build где оно у тебя в строке
<code>make SYSSRC="/usr/lib/modules/extramodules-5.9-MANJARO" module</code>
?????
?
Отправка специалистом технической поддержки ссылки на руководство по эксплуатации и другую документацию, не является отказом в предоставлении поддержки.
bash.org
0
avatar
тебя должно перенаправить в каталлог /usr/lib/modules/5.9.1-1-MANJARO/build
?
Отправка специалистом технической поддержки ссылки на руководство по эксплуатации и другую документацию, не является отказом в предоставлении поддержки.
bash.org
+1
avatar
make SYSSRC="/usr/src/$_kernelname" module

на

make SYSSRC="/usr/lib/modules/extramodules-5.9-MANJARO" module
тогда это
make SYSSRC="/usr/src/$_kernelname" module
надо менять на что-то вроде этого
<code>/usr/lib/modules/5.9.1-1-MANJARO/build" module</code>
а учше оставить как было, иначе смысл _kernver теряется
?
Отправка специалистом технической поддержки ссылки на руководство по эксплуатации и другую документацию, не является отказом в предоставлении поддержки.
bash.org
0
avatar
Отдуши бро. Сборка пошла!
0
avatar
Походу изначально я скопировал pkgbuil без # и начал эти закомментированные пути менять на свои)
Стянул в чистом виде приведенный во второй ссылке PKGBUILD (версия ядра у меня совпадает) и все собралось!
0
avatar
алилуйя!!!
заработал драйвер или нет?
?
Отправка специалистом технической поддержки ссылки на руководство по эксплуатации и другую документацию, не является отказом в предоставлении поддержки.
bash.org
0
avatar
да, перегрузился, все ок!
<code>[[email protected] ~]$ inxi -G
Graphics:  Device-1: NVIDIA G94 [GeForce 9600 GT] driver: nvidia v: 340.108 
           Display: x11 server: X.Org 1.20.9 driver: nvidia unloaded: modesetting,nouveau s-res: 1920x1080 
           OpenGL: renderer: GeForce 9600 GT/PCIe/SSE2 v: 3.3.0 NVIDIA 340.108 
</code>
0
avatar
Все работает!
Graphics:  Device-1: NVIDIA GT218M [GeForce 310M] driver: nvidia v: 340.108 
           Device-2: Acer type: USB driver: uvcvideo 
           Display: x11 server: X.Org 1.20.9 driver: nvidia resolution: 1366x768~60Hz 
           OpenGL: renderer: GeForce 310M/PCIe/SSE2 v: 3.3.0 NVIDIA 340.108
Последний раз редактировалось
0
avatar
К чему в итоге пришли?
Причина невозможности установки дров выявлена?
0
avatar
Agafron, благодарю за помощь!
0
avatar
вот и чудненько. Пожалуйста!
?
Отправка специалистом технической поддержки ссылки на руководство по эксплуатации и другую документацию, не является отказом в предоставлении поддержки.
bash.org
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.