Como instalar Nvidia no DuZeru 3

Atualizado em agosto 23, 2018 em HARDWARE e DRIVERS
0 em agosto 23, 2018

Depois de 7 anos de pesquisa finalmente consegui uma forma de instalar driver de Nvidia (incluso as hybridas, ion, optimus e cia) em base debian.

A pesquisa se alavancou com o post do  “Preparando o Duzeru para Jogatina (Instalação driver Nvidia e outros ajustes)”.
Depois de algumas centenas de horas de leituras e testes (deixarei as referencias no final do post), muitas reuniões online, finalmente encontramos uma forma de instalar o driver de Nvidia p/ praticamente todas as placas.

Bom chega de ladainha e vamos botar a mão na massa.

Foi criado um script de automação: nvidia-duzeru-3-prime.sh

baixe o script e execute-o da seguinte forma pelo terminal:
bash nvidia-duzeru-3-prime.sh

ou se preferir

chmod +x nvidia-duzeru-3-prime.sh
./nvidia-duzeru-3-prime.sh

 

Agora vou tentar explicar um pouco como ele funciona:
infelizmente o script perdeu a identação ao colar aki no forun.
o que estive após # são os comentarios do que faz as proxima linhas até o proximo #<br />
#!/bin/bash

#gerar arquivo de log
exec 2> >(sudo tee -a /var/log/nvidia-duzeru-sh.log)
exec 1>&2

#intalador de driver nvidia para DuZeru 3
#escrito por Barnabe di Kartola
#licença GPL 3
#referencias
#http://forum.duzeru.org/thread/preparando-o-duzeru-para-jogatina-instalacao-driver-nvidia-e-outros-ajustes/
#https://bumblebee-project.org/install.html
#https://wiki.debian.org/Bumblebee
#https://wiki.debian.org/NvidiaGraphicsDrivers/Optimus
#https://wiki.debian.org/NvidiaGraphicsDrivers
#https://www.youtube.com/watch?v=YSlTMEmUOBs
#https://github.com/JuliaGPU/CUDAapi.jl/issues/27
#https://backports.debian.org/Instructions/
#mais conhecimento meu acumulado ao longo dos anos

#não fazer perguntas durante a instalação
export DEBIAN_FRONTEND=noninteractive

#verificar se tem placa nvidia
checknvidia=$(lspci | grep -i vga | grep -i nvidia)

if [ -z “$checknvidia” ]; then
zenity –info –title=”Nvidia Detect” –text=”Não foram encontradas placas de Video Nvidia”
exit 0
fi

#preparar o sistema p/ instalar o driver de video
sudo apt-get update
sudo apt-get install -y dkms build-essential linux-headers-$(uname -r)
sudo dpkg –add-architecture i386
sudo apt update
sudo apt install -y lib32z1 lib32ncurses5

#dezabilitar driver nouveau
echo ‘blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off’ | sudo tee /etc/modprobe.d/blacklist-nouveau.conf

#verificar desligamento do nouveau
checknoveau=$(cat /etc/modprobe.d/nouveau-kms.conf | grep “options nouveau modeset=0”)
if [ “$checknoveau” != “options nouveau modeset=0” ]; then
echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf
fi

#pre-instalação dos drivers de video, p/ steam, i386 e mineração. (i386 é dependencia da steam)
sudo update-initramfs -u
sudo apt install -y -t stretch xserver-xorg
sudo apt install -y -t stretch libegl1-mesa libegl1-mesa-dev libegl1-mesa-drivers libgbm-dev libgbm1 libgl1-mesa-dev libgl1-mesa-dri libgl1-mesa-glx libglapi-mesa libgles1-mesa libgles1-mesa-dev libgles2-mesa libgles2-mesa-dev libosmesa6 libosmesa6-dev libxatracker-dev libxatracker2 mesa-common-dev mesa-opencl-icd mesa-va-drivers mesa-vdpau-drivers mesa-vulkan-drivers

#verificar se é driver current ou legacy
sudo apt install nvidia-detect
dversion=$(cat /etc/debian_version | cut -d “/” -f 1)
sudo sed -i “s/stretch/$dversion/” /usr/bin/nvidia-detect
nvidiadriver=$(nvidia-detect | head -7 | tail -1 | sed ‘s/ //g’) #mostra a grafia p/ instalação
nvidiadriverversion=$(nvidia-detect | head -7 | tail -1 | sed ‘s/ //g’ | cut -d “-” -f 2) #mostra só se é legacy ou current
nvidiaversion=$(nvidia-detect | head -7 | tail -1 | sed ‘s/ //g’ | cut -d “-” -f 3) #mostra só o numero do driver

#verificar se é placa de video hibrida (notebook) ou sola (desktop)
hybrid=$(lspci | grep -i vga | grep -i intel)
busid=$(lspci | grep -i vga | grep -i nvidia | awk ‘{ print $1 }’ | sed -r “s/.(.\:).(.\..)/\1\2/” | sed ‘s/\./\:/’)

sudo apt-get install -y $nvidiadriver –assume-yes –force-yes

#se for hydrida fazer

if [ -n “$hybrid” ]; then
#teste se o arquvo xorg.conf existe, se sim faça um backup
test -f /etc/X11/xorg.conf && sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf-bkp

#crie um novo xorg.conf
echo ‘Section “Module”
Load “modesetting”
EndSection
Section “Device”
Identifier “nvidia”
Driver “nvidia”
BusID “PCI:’$busid'”
Option “AllowEmptyInitialConfiguration”
EndSection’ | sudo tee /etc/X11/xorg.conf

#teste se switch_nvidia.sh existe, se sim faça um beckup
test -f /usr/local/bin/switch_nvidia.sh && sudo cp /usr/local/bin/switch_nvidia.sh /usr/local/bin/switch_nvidia.sh-bkp

#crie o script switch_nvidia.sh
echo ‘xrandr –setprovideroutputsource modesetting NVIDIA-0
xrandr –auto
xrandr –dpi 96′ | sudo tee /usr/local/bin/switch_nvidia.sh

#de permissão de execução ao script switch_nvidia.sh

sudo chmod +x /usr/local/bin/switch_nvidia.sh
testelighdm=$(grep switch_nvidia.sh /usr/share/lightdm/lightdm.conf.d/40-lightdm-webkit-greeter.conf)

#se ja tiver o switch_nvidia.sh no lightdm não faça nada
if [ -z “$testelighdm” ]; then
echo display-setup-script=/usr/local/bin/switch_nvidia.sh | sudo tee -a /usr/share/lightdm/lightdm.conf.d/40-lightdm-webkit-greeter.conf
fi
else

#se for Sola Fazer
sudo apt install -y nvidia-settings nvidia-opencl-common
fi

#perguntar se quer instalar modulos cuda

zenity –question –text=”Instlar CUDA?” –text=”Voçê gostaria de ativar os modulos CUDA?\nIsso vai consumir em media 1GB de Download!” –ok-label=”Yes” –cancel-label=”No”
if [ $? = 0 ] ; then

#ativar cuda?

#se for legacy

if [ “$nvidiadriverversion” = legacy ]; then
#cuda 5.0 não funciona no strech
zenity –info –title=”Modulos Cuda Legacy” –text=”Descupe mas voçe tera que instalar manualmente o Cuda Legacy para a sua placa de video.”

#se for current
elif [ “$nvidiadriverversion” = driver ]; then
sudo apt install -y nvidia-cuda-toolkit
fi
fi

zenity –info –title=”Reiniciar o Computador” –text=”Instalação concluida, por favor reinicie o computador.”

  • Aprovado por
Resposta
Carregando mais tópicos