En este tutorial, vamos a ver cómo encontrar información acerca del sistema en una máquina con una distribución de GNU/Linux. Existen herramientas gráficas (al puro estilo de las aplicaciones privativas Aida64 o Everest) que nos brindan información de nuestro sistema, pero siempre es bueno saber que hay detrás de cada interfaz gráfica, esas herramientas funcionan a partir de enviar líneas de comandos como las que veremos a continuación. Para aprender a conocer nuestro hardware y sistema operativo a fondo emplearemos más que nada la consola y se utilizará medios disponibles para usuarios normales cuando sea posible, para determinar información acerca de nuestra distro, kernel, hardware, etc.
Saber cómo obtener esta información es muy útil en el mundo del software libre, pues forma parte de la [ netiqueta] en muchos foros de GNU/Linux el saber cómo hacer preguntas para evitar ser ignorado o (peor) flameado.
Para este tutorial se utilizarán las siguientes herramientas:
¿Quieres saber qué distribución de GNU/Linux estás usando?
Una de las maneras más fáciles es consultar el archivo issue:
cat /etc/issue
En mi máquina esto entrega un resultado como el siguiente:
Linux Mint 13 Maya \n \l
De aquí obtenemos la información importante: nombre de la distribución, versión y nombre código.
Más información: man issue.
Otra manera de obtener información sobre nuestra distribución es la siguiente:
lsb_release -idc
En mi caso obtuve la siguiente salida:
Distributor ID: LinuxMint Description: Linux Mint 13 Maya Codename: maya Suite: n/a
Para saber qué kernel se está usando, basta con utilizar el comando uname:
uname -a
Esto entrega el siguiente resultado:
Linux llamaret 3.5.0-23-generic #35~precise1-Ubuntu SMP Fri Jan 25 17:15:33 UTC 2013 i686 i686 i386 GNU/Linux
De aquí podemos obtener la siguiente información:
Más información: man uname.
Además el kernel cuando arranca mantiene un archivo llamado /proc/version donde se puede obtener información adicional sobre el kernel que se está usando actualmente.
maikel@llamaret:~$ cat /proc/version
de donde podemos ver la siguiente información:
Linux version 3.5.0-23-generic (buildd@akateko) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #35~precise1-Ubuntu SMP Fri Jan 25 17:15:33 UTC 2013
En general, es posible obtener toda la información del hardware con programas como lshw, lspci, hwinfo y dmidecode. Aquí veremos solamente cómo obtener información de partes y componentes específicos.
Para conocer características básicas de nuestro equipo tecleamos las siguientes líneas de comandos:
Fabricante del equipo:
sudo dmidecode -s system-manufacturer
Nombre del producto:
sudo dmidecode -s system-product-name
Versión del producto:
sudo dmidecode -s system-version
Número de serie del equipo:
sudo dmidecode -s system-serial-number
SKU (Stock Keeping Unit) ó P/N (Part Number) del producto:
sudo dmidecode | grep -i sku
Más información detallada:
sudo dmidecode
Otra manera de verificar información general sobre nuestro hardware es utilizando el comando lshw:
Forma reducida:
sudo lshw -short
Forma extendida:
sudo lshw | less
El kernel Linux, mantiene un archivo en /proc/cpuinfo que contiene información del/los procesadores que utiliza la máquina:
cat /proc/cpuinfo
Aquí podemos encontrar información bastante interesante sobre nuestro procesador.
Mostrar la arquitectura (32 o 64 bits):
sudo lshw -C CPU | grep width
Nota: Si el paquete lshw no está instalado de manera predeterminada antes de usarlo es necesaria su instalación.
Mostrar si el procesador soporta “Extensiones de Virtualización” (Intel-VT ó AMD-V), las cuales se activan desde la configuración de BIOS del equipo:
Si el procesador es Intel, se necesita saber si aparece el valor “vmx”:
grep -i vmx /proc/cpuinfo
Si el procesador es AMD, se necesita saber si aparece el valor “svm”:
grep -i svm /proc/cpuinfo
El kernel Linux, mantiene un archivo en /proc/acpi/thermal_zone/THRM/temperature que contiene la información ACPI de la temperatura del procesador. Un detalle importante, para ello ACPI debe estar activado.
cat /proc/acpi/thermal_zone/THRM/temperature
También puede utilizarse lm-sensors instalándolo previamente
Usa sensors-detect para detectar y generar una lista de los modulos del Kernel:
sudo sensors-detect
Esto creará la configuración y la guardará en /etc/modules (en distribuciones como ArchLinux se guardará en /etc/conf.d/lm_sensors). Asegurate de responder YES a las preguntas sobre la exploración de diversos sensores. Cuando el script haya finalizado, se le presentará un resumen de las pruebas.
Puedes probar utilizando lo siguiente:
sensors
En mi caso obtengo la siguiente salida:
acpitz-virtual-0 Adapter: Virtual device temp1: +30.0°C (crit = +60.0°C)
Hay un paquete opcional con un daemon llamado sensord que puede registrar tus datos a una base de datos rrd que puedes visualizar gráficamente.
La información del uso de memoria está en el archivo /proc/meminfo. Un ejemplo de las líneas que pueden ser de interés:
Otra manera de ver esta información es con el comando free:
free -m # ver la información de memoria disponible, en MegaBytes.
La salida de free es una tabla con información de la memoria física y virtual, tanto libre como ocupada:
total used free shared buffers cached Mem: 2007 1289 717 0 115 673 -/+ buffers/cache: 499 1507 Swap: 2520 0 2520
Para más información utilice man free
Una manera sencilla de verificar el total de Memoria RAM y SWAP de su sistema es tecleando lo siguiente en el terminal:
grep 'MemTotal' /proc/meminfo; grep 'SwapTotal' /proc/meminfo
MemTotal: 2055668 kB SwapTotal: 2581236 kB
Para mostrar información sobre la memoria de intercambio (SWAP) tecleamos lo siguiente:
sudo swapon -s
Filename Type Size Used Priority /dev/sda7 partition 1553404 0 -1 /dev/zram0 partition 513916 0 100 /dev/zram1 partition 513916 0 100
También es posible obtener la cantidad de memoria en la lista de procesos e información que entrega el comando top. Para más información véase man top
Al ejecutar top se desplegará la lista de procesos y consumos que está tomando cada uno, en la parte superior se podrá observar información sobre la memoria, cpu y otros
top - 09:23:26 up 1:31, 2 users, load average: 0.58, 0.63, 0.50 Tasks: 151 total, 3 running, 148 sleeping, 0 stopped, 0 zombie Cpu(s): 7.3%us, 4.2%sy, 0.0%ni, 87.7%id, 0.7%wa, 0.0%hi, 0.2%si, 0.0%st Mem: 2055668k total, 1326684k used, 728984k free, 118992k buffers Swap: 2581236k total, 0k used, 2581236k free, 694012k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
También puede utilizar htop (generalmente debe instalarlo)
El programa dmidecode lee la información de los chips de la tarjeta madre, de esta forma es posible determinar qué atributos soporta el hardware o cómo está construido. Toda esta información es proporcionada por el estándar Desktop Management Interface que soportan las placas madres desde 1997.
sudo dmidecode -t 0
# dmidecode 2.11 SMBIOS 2.5 present. Handle 0x0000, DMI type 0, 24 bytes BIOS Information Vendor: American Megatrends Inc. Version: 080014 Release Date: 02/01/2010 Address: 0xF0000 Runtime Size: 64 kB ROM Size: 512 kB Characteristics: ISA is supported PCI is supported PNP is supported APM is supported BIOS is upgradeable BIOS shadowing is allowed ESCD support is available Boot from CD is supported Selectable boot is supported BIOS ROM is socketed EDD is supported 5.25"/1.2 MB floppy services are supported (int 13h) 3.5"/720 kB floppy services are supported (int 13h) 3.5"/2.88 MB floppy services are supported (int 13h) Print screen service is supported (int 5h) 8042 keyboard services are supported (int 9h) Serial services are supported (int 14h) Printer services are supported (int 17h) CGA/mono video services are supported (int 10h) ACPI is supported USB legacy is supported LS-120 boot is supported ATAPI Zip drive boot is supported BIOS boot specification is supported Targeted content distribution is supported BIOS Revision: 8.14
sudo dmidecode -t 2
# dmidecode 2.11 SMBIOS 2.5 present. Handle 0x0002, DMI type 2, 15 bytes Base Board Information Manufacturer: BIOSTAR Group Product Name: G31D-M7 Version: Serial Number: None Asset Tag: To Be Filled By O.E.M. Features: Board is a hosting board Board is replaceable Location In Chassis: To Be Filled By O.E.M. Chassis Handle: 0x0003 Type: Motherboard Contained Object Handles: 0
Comando fdisk -l → Para más detalle vea man fdisk
Ejemplo de salida de sudo fdisk -l: aquí se puede observar que la máquina posee 3 unidades de almacenamiento conectada, se puede observar la distribución de las particiones de cada una. Este comando debe ser ejecutado con niveles de root.
Disco /dev/sda: 500.1 GB, 500107862016 bytes 255 cabezas, 63 sectores/pista, 60801 cilindros, 976773168 sectores en total Unidades = sectores de 1 * 512 = 512 bytes Tamaño de sector (lógico / físico): 512 bytes / 512 bytes Tamaño E/S (mínimo/óptimo): 512 bytes / 512 bytes Identificador del disco: 0xfbea3d7c Dispositivo Inicio Comienzo Fin Bloques Id Sistema /dev/sda1 2046 126156799 63077377 f W95 Ext'd (LBA) /dev/sda2 126158848 976773119 425307136 7 HPFS/NTFS/exFAT /dev/sda5 2048 31250431 15624192 83 Linux /dev/sda6 31252480 123047935 45897728 83 Linux /dev/sda7 123049984 126156799 1553408 82 Linux swap / Solaris
También es posible obtener la lista de particiones de las diferentes unidades revisando el archivo controlado por el kernel que contiene dicha información /proc/partitions:
cat /proc/partitions
major minor #blocks name 11 0 1048575 sr0 8 0 488386584 sda 8 1 1 sda1 8 2 425307136 sda2 8 5 15624192 sda5 8 6 45897728 sda6 8 7 1553408 sda7 251 0 513920 zram0 251 1 513920 zram1
Para conocer el espacio usado y disponible en las particiones:
df -h
S.ficheros Tamaño Usado Disp Uso% Montado en /dev/sda5 15G 4,7G 9,3G 34% / udev 993M 4,0K 993M 1% /dev tmpfs 402M 844K 401M 1% /run none 5,0M 0 5,0M 0% /run/lock none 1004M 416K 1004M 1% /run/shm /dev/sda6 44G 11G 31G 26% /home /dev/sda2 406G 264G 143G 65% /media/MAIKEL_DATA
Para más explicación vea man blkid, man df. Ver también: Explicaciones Acerca de /dev.
Se entiende usualmente por interface humana a todos los dispositivos que pueden recibir y enviar información de/a un ser humano. En el sistema de eventos del kernel de Linux el significado está más acotado a aquellos dispositivos que cambian de estado cuando reciben interacción de un humano: teclado, mouse, joystick, etc.
Utilizando el comando lsusb. (Para más explicación véase man lsusb). Ejemplo de salida de lsusb
Bus 001 Device 002: ID 058f:6364 Alcor Micro Corp. Hi-Speed 7-in-1 Flash Card Reader/Writer [Sabrent] Bus 003 Device 002: ID 0471:060c Philips (or NXP) Consumer Infrared Transceiver (HP) Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Utilizando el comando lspci podemos listar los dispositivos PCI de nuestro ordenador. Para aprender más véase man lspci
Ejemplo de salida de lspci en mi propio ordenador:
00:00.0 Host bridge: Intel Corporation 82G33/G31/P35/P31 Express DRAM Controller (rev 10) 00:02.0 VGA compatible controller: Intel Corporation 82G33/G31 Express Integrated Graphics Controller (rev 10) 00:1b.0 Audio device: Intel Corporation N10/ICH 7 Family High Definition Audio Controller (rev 01) 00:1c.0 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 1 (rev 01) 00:1c.1 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 2 (rev 01) 00:1d.0 USB controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #1 (rev 01) 00:1d.1 USB controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #2 (rev 01) 00:1d.2 USB controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #3 (rev 01) 00:1d.7 USB controller: Intel Corporation N10/ICH 7 Family USB2 EHCI Controller (rev 01) 00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev e1) 00:1f.0 ISA bridge: Intel Corporation 82801GB/GR (ICH7 Family) LPC Interface Bridge (rev 01) 00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 01) 00:1f.2 IDE interface: Intel Corporation N10/ICH7 Family SATA Controller [IDE mode] (rev 01) 00:1f.3 SMBus: Intel Corporation N10/ICH 7 Family SMBus Controller (rev 01) 02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101E/RTL8102E PCI Express Fast Ethernet controller (rev 02)
Listar hardware de audio:
lspci | grep -i audio
También puede utilizar sudo lshw | grep -i audio | grep product
Nota: El paquete anterior no está instalado de manera predeterminada, por lo que antes de usarlo es necesaria su instalación.
Listar los dispositivos de reproducción de audio:
aplay -l | grep -i tarjeta
(si el sistema está en inglés sustituya tarjeta por card.
Listar todos los módulos que cargó el sistema, para ser usados por los dispositivos de sonido:
lsmod | grep -i snd
Las siguientes son pruebas para verificar si los altavoces están correctamente conectados y distribuidos. Los altavoces deben estar encendidos y durante la prueba se puede ajustar el volumen, cables, y disposición. Cada prueba emite un sonido en un ciclo, y se repite 2 veces más:
Si el sistema de sonido es de 1 canal (monoaural):
speaker-test -l 3 -t sine -c 1
Si el sistema de sonido es de 2 canales (stereo):
speaker-test -l 3 -t sine -c 2
Si el sistema de sonido es de 5.1 canales (surround):
speaker-test -l 3 -t sine -c 6
Listar las tarjetas de vídeo (PCI / PCIe):
lspci | grep -i vga
Si tu computador tiene más de un monitor activado, o si tiene dos salidas de video activas (por ejemplo, un laptop conectado a una salida VGA o similar), es posible encontrar información de las salidas de video activas en /proc/video o /proc/acpi/video, dependiendo del kernel y la tarjeta madre. Aceleración gráfica y poder de cálculo gráfico.
Para determinar si el equipo soporta aceleración de gráficos es necesario que esté instalado el paquete de herramientas mesa-utils. Dicho paquete contiene el comando glxinfo.
Si el resultado del comando glxinfo | grep rendering retorna Yes entonces la sesión gráfica que está usando posee soporte para aceleración gráfica.
glxinfo | grep rendering
direct rendering: Yes
Para obtener un valor referencial del poder de cálculo de su tarjeta gráfica, puede someter a esta a una sesión de estrés con el siguiente test.
glxgears
salida esperada de glxgears
364 frames in 5.0 seconds = 72.776 FPS 365 frames in 5.0 seconds = 72.932 FPS 376 frames in 5.0 seconds = 75.132 FPS 363 frames in 5.0 seconds = 72.532 FPS
..
Para mostrar la configuración actual del servidor X (X Window System):
timeout 60 glxgears
Para conocer la resolución actual (anchura x altura) y frecuencia de barrido (MHz):
xrandr | grep '*'
Para conocer todas las resoluciones que la configuración actual soporta:
xrandr
Para mostrar las cámaras web (USB):
lsusb | grep -i camera
Para comprobar que las cámaras web se han “montado” en su ruta correspondiente:
ls /dev/video* -lh
El brillo de la pantalla LCD del notebook se puede ver en el archivo /proc/acpi/video/IGPU/LCD0/brightness que retornará los tipos de brillo soportados y el brillo actual en que se encuentra el monitor
cat /proc/acpi/video/IGPU/LCD0/brightness
retornará algo similar a:
levels: 10 20 30 40 50 60 70 80 90 100 current: 60
En donde 60 es el brillo actual (current)
El idioma del sistema en curso está almacenado en el shell en un conjunto de variables, la más importante LANG:
comando:
echo $LANG
ejemplo de salida:
es_CL.UTF-8
Establecer un lenguaje diferente, por ejemplo inglés de US:
export LANG=US
La información de la batería de un notebook está disponible en más de un lugar dependiendo de la versión del kernel, en kernels antiguos se encuentra en los archivos del directorio /proc/acpi/battery/BATn, sin embargo, en kernels actuales se encuentra en /sys/class/power_supply/BATn (en donde n es el numero de la batería) Carga actual de la bateria
La información de la carga actual se encuentra en el archivo /sys/class/power_supply/BAT1/charge_now
cat /sys/class/power_supply/BAT1/charge_now
regresará algo similar a:
2647000
Carga full de la batería
La información de la carga actual se encuentra en el archivo /sys/class/power_supply/BAT1/charge_full
cat /sys/class/power_supply/BAT1/charge_full
regresará algo similar a:
2647000
Carga full según diseño de la bateria
La información de la carga actual se encuentra en el archivo /sys/class/power_supply/BAT1/charge_full_design
cat /sys/class/power_supply/BAT1/charge_full_design
regresará algo similar a:
4000000
Resumen de información de la batería
Un archivo que acompaña a los anteriores es un resumen de la información total de la batería, el cual se encuentra en /sys/class/power_supply/BAT1/uevent
cat /sys/class/power_supply/BAT1/uevent
regresará algo similar a:
POWER_SUPPLY_NAME=BAT1 POWER_SUPPLY_TYPE=Battery POWER_SUPPLY_STATUS=Full POWER_SUPPLY_PRESENT=1 POWER_SUPPLY_TECHNOLOGY=Li-ion POWER_SUPPLY_VOLTAGE_MIN_DESIGN=11100000 POWER_SUPPLY_VOLTAGE_NOW=12086000 POWER_SUPPLY_CURRENT_NOW=0 POWER_SUPPLY_CHARGE_FULL_DESIGN=4000000 POWER_SUPPLY_CHARGE_FULL=2647000 POWER_SUPPLY_CHARGE_NOW=2647000 POWER_SUPPLY_MODEL_NAME=Chapala POWER_SUPPLY_MANUFACTURER=SANYO POWER_SUPPLY_SERIAL_NUMBER=29220