Configuración de equipos

De XTech Capacitacion

La configuración de equipos en Linux difiere en muchas cosas a la configuración de otros sistemas operativos, en especial de los sistemas operativos no libres.

Podríamos decir que, una vez que conocemos bien la forma de trabajo, una pequeña parte de las tareas de administración se deben hacer en forma local, pero la mayoría de las tareas se pueden hacer en forma remota. Y esto es una gran noticia para el administrador de una red.

Tabla de contenidos

Identificación y Detección de dispositivos en Linux

Discos IDE

[root@lagonegro sergio]# cat /proc/ide/drivers
ide-cdrom version 4.61
ide-disk version 1.18

[root@lagonegro sergio]# cat /proc/ide/ide0/hda/model
Maxtor 6E030L0

Dispositivos PCI

lagonegro:/home/sergio# lspci
0000:00:00.0 Host bridge: nVidia Corporation nForce CPU bridge (rev b2)
0000:00:00.1 RAM memory: nVidia Corporation nForce 220/420 Memory Controller (rev b2)
0000:00:00.2 RAM memory: nVidia Corporation nForce 220/420 Memory Controller (rev b2)
0000:00:00.3 RAM memory: nVidia Corporation: Unknown device 01aa (rev b2)
0000:00:01.0 ISA bridge: nVidia Corporation nForce ISA Bridge (rev c3)
0000:00:01.1 SMBus: nVidia Corporation nForce PCI System Management (rev c1)
0000:00:02.0 USB Controller: nVidia Corporation nForce USB Controller (rev c3)
0000:00:03.0 USB Controller: nVidia Corporation nForce USB Controller (rev c3)
0000:00:04.0 Ethernet controller: nVidia Corporation nForce Ethernet Controller (rev c2)
0000:00:05.0 Multimedia audio controller: nVidia Corporation: Unknown device 01b0 (rev c2)
0000:00:06.0 Multimedia audio controller: nVidia Corporation nForce Audio (rev c2)
0000:00:08.0 PCI bridge: nVidia Corporation nForce PCI-to-PCI bridge (rev c2)
0000:00:09.0 IDE interface: nVidia Corporation nForce IDE (rev c3)
0000:00:1e.0 PCI bridge: nVidia Corporation nForce AGP to PCI Bridge (rev b2)
0000:01:07.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
0000:02:00.0 VGA compatible controller: nVidia Corporation NVCrush11 [GeForce2 MX Integrated Graphics] (rev b1)
En Mandriva Linux se puede utilizar la herramienta lspcidrake, que además muestra los dispositivos USB.


[root@lagonegro sergio]# lspcidrake
nvidia-agp      : nVidia Corp.|nForce AGP Controller [BRIDGE_HOST].
unknown         : nVidia Corp.|nForce 220/420 Memory Controller [MEMORY_RAM].
forcedeth       : nVidia Corp.|nForce Ethernet Controller [MEMORY_RAM].
unknown         : nVidia Corp.|nForce 220 Memory Controller (DDR) [MEMORY_RAM].
unknown         : nVidia Corp.|nForce Joystick [BRIDGE_ISA].
i2c-amd756      : nVidia Corp.|nForce SMBus Controller [SERIAL_SMBUS].
usb-ohci        : nVidia Corp.|nForce USB Controller [SERIAL_USB].
usb-ohci        : nVidia Corp.|nForce USB Controller [SERIAL_USB].
forcedeth       : nVidia Corp.|nForce MCP Networking Adapter [NETWORK_ETHERNET].
unknown         : nVidia Corp.|nForce MCP Audio Processing Unit (Dolby Digital) [MULTIMEDIA_AUDIO].
snd-intel8x0    : nVidia Corp.|nForce Audio Codec Interface [MULTIMEDIA_AUDIO].
unknown         : nVidia Corp.|nForce PCI Bridge [BRIDGE_PCI].
amd74xx         : nVidia Corp.|nForce ATA Controller [STORAGE_IDE].
unknown         : nVidia Corp.|nForce AGP Host to PCI Bridge [BRIDGE_PCI].
8139too         : Realtek|RTL-8139 [NETWORK_ETHERNET]
Card:NVIDIA GeForce2 Integrated (generic): nVidia|GeForce2 Integrated GPU [DISPLAY_VGA].
hub             : Linux 2.6.11-6mdk ohci_hcd|OHCI Host Controller [Hub|Unused].
hub             : Linux 2.6.11-6mdk ohci_hcd|OHCI Host Controller [Hub|Unused].
usblp           : Epson Corp.|USB Printer [Printer|Printer|Bidirectional].

