sábado, 27 de julio de 2024

Instalación del driver propietario de NVIDIA en DEBIAN, una distro de GNU/LINUX

Debian 12 es una distribución de GNU/LINUX que es maravillosa. La gente que está detrás de GNU/LINUX tiene una filosofía, que es el software libre en contraposición del software propietario. Debian 12 por defecto, tiene un driver libre para las tarjetas gráficas NVIDIA pero el problema e ignoro la razón que un programa de edición de vídeo como DA VINCI RESOLVE no se ejecutaba correctamente con este driver libre de NVIDIA. Así que decidí instalar el driver propietario y se solucionó el problema. Yo estoy a favor del software libre pero tampoco soy un taliban. Me considero pragmática. Digo sí al software libre pero si un software es propietario y funciona bien, no le hago asco a utilizarlo si es gratuito, claro está. Así que vamos a ponernos manos a la faena.

Lo primero que hay que hacer es añadir una lista de repositorios de Debian, en este caso, Debian 12 al archivo que está en la siguiente ruta /etc/apt/sources.list y en este caso particular, yo añadiría todos los repositorios, entre ellos los contrib non-free porque hay que instalar una serie de paquetes necesario para correr el driver propietario de NVIDIA.


root@debian:/home/user# gedit /etc/apt/sources.list

 

Copiamos y pegamos la siguiente lista de repositorios:  


deb http://deb.debian.org/debian bookworm main

deb-src http://deb.debian.org/debian bookworm main


deb http://deb.debian.org/debian-security/ bookworm-security main

deb-src http://deb.debian.org/debian-security/ bookworm-security main


deb http://deb.debian.org/debian bookworm-updates main

deb-src http://deb.debian.org/debian bookworm-updates main

deb http://deb.debian.org/debian bookworm main

deb-src http://deb.debian.org/debian bookworm main


deb http://deb.debian.org/debian-security/ bookworm-security main

deb-src http://deb.debian.org/debian-security/ bookworm-security main


deb http://deb.debian.org/debian bookworm-updates main 

deb http://deb.debian.org/debian bookworm-backports main contrib non-free

deb-src http://deb.debian.org/debian bookworm-backports main contrib non-free


Actualizamos los repositorios de Debian en modo root con el siguiente comando:

root@debian:/home/user# apt update


Es el momento de descargar el driver en un archivo ejecutable de la página oficial de NVIDIA. En este link puedes descargar el archivo: https://la.nvidia.com/Download/index.aspx?lang=la

Selecciona el tipo, la serie y la familia del producto que has comprado (tarjeta gráfica) y también el sistema operativo y la arquitectura (en nuestro caso Linux 64 bits) . También puedes seleccionar el idioma y lo descargamos. 

NVIDIA-Linux-x86-1.0-6629-pkg1.run

 

La otra opción sería utilizar el comando nvidia-detect, si no lo  tienes instalado, puedes hacerlo. Detectar cual es la tarjeta NVIDIA    que tienes, te indicará un nombre y puede que te haga una recomendación de instalar  el paquete nvidia-driver o similar. 


Es el momento de  instalar sin salir del entorno gráfico una serie de paquetes:

root @debian# apt install build-essential linux-headers-amd64 pkg-config libglvnd-dev

 

Ahora pulsamos a la vez la siguiente combinación de teclas <CTRL> + <ALT> + <F5> y abandonamos el modo gráfico de Debian.

A continuación, está bien saber que escritorio usamos en Debian, en mi caso es el Cinnamon:

root@debian# echo $XDG_CURRENT_DESKTOP

Y el terminal nos dirá:  

X-Cinnamon

 

Si deseamos saber que sesión gráfica utilizamos podemos usar este comando:


root@debian:/home/user# systemctl status display-manager

 

 El terminal mostrará el siguiente resultado: 

lightdm.service - Light Display Manager

     Loaded: loaded (/lib/systemd/system/lightdm.service; enabled; preset: enabled)


