Porteus и NVIDIA. Собираем актуальный драйвер для видеокарты

Добро пожаловать!

Moderator: Blaze

Post Reply
User avatar
Blaze
DEV Team
DEV Team
Posts: 2618
Joined: 28 Dec 2010, 11:31
Distribution: ⟰ Porteus current ☯ all DEs ☯
Location: ☭ Russian Federation, Lipetsk region, Dankov
Contact:

Porteus и NVIDIA. Собираем актуальный драйвер для видеокарты

Post#1 by Blaze » 15 May 2016, 17:29

Как сделать xzm модуль-драйвер для видеокарты NVIDIA
1. Заходим на сайт nvidia.ru в раздел 'Драйверы > Загрузить драйверы'

2. Вручную выбирете Вашу NVIDIA видео карту, а так же разрядность операционной системы Linux 32-bit (i586) или 64-bit (x86_64) и нажимаем кнопку 'Поиск'
Image

3. Нажимаем кнопку 'Загрузить сейчас'
Image

4. Нажимаем кнопку 'Принять и скачать'
Image

5. Также загрузите 05-devel.xzm и crippled_sources.xzm (Внимание! Приведенные ниже ссылки относятся к Porteus 4.0, когда вы запускаете любую другую версию Porteus, вам необходимо загрузить разные версии 05-devel.xzm и crippled_sources.xzm. Обновленную версию ядра, включая crippled_sources.xzm можно получить согласно теме - Как обновить kernel (ядро) в Porteus):

под разрядность операционной системы Porteus:

- 05-devel.xzm (i586)
- crippled_sources.xzm (i586)

или

- 05-devel.xzm (x86_64)
- crippled_sources.xzm (x86_64)

5.1 Скачайте nvidia.sh - скрипт для создания xzm модуля nvidia

Code: Select all

#!/bin/bash
# Build of Nvidia video driver, cleaning and compressing to xzm module for Porteus
# You can use this script for both architectures i586 or x86_64

# Version 2019-07-30

# Written by Blaze <admin at ublaze.ru>
# Modified by fulalas
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
#
#  THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
#  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
#  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO
#  EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
#  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
#  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
#  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
#  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
#  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

# Root check
if [ `whoami` != "root" ]; then
	echo -e "\e[1m\e[31mOnly root can run this.\e[0m"
	exit 1
fi

# Creating installer variable and folder
MODULES_FOLDER=$(readlink -f /mnt/live/porteus/modules)
INSTALL_TEMP_FOLDER=/tmp/nvidia-$$
mkdir $INSTALL_TEMP_FOLDER

# Checking and extracting blacklist.xzm
if [ -f blacklist.xzm ]; then
	xzm2dir blacklist.xzm $INSTALL_TEMP_FOLDER &>/dev/null
elif [ -f "$PORTDIR/optional/blacklist.xzm" ]; then
	xzm2dir "$PORTDIR/optional/blacklist.xzm" $INSTALL_TEMP_FOLDER &>/dev/null
elif [ -f "$PORTDIR/base/blacklist.xzm" ]; then
	xzm2dir "$PORTDIR/base/blacklist.xzm" $INSTALL_TEMP_FOLDER &>/dev/null
else
    echo -e "\e[1m\e[31mblacklist.xzm couldn't be found.\e[0m"
	rm -rf $INSTALL_TEMP_FOLDER
    exit 1
fi