Dispositivos USB

[root@lagonegro sergio]# lsusb
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 003: ID 08ec:0008 M-Systems Flash Disk Pioneers
Bus 001 Device 002: ID 04b8:0005 Seiko Epson Corp. Stylus Printer
Bus 001 Device 001: ID 0000:0000

Procesador

[root@lagonegro sergio]# cat /proc/cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 6
model           : 8
model name      : AMD Athlon(TM) XP 1800+
stepping        : 1
cpu MHz         : 1536.991
cache size      : 256 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr sse pni syscall mmxext 3dnowext 3dnow
bogomips        : 3039.23

Memoria

[root@lagonegro sergio]# cat /proc/meminfo
MemTotal:       223372 kB
MemFree:          7824 kB
Buffers:          4708 kB
Cached:          75340 kB
SwapCached:      19708 kB
Active:         158384 kB
Inactive:        34020 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:       223372 kB
LowFree:          7824 kB
SwapTotal:     2168692 kB
SwapFree:      2059668 kB
Dirty:             148 kB
Writeback:           0 kB
Mapped:         152236 kB
Slab:            14336 kB
CommitLimit:   2280376 kB
Committed_AS:   857984 kB
PageTables:       4264 kB
VmallocTotal:   806904 kB
VmallocUsed:      9936 kB
VmallocChunk:   795768 kB

Acerca de los Winmodems

Un Winmodem es un modem por software diseñado para funcionar con MS Windows. Un modem tradicional usa el hardware para realizar sus tareas, pero los Winmodems realizan sus tareas con software.

Esto lo vuelve más pequeños y más baratos para producir, pero también significa que no pueden ser usados fácilmente en otros sistemas operativos porque el soporte del driver requiere mucho más esfuerzo para producirlo. Además, consumen algo de ciclos de CPU, lo cual puede hacer más lentas las aplicaciones en computadoras viejas.

Los winmodems se pueden dividir en dos clases: modem sin controlador y softmodems puros. Los primeros,tales como los que hace Lucent y Motorola realizan la mayoría del trabajo en la placa y requiere solamente pequeñas cantidades del poder de la CPU. Los softmodems puros realizan toda la emulación de un modem tradicional en la CPU, siendo los estándares HCF y HSF de Conexant los más comunes.

Herramientas para configurar o mostrar las propiedad y/o estado de los dispositivos

lshw

Es una potente herramienta de texto para extraer información sobre el hardware presente.

[root@lagonegro sergi]# lshw -short
H/W path                 Device    Class       Description
==========================================================
                                   system      System Name
