31 mayo 2017

Driver privativo NVIDIA en Fedora 26, con Kernel 4.12 rc3. Instalación manual

Hoy, en Kernel - Fedora Koji, han liberado la 3ª versión candidata del Kernel 4.12... y como no puedo estar quieto, he ido a por ella, tal y como comenté en un post anterior.


... Y he "roto" el arranque GDM, con este nuevo Kernel y los drivers privativos de Nvidia, así que toca arreglarlo.

Para los primeros pasos tenéis que arrancar con el kernel anterior de vuestro Grub2 y que sí funcionaba.

Los drivers privativos Nvidia entran en conflicto con el driver Nouveau, que viene por defecto en Fedora, por lo tanto, el proceso pasa por:
  1. Impedir la carga del driver nouveau, añadiéndolo a una "lista negra"
  2. Desinstalarlo completamente
  3. Actualizar el Grub2
  4. Generar un nuevo "initramfs", que no tenga referencias a Nouveau
  5. Y por último, instalar el driver privativo NVIDIA.
Personalmente, siempre me lo descargo de su web oficial, en formato *.run, para luego ejecutar la instalación con este archivo.

1.- Identificar vuestro modelo de tarjeta gráfica

     $ sudo lspci -v | less  (comando extenso, que lista todo; desplazarse hasta llegar a la sección de la VGA)

     $ sudo lspci | grep VGA  (comando corto, y filtrando sólo la gráfica)
 
Ya no hay duda: tengo una gráfica GeForce modelo GT 610, es decir, serie 600

2.- Localizar el último driver  (desplegar 'Mostrar todos los sistemas operativo, si es necesario)
3.- Buscar y descargar el archivo con extensión *.run.  A la hora de escribir este post, el último driver para mi modelo es la 375.66, de 4 de mayo...

http://es.download.nvidia.com/XFree86/Linux-x86_64/375.66/NVIDIA-Linux-x86_64-375.66.run

4.- Dar permisos de ejecución al archivo descargado:
     $ sudo chmod +x NVIDIA-Linux*.run
(si prefieres entorno gráfico, botón derecho del ratón sobre el archivo descargado, propiedades y, en permisos, activas permitir ejecutar como un programa)

5.- Actualiza tu sistema y asegura que tienes todo lo necesario:
     $ sudo dnf -y update 
     $ sudo dnf install kernel-devel hernel-headers gcc dkms acpid

6.- Deshabilita "Nouveau"
     $ sudo echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf
     (si el archivo blacklist.conf no existe, se creará)

7.- Edita (sirve cualquier editor) /etc/sysconfig/grub, busca la línea que comienza por GRUB_CMD_LINUX= y al final del todo (y que quede dentro de las comillas), añade lo siguiente:

     rd.driver.blacklist=nouveau

     $ sudo leafpad /etc/sysconfig/grub  (si no tienes este editor y te gusta, instálalo con dnf install leafpad)

En mi caso, éste sería mi archivo, con el añadido.

8.- Actualizar el Grub y remover el driver nouveau.

     $ sudo grub2-mkconfig -o /boot/grub2/grub.cfg  (para BIOS MBR.  En UEFI, el comando de actualización es distinto, pero como no puedo probar si el proceso funciona exactamente igual, no lo pongo para no confundir)
     $ sudo dnf remove xorg-x11-drv-nouveau

9.- Ahora toca generar un nuevo "initramfs"
Por si la "cagamos" (en mi caso es muy habitual), hago una copia de seguridad del initramfs actual y genero uno nuevo:
     $ sudo mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img
     $ dracut /boot/initramfs-$(uname -r).img $(uname -r)

10.- Ahora toca instalar, pero para ello debemos parar completamente el entorno gráfico y hacer todo en modo texto. Hay varias formas:
  • En algunas web usan systemctl para cambiar por defecto en modo de arranque y configurarlo en el denominado 'runlevel 3', que no tiene entorno gráfico.
  • En otras, simplemente abren una de las terminales (Ctrl+Alt+F3, por ejemplo) y una vez logeados allí, deshabilitan GDM y lo paran; cuando terminan, vuelven a habilitarlo y lo inician de nuevo.
Yo he probado las 2 y me funciona bien. De todas formas, voy a dar sólo las instrucciones del primer paso, ya que así me aseguro de que no queda ningún rastro de nouveau y que xorg no está cargado.
     $ sudo systemctl set-default multi-user.target
     $ sudo reboot   (a partir de ahora ya no tendrás entorno gráfico, así que imprime las instrucciones siguientes)

Una vez iniciado el equipo nos podemos logear como root directamente, y así nos ahorramos el estar poniendo el 'sudo'

Nos vamos manualmente a la carpeta donde habíamos descargado el binario de NVIDIA y lo ejecutamos. Si en dicha carpeta no tenéis otros binarios de NVIDIA que se "solapen" podéis usar comodines para no teclear el nombre completo del archivo:

     # cd /media/Datos
     # ./NVIDIA-Linux*.run

Vamos contestando a todo que sí. Cuando nos pregunte si queremos que DKMS intente generar nuevos módulos cuando actualicemos el Kernel, le decimos que SI. Si por cualquier causa nos da error, podemos probar indicándole que NO, que si no recuerdo mal es la opción por defecto.

Cuando todo termine (espero que "correctly"), debemos cambiar de nuevo el modo por defecto del arranque, para que nos vuelva a arrancar en el entorno gráfico... Es lo que se llama 'runlevel 5':

     $ sudo systemctl set-default graphical.target
     $ sudo reboot

Y si todo ha ido bien, tenéis que tener correctamente instalado el driver y la utilidad de Nvidia-Settings:


NOTA: Mi experiencia y uso con Nouveau, para lo que necesito, es perfecta, por lo que en mi caso, usar el driver privativo es un mero capricho ya que no juego ni hago uso intensivo de mi gráfica.... pero para gustos los colores..!!!  :-)

No hay comentarios:

Último post

Preparando un espacio de trabajo

            Ahora que tengo tiempo, retomo el blog. Por comodidad (y por capricho) he elegido la siguiente configuración: He optado por un ...