Linux – Conversando con el aparato
uname -r 0.0.0-0-generic-pae
Versión del Kernel
uname -mrs Linux 0.0.0-0-generic x86_64
cat /etc/redhat-release
cat /etc/*release DISTRIB_ID=Josoroma DISTRIB_RELEASE=00.00 DISTRIB_CODENAME=josoroma DISTRIB_DESCRIPTION="Josoroma 00.00" NAME="Ubuntu" VERSION="00.00, Josoroma" ID=josoroma ID_LIKE=debian PRETTY_NAME="Josoroma (00.00)" VERSION_ID="00.00"
cat /etc/*version josoroma/sid
cat /etc/*issue Josoroma 00.00.0 \n \l
cat /proc/*version Linux version 0.0.0-0-generic-pae (buildd@josoroma) (gcc version 0.0.0 (Josoroma/Linaro 0.0.0-1josoroma5) ) #77-Josoroma SMP Wed March 00 00:00:00 UTC 2013
lsb_release -a Distributor ID: Josoroma Description: Josoroma 00.00 Release: 00.00 Codename: name
Conociendo el hardware
Con lshw se pueden conocer detalles de la configuración de una máquina, por ejemplo:
- Versión del firmware.
- Configuración de la placa o tarjeta principal.
- Versión y velocidad del CPU.
- Configuración de la caché.
- Velocidad del bus.
Compatible con
- DMI (x86 y IA-64).
- “OpenFirmware device tree” (PowerPC).
- PCI / AGP.
- CPUID (x86).
- IDE / ATA / ATAPI.
- PCMCIA (sólo probado en x86).
- SCSI.
- USB.
lshw -short | egrep -i 'system|processor|System Memory|Bios|display|multimedia|network|disk|volume' system MacBookPro4,1 (System SKU#) /0/0 processor Intel(R) Core(TM)2 Duo CPU T9500 @ 2.60GHz /0/3 processor CPU /0/6 memory 4GiB System Memory /0/e memory 1MiB BIOS /0/100/1/0 display G84M [GeForce 8600M GT] /0/100/1b multimedia 82801H (ICH8 Family) HD Audio Controller /0/100/1c.4/0 eth1 network BCM4321 802.11a/b/g/n /0/100/1c.5/0 eth0 network 88E8058 PCI-E Gigabit Ethernet Controller /0/2/0.0.0 /dev/cdrom disk DVDRW GSA-S10N /0/5/0.0.0 /dev/sda disk 200GB Hitachi HTS72202 /0/5/0.0.0/1 volume 2047KiB EFI GPT partition /0/5/0.0.0/2 /dev/sda2 volume 244MiB Linux filesystem partition /0/5/0.0.0/3 /dev/sda3 volume 186GiB Non-FS data partition
Por favor consulte:
lshw -class display
lshw -class multimedia
lshw -class network
Información del CPU
cat /proc/cpuinfo | egrep -i 'procesor|vendor|cpu family|model|cpu cores' | sort -u cpu cores : 2 cpu family : 6 model : 23 model name : Intel(R) Core(TM)2 Duo CPU T9500 @ 2.60GHz vendor_id : GenuineIntel
CPUs
cat /proc/cpuinfo | egrep -i 'proc|vendor|name' processor : 0 vendor_id : GenuineIntel model name : Intel(R) Core(TM)2 Duo CPU T9500 @ 2.60GHz processor : 1 vendor_id : GenuineIntel model name : Intel(R) Core(TM)2 Duo CPU T9500 @ 2.60GHz
Con el comando lscpu podemos obtener información detallada como:
- Cantidad de CPUs.
- Threads (hilos).
- Cores (núcleos).
- Sockets (conexiones).
- Nodos NUMA.
- Caches de CPU.
- Familia de CPU.
- Modelo.
- bogoMIPS.
- Orden de bytes y el paso a paso de sysfs y /proc/cpuinfo.
También es compatible con CPUs fuera de línea. Se puede imprimiren un formato “parseable”, incluyendo cómo diferentes memorias de caché son compartidas por CPUs diferentes y también lo qué puede ser alimento para otros programas.
lscpu | egrep -i 'Arch|CPU|Vendor|Model' Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit CPU(s): 2 On-line CPU(s) list: 0,1 Vendor ID: GenuineIntel CPU family: 6 Model: 23 CPU MHz: 800.000 NUMA node0 CPU(s): 0,1
La memoria libre y en uso del sistema
cat /proc/meminfo | egrep -i 'Mem(T|F)' | awk '{ printf ( "%.0fMB \n", ($2/1024) ); }'; 3935MB 714MB
free -m | grep -i 'mem' | awk '{print $2 "MB " $3 "MB " $4 "MB" }' 3935MB 3221MB 714MB
Slot de la memoria de video
lspci | grep -i 'VGA' | awk '{print $1}' 01:00.0
Cantidad de memoria de video
lspci | grep -i 'VGA' | awk '{print $1}' | xargs lspci -vs | egrep ' prefetchable\) \[size=[0-9]+M' | perl -pe 's/.*size=([0-9]+)M.*/$1/g' 256
Descripcion de la tarjeta de video
lspci -v | grep -i -A12 --color 'VGA' 01:00.0 VGA compatible controller: NVIDIA Corporation G84M [GeForce 8600M GT] (rev a1) (prog-if 00 [VGA controller]) Subsystem: Apple Inc. Device 00a3 Physical Slot: 1 Flags: bus master, fast devsel, latency 0, IRQ 16 Memory at d2000000 (32-bit, non-prefetchable) [size=16M] Memory at c0000000 (64-bit, prefetchable) [size=256M] Memory at d0000000 (64-bit, non-prefetchable) [size=32M] I/O ports at 7000 [size=128] [virtual] Expansion ROM at d3000000 [disabled] [size=128K] Capabilities: Kernel driver in use: nvidia
grep -i --color 'memory' /var/log/Xorg.0.log [ 27.073] (--) NVIDIA(0): Memory: 524288 kBytes [ 28.105] (II) NVIDIA: Using 768.00 MB of virtual memory for indirect memory access. [ 28.482] (==) NVIDIA(0): Disabling shared memory pixmaps
Buses PCI
lspci es útil para conocer información sobre los buses PCI en el sistema y los dispositivos que se encuentran conectados a ellos.
Por defecto, se muestra una lista breve de dispositivos. Para informar sobre errores en los controladores de dispositivos PCI o sobre lspci en sí, se recomienda incluir la salida de “lspci-vvx” o mejor aún de “lspci-vvxxx” (sin embargo, ver a continuación las posibles salvedades).
Algunas partes de la salida anterior, especialmente en los modos altamente detallados, probablemente son interesantes sólo para hackers apasionados.
Para conocer las definiciones exactas de los campos, se puede consultar cualquiera de las especificaciones de PCI o el header.h, y también /usr/include/linux/pci.h
Buses USB
lsusb es útil para conocer información sobre los buses USB en el sistema y los dispositivos que se encuentran conectados a ellos.
Con la opción “-v, –verbose“:
Se le dice a lsusb que sea más explícito y que presente información más detallada sobre los dispositivos que se muestran. Esto incluye descriptores de configuración sobre la velocidad actual del dispositivo. Los descriptores de clase se muestran, cuando esté disponible, para las clases de dispositivos USB incluyendo:
- hub.
- audio.
- HID.
- comunicaciones.
- tarjetas chip.
Dispositivos SCSI (o hosts) y sus atributos
Utiliza la información de sysfs (desde el Linux kernel serie 2.6 y posteriores) para listar los dispositivos scsi (o hosts) que se encuentren conectados al sistema. Las opciones se pueden usar para controlar la cantidad y el tipo de información de cada dispositivo.
Por defecto, los nombres de los nodos de los dispositivos (por ejemplo, “/dev/sda” o “/dev/root_disk“) se obtienen mediante la anotación de los números mayores y menores para el dispositivo obtenido desde sysfs (por ejemplo, el contenido de “/sys/block/sda/dev“) seguidamente busca una coincidencia en el directorio “/dev“. Esta coincidencia “match by major and minor” permite que los dispositivos con un nombre diferente por causa de udev (por ejemplo) sean informados correctamente en esta utilidad.
En algunas situaciones es muy útil ver el nombre de nodo de dispositivo que Linux produce de forma predeterminada, por esto se ofrece la opción –kname. Un ejemplo donde esta opción puede ser útil es cuando el registro de errores del kernel se reportan los mensajes de error de disco utilizando el nombre del kernel por defecto.
lsscsi --kname [0:0:0:0] cd/dvd HL-DT-ST DVDRW GSA-S10N AP12 /dev/sr0 [2:0:0:0] disk ATA Hitachi HTS72202 DC4A /dev/sd
Dispositivos de bloques del sistema
lsblk muestra información sobre algunos o todos los dispositivos de bloque especificados. El comando lee el sistema de ficheros sysfs para recopilar información.
Por defecto, lsblk imprime todos los bloques dispositivos de bloque (excepto los discos RAM) con un formato de árbol. Por favor utilice lsblk –help para conocer la lista con todas las columnas disponibles.
lsblk -m NAME SIZE OWNER GROUP MODE sr0 1024M root cdrom brw-rw---- sda 149,1G root disk brw-rw---- ├─sda1 243M root disk brw-rw---- ├─sda2 1K root disk brw-rw---- └─sda5 148,8G root disk brw-rw---- ├─scorpion-root (dm-0) 146,8G root disk brw-rw---- └─scorpion-swap_1 (dm-1) 2G root disk brw-rw----
lsblk -f NAME FSTYPE LABEL MOUNTPOINT sr0 sda ├─sda1 ext2 /boot ├─sda2 └─sda5 LVM2_member ├─scorpion-root (dm-0) ext4 / └─scorpion-swap_1 (dm-1) swap [SWAP]
Sondear el hardware presente en el sistema
hwinfo se utiliza para generar un reporte general que más tarde pueda ser utilizado por el equipo de soporte para solucionar problemas.
hwinfo --short --partition 2>&1 | grep '/dev/' /dev/sda1 Partition /dev/sda2 Partition /dev/sda3 Partition
Información disponible:
all, bios, block, bluetooth, braille, bridge, camera, cdrom, chipcard, cpu, disk, dsl, dvb, fingerprint, floppy, framebuffer, gfxcard, hub, ide, isapnp, isdn, joystick, keyboard, memory, modem, monitor, mouse, netcard, network, partition, pci, pcmcia, pcmcia-ctrl, pppoe, printer, scanner, scsi, smp, sound, storage-ctrl, sys, tape, tv, usb, usb-ctrl, vbe, wlan, zip
hwinfo --short --cpu 2>&1 | grep -v 'cpu:' | grep -i 'cpu' Intel(R) Core(TM)2 Duo CPU T9500 @ 2.60GHz, 2400 MHz Intel(R) Core(TM)2 Duo CPU T9500 @ 2.60GHz, 2600 MHz
hwinfo --disk 2>&1 | egrep -i 'Model|Vendor|Device|Driver|Status' | egrep -v 'Device Files|Device Link' Model: "Hitachi HTS72202" Vendor: "Hitachi" Device: "HTS72202" Driver: "ata_piix", "sd" Driver Modules: "ata_piix" Device File: /dev/sda Device Number: block 8:0-8:15 Config Status: cfg=new, avail=yes, need=no, active=unknown
hwinfo --gfxcard 2>&1 | egrep -i 'Model:|Vendor:|Device:|Driver:|Modules:|Status:' Model: "nVidia GeForce 8600M GT" Vendor: pci 0x10de "nVidia Corporation" Device: pci 0x0407 "GeForce 8600M GT" SubVendor: pci 0x106b "Apple Computer Inc." SubDevice: pci 0x00a3 Driver: "nvidia" Driver Modules: "nvidia" Config Status: cfg=new, avail=yes, need=no, active=unknown
hwinfo --memory 2>&1 | egrep -i 'memory size' Memory Size: 3 GB + 768 MB
hwinfo --netcard 2>&1 | egrep -i 'Model:|^Vendor:|^Device:|Driver:|Device File:|HW Address:|Status:|Cmd:' Model: "Broadcom BCM4328 802.11a/b/g/n" Driver: "wl" Device File: eth1 HW Address: 00:1f:5b:d0:7b:5b Driver Status: ssb is not active Driver Activation Cmd: "modprobe ssb" Driver Status: wl is active Driver Activation Cmd: "modprobe wl" Config Status: cfg=new, avail=yes, need=no, active=unknown Model: "Marvell Yukon 88E8058 PCI-E Gigabit Ethernet Controller" Driver: "sky2" Device File: eth0 HW Address: 00:1f:f3:d7:33:a9 Driver Status: sky2 is active Driver Activation Cmd: "modprobe sky2" Config Status: cfg=new, avail=yes, need=no, active=unknown
hwinfo --network 2>&1 | egrep -i 'Model:|Driver:|Modules:|Device File:|HW Address:|Link detected:|Config Status' Model: "Ethernet network interface" Driver: "sky2" Driver Modules: "sky2" Device File: eth0 HW Address: 00:1f:f3:d7:33:a9 Link detected: no Config Status: cfg=new, avail=yes, need=no, active=unknown Model: "Ethernet network interface" Driver: "wl" Driver Modules: "wl" Device File: eth1 HW Address: 00:1f:5b:d0:7b:5b Link detected: yes Config Status: cfg=new, avail=yes, need=no, active=unknown Model: "Loopback network interface" Device File: lo Link detected: yes Config Status: cfg=new, avail=yes, need=no, active=unknown
hwinfo --sound 2>&1 | egrep -i 'Model:|Vendor:|Device:|Driver:|Modules:|Status:|Cmd:' Model: "Intel 82801H (ICH8 Family) HD Audio Controller" Vendor: pci 0x8086 "Intel Corporation" Device: pci 0x284b "82801H (ICH8 Family) HD Audio Controller" SubVendor: pci 0x106b "Apple Computer Inc." SubDevice: pci 0x00a3 Driver: "snd_hda_intel" Driver Modules: "snd_hda_intel" Driver Status: snd_hda_intel is active Driver Activation Cmd: "modprobe snd_hda_intel" Config Status: cfg=new, avail=yes, need=no, active=unknow
Tablas de particiones
fdisk -l 2>&1 | egrep -v "warning|doesn't" | egrep 'dev/' Disk /dev/sda: 200.0 GB, 200049647616 bytes /dev/sda1 1 4095 2047+ ee GPT /dev/sda2 * 4096 503807 249856 83 Linux /dev/sda3 503808 390721535 195108864 da Non-FS data Disk /dev/mapper/ubuntu--vg-root: 195.5 GB, 195513286656 bytes Disk /dev/mapper/ubuntu--vg-swap_1: 4273 MB, 4273995776 bytes
cat /proc/partitions major minor #blocks name 11 0 1048575 sr0 8 0 195360984 sda 8 1 1024 sda1 8 2 249856 sda2 8 3 195108864 sda3 252 0 190930944 dm-0 252 1 4173824 dm-1
Parámetros del hardware de los discos IDE y SATA
hdparm es una utilidad de línea de comandos que permite ver y ajustar los parámetros del hardware de los discos IDE y SATA (aunque los SATA también cuentan con una utilidad específica llamada sdparm). Con esta utilidad se pueden ajustar parámetros como el caché de disco, el modo de descanso, el control de energía, la gestión acústica y los ajustes DMA. Suele venir instalado por defecto en la mayoría de distribuciones GNU/Linux.
hdparm proporciona una interfaz de línea de comandos para diferentes interfaces del kernel que son soportadas por el subsistema Linux SATA/PATA/SAS “libata”, también soporta susbsistemas más viejos de controladores IDE.
Muchos Unidades USB recientes (2008 y posteriores) también son compatibles con “SAT” (Traducción de comandos SCSI-ATA) por lo tanto pueden trabajar con hdparm.
Algunas opciones pueden funcionar correctamente sólo con los núcleos (kernels) más recientes.
hdparm -i /dev/sda | egrep -i 'Model|DMA modes|Drive' Model=Hitachi HTS722020K9SA00, FwRev=DC4AC77A, SerialNo=080520DP0440DTGJKPZP DMA modes: mdma0 mdma1 mdma2 UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6 Drive conforms to: unknown: ATA/ATAPI-2,3,4,5,6,7
Tabla de Contenidos DMI (algunos dicen SMBIOS)
Permite conocer la Tabla de Contenidos DMI (algunos dicen SMBIOS) en un formato legible. Esta tabla contiene una descripción de los componentes de hardware del sistema, así como de otras piezas útiles de información como: números de serie y la revisión del BIOS.
Gracias a la Tabla de Contenidos DMI, se puede recuperar esta información sin tener que probar el hardware actual. Si bien permite un reporte agil y seguro, también puede ser probable que la información presentada algunas veces pueda ser poco fiable.
Por favor consulte: How to Forge: dmidecode
dmidecode -t 16 -t 17 | egrep -i 'capacity|devices|width|size|locator:|type:|speed' | egrep -iv 'error|bank' Maximum Capacity: 4 GB Number Of Devices: 2 Total Width: 64 bits Data Width: 64 bits Size: 2048 MB Locator: DIMM0 Type: DDR2 Speed: 667 MHz Total Width: 64 bits Data Width: 64 bits Size: 2048 MB Locator: DIMM1 Type: DDR2 Speed: 667 MHz
Dispositivos de audio
arecord --list-devices **** List of PLAYBACK Hardware Devices **** card 0: Intel [HDA Intel], device 0: ALC889A Analog [ALC889A Analog] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: Intel [HDA Intel], device 1: ALC889A Digital [ALC889A Digital] Subdevices: 1/1 Subdevice #0: subdevice #0
cat /proc/asound/cards 0 [Intel]: HDA-Intel - HDA Intel HDA Intel at 0xdb500000 irq 46
En este caso sólo hay una tarjeta de sonido, la cual es la tarjeta de sonido incorporada HDA-Intel.
ls /proc/asound/card* /proc/asound/cards /proc/asound/card0: codec#0 id pcm0c pcm0p pcm1c pcm1p pcm2c
Donde X indica el número de tarjeta, por ejemplo, si se muestra card0 y card1, esto quiere decir que hay dos tarjetas de sonido.
ls -ld /proc/asound/card* | grep ^d dr-xr-xr-x 7 root root 0 ago 11 11:06 /proc/asound/card0
Cantidad de dispositivos conectados a la tarjeta de sonido
cat /proc/asound/devices 1: : sequencer 2: [ 0- 2]: digital audio capture 3: [ 0- 1]: digital audio playback 4: [ 0- 1]: digital audio capture 5: [ 0- 0]: digital audio playback 6: [ 0- 0]: digital audio capture 7: [ 0- 0]: hardware dependent 8: [ 0] : control 33: : timer
Detalles del módulo del núcleo o del driver para una tarjeta de sonido
El módulo relacionado con la tarjeta de sonido se representa con la cadena de texto “snd” en su nombre. Por lo tanto, si podemos buscar sobre /proc/asound/modules o sobre la salida del comando lsmod, entonces si podremos encontrar fácilmente qué tarjeta de sonido está en uso, por ejemplo:
grep snd /proc/asound/modules 0 snd_hda_intel
La versión de software de la tarjeta de sonido
cat /proc/asound/version Advanced Linux Sound Architecture Driver Version k0.0.0-0-generic.