/0                                 bus         A7N266VM
/0/0                               memory      BIOS
/0/4                               processor   AMD Athlon(TM) XP 1800+
/0/4/8                             memory      L1 cache
/0/4/9                             memory      L2 cache
/0/20                              memory      System Memory
/0/20/0                            memory      DIMM DRAM Synchronous
/0/20/1                            memory      DIMM DRAM Synchronous
/0/f8000000                        bridge      nForce CPU bridge
/0/f8000000/0.1                    memory      nForce 220/420 Memory Controller
/0/f8000000/0.2                    memory      nForce 220/420 Memory Controller
/0/f8000000/0.3                    memory      nVidia Corporation
/0/f8000000/1                      bridge      nForce ISA Bridge
/0/f8000000/1.1                    bus         nForce PCI System Management
/0/f8000000/2            /dev/fb0  bus         nForce USB Controller
/0/f8000000/2/1          usb1      bus         OHCI Host Controller
/0/f8000000/2/1/1                  printer     USB Printer
/0/f8000000/2/1/2        scsi0     storage     DataTraveler 2.0
/0/f8000000/2/1/2/0.0.0  /dev/sda  disk        DataTraveler 2.0
/0/f8000000/3                      bus         nForce USB Controller
/0/f8000000/3/1          usb2      bus         OHCI Host Controller
/0/f8000000/4            eth0      network     nForce Ethernet Controller
/0/f8000000/5                      multimedia  nForce Audio
/0/f8000000/6                      multimedia  nForce Audio
/0/f8000000/8                      bridge      nForce PCI-to-PCI bridge
/0/f8000000/8/7          eth1      network     RTL-8139/8139C/8139C+
/0/f8000000/9                      storage     nForce IDE
/0/f8000000/9/0          ide0      bus         IDE Channel 0
/0/f8000000/9/0/0        /dev/hda  disk        Maxtor 6E030L0
/0/f8000000/9/1          ide1      bus         IDE Channel 1
/0/f8000000/9/1/0        /dev/hdc  disk        LITE-ON DVDRW LDW-851S
/0/f8000000/1e                     bridge      nForce AGP to PCI Bridge
/0/f8000000/1e/0                   display     NVCrush11 [GeForce2 MX Integrated                                             Graphics]

Harddrake2

Se trata de la poderosa herramienta que viene en Mandriva Linux para configurar el hardware, al cual se puede acceder desde el Mandriva Control Center.

HardInfo

Es otro utilitario gráfico desarrollado con las librerías de GNOME. Además de mostrar información del sistema operativo, puede mostrar datos de dispositivos PCI, ISA PnP, USB,IDE, SCSI, y dispositivos de puerto serie y paralalo.

Estudio detallado del sistema de archivos proc

El directorio /proc es virtual, su contenido está en memoria. Contiene información de los procesos, dispositivos, protocolos de red, etc. Es en realidad una manera en que el usuario y/o el administrador del sistema puede acceder a datos del núcleo. La mayoría de los archivos son de sólo lectura, aunque algunos se pueden modificar y de esta manera cambiar la configuración del sistema.

Sistemas de archivos

lagonegro:/proc# cat filesystems

nodev   sysfs
nodev   rootfs
nodev   bdev
nodev   proc
nodev   sockfs
nodev   futexfs
nodev   tmpfs
nodev   pipefs
nodev   eventpollfs
nodev   devpts
::ext2
::cramfs
nodev   ramfs
nodev   devfs
nodev   mqueue
::ext3
nodev   usbfs
nodev   usbdevfs

Regiones de entrada y salida de los puertos que están en uso

lagonegro:/proc# cat ioports
0000-001f : dma1
0020-0021 : pic1
0040-005f : timer
0060-006f : keyboard
0080-008f : dma page reg
00a0-00a1 : pic2
00c0-00df : dma2
00f0-00ff : fpu
0170-0177 : ide1
01f0-01f7 : ide0
0290-0297 : pnp 00:13
02f8-02ff : serial
0376-0376 : ide1
0378-037a : parport0
037b-037f : parport0
03c0-03df : vga+
03f0-03f1 : pnp 00:13
03f6-03f6 : ide0
03f8-03ff : serial
0cf8-0cff : PCI conf1
5000-500f : 0000:00:01.1
5100-511f : 0000:00:01.1
5500-550f : 0000:00:01.1
a800-a80f : 0000:00:09.0
  a800-a807 : ide0
  a808-a80f : ide1
b000-bfff : PCI Bus #01
  b800-b8ff : 0000:01:07.0
    b800-b8ff : 8139too
d800-d807 : 0000:00:04.0
  d800-d807 : forcedeth
e000-e07f : 0000:00:06.0
  e000-e03f : NVIDIA nForce Audio