También podemos usar este comando para saber la sesión gráfica:

user @debian:~$ ps auxf | grep -e dm$ -e slim$

 

El terminal arrojará el siguiente resultado:  

root        1063  0.0  0.0 308380  7340 ?        SLsl 10:46   0:00 /usr/sbin/lightdm


En mi caso particular la sesión gráfica es lightdm. Para detener la sesión gráfica en Debian 12:

root@debian# sudo service lightdm stop

 

Es el momento de deshabilitar el módulo de kernel NOUVEAU que dificulta la instalación del driver propietario de NVIDIA.  Nouveau es el driver de código abierto presente en el kernel Linux para las gráficas de NVIDIA y ha recibido un fuerte varapalo después de que Ben Skeggs haya renunciado a su puesto en Red Hat, ya que dicha decisión ha puesto fin a su contribución activa al controlador.

Par empezar, ejecuta este comando para verificar si nouveau está habilitado:

user@debian:~$ lsmod | grep nouveau

 

El terminal ofrecerá un resultado similar a este:

nouveau              1949696  0

 mxm_wmi                16384  1 nouveau

video                  49152  1 nouveau

i2c_algo_bit           16384  2 mgag200,nouveau

ttm                   106496  2 drm_vram_helper,nouveau

drm_kms_helper        184320  4 mgag200,nouveau

drm                   491520  6 drm_kms_helper,drm_vram_helper,mgag200,ttm,nouveau

wmi                    32768  5 wmi_bmof,dell_smbios,dell_wmi_descriptor,mxm_wmi,nouveau


Escribe los siguientes pasos para deshabilitar NOUVEAU 


cat <<EOF | sudo tee /etc/modprobe.d/blacklist-nouveau.conf

blacklist nouveau

options nouveau modeset=0

EOF


No te olvides de actualizar el kernel con initramfs en modo root:

root@debian#  sudo update-initramfs -u

 

y ahora reinicia el sistema con el siguiente comando: 


root@debian# sudo reboot

 

Fuente: https://docs.nvidia.com/ai-enterprise/deployment-guide-vmware/0.1.0/nouveau.html


Detenemos la sesión gráfica que en mi caso particular es lightdm

root@debian# sudo service lightdm stop


Si usamos systemd. que es un conjunto de demonios o daemons de administración de sistema, bibliotecas y herramientas diseñados como una plataforma de administración y configuración central para interactuar con el núcleo del Sistema operativo GNU/Linux, para detener la sesión gráfica usamos el siguiente comando en modo root:

root@debian#  sudo systemctl stop lightdm


Buscamos la subcarpeta llamada Descargas con el comando cd: 


root@debian# cd /home/user/Descargas

 

Y hacemos un listado de los archivos que hayan en esa subcarpeta 

root@debian:/home/user/Descargas#  ls

 

Concede permisos de ejecución con el siguiente comando en modo root para instalar el driver propietario: 

root @debian # chmod +x NVIDIA-linux-x86-64_xxxxx.run

 

Ejecuta en modo root el driver propietario para que se instale: 

root @debian # ./NVIDIA-linux-x86-64_xxxxx.run

 

Aparece una serie de pantallas y se marca la opción "continuar" y "sí" a todo para que la instalación siga su curso. Puede que te advierta de algún inconveniente. 

Cuando termine de instalas, solo te queda regenerar y subir el kernel con la configuración actualizada con el siguiente comando

root@debian # sudo update-initramfs -u 


Y finalmente, actualizar otra vez:

root@debian # sudo reboot


Acabo de actualizar mi kernel y ahora el módulo del kernel NVIDIA no se carga. ¿Cuál es el problema?

La capa de interfaz del módulo del kernel de NVIDIA debe compilarse específicamente para la configuración y versión de su kernel. Si actualiza su kernel, la solución más sencilla es reinstalar el controlador.

