Hace unos dÃas compré un portátil de segunda mano que equivocadamente consideré que valÃa la pena revivir usando Debian como distribución, pero al probar comandos con mi computador personal que usa la distribución Zorin OS, terminé por joder mi portátil personal, por lo que terminé instalando Debian en mi portátil principal debido a que Zorin OS oculta ciertas configuraciones que evitan que pueda tomar control.
La mayorÃa de distribuciones depende de Ubuntu y Ubuntu a su vez dependen de Debian, por tanto, Debian es más básico, es más "puro", más estable y te otorga mayor control que el resto de distribuciones, no es una distribución fácil de manejar, carece de paquetes que #Ubuntu si tiene, pero no quiere decir que sea imposible y en el largo plazo aprenderás Linux en serio.
Preparando Debian para la instalación.
El primer requisito es tener instalado el instalador de paquetes Synaptic, aunque es poco intuitivo te ofrece más información y mayor control que usar las tiendas de aplicaciones.
Lo primero que debemos saber es si tenemos una tarjeta gráfica disponible, para esto instalamos y ejecutamos neofetch.
sudo apt install neofetch
Esto ha de devolver un resumen de la configuración del equipo incluido las tarjetas gráficas disponibles, aunque las tarjetas gráficas parezcan que están disponibles, no quiere decir que funcionen, podemos instalar el controlador, pero puede que este nunca logre comunicarse con la gráfica, esto puede ser porque el controlador no es el adecuado o porque la gráfica esta fÃsicamente muerta.
Para elegir el controlador adecuado debemos descargar un paquete llamado nvidia-detect, para instalarlo debemos incluir en Debian dos repositorios PPA contrib y non-free.
Para agregar estos repositorios debes abrir la aplicación software and updates y marcar los repositorios que aparecen en la imagen.
$ nvidia-detect
Detected NVIDIA GPUs: 07:00.0 VGA compatible controller [0300]: NVIDIA Corporation GM206 [GeForce GTX 960] [10de:1401] (rev a1)
Checking card: NVIDIA Corporation GM206 [GeForce GTX 960] (rev a1) Your card is supported by all driver versions.
Your card is also supported by the Tesla 440 drivers series.
Your card is also supported by the Tesla 418 drivers series.
It is recommended to install the
nvidia-driver package.
Ahora si podrás instalar nvidia-detect usando el comando `sudo apt install nvidia-detect`
y luego lo ejecutas. Esto debe devolver uno de los cuatro controladores genéricos con su nombre de paquete exacto. en mi caso es nvidia-legacy-390xx-driver, pero en su caso puede ser algo distinto.
Instalación de drivers.
Hay una guÃa directa de cómo hacerlo en link de Debian aunque voy a dar más detalles particulares y como solventar algunos problemas no mencionados en la guÃa.
La última version de Debian es la 11 y en esta me voy a centrar, pero esta guÃa sirve de la version 9 en adelante.
Antes de instalar el controlador es necesario saber qué tipo de arquitectura posee nuestro dispositivo, si es una computadora antigua posee una arquitectura de 32bits. Si es moderna es de 64 bits, este dato se puede intuir al ejecutar neofetch o del kernel, pero con toda seguridad lo puedes consultar en un buscador con el modelo del dispositivo.
sà es de 64 bits entonces instala:
# apt install linux-headers-amd64
Si es de 32 bits entonces instala según si viene con PAE:
# apt install linux-headers-686
# apt install linux-headers-686-pae
Después de instalados los headers, vamos a instalar el controlador que nos sugirió #nvidia_detect junto con el firmware, en mi caso el nvidia-legacy-390xx-driver.
apt update
# apt install nvidia-legacy-390xx-driver firmware-misc-nonfree
Un detalle que la guÃa no comenta es que después de instalado el driver, este puede detectar la gráfica y mostrar información del hardware, pero será inutilizable hasta que no tenga el firmware, asà que ambos paquetes son necesarios.
Reiniciamos el dispositivo y cuando inicie ejecutaremos el comando nvidia-smi desde la terminal y obtendremos algo como esto:
Fri Aug 19 13:23:19 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.151 Driver Version: 390.151 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce 820M Off | 00000000:04:00.0 N/A | N/A |
| N/A 52C P0 N/A / N/A | 0MiB / 1985MiB | N/A Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 Not Supported |
+-----------------------------------------------------------------------------+
Si obtienes un mensaje parecido a este, entonces ya has logrado instalar el controlador con éxito, si obtienes un mensaje distinto entonces has instalado un controlador erróneo, si obtienes el mensaje `Device not found` a pesar de estar seguro que instalo el driver correcto, entonces tu grafica fÃsicamente está muerta a pesar de ser detectado por el kernel.
El comando nvidia-smi ya viene instalado desde las dependencias del legacy-390xx-driver, pero también viene junto a otros drives gráficos y si mezclas dependencias de distintos drivers vas a tener problemas muy incomodos, por eso es mejor usar el instalador de paquetes de synaptic, porque te permite ver todas las dependencias que vienen con el controlador, incluso instalar más dependencias según tus necesidades.
El problema de los portátiles con doble tarjeta
En mi caso que tengo un portátil Asus X455L que tiene una gráfica integrada Intel y la dedicada NVidia GeForce 820m, normalmente el kernel siempre usa grafica la integrada Intel dejando inutilizada la gráfica dedicada, hay varias formas de activar el poder de una u otra grafica o hacer un uso discreto de la gráfica dedicada y como última opción está castrar el uso de alguna de las dos gráficas, en mi opinion la menos deseable, pero ¿cuáles son las diferencias y que beneficios obtengo de cada una de las opciones?
Gráficos discretos con Optimus.
Esta para mi es la mejor opción, ya que seguirá usando la tarjeta integrada Intel y si necesita más poder de cálculo, la GPU Intel le delegará los cálculos a la gráfica NVidia a traves de la tecnologÃa NVidia Optimus, usando asà inteligentemente el consumo eléctrico.
Para saber si la GPU NVidia cuenta con esta tecnologÃa ve a la lista de NVidia.
Si es asÃ, entonces puede instalar #Bumblebee o primus para aprovechar esta tecnologÃa de gráficos discretos.
Switch de GPUs
Si la primera opción no es posible aún queda la posibilidad de activar una u otra GPU a conveniencia con el comando prime-select, esta opción es un tanto incomoda.
Castración de GPU
Este para mi puede ser la peor opción, pero es la que queda cuando ya no hay más opciones aun asà tiene un punto interesante y es elegir entre un ahorro energético definitivo usando solo la gráfica integrada contra el máximo desempeño de la gráfica dedicada todo el tiempo.
Servidor de gráficos OpenGL
Seguramente ya te has dado cuenta que quizás ninguna aplicación que use gráficos 3D está funcionando en Debian y eso es porque no viene instalada por defecto.
Para saber si cuentas con un servidor grafico puedes probar con glxgears, este comando te mostrará tres piñones girando, si los ves entonces ya cuentas con un servidor gráfico, pero si por el contrario obtienes un mensaje como:
Xlib: extension "GLX" missing on display ":0".
Error: couldn't get an RGB, Double-buffered visual
Entonces puede haber un indicio de que no tengas un servidor grafico para OpenGL o simplemente glxgears no sabe con cual grafica iniciar el benchmark, pero para estar seguros puedes instalar la aplicación hardinfo y hacer el Benchmark de GPU
Si el resultado del benchmark en el apartado de maquina aparece que el renderizador de OpenGL sale como desconocido, entonces es porque no tienes instalado ninguna librerÃa como servidor OpenGL, para solucionarlo hay que instalar o reinstalar algunos paquetes:
sudo apt-get install --reinstall libgl1-mesa-glx bumblebee-nvidia
Con instalar esto y las dependencias necesarias bastarÃa, pero si aun da problemas el ejecutar el comando glxgears, aun después de poder ver el nombre de las gráficas y después de haber reinstalado la librerÃa de mesa, entonces quizás ejecutando glxinfo arregle todos los problemas.
Ejecute el comando glxinfo -h, verá la ayuda, entre las opciones está -l que muestra los lÃmites de OpenGL, por alguna razón esto hace que se elija algún servidor disponible, ya sea de Intel o de NVidia.
Hasta aquà ya no hay problemas y puedes usar los gráficos, todo depende también de la opción que hayas elegido y si tu grafica cuenta con la tecnologÃa #Optimus.
Configuración de ajustes de NVidia.
Segun que driver hayas instalado esta incluye algunas dependencias como #glxinfo, #glxgears, #prime_settings, #nvidia_xconfig, pero en mi caso viene con #nvidia_settings.
al ejecutarlo dice que debo ejecutar primero #nvidia_xconfig como usuario root, no obstante, este paquete ya está obsoleto porque ya viene contenido en la librerÃa xorg, asà que no es recomendable instalarlo.
Sin embargo, ejecutando `optirun nvidia-settings -c :8`, permite ahora ver todas las opciones disponibles que no podÃamos acceder usando el comando #nvidia-settings por sà solo.
Aun no entiendo cómo lograr que los cambios se conserven sin necesidad de siempre usar el comando #optirun, me gustarÃa en un futuro no tener que forzarlo todo con comandos, pero aún estoy aprendiendo.
Conclusiones.
Este post lo he escrito principalmente como guÃa personal por si en un futuro tuviera que pasar por todo este camino tortuoso de nuevo, espero que mi experiencia le sirva para aclarar los posibles fallos en su equipo.
Aun no comprendo mucho de los comandos y sus opciones que vienen por defecto como dependencias, tampoco tengo muy claro que es #XOrg o #Wayland y cuál es el papel que juega en todo esto.
Por ahora esto deberÃa bastar para instalar el controlador NVidia con éxito, no siendo mas nos vemos en un proximo post.