e100-e1ff : 0000:00:06.0
  e100-e1ff : NVIDIA nForce Audio
e400-e47f : pnp 00:13
ec00-ec3f : pnp 00:13


Información de los procesos

Seguramente se habrá notado que los nombres de muchos directorios dentro del directorio /proc son números, esos valores corresponden a PIDs (Identificadores de Procesos) de los procesos actuales. Dentro de cada uno de esos directorios contiene la información sobre dicho proceso. Si ejecuta el comando ls -lR [0-9]* |less se obtiene algo así:

Información de procesos
Información de procesos

Información sobre PCMCIA

Se encuentra en /proc/bus/pccard

Información sobre teclado, mouse, etc.

[root@lagonegro rules.d]# cat /proc/bus/input/devices
I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
H: Handlers=kbd event0
B: EV=120013
B: KEY=4 2000000 2b803878 f840d001 f2ffffdf ffefffff ffffffff fffffffe
B: MSC=10
B: LED=7

I: Bus=0011 Vendor=0002 Product=0004 Version=0000
N: Name="GenPS/2 Genius Wheel Mouse"
P: Phys=isa0060/serio1/input0
H: Handlers=mouse0 event1 ts0
B: EV=7
B: KEY=1f0000 0 0 0 0 0 0 0 0
B: REL=103


Estadísticas de discos

[root@lagonegro rules.d]# cat /proc/diskstats
   1    0 ram0 0 0 0 0 0 0 0 0 0 0 0
   1    1 ram1 0 0 0 0 0 0 0 0 0 0 0
   1    2 ram2 0 0 0 0 0 0 0 0 0 0 0
   1    3 ram3 0 0 0 0 0 0 0 0 0 0 0
   1    4 ram4 0 0 0 0 0 0 0 0 0 0 0
   1    5 ram5 0 0 0 0 0 0 0 0 0 0 0
   1    6 ram6 0 0 0 0 0 0 0 0 0 0 0
   1    7 ram7 0 0 0 0 0 0 0 0 0 0 0
   1    8 ram8 0 0 0 0 0 0 0 0 0 0 0
   1    9 ram9 0 0 0 0 0 0 0 0 0 0 0
   1   10 ram10 0 0 0 0 0 0 0 0 0 0 0
   1   11 ram11 0 0 0 0 0 0 0 0 0 0 0
   1   12 ram12 0 0 0 0 0 0 0 0 0 0 0
   1   13 ram13 0 0 0 0 0 0 0 0 0 0 0
   1   14 ram14 0 0 0 0 0 0 0 0 0 0 0
   1   15 ram15 0 0 0 0 0 0 0 0 0 0 0
   3    0 hda 14156 1198 623274 193058 14387 23798 305560 370496 0 102892 563554
   3    1 hda1 279 4242 129 1008
   3    2 hda2 18 144 0 0
   3    3 hda3 398 922 5 16
   3    4 hda4 1 2 0 0
   3    5 hda5 10931 570418 18079 144632
   3    6 hda6 3716 47394 19995 159904
   9    0 md0 0 0 0 0 0 0 0 0 0 0 0
   7    0 loop0 0 0 0 0 0 0 0 0 0 0 0
   7    1 loop1 0 0 0 0 0 0 0 0 0 0 0
   7    2 loop2 0 0 0 0 0 0 0 0 0 0 0
   7    3 loop3 0 0 0 0 0 0 0 0 0 0 0
   7    4 loop4 0 0 0 0 0 0 0 0 0 0 0
   7    5 loop5 0 0 0 0 0 0 0 0 0 0 0
   7    6 loop6 0 0 0 0 0 0 0 0 0 0 0
   7    7 loop7 0 0 0 0 0 0 0 0 0 0 0
  22    0 hdc 10 37 352 2797 0 0 0 0 0 2797 2797
   2    0 fd0 0 0 0 0 0 0 0 0 0 0 0
   8    0 sda 78 43 506 730 0 0 0 0 0 730 730
   8    1 sda1 48 153 0 0
   8    2 sda2 48 153 0 0