# Selective compression and extraction of memory changes
sync; echo 3 > /proc/sys/vm/drop_caches
echo -e '\n\033[1m\e[32m[*]\e[0m\033[1m Compression of memory changes to /tmp/nvidia.tar.gz...\033[0m'
tar czf /tmp/nvidia.tar.gz --exclude={"*/.*","*/.wh.*",".cache","dev","home","mnt","opt","root","run","tmp","var","etc/bootcmd.cfg","etc/ld.so.cache","etc/fstab","etc/random-seed","etc/cups","etc/udev","etc/profile.d","etc/porteus","etc/X11/xorg.conf.nvidia-xconfig-original","lib/firmware","lib/modules/*porteus/modules.*","usr/man","usr/src","usr/bin/gnome-keyring-daemon","usr/lib/gio","usr/lib/gtk-2.0","usr/lib/gtk-3.0","usr/lib/libXvMCgallium.so.1","usr/lib/libbrscandec2.so.1","usr/lib/libgsm.so.1","usr/lib/libudev.so.1","usr/lib/libunrar.so.5","usr/lib64/gio","usr/lib64/gtk-2.0","usr/lib64/gtk-3.0","usr/lib64/libXvMCgallium.so.1","usr/lib64/libbrscandec2.so.1","usr/lib64/libgsm.so.1","usr/lib64/libudev.so.1","usr/lib64/libunrar.so.5","usr/local","usr/share/glib-2.0","usr/share/mime","usr/share/pixmaps","usr/share/applications/mimeinfo.cache","usr/local/share/applications/mimeinfo.cache","usr/share/doc/NVIDIA_GLX-1.0/html","usr/share/doc/NVIDIA_GLX-1.0/sample","usr/share/doc/NVIDIA_GLX-1.0/LICENSE","usr/share/doc/NVIDIA_GLX-1.0/NVIDIA_Changelog","usr/share/doc/NVIDIA_GLX-1.0/README.txt"} -C /mnt/live/memory changes
echo -e "\n\033[1m\e[32m[*]\e[0m\033[1m Extraction of memory changes from /tmp/nvidia.tar.gz to $INSTALL_TEMP_FOLDER...\033[0m"
tar xf /tmp/nvidia.tar.gz --strip 1 -C $INSTALL_TEMP_FOLDER

