Ubicaciones Principales de los Controladores

 

Ubicaciones Principales de los Controladores

1. /lib/modules/ - Ubicación PRINCIPAL

bash
# Módulos del kernel (controladores) cargados
/lib/modules/$(uname -r)/kernel/

# Ejemplo para ver controladores específicos
ls /lib/modules/$(uname -r)/kernel/drivers/

Dentro de esta carpeta encontrarás subdirectorios organizados por tipo:

bash
/lib/modules/$(uname -r)/kernel/drivers/
├── audio/          # Controladores de audio
├── bluetooth/      # Controladores Bluetooth
├── net/            # Controladores de red
├── usb/            # Controladores USB
├── video/          # Controladores de video
├── input/          # Dispositivos de entrada (teclado, ratón)
├── gpio/           # GPIO y dispositivos embebidos
└── ...

2. /sys/ - Sistema de Archivos Sysfs

bash
# Información en tiempo real de dispositivos y controladores
/sys/bus/           # Dispositivos por tipo de bus
/sys/class/         # Dispositivos por clase
/sys/devices/       # Todos los dispositivos del sistema

Ejemplos específicos:

bash
# Controladores de video
ls /sys/class/video4linux/

# Controladores de audio
ls /sys/class/sound/

# Controladores de red
ls /sys/class/net/

# Controladores USB
ls /sys/bus/usb/drivers/

3. /proc/ - Sistema de Archivos Procfs

bash
# Módulos cargados actualmente
cat /proc/modules

# Dispositivos del sistema
cat /proc/devices

# Información de PCI (tarjetas de video, red, etc.)
lspci -k  # Muestra dispositivos y controladores usados

4. /usr/src/ - Código Fuente de Controladores

bash
# Código fuente de controladores (si están instalados)
/usr/src/linux-headers-$(uname -r)/

Comandos para Gestionar y Ver Controladores

Ver Controladores Cargados

bash
# Listar todos los módulos cargados
lsmod

# Información detallada de un módulo
modinfo nombre_del_controlador

# Ver dispositivos PCI/PCIe y sus controladores
lspci -k

# Ver dispositivos USB y controladores
lsusb -t

Ejemplos Prácticos por Tipo

Controladores de Video:

bash
# Ver controladores de gráficos cargados
lsmod | grep -i drm
lsmod | grep -i nvidia
lsmod | grep -i amdgpu

# Información de controladores de video
modinfo nvidia
modinfo amdgpu
modinfo i915  # Intel Graphics

Controladores de Audio:

bash
# Controladores de audio
lsmod | grep -i snd
modinfo snd_hda_intel

# Dispositivos de audio disponibles
aplay -l
cat /proc/asound/cards

Controladores de Red:

bash
# Controladores de red
lsmod | grep -i network
lsmod | grep -i wifi
lsmod | grep -i ethernet

# Información específica
modinfo iwlwifi      # WiFi Intel común
modinfo e1000e       # Ethernet Intel

Controladores USB:

bash
# Controladores USB
lsmod | grep -i usb
modinfo usbcore
modinfo xhci_hcd     # USB 3.0

Gestión de Controladores

Cargar y Descargar Controladores

bash
# Cargar un controlador
sudo modprobe nombre_del_controlador

# Descargar un controlador
sudo modprobe -r nombre_del_controlador

# Cargar al arranque
echo "nombre_del_controlador" | sudo tee -a /etc/modules

Solución de Problemas

bash
# Ver mensajes del kernel relacionados con controladores
dmesg | grep -i error
dmesg | grep -i driver

# Ver hardware no reconocido
lshw
lshw -short

Estructura Completa de Ejemplo

text
/
├── lib/modules/5.15.0-91-generic/    <-- Módulos del kernel actual
│   └── kernel/drivers/
│       ├── net/ethernet/intel/e1000e.ko
│       ├── sound/pci/snd-hda-intel.ko
│       ├── gpu/drm/amd/amdgpu/amdgpu.ko
│       └── ...
├── sys/class/                        <-- Dispositivos en tiempo real
│   ├── net/eth0/device/driver/
│   ├── sound/card0/device/driver/
│   └── ...
└── proc/                             <-- Información del kernel
    ├── modules
    └── devices

Resumen de Comandos Esenciales

ComandoFunción
lsmodListar módulos cargados
modinfoInformación de un controlador
lspci -kDispositivos PCI y controladores
lsusb -tDispositivos USB y controladores
dmesgMensajes del kernel
modprobeCargar/descargar controladores

Conclusión: Los controladores en Linux no están en una sola carpeta, sino distribuidos en /lib/modules/ (binarios), /sys/ (estado en tiempo real), y /proc/ (información del kernel). Esta organización refleja la filosofía de Linux de que "todo es un archivo".


Distribución de Archivos al Instalar un Programa