DKMS

Se trata de una estructura creada por Dell que permite manipular las fuentes de los módulos del kernel. Sucede a veces se produce un desfasaje entre las fechas de nuevas versiones de drivers por parte de vendedores de hardware y las versiones de una distribución. Con DKMS no hay necesidad de compilar un kernel nuevo: se pueden convertir módulos para que sean adaptados a la versión de un kernel en producción. Un estado módulo puede estar en cuatro estados:

  • Fuera del árbol de fuentes del kernel
  • Dentro del árbol de las fuentes del kernel
  • Compilado
  • Instalado

dkms posee la capacidad de hacer estas tareas de acuerdo a un archivo /etc/dkms.conf, además posee un servicio para autoinstalar módulos en el arranque del sistema.


sysfs, haldaemon y udev

A partir de la versión 2.6 del kernel Linux comenzó a utilizarse un nuevo sistema de archivos llamado sysfs. Este sistema de archivos es virtual y se monta sobre el directorio /sys. Es un directorio con información específica de hardware. El servicio haldaemon extrae datos para de /sys para ser utilizado por aplicaciones de escritorio. El servicio udev sirve para mejorar el uso del directorio /dev (que contiene los archivos que son nodos de dispositivos en general) y para manejar el comportamiento del sistema frente a eventos relacionados con dispositivos de bloque, red, usb, etc. También se basa en la información que extrae del directorio /sys para trabajar.

El archivo de configuración principal es /etc/udev.conf.

[root@lagonegro sergi]# cat /etc/udev/udev.conf
# udev.conf

# Where in the filesystem to place the device nodes
udev_root="/dev"

# The name and location of the udev database.
udev_db="/dev/.udevdb"

# The name and location of the udev rules file(s).
udev_rules="/etc/udev/rules.d"

# The syslog(3) priority: "err", "info", or the numerical value.
udev_log="err"

Dentro del directorio de reglas, Las reglas de udev se leen en los archivos ubicados en el directorio /etc/udev/rules.d o en la ubicación especificada en el archivo de configuración. Cada línea en los archivos de reglas contiene al menos un par de valores de clave. Hay dos clases de claves, claves de comparación y de asignación. Si todas las claves de comparación concuerdan con su valor, la regla se aplica y las claves obtienen el valor especifico asignado. Una regla de comparación puede:

  • Declarar el nombre del nodo del dispositivo.
  • Crear un enlace simbólico apuntando al archivo especial
  • Lanzar un determinado programad de acuerdo al evento.
  • Si no se encuentran reglas de comparación, se usa el nombre del nodo del dispositivo predeterminado. Una regla consiste de una lista de una o más pares de claves seguidas por una coma.

Los archivos de reglas contienen al menos un par de valores de claves.

Fragmento de un archivo de reglas:

# IDE devices
BUS="ide", KERNEL=="hd[a-z]", SYSFS{removable}="1", \
  PROGRAM=="/bin/cat /proc/ide/%k/media", RESULT="cdrom*", \
  GROUP="cdrom"
BUS="ide", KERNEL=="hd[a-z]", SYSFS{removable}="1", \
  PROGRAM=="/bin/cat /proc/ide/%k/media", RESULT="floppy*", \
  GROUP="floppy"

Para más información leer el manual de udev.

En la imagen siguiente se muestra un ejemplo de como el udev actúa cuando se monta un el sistema de archivos de un DVD (se subió el nivel de syslog a info en udev.conf):

Log de udev
Log de udev

Diapositivas: SSH, Dispositivos y Sistema de Ventanas X

Bibliografía:

Hardware-HOWTO [1]

Notebooks http://www.linux-laptop.net

Debian: http://www.debian.org/releases/stable/i386/ch02s01.html.es

Mandriva Linux: http://www1.mandrivalinux.com/en/hardware.php3

Winmodems: http://www.linmodems.org/

Proyecto DKMS http://linux.dell.com/projects.shtml#dkms

Herramientas personales