# Сleaning driver
echo -e "\n\033[1m\e[32m[*]\e[0m\033[1m Cleaning of driver directory...\033[0m"
rm -rf $INSTALL_TEMP_FOLDER/{.cache,dev,home,mnt,opt,root,run,tmp,var}
find $INSTALL_TEMP_FOLDER -type f -maxdepth 1 -delete
find $INSTALL_TEMP_FOLDER -type l -maxdepth 1 -delete
find $INSTALL_TEMP_FOLDER/etc/ -type f -maxdepth 1 -delete
find $INSTALL_TEMP_FOLDER/etc/ -type d ! -iname 'modprobe.d' ! -iname 'OpenCL' ! -iname 'vulkan' ! -iname 'X11' ! -iname 'etc' -maxdepth 1 -exec rm -rf '{}' '+'
rm -f $INSTALL_TEMP_FOLDER/etc/X11/xorg.conf.nvidia-xconfig-original
rm -rf $INSTALL_TEMP_FOLDER/lib/firmware
rm -f $INSTALL_TEMP_FOLDER/lib/modules/*porteus/modules.*
rm -rf $INSTALL_TEMP_FOLDER/usr/{man,src}
rm -f $INSTALL_TEMP_FOLDER/usr/bin/gnome-keyring-daemon
rm -rf $INSTALL_TEMP_FOLDER/usr/lib/{gio,gtk-2.0,gtk-3.0}
rm -f $INSTALL_TEMP_FOLDER/usr/lib/{libXvMCgallium.so.1,libbrscandec2.so.1,libgsm.so.1,libudev.so.1,libunrar.so.5}
rm -rf $INSTALL_TEMP_FOLDER/usr/lib64/{gio,gtk-2.0,gtk-3.0}
rm -f $INSTALL_TEMP_FOLDER/usr/lib64/{libXvMCgallium.so.1,libbrscandec2.so.1,libgsm.so.1,libudev.so.1,libunrar.so.5}
rm -rf $INSTALL_TEMP_FOLDER/usr/local
rm -rf $INSTALL_TEMP_FOLDER/usr/share/{glib-2.0,mime,pixmaps}
rm -f $INSTALL_TEMP_FOLDER/usr/{,local/}share/applications/mimeinfo.cache
rm -rf $INSTALL_TEMP_FOLDER/usr/share/doc/NVIDIA_GLX-1.0/{html,sample,LICENSE,NVIDIA_Changelog,README.txt}

# Adding vdpau hardware video decode rule
if [ -f /etc/profile.d/vdpau.sh ]; then
	mkdir -p $INSTALL_TEMP_FOLDER/etc/profile.d
	cp -a /etc/profile.d/vdpau.sh $INSTALL_TEMP_FOLDER/etc/profile.d
	sed -i 's|#export VDPAU_DRIVER="nvidia"|export VDPAU_DRIVER="nvidia"|' $INSTALL_TEMP_FOLDER/etc/profile.d/vdpau.sh
	sed -i 's|export VDPAU_DRIVER="va_gl"|#export VDPAU_DRIVER="va_gl"|' $INSTALL_TEMP_FOLDER/etc/profile.d/vdpau.sh
else
	echo -e "\n\e[1m\e[31mvdpau.sh couldn't be found. Hardware video decode won't work properly.\e[0m"
fi

# Getting driver version
case $(arch) in
	i486)	LIBDIR="/usr/lib"
			;;
	x86_64)	LIBDIR="/usr/lib64"
			;;
	*)		LIBDIRSUFFIX="/usr/lib"
			;;
esac
DRIVER_FILE=$(find $LIBDIR/libEGL_nvidia.so* \! -type l)
DRIVER_VERSION=${DRIVER_FILE: -6}

# Creating final module
MODULE_FILENAME=08-nvidia-$DRIVER_VERSION-k.$(uname -r)-$(cat /etc/porteus-version | cut -d '-' -f2)-$(arch).xzm
dir2xzm $INSTALL_TEMP_FOLDER/ /tmp/$MODULE_FILENAME 2>/dev/null
mv /tmp/$MODULE_FILENAME $MODULES_FOLDER

# Removing temporary files
rm -f /tmp/nvidia.tar.gz
rm -f /tmp/nvidia.xzm
rm -rf $INSTALL_TEMP_FOLDER

# Reboot
echo -e "\n\e[1m\e[32m[DONE]\e[0m \e[1mYou can find your Nvidia driver module in \e[96m$MODULES_FOLDER\e[0m"
echo -e "\e[1m>>> Now you can reboot Porteus via \e[92mreboot\e[0m \e[1mcommand <<<\e[0m\n"
5.2 Скачайте blacklist.xzm для блокировки загрузки nouveau
/etc/modprobe.d/nvidia-installer-disable-nouveau.conf

Code: Select all

# generated by nvidia-installer
blacklist nouveau
options nouveau modeset=0
6. Скопируйте 05-devel.xzm, crippled_sources.xzm, blacklist.xzm в /porteus/base/

7. Загрузите Porteus в режиме 'Text mode'
Image

8. Вводим логин (если не меняли данные от root пользователя)

Code: Select all

root
и пароль

Code: Select all

toor
Image

9. Скопируйте NVIDIA-Linux-x86-340.96.run (у Вас может быть другая версия драйвера) и nvidia.sh в директорию /tmp
Заметка. Nvidia драйвер и nvidia.sh можно расположить не только в /tmp.
Если у Вашего ПК малый объем памяти (ОЗУ) - рекомендация всё это размещать на разделе Linux (например, ext2, ext3, ext4 и т. д.), например /mnt/ваш-раздел
Предупреждение! Данная файловая система должна поддерживать Unix / Linux права доступа.
Для удобства можно воспользоваться Midnight Commander. Введите команду

Code: Select all

mc
  • в правой колонке Midnight Commander откройте директорию /tmp
  • в левой колонке Midnight Commander найдите файлы NVIDIA-Linux-x86-340.96.run и nvidia.sh
  • скопируйте данные файлы из левой колонки в правую колонку с открытой директорией /tmp и нажмите F10
Image

10. Затем вводим команды

Code: Select all

cd /tmp
chmod +x NVIDIA-Linux-x86-340.96.run
chmod +x nvidia.sh
./NVIDIA-NVIDIA-Linux-x86-340.96.run
11. Появится сообщение

Code: Select all

Please read the following LICENSE and then select either "Accept" to accept the license and continue with the installation, or select "Do Not Accept" to abort the installation.
Image
Выбираем и нажимаем 'Accept', после чего начнется компиляция драйвера
Image

12. Если вы компилируйте драйвер для архитектуры x86_64, то у Вас появится сообщение:

Code: Select all

Install NVIDIA's 32-bit compatibility libraries?
  • Если Вы планируете играть в Windows игры через Wine или Steam, то Вам необходимо ответить 'Yes'.
    Заметка. Если Вы ответили 'Yes', то Вам дополнительно необходимо установить Wine и 0050-compat32-multilib-lite-x86_64 (если у Вас 64-х разрядная операционная система)
    ссылка для x86 | ссылка для x86_64
  • Если Вы не планируете играть в Windows игры через Wine или Steam, то Вам необходимо ответить 'No'.
13. На сообщение

Code: Select all

Would you like to run the nvidia-xconfig utility to automatically update your X configuration file so that the NVIDIA X driver will be used when you restart X? Any pre-existing X configuration file will be backed up.
Image
отвечаем положительно, путем выбора 'Yes'

14. Появится сообщение

Code: Select all

Your X configuration file has been successfully updated. Installation of the NVIDIA Accelerated Graphics Driver for Linux-x86 (version: 340.96) is now comleted.
Image
в зависимости от разрядности может быть

Code: Select all

Your X configuration file has been successfully updated. Installation of the NVIDIA Accelerated Graphics Driver for Linux-x86_64 (version: 340.96) is now comleted.
Нажимаем 'ОК'

15. В терминале вводим команду для сборки xzm модуля, последующей очистки от ненужного хлама и его пересборкой.

Code: Select all

./nvidia.sh
модуль nvidia-390.87-k.4.18.5-porteus-v4.0-x86_64.xzm (у Вас будет другое имя модуля) будет скопирован в /mnt/sdXx/porteus/modules (где Xx, буква и номер раздела Porteus)

Другие примеры имен модулей:
  • nVidia-340.96-porteus-v3.2rc2-i586.xzm
  • nVidia-340.96-porteus-v3.2rc2-x86_64.xzm
16. После чего введите команду для перезагрузки Porteus
Заметка. Если нужно, то Вы можете удалить blacklist.xzm из /porteus/base/ или переместить его в другое место.

Code: Select all

reboot
На этом все - загружайте Porteus в обычном режиме 'Graphics mode' и пользуйтесь всеми прелестями NVIDIA драйвера.

Скриншоты:
Image
Image
Linux 5.3.0-rc3-porteus #1 SMP Mon Aug 5 11:28:55 UTC 2019 x86_64 Intel(R) Core(TM) i5-6600K CPU @ 3.50GHz GenuineIntel GNU/Linux
MS-7A12 » [AMD/ATI] Tobago PRO [Radeon R7 360 / R9 360 OEM] (rev 81) » Vengeance LPX 16GB DDR4 K2 3200MHz C16

User avatar
Blaze
DEV Team
DEV Team
Posts: 2618
Joined: 28 Dec 2010, 11:31
Distribution: ⟰ Porteus current ☯ all DEs ☯
Location: ☭ Russian Federation, Lipetsk region, Dankov
Contact:

Re: Porteus и NVIDIA. Собираем актуальный драйвер для видеок

Post#2 by Blaze » 10 Jun 2016, 18:10

Применение патча на драйвере NVIDIA
Приведу в качестве примера. Моя старая видео карта не поддерживает ядро 4.6.x, поэтому для сборки драйвера nVidia пришлось применить патч.

Code: Select all

# скачайть и скопиррвать NVIDIA-Linux-x86_64-340.96.run в директорию /tmp
cd /tmp
sh NVIDIA-Linux-x86_64-340.96.run --extract-only
# скопировать патч-файл nv.patch в нужную папку извлеченного драйвера NVIDIA-Linux-x86_64-340.96.run
# перейти в данную папку командой cd и применить патч командой
patch -p1 < ./nv.patch
# после удачного применения патча, удалите nv.patch
./NVIDIA-Linux-x86_64-340.96/makeself.sh \
--target-os Linux --target-arch x86_64 \
NVIDIA-Linux-x86_64-340.96 \
NVIDIA-Linux-x86_64-340.96-patched.run \
"NVIDIA driver 340.96 patched for k4.3+" \
./nvidia-installer
после чего в директории /tmp у Вас должен появится пропаченный драйвер NVIDIA-Linux-x86_64-340.96-patched.run и сообщение с контрольными суммами, например:

Code: Select all

CRC: 3184225005
MD5: fa29efa32962a743e16bb856618cfd8c

Self-extractible archive "NVIDIA-Linux-x86_64-340.96-patched.run" successfully created.
Если кого-то заинтересует, то оставляю в данной теме содержимое патча nv.patch для 340.96 делающего это исправление:

Code: Select all

--- kernel/os-mlock.c.orig 2015-11-09 06:44:53.000000000 +0100
+++ kernel/os-mlock.c 2016-05-18 19:16:33.263103070 +0200
@@ -45,7 +45,11 @@
}

down_read(&mm->mmap_sem);
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0)
ret = get_user_pages(current, mm, (unsigned long)address,
+#else
+ ret = get_user_pages((unsigned long)address,
+#endif
page_count, write, force, user_pages, NULL);
up_read(&mm->mmap_sem);
pinned = ret;
@@ -58,7 +62,11 @@
else if (pinned < page_count)
{
for (i = 0; i < pinned; i++)
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0)
page_cache_release(user_pages[i]);
+#else
+ put_page(user_pages[i]);
+#endif
os_free_mem(user_pages);
return RM_ERR_INVALID_ADDRESS;
}
@@ -85,7 +93,11 @@
{
if (write)
set_page_dirty_lock(user_pages[i]);
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0)
page_cache_release(user_pages[i]);
+#else
+ put_page(user_pages[i]);
+#endif
}

os_free_mem(user_pages);
--- kernel/uvm/nvidia_uvm_lite.c.orig 2015-11-09 06:44:53.000000000 +0100
+++ kernel/uvm/nvidia_uvm_lite.c 2016-05-18 19:16:33.263103070 +0200
@@ -785,7 +785,11 @@
// a reference so that the fault handling logic is correct:
//
get_page(pTracking->uvmPage);
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0)
retValue = VM_FAULT_MINOR;
+#else
+ retValue = 0;
+#endif
}

pRecord->isMapped = NV_TRUE;
Linux 5.3.0-rc3-porteus #1 SMP Mon Aug 5 11:28:55 UTC 2019 x86_64 Intel(R) Core(TM) i5-6600K CPU @ 3.50GHz GenuineIntel GNU/Linux
MS-7A12 » [AMD/ATI] Tobago PRO [Radeon R7 360 / R9 360 OEM] (rev 81) » Vengeance LPX 16GB DDR4 K2 3200MHz C16

Flexdj
Black ninja
Black ninja
Posts: 33
Joined: 10 Mar 2017, 13:05
Distribution: Porteus
Location: ростов

Re: Porteus и NVIDIA. Собираем актуальный драйвер для видеок

Post#3 by Flexdj » 10 Mar 2017, 23:17

Пробывал собрать не получилось, останавливаеться на 100% процентах и все

User avatar
Blaze
DEV Team
DEV Team
Posts: 2618
Joined: 28 Dec 2010, 11:31
Distribution: ⟰ Porteus current ☯ all DEs ☯
Location: ☭ Russian Federation, Lipetsk region, Dankov
Contact:

Re: Porteus и NVIDIA. Собираем актуальный драйвер для видеок

Post#4 by Blaze » 11 Mar 2017, 06:47

Flexdj, 05-devel.xzm и crippled_sources.xzm брали для Porteus 3.2.2?

i586
http://dl.porteus.org/i586/Porteus-v3.2.2/kernel/

x86_64
http://dl.porteus.org/x86_64/Porteus-v3.2.2/kernel/

Есть обновленная инструкция по сборке драйвера NVIDIA в модуль Porteus - How to create a Nvidia driver xzm module от fulalas
Linux 5.3.0-rc3-porteus #1 SMP Mon Aug 5 11:28:55 UTC 2019 x86_64 Intel(R) Core(TM) i5-6600K CPU @ 3.50GHz GenuineIntel GNU/Linux
MS-7A12 » [AMD/ATI] Tobago PRO [Radeon R7 360 / R9 360 OEM] (rev 81) » Vengeance LPX 16GB DDR4 K2 3200MHz C16

Flexdj
Black ninja
Black ninja
Posts: 33
Joined: 10 Mar 2017, 13:05
Distribution: Porteus
Location: ростов

Porteus и NVIDIA. Собираем актуальный драйвер для видеокарты

Post#5 by Flexdj » 21 Oct 2017, 15:21

Blaze wrote:
11 Mar 2017, 06:47
Flexdj, 05-devel.xzm и crippled_sources.xzm брали для Porteus 3.2.2?

i586
http://dl.porteus.org/i586/Porteus-v3.2.2/kernel/

x86_64
http://dl.porteus.org/x86_64/Porteus-v3.2.2/kernel/

Есть обновленная инструкция по сборке драйвера NVIDIA в модуль Porteus - How to create a Nvidia driver xzm module от fulalas
Да все брал от туда ,попробовал собрать другой драйвер для теста,тоже не получилось
Image

User avatar
Blaze
DEV Team
DEV Team
Posts: 2618
Joined: 28 Dec 2010, 11:31
Distribution: ⟰ Porteus current ☯ all DEs ☯
Location: ☭ Russian Federation, Lipetsk region, Dankov
Contact:

Porteus и NVIDIA. Собираем актуальный драйвер для видеокарты

Post#6 by Blaze » 22 Oct 2017, 15:52

Code: Select all

ERROR: An error occurred while performing the step: "Building kernel modules". See /var/log/nvidia-installer.log for details
Перед началом выполнения команд в терминале, авторизуйтесь под учетной записью root

Code: Select all

script /mnt/ваш_раздел/mylog.txt
Все, что будет выводится в терминальном окне, будет передаваться в текстовый файл mylog.txt
Попробуйте запустить установку драйвера с ключом --debug

Code: Select all

./NVIDIA-NVIDIA-Linux-x86-361.45.11.run --debug
с помощью mc скопируйте файл /var/log/nvidia-installer.log на /mnt/ваш_раздел/

Содержимое каждого из файлов (mylog.txt и nvidia-installer.log) загрузите на https://pastebin.com/ или опубликуйте в этой теме.
На другой версии ядра Porteus, драйвер NVIDIA собирается без этой ошибки?
Linux 5.3.0-rc3-porteus #1 SMP Mon Aug 5 11:28:55 UTC 2019 x86_64 Intel(R) Core(TM) i5-6600K CPU @ 3.50GHz GenuineIntel GNU/Linux
MS-7A12 » [AMD/ATI] Tobago PRO [Radeon R7 360 / R9 360 OEM] (rev 81) » Vengeance LPX 16GB DDR4 K2 3200MHz C16

Flexdj
Black ninja
Black ninja
Posts: 33
Joined: 10 Mar 2017, 13:05
Distribution: Porteus
Location: ростов

Porteus и NVIDIA. Собираем актуальный драйвер для видеокарты

Post#7 by Flexdj » 04 Nov 2017, 23:22

На другом ядре без проблем собирается так как есть модуль crippled_sources.xzm
crippled_sources из каких исходников можно собрать ?

User avatar
Blaze
DEV Team
DEV Team
Posts: 2618
Joined: 28 Dec 2010, 11:31
Distribution: ⟰ Porteus current ☯ all DEs ☯
Location: ☭ Russian Federation, Lipetsk region, Dankov
Contact:

Porteus и NVIDIA. Собираем актуальный драйвер для видеокарты

Post#8 by Blaze » 05 Nov 2017, 13:09

Flexdj, тот кто скомпилировал ядро, у того есть возможность собрать crippled_sources.xzm из "сырья" для этого ядра.
А компилирует ядра brokenman.
Linux 5.3.0-rc3-porteus #1 SMP Mon Aug 5 11:28:55 UTC 2019 x86_64 Intel(R) Core(TM) i5-6600K CPU @ 3.50GHz GenuineIntel GNU/Linux
MS-7A12 » [AMD/ATI] Tobago PRO [Radeon R7 360 / R9 360 OEM] (rev 81) » Vengeance LPX 16GB DDR4 K2 3200MHz C16

Flexdj
Black ninja
Black ninja
Posts: 33
Joined: 10 Mar 2017, 13:05
Distribution: Porteus
Location: ростов

Nvidia_slackbuilds

Post#9 by Flexdj » 22 Sep 2018, 20:55

Попробовал собрать драйвер на Porteus 3.2.2-i586 с помощью скриптов slackbuilds,драйвер собрался без ошибок но по чему то не работает
https://slackbuilds.org/repository/14.2 ... ia-kernel/
https://slackbuilds.org/repository/14.2 ... ia-driver/

Ссылка на драйвер:
https://yadi.sk/d/n2XTML63WoYfdg
https://yadi.sk/d/tqvIkldoJb4qgA

wifislax обновляет драйвер тоже со slackbuilds и он видимо работает

Code: Select all

#!/bin/sh

# Script by www.seguridadwireless.net

SCRIPT_VERSION=20160112

############################################################
## Funciones comunes. Su nombre empieza por f_ ##
############################################################
f_variables(){
	. /opt/wifislax-updaters/Funciones/funciones_updater
}

############################################################
## Funciones propias del script. Su nombre empieza por F_ ##
############################################################
# Definicion de variables
F_variables() {
	PRGNAM=nvidia
	echo -ne "\033]2;${PRGNAM}_updater\007"
	WEB=http://www.nvidia.com/object/unix.html
	VERSION=`echo $(curl -s $WEB|grep Short|head -n1|cut -d ">" -f2|cut -d "<" -f1)`
	EXTENSION=run
	SOURCES=$PRGNAM-$VERSION.$EXTENSION
	D1=http://es.download.nvidia.com/XFree86/Linux-x86/$VERSION/NVIDIA-Linux-x86-$VERSION.run
	D2=http://download.nvidia.com/XFree86/nvidia-installer/nvidia-installer-$VERSION.tar.bz2
	D3=http://download.nvidia.com/XFree86/nvidia-modprobe/nvidia-modprobe-$VERSION.tar.bz2
	D4=http://download.nvidia.com/XFree86/nvidia-persistenced/nvidia-persistenced-$VERSION.tar.bz2
	D5=http://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-$VERSION.tar.bz2
	D6=http://download.nvidia.com/XFree86/nvidia-xconfig/nvidia-xconfig-$VERSION.tar.bz2
	D7=http://slackbuilds.org/slackbuilds/14.1/system/nvidia-driver.tar.gz
	D8=http://slackbuilds.org/slackbuilds/14.1/system/nvidia-kernel.tar.gz
}

##### Funcion para descargar todo #####
F_download(){
  aria2c -x8 -Z $D1 $D2 $D3 $D4 $D5 $D6 $D7 $D8
  sleep 1
}
F_compilar(){
  # Descomprimimos los scripts para compilar kernel y driver
  tar xvf nvidia-kernel.tar.gz
  tar xvf nvidia-driver.tar.gz
  # Comprobamos la versión de slackbuild para posteriormente usarlo para parchear el script
  SLACKVERSION=$(head -n2 nvidia-driver/nvidia-driver.info | tail -1 | cut -d '"' -f2)
  # Damos permisos a los scripts 
  chmod +x nvidia-kernel/nvidia-kernel.SlackBuild
  chmod +x nvidia-driver/nvidia-driver.SlackBuild
  # Parcheamos lo necesario para que funcione todo
  sed -i "s/$SLACKVERSION/$VERSION/g" nvidia-kernel/nvidia-kernel.SlackBuild
  sed -i "s/$SLACKVERSION/$VERSION/g" nvidia-driver/nvidia-driver.SlackBuild
  sed -i 's/libEGL.so.$VERSION/libEGL.so.1/g' nvidia-driver/nvidia-driver.SlackBuild
  mkdir -p package-nvidia/usr/share/nvidia
  sed -i '/Rf/d' /tmp/build/nvidia/nvidia-kernel.SlackBuild 
  sed -i '/perm/d' /tmp/build/nvidia/nvidia-kernel.SlackBuild
  sed -i '/find/d' /tmp/build/nvidia/nvidia-kernel.SlackBuild
  cp -f ./nvidia-driver/* ./
  # Empezamos compilando el kernel
  echo 
  echo "$VERDE"Compilando kernel nvidia ..."$CIERRE"
  sleep 1
  sh ./nvidia-kernel/nvidia-kernel.SlackBuild
  # Ahora compilamos el driver
  echo 
  echo "$VERDE"Compilando drivers nvidia ..."$CIERRE"
  sleep 1
  sh ./nvidia-driver/nvidia-driver.SlackBuild
  # Limpiamos los archivos temporales durante la compilacion
  #rm -f nvidia*
  rm -f /tmp/nvidia*.tgz
  # Copiamos todo para hacer el modulo
  cp -Rf /tmp/SBo/package-nvidia-driver/* $PKG
  cp -Rf /tmp/SBo/package-nvidia-kernel/* $PKG
  rm -rf /tmp/SBo
  rm -rf $PKG/install
}

###################################
## BLOQUE PRINCIPAL DE EJECUCION ##
###################################
# Si se cierra el script inesperadamente, ejecutar la funcion de limpieza
trap f_exitmode SIGHUP SIGINT

#Inicializamos las variables globales
f_variables
#Comprobamos conexion a Internet
f_comprobarConexion
#Inicializamos las variables del script
F_variables
#Creamos directorio de trabajo
f_directorioTemporal
#Mostramos el mensaje de presentacion
f_presentacion
#Comprobamos updates del script
f_comprobarUpdates
#Asignamos o detectamos arquitectura
f_arquitectura
#Comprobamos version instalada del paquete
f_versionInstalada
#Descargamos los sources
F_download
#Descomprimir fichero descargado y compilamos
F_compilar
#Hacemos strip sobre el paquete
f_strip
#Creamos xzm , instalamos y salimos
f_tareasFinales

User avatar
Blaze
DEV Team
DEV Team
Posts: 2618
Joined: 28 Dec 2010, 11:31
Distribution: ⟰ Porteus current ☯ all DEs ☯
Location: ☭ Russian Federation, Lipetsk region, Dankov
Contact:

Nvidia_slackbuilds

Post#10 by Blaze » 23 Sep 2018, 08:55

Flexdj, не так давно собирал драйвер nvidia для 2-х разных видео карточек (названия карт видно на скриншотах) под ядро 4.18.5 и xorg 1.20.1 в Porteus 4.0+ все работает замечательно.
Image
Image
Сборку я осуществлял согласно моей инструкции Porteus и NVIDIA. Собираем актуальный драйвер для видеокарты
Linux 5.3.0-rc3-porteus #1 SMP Mon Aug 5 11:28:55 UTC 2019 x86_64 Intel(R) Core(TM) i5-6600K CPU @ 3.50GHz GenuineIntel GNU/Linux
MS-7A12 » [AMD/ATI] Tobago PRO [Radeon R7 360 / R9 360 OEM] (rev 81) » Vengeance LPX 16GB DDR4 K2 3200MHz C16

Flexdj
Black ninja
Black ninja
Posts: 33
Joined: 10 Mar 2017, 13:05
Distribution: Porteus
Location: ростов

Nvidia_slackbuilds

Post#11 by Flexdj » 26 Sep 2018, 23:28

Все верно ваш способ работает уже проверял,а можно собрать драйвер не имея самой карты?
В хелпе ./NVIDIA-Linux-x86_64-390.25.run -A нужного параметра не нашел

Code: Select all

Common '.run' Options

--info

    Print embedded info about the '.run' file and exit.

--check

    Check integrity of the archive and exit.

--extract-only

    Extract the contents of './NVIDIA-Linux-x86_64-390.87.run', but do
    not run 'nvidia-installer'.

--help

    Print usage information for the common commandline options and exit.

--advanced-options

    Print usage information for common command line options as well as the
    advanced options, and then exit.

User avatar
Blaze
DEV Team
DEV Team
Posts: 2618
Joined: 28 Dec 2010, 11:31
Distribution: ⟰ Porteus current ☯ all DEs ☯
Location: ☭ Russian Federation, Lipetsk region, Dankov
Contact:

Nvidia_slackbuilds

Post#12 by Blaze » 27 Sep 2018, 05:35

Flexdj, увы, не имея NVIDIA карты драйвер не собрать.
Linux 5.3.0-rc3-porteus #1 SMP Mon Aug 5 11:28:55 UTC 2019 x86_64 Intel(R) Core(TM) i5-6600K CPU @ 3.50GHz GenuineIntel GNU/Linux
MS-7A12 » [AMD/ATI] Tobago PRO [Radeon R7 360 / R9 360 OEM] (rev 81) » Vengeance LPX 16GB DDR4 K2 3200MHz C16

Andrei78
Ronin
Ronin
Posts: 1
Joined: 08 Nov 2018, 20:04
Distribution: Distribution

Porteus и NVIDIA. Собираем актуальный драйвер для видеокарты

Post#13 by Andrei78 » 08 Nov 2018, 20:13

Blaze, Здравствуйте. Можете вот к этому https://rutracker.net/forum/viewtopic.php?t=5469111 добавить новые драйвера Nvidia gtx 10 series. И выложить образ. У самого тямы не хватает.

User avatar
Blaze
DEV Team
DEV Team
Posts: 2618
Joined: 28 Dec 2010, 11:31
Distribution: ⟰ Porteus current ☯ all DEs ☯
Location: ☭ Russian Federation, Lipetsk region, Dankov
Contact:

Porteus и NVIDIA. Собираем актуальный драйвер для видеокарты

Post#14 by Blaze » 09 Nov 2018, 17:31

Airslax не поддерживаем и видео карты NVIDIA такой серии у меня нет, соответственно драйвер собрать нет возможности.
Linux 5.3.0-rc3-porteus #1 SMP Mon Aug 5 11:28:55 UTC 2019 x86_64 Intel(R) Core(TM) i5-6600K CPU @ 3.50GHz GenuineIntel GNU/Linux
MS-7A12 » [AMD/ATI] Tobago PRO [Radeon R7 360 / R9 360 OEM] (rev 81) » Vengeance LPX 16GB DDR4 K2 3200MHz C16

tiptoper
Black ninja
Black ninja
Posts: 46
Joined: 26 Jun 2013, 05:27
Distribution: Porteus-Xfce-4.0-ru-x64
Location: RU. Одинцово-10

Porteus и NVIDIA. Собираем актуальный драйвер для видеокарты

Post#15 by tiptoper » 19 Nov 2018, 15:29

Привет!
Долбился с NVIDIA ровно неделю.
Ни фига не получается.
Нескромный вопрос - может есть возможность выложить Ваш ISO 4.0 с работающим драйвером nvidia?
Нет, с nouveau, конечно, вполне себе классно, но, что удивительно, обнаружил, что при входе в sberbank-online Firefox мгновенно падает.
А вот старенький Porteus-v3.1 с драйвером NVIDIA работает как часы!!!
Но, зараза, не хочет видеть смартфон... пичалька.

Post Reply