AVANZADO: Puede instalar el módulo del kernel NVIDIA para un kernel que no se está ejecutando (por ejemplo: en la situación en la que acaba de compilar e instalar un nuevo kernel, pero aún no ha reiniciado) con una línea de comandos como ésta:


root@debian # sh NVIDIA-Linux-x86-1.0-6629-pkg1.run --kernel-name='KERNEL_NAME'


Donde 'KERNEL_NAME' es lo que `uname -r` indicaría si el kernel de destino se estuviera ejecutando.


Ejemplo: he escrito en mi terminal como usuario: 

user@debian:~$ uname -r

 

Y a mí me arroja el terminal como resultado: 

5.10.0-29-amd64


Entonces, tendrías que ejecutar el siguiente comando para instalar de nuevo el driver propietario de NVIDIA que es un archivo ejecutable con el nucleo actualizado con el siguiente comando:

root@debian ./NVIDIA-Linux-x86-1.0-6629-pkg1.run --kernel-name='5.10.0-29-amd64'

 

Fuente: https://support.nvidia.eu/hc/es/articles/5418445281810-Acabo-de-actualizar-mi-kernel-y-ahora-el-m%C3%B3dulo-del-kernel-NVIDIA-no-se-carga-Cu%C3%A1l-es-el-problema

DaVinci Resolve no abre archivos .MP4 en Linux. La solución pasa por convertirlos en archivos .MOV


He intentado importar vídeos en formato .mp4 en Da Vinci Resolve corriendo este software en Linux (uso Debian, una distro de GNU/Linux) y cual es la desagradable sorpresa que aunque los importaba, no se veía ninguna imagen de vídeo. Parece ser que en Windows no pasa ese problema. Extrañado, empecé a investigar y descubrí que no era yo el único que tenía ese problema. Varios internautas aportaron su solución: crear un script en bash, darle permisos de ejecución  en modo root con el siguiente comando:

#  chmod +x nombredelscript.sh 

y ejecutar el script en modo usuario, convirtiendo los archivos en mp4  que haya dentro de una carpeta en archivos con formato  .mov

Aquí les dejo el  comando para convertir archivos de vídeo .mp4 en archivos de vídeo formato .mov

$ mkdir transcoded; for i in *.mp4; do ffmpeg -i "$i" -vcodec mjpeg -q:v 2 -acodec pcm_s16be -q:a 0 -f mov "transcoded/${i%.*}.mov"; done

Pueden crear un script en bash en un archivo  plano de texto con el nombre MP4toMOV.sh

#!/bin/bash

mkdir transcoded; for i in *.mp4; do ffmpeg -i "$i" -vcodec mjpeg -q:v 2 -acodec pcm_s16be -q:a 0 -f mov "transcoded/${i%.*}.mov"; done

Por mi parte, DaVinci Resolve  puede irse al carajo. Si lo puedo usar bien y sino seguiré con el Cinelerra, Kdenlive, Shotcut, etc. Jamás he visto un programa que requiera tantos recursos y requísitos y presente tantos problemas para su correcta ejecución. Y por mucho que digan que es de los mejores editores de vídeo no lineales que existen en el mercado, los quebraderos de cabeza que causa su instalacióǹ y ejecución son terribles. 

Vaya por delante que  GNU/Linux  no tiene la culpa de los problemas que algunos fabricantes de hardware y software causan a los usuarios de este sistema operativo y de otros sistemas operativos minoritarios. Tanto los desarrolladores como el resto de miembros de la comunidad linuxera hacemos lo posible para ayudar en la medida de nuestros conocimientos y tiempo, a  hacer GNU/LInux más popular entre los usuarios... pero ese esfuerzo de crear una alternativa al monopolio de Microsofot no se vé recompensado. Hoy he tenido que devolver 1 adaptador Bluetooth de la marca Ugreen porque solo era compatible con Windows, pensé ingenuamente que ese tipo de problemas eran cosa del pasado pero veo que no. 