1. Binarios Ejecutables (/usr/bin//usr/local/bin/)

bash
# Comandos principales del programa
/usr/bin/soffice          # Ejecutable principal de OpenOffice
/usr/bin/wordprocessor    # Componentes individuales

# Programas compilados manualmente
/usr/local/bin/

2. Librerías del Programa (/usr/lib//usr/lib64/)

bash
# Librerías compartidas y componentes
/usr/lib/libreoffice/
/usr/lib/openoffice/
/usr/lib/nombre_programa/

# Arquitectura 64 bits
/usr/lib64/

3. Archivos de Configuración (/etc/)

bash
# Configuración global del programa
/etc/nombre_programa/
/etc/openoffice/          # Posible configuración de OpenOffice

4. Archivos de Datos y Recursos (/usr/share/)

bash
# Archivos de recursos (plantillas, iconos, documentación)
/usr/share/applications/  # Accesos directos del menú
/usr/share/icons/         # Iconos del programa
/usr/share/nombre_programa/
/usr/share/openoffice/    # Diccionarios, plantillas, etc.

5. Archivos de Documentación (/usr/share/doc/)

bash
# Documentación del programa
/usr/share/doc/openoffice/
/usr/share/doc/nombre_programa/

6. Archivos Temporales y de Estado (/var/)

bash
# Archivos variables (logs, cache, estado)
/var/log/nombre_programa/ # Logs del programa
/var/cache/nombre_programa/ # Cache
/var/lib/nombre_programa/ # Datos de estado

Diferencia Según el Método de Instalación

Instalación con Gestor de Paquetes (APT, DPKG)

bash
# Ejemplo: Instalar con apt
sudo apt install libreoffice

# Los archivos se distribuyen en:
/usr/bin/libreoffice
/usr/lib/libreoffice/
/usr/share/libreoffice/
/usr/share/applications/libreoffice-*.desktop

Instalación Manual (Descargar .tar.gz, .deb, .AppImage)

bash
# .deb (similar a apt pero manual)
sudo dpkg -i programa.deb
# → Va a las mismas ubicaciones que apt

# .tar.gz (extraer en /opt/ o /usr/local/)
sudo tar -xzf programa.tar.gz -C /opt/
# → Los archivos quedan en /opt/nombre_programa/

# .AppImage (ejecutable portable)
./programa.AppImage
# → No se instala, se ejecuta desde cualquier carpeta

Instalación con Snap/Flatpak (Paquetes Universales)

bash
# Snap
sudo snap install nombre-programa
# → Se instala en: /snap/nombre-programa/

# Flatpak
flatpak install nombre-programa
# → Se instala en: /var/lib/flatpak/app/nombre-programa/

Ejemplo Práctico: OpenOffice/LibreOffice

Si instalas LibreOffice:

text
/
├── usr/
│   ├── bin/
│   │   ├── libreoffice7.6          # Ejecutable principal
│   │   └── loffice -> libreoffice  # Enlace simbólico
│   ├── lib/
│   │   └── libreoffice/            # Librerías y componentes
│   │       ├── program/
│   │       ├── basis-link/
│   │       └── ...
│   └── share/
│       ├── applications/
│       │   ├── libreoffice-startcenter.desktop
│       │   ├── libreoffice-writer.desktop
│       │   └── ...
│       ├── icons/                   # Iconos
│       └── libreoffice/             # Recursos
│           ├── template/
│           ├── dict/
│           └── ...
├── etc/
│   └── libreoffice/                 # Configuración global
└── var/
    └── cache/libreoffice/           # Archivos temporales

Comandos para Rastrear Archivos de un Programa

Encontrar Dónde se Instaló un Programa

bash
# Buscar el ejecutable principal
which libreoffice
which firefox

# Buscar todos los archivos del paquete
dpkg -L libreoffice          # Para paquetes .deb
rpm -ql nombre-paquete       # Para paquetes .rpm

# Buscar archivos en todo el sistema
find /usr -name "*libreoffice*"
locate libreoffice

Ver Información del Paquete Instalado

bash
# Información del paquete
dpkg -s libreoffice
apt show libreoffice

# Listar archivos instalados por el paquete
dpkg -L libreoffice | head -20  # Primeros 20 archivos

Resumen de Ubicaciones por Tipo

Tipo de ArchivoUbicación Principal
Ejecutables/usr/bin//usr/local/bin/
Librerías/usr/lib//usr/lib64/
Configuración/etc/
Recursos/usr/share/
Documentación/usr/share/doc/
Datos de Usuario~/.config/~/.local/share/
Logs/var/log/
Programas Portables/opt/

Configuración del Usuario

¡Importante! La configuración personal de cada usuario se guarda en su home:

bash
~/.config/libreoffice/     # Configuración personal
~/.local/share/libreoffice/ # Datos del usuario
~/.cache/libreoffice/      # Cache del usuario

Conclusión

Un programa en Linux no se instala en una sola carpeta como en Windows. En cambio:

  • Los archivos del programa se distribuyen en /usr/bin//usr/lib//usr/share/

  • La configuración global va en /etc/

  • Los datos del usuario van en ~/.config/ y ~/.local/

  • Los archivos variables van en /var/

Esta organización permite:

  • Actualizaciones más seguras

  • Compartir librerías entre programas

  • Mantener el sistema ordenado

Comentarios

Entradas más populares de este blog

ejercicios-Crear Carpeta y Archivo de Texto en Ubuntu

Instalar Docker en Ubuntu Server usando docker.io

Tutorial de Carpetas y Directorios en Ubuntu Linux