Por mi parte, Bill Gates se puede ir al cuerno. Llevo casi 20 años de usuario de GNU/Linux y no me arrepiento de ello. El software libre es un canto a la libertad, la creatividad y a compartir conocimientos. 

jueves, 25 de julio de 2024

Instalación de la app de inteligencia artificial Whisper para transcribir y traducir audios en Debian, una distro de GNU/Linux

Hago este artículo para solventar una serie de dudas sobre la instalación de la app de inteligencia artificial Whisper en la distribución de GNU/Linux de Debian 12 Bookworm; porque hay muchos vídeos donde indican cómo se hace instalación pero en informática sigo prefiriendo los artículos en blogs porque es mucho más cómodo. de realizar la instalación y va más al grano.. Yo tengo una torre PC y una una tarjeta gráfica NVIDIA y parece que durante este proceso se instala CUDA, algo necesario. Esté método vale tanto para los que tienen instalados  el driver libre de NVIDIA como el driver propietario. 

Actualizar el sistema (como root):

sudo apt update
sudo apt upgrade -y

Instalar dependencias necesarias (como root):
 
sudo apt install -y git python3 python3-pip ffmpeg

Crear y activar un entorno virtual (como usuario normal):

python3 -m venv whisper-venv
source whisper-venv/bin/activate

Instalar Whisper (como usuario normal dentro del entorno virtual):

cd whisper
pip install -r requirements.txt
pip install .

Instalar PyTorch (como usuario normal dentro del entorno virtual):

pip install torch torchvision torchaudio

Verificar la instalación (como usuario normal dentro del entorno virtual):

    whisper --help

Después  abre un terminal, activa el entorno virtual 

 source whisper-venv/bin/activate

Nota: asegúrate de que tu entorno virtual está activado durante estos pasos, de lo contrario, los paquetes se instalarán en el sistema global de Python en lugar del entorno virtual.

Al seguir estos pasos correctamente, tendrás Whisper instalado en tu entorno virtual sin necesidad de privilegios de root.

Y ahora, imagina que tienes un archivo de audio en español y quieres transcribirlo en archivos en todos los formatos de texto posibles que permite Whisper. Ejecuta este comando como usuario normal:

whisper input.wav --model small --output_format all

Ahora imagina que quieres traducir un archivo de audio al español

whisper input.wav --model=medium --task=transcribe --language=es 

 

Y cuando acabes,  desactiva  el Entorno Virtual con el siguiente comando como usuario normal:  

deactivate

Siguiendo estos pasos, podrás transcribir archivos de audio utilizando Whisper en tu entorno Debian 12.

jueves, 18 de julio de 2024

Solucionar el error El PATH de root debería incluir habitualmente /usr/local/sbin, /usr/sbin y /sbin cuando instalas Autofirma en Debian, una distro de GNU/LInux

He tenido problemas a la hora de instalar el programa Autofirma en Debian 12, una famosa distribucióǹ de GNU/Linux:

dpkg: atención: `ldconfig' no se ha encontrado en el PATH o no es ejecutable
dpkg: atención: `start-stop-daemon' no se ha encontrado en el PATH o no es ejecutable
dpkg: error: no se ha encontrado 2 en el PATH o no es ejecutable
NOTA: El PATH de root debería incluir habitualmente /usr/local/sbin, /usr/sbin y /sbin.

La solución es aportada por esta web: https://blackhold.nusepas.com/2019/08/29/debian-10-problema-al-hacer-dpkg-i-paquete-deb/ y pasa por abrir el terminal y en modo root escribir estas dos lineas para añadirlas al archivo .bashrc

# echo 'export PATH=$PATH:/usr/local/sbin:/usr/sbin:/sbin' >> /home/nombredeusuario/.bashrc

# echo 'export PATH=$PATH:/usr/local/sbin:/usr/sbin:/sbin' >> /root/.bashrc 

Después hay que cerrar la sesión en el terminal, iniciarlo de nuevo e instalar el paquete .deb bajado desde la web oficial.