Está en la página 1de 39

Hardware and Device Configuration

Informacin general acerca del hardware


Conceptos clave

Los controladores de dispositivos se pueden compilar en una imagen esttica de kernel o ejecutar como mdulos de kernel. Los controladores de dispositivo ejecutados como mdulos kernel pueden configurarse en el archivo /etc/modprobe.conf. Red Hat mantiene una base de datos de hardware compatible accesible en http://bugzilla.redhat.com/hwcert. Los mensajes de kernel se almacenan en el buffer dmesg. El contenido de un buffer dmesg se puede examinar con el comando dmesg. El archivo /var/log/dmesg contiene una instantnea del buffer dmesg tomada inmediatamente despus del arranque ms reciente. El archivo /proc/cpuinfo entrega informacin acerca de los procesadores del sistema. El archivo /proc/meminfo entrega informacin acerca de la memoria del sistema. El directorio /proc/ide/ entrega informacin acerca de los dispositivos IDE del sistema.

Hardware and Device Configuration


Discusin Controladores de dispositivo
Una de las funciones primarias del kernel de Linux es ofrecer acceso al hardware de la mquina. Algunos componentes de hardware, tales como el CPU o la memoria, son tan fundamentales que su administracin es parte de la funcionalidad central del kernel. Otro hardware, como por ejemplo las tarjetas de interfaz, los dispositivos USB y los discos, utilizan componentes ms especializados del kernel conocidos como controladores de dispositivos. Muchos controladores de dispositivos se configuran, por lo general al pasar parmetros al controlador de dispositivo a medida que se carga. Una de las razones de la popularidad del kernel de Linux es su diseo modular. Los controladores de dispositivo se pueden implementar de dos maneras: como parte de la imagen esttica de kernel o como un mdulo de kernel . La forma como se implementa un controlador de dispositivo determina cmo se especifican los parmetros de configuracin (si hay alguno).

La imagen esttica del kernel


La imagen esttica del kernel es el archivo que se carga al iniciar su sistema. En Red Hat Enterprise Linux, el archivo de imagen convencionalmente reside en el directorio /boot con el nmero de versin vmlinuz-versin, donde versin se remplaza por el nmero de la versin de kernel. Los controladores de dispositivo utilizados en el proceso de arranque antes de que los sistemas de archivos estn disponibles, tales como los controladores del dispositivo IDE y los controladores de consola, suelen implementarse en la imagen central de kernel. Puesto que estos controladores de dispositivo se cargan como parte de la imagen de kernel misma, la nica forma de pasarles los parmetros es en el tiempo de arranque. La mayora de los gestores de arranque, tales como GRUP y LILO, le permiten a los usuarios pasar parmetros al kernel a medida que se arranca a travs de la lnea de comando del kernel. Aqu, solo presentamos el concepto de lnea de comando de kernel. Ms adelante en este curso trataremos la forma de configuracin. Al leer el archivo /proc/cmdline reporta la lnea de comando utilizada al arrancar la instancia actual del kernel.
[root@station root]# cat /proc/cmdline ro root=LABEL=/ vga=0x317 5

La documentacin sobre algunos de los parmetros de tiempo de arranque ms utilizados se pueden encontrar en la pgina del manual bootparam(7).

Mdulos del kernel


Los controladores de dispositivo sumplementarios que no se necesitan durante las etapas iniciales del sistema de arranque, tales como los controladores de interfaz de red y los controladores de tarjetas de sonido, suelen implementarse como mdulos del kernel. Los mdulos de kernel existen como archivos en el sistema de archivos, por lo general por debajo del directorio /lib/modules/versin, donde de nuevo versin, se remplaza por la versin relevante del kernel. Los mdulos de kernel de Linux se cargan "a solicitud": como el kernel trata primero de acceder a un dispositivo particular, el controlador de dispositivo para ese dispositivo se carga desde el sistema de archivo. Si el dispositivo correspondiente a un mdulo de controlador de dispositivo particular no est presente (o no se utiliza), ese mdulo de kernel nunca se carga. El comando lsmod generar una lista de los mdulos de kernel cargados o igualmente se puede examinar el archivo /proc/modules.
[root@station root]# lsmod Module Size sd_mod 13516 usb-storage 74656 scsi_mod 107544 parport_pc 19076 lp 8996 ...

Used by Not tainted 2 (autoclean) 1 2 [sd_mod usb-storage] 1 (autoclean) 0 (autoclean)

Los parmetros se pueden pasar a los controladores de dispositivos modulares cuando estn cargndose. Cada vez que un mdulo es cargado "a solicitud" del kernel, el archivo /etc/modprobe.conf busca parmetros de mdulo. Por ejemplo, el mdulo de kernel sb que implementa el controlador de dispositivo para las tarjetas de sonido de SoundBlaster se puede configurar para esperar un tipo particular de tarjeta de sonido al pasar un parmetro de la forma tipo=N, donde N se remplaza por un nmero entero. Si se aade la lnea correcta al archivo /etc/modprobe.conf, este parmetro se establecer cada vez que el kernel cargue el mdulo sb.
[root@station root]# cat /etc/modprobe.conf options sb type=3 alias eth0 e100 alias eth1 airo alias snd-card-0 snd-intel8x0 install snd-intel8x0 /sbin/modprobe --ignore-install snd-intel8x0 && /usr/sbin/alsactl restore >/dev/null 2>&1 remove snd-intel8x0 { /usr/sbin/alsactl store >/dev/null 2>&1 || : ; }; /sbin/modprobe -r --ignore-remove snd-intel8x0 alias usb-controller uhci-hcd

Esta lnea especifica los parmetros que se van a utilizar cada vez que el mdulo de kernel sb se cargue de modo implcito.
[Note]

No es necesario "instalar" controladores de dispositivo La instalacin de los controladores de dispositivo para dispositivos particulares no es problema para Linux como s lo es para otros sistemas operativos. Debido a la naturaleza modular del kernel y a las libertades provistas por el software de cdigo abierto, se incluyen por defecto mdulos para los hardware ms compatibles. Un controlador de dispositivo implementado como mdulo de kernel slo se carga si el hardware que administra se detecta, por lo tanto, el nico recurso que se pierde es un poco de espacio en disco.

Aunque no se han discutido los detalles de un controlador de dispositivo en particular, esta discusin ha tratado de introducir los siguientes conceptos:

Los controladores de dispositivo en Linux se pueden implementar ya sea de modo esttico o modular. Los controladores de dispositivo esttico se configuran en el tiempo de arranque a travs de la lnea de comando del kernel. Los controladores de dispositivo modular se configuran principalmente a travs del archivo /etc/modprobe.conf en tiempo de carga.

Detalles sobre la configuracin de la lnea de comando de kernel, administracin de mdulos de kernel en general y la funcin del archivo /etc/modprobe.conf se vern ms adelante.

Base de datos de hardware soportado por Red Hat


Las ventajas y desventajas del modelo de desarrollo de cdigo abierto son en particular relevantes al soporte de hardware. La desventaja: puesto que la comunidad de cdigo abierto no suele relacionarse con los proveedores de hardware y desconoce informacin que an no se ha publicado (o algunas veces cualquier informacin), la versin ms reciente de una tarjeta de vdeo determinada, una tarjeta de sonido u otro dispositivo suele no ser compatible, (la aparicin de Linux y sus distribuidores, tales como Red Hat, est cambiando esta tendencia). La ventaja es que alguien en la comunidad de cdigo abierto querr aprovechar las caractersticas del nuevo dispositivo y es muy probable que al final sea compatible. Debido a estas influencias que compiten, mantener el rastro del hardware compatible y del que no lo es puede ser un problema. Red Hat mantiene una base de datos de hardware compatible en http://bugzilla.redhat.com/hwcert. La base de datos de bsqueda ayuda a identificar hardware que es respaldado por la distribucin de Red Hat (y los servicios de soporte tcnico de Red Hat) y el hardware que se sabe que funciona, pero oficialmente no est respaldado por Red Hat.

Fuentes de informacin de hardware


Los siguientes recursos se pueden utilizar para ayudar a determinar qu hardware est instalado (y es reconocido por el kernel) en su sistema.

Los mensajes de kernel, el buffer dmesg y /var/log/dmesg


La primera prueba del hardware detectado es el flujo de mensajes que el kernel emite durante el arranque, salen rpidamente de la parte superior de la pantalla y aparentemente nunca se vuelen a ver. Estos mensajes y todos los mensajes emitidos por el kernel, se almacenan en el buffer de kernel dinmico conocido como el buffer dmesg. Dicho buffer es un "buffer de anillo". Cuando el espacio del buffer se ha utilizado todo con mensajes, comenzar a escribir los mensajes nuevos sobre los ms viejos. El contenido actual del buffer dmesg puede vertirse en la salida estndar con el comando dmesg. Pronto despus del arranque ms reciente, el buffer comienza con los mismos mensajes vistos en el tiempo de arranque.
[root@station root]# dmesg Linux version 2.6.9-5.EL (bhcompile@decompose.build.redhat.com) (gcc version 3.4.3 20041212 (Red Hat 3.4.3-9.EL4)) #1 Wed Jan 5 19:22:18 EST 2005 BIOS-provided physical RAM map: BIOS-e820: 0000000000000000 - 000000000009f800 (usable) BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved) BIOS-e820: 00000000000ca000 - 00000000000cc000 (reserved) BIOS-e820: 00000000000dc000 - 00000000000e0000 (reserved) BIOS-e820: 00000000000e4000 - 0000000000100000 (reserved) ...

Sin embargo, si una mquina ha estado ejecutndose por un tiempo, el buffer ser consumido por mensajes intermitentes de kernel y esta informacin se perder. Durante el proceso de inicio de Red Hat Enterprise Linux, sin embargo, se registra en el archivo /var/log/dmesg una instantnea del buffer dmesg. Este archivo se sobrescribe en cada arranque por lo tanto su contenido mostrar el inicio ms reciente.

La utilidad kudzu
La utilidad kudzu es una utilidad de arranque que detecta hardware recin creado o suprimido y configura la mquina de modo correcto. Aunque kudzu no reporta directamente el hardware detectado, el examinar su infraestructura ayuda a entender cmo se presenta la configuracin de hardware en el sistema de Red Hat Enterprise Linux. Comenzaremos por analizar un directorio con el que se familiarizar a medida que el curso progrese, el directorio /etc/sysconfig. En Red Hat Enterprise Linux, este directorio sirve como repositorio general de informacin de configuracin de software y hardware.
[root@station root]# ls /etc/sysconfig/ apmd grub mouse apm-scripts harddisks named authconfig hwconf network clock i18n networking console init network-scripts desktop installinfo ntpd dhcpd iptables pcmcia dhcrelay irda pgsql firstboot keyboard rawdevices gpm kudzu system-config-securitylevel

system-config-users redhat-logviewer rhn samba sendmail squid static-routes syslog tux xinetd

El archivo hwconf es una base de datos de texto del actual hardware detectado mantenido por kudzu. El archivo kudzu sirve para configurar qu tan agresivamente kudzu busca hardware recin detectado. Podra pensar que esta discusin se centrar en el archivo de configuracin /etc/sysconfig/kudzu. En realidad, este archivo es de poco inters. Cuando kudzu realiza su bsqueda, podra enviar la basura a las lneas seriales y otras fallas menores. Si esto podra ser un problema, se puede poner en modo de "seguridad" editando la ltima lnea, escribiendo SAFE=yes.

[root@station root]# cat /etc/sysconfig/kudzu # Set to anything other than 'no' to force a 'safe' probe on startup. # 'safe' probe disables: # - serial port probing # - DDC monitor probing # - PS/2 probing SAFE=no

En su lugar, nuestra discusin se centrar en bases de datos utilizadas por kudzu. La primera, /etc/sysconfig/hwconf es una base de datos dinmica del hardware detectado actualmente. Una lectura rpida a este archivo le dar elementos para comprender el hardware de la mquina actual.
[root@station root]# head /etc/sysconfig/hwconf class: OTHER bus: PCI detached: 0 driver: agpgart desc: "Intel Corp.|440BX/ZX/DX - 82443BX/ZX/DX Host bridge" vendorId: 8086 deviceId: 7190 subVendorId: 0000 subDeviceId: 0000 [root@station root]# grep desc /etc/sysconfig/hwconf desc: "Intel Corp.|440BX/ZX/DX - 82443BX/ZX/DX Host bridge" desc: "Intel Corp.|440BX/ZX/DX - 82443BX/ZX/DX AGP bridge" desc: "Intel Corp.|82371AB/EB/MB PIIX4 ISA" desc: "Intel Corp.|82371AB/EB/MB PIIX4 IDE" desc: "Intel Corp.|82371AB/EB/MB PIIX4 ACPI" desc: "USB UHCI Root Hub" desc: "3Com Corporation|3c556 Hurricane CardBus" desc: "Generic Mouse (PS/2)" desc: "ESS Technology|ES1983S Maestro-3i PCI Audio Accelerator" desc: "3Com Corporation|Mini PCI 56k Winmodem" desc: "ATI|Rage Mobility M3 AGP 2x" desc: "3.5" 1.44MB floppy drive" desc: "IBM-DJSA-210" desc: "Intel Corp.|82371AB/EB/MB PIIX4 USB" desc: "Texas Instruments|PCI1420" desc: "Texas Instruments|PCI1420"

Las bases de datos restantes se encuentran en el directorio /usr/share/hwdata. Este directorio almacena catlogos de texto de hardware que el sistema de Red Hat Enterprise Linux espera encontrar. Por ejemplo, el archivo /usr/share/hwdata/pcitable presenta dispositivos PCI por ID de vendedor e ID de dispositivo. Cuando se detecta un dispositivo PCI particular, este archivo se utiliza para asociar un nombre de texto al dispositivo y posiblemente un mdulo de kernel relevante que sirva como controlador de dispositivo del dispositivo.
[root@station root]# ls /usr/share/hwdata/ CardMonitorCombos Cards MonitorsDB pci.ids pcitable upgradelist usb.ids [root@station root]# cat /usr/share/hwdata/pcitable ... 0x0675 0x1700 "unknown" "Dynalink|IS64PH ISDN Adapter" 0x0675 0x1702 "hisax" "Dynalink|IS64PH ISDN Adapter" 0x09c1 0x0704 "unknown" "Arris|CM 200E Cable Modem" 0x0e11 0x0001 "ignore" "Compaq|PCI to EISA Bridge" 0x0e11 0x0002 "ignore" "Compaq|PCI to ISA Bridge" 0x0e11 0x0046 "cciss" "Compaq|Smart Array 64xx" 0x0e11 0x0049 "unknown" "Compaq|NC7132 Gigabit Upgrade Module" 0x0e11 0x004a "unknown" "Compaq|NC6136 Gigabit Server Adapter" 0x0e11 0x0508 "tmspci" "Compaq|Netelligent 4/16 Token Ring" 0x0e11 0x1000 "ignore" "Compaq|Triflex/Pentium Bridge, Model 1000" ...

Estos archivos de base de datos de texto proveen elementos para entender los tipos de hardware que Red Hat Enterprise Linux espera encontrar.

El sistema de archivos /proc


Otro recurso para determinar la configuracin de hardware es un sistema de archivos proc. El sistema de archivos proc es un sistema de archivos virtual implementado por el kernel de Linux, montado en el directorio /proc.
[root@station hwdata]# mount /dev/hda3 on / type ext3 (rw) none on /proc type proc (rw) usbdevfs on /proc/bus/usb type usbdevfs (rw) /dev/hda1 on /boot type ext3 (rw) ...

El sistema de archivos virtual proc, junto con el dispositivo none, es montado en el punto de montaje /proc. Qu es un sistema de archivos virtual? Los archivos /procno existen en ningn medio fsico. Podran considerarse un producto de la imaginacin del kernel, es decir un producto til. Cuando se lee desde un archivo, el kernel retorna una respuesta generada dinmicamente, (algunos archivos dentro de /proc al escribirse, se pueden utilizar para cambiar parmetros dentro del kernel). Cuando el kernel ya no existe, como por ejemplo, cuando la mquina est apagada, los archivos en el sistema de archivos proc ya tampoco existen, en ninguna forma. En nuestra discusin de varios hardware nos enfocaremos en archivos dentro del sistema de archivos /proc. Ms adelante en el curso nos centraremos en el uso del sistema de archivos /proc como mecanismo para la configuracin de los parmetros de kernel. Mientras tanto, la pgina del manual proc(5), el comando cat y algn tiempo dedicado a explorar pueden servir de introduccin.

El navegador de Hardware GNOME


Por ltimo, mencionamos el navegador de Hardware GNOME, el cual puede iniciarse al seleccionar desde el men principal del sistema Herramientas del Sistema:Navegador de Hardware o desde la lnea de comando con hwbrowser. Esta aplicacin grfica recoge gran parte de la

informacin importante que se puede hallar en varias de las fuentes mencionadas anteriormente en una sola utilidad. Figure 1. El navegador de hardware GNOME

Soporte de procesador
Aparte de la familia de procesadores Intel x86 (y compatibles), la distribucin de Red Hat Enterprise Linux soporta el IA-64 (procesadores Intel de 64 bits), Compaq Alpha y las iSeries y eSeries de IBM y arquitecturas S/390. Este curso y los certificados de RHCE, cubren solo la versin compatible de la distribucin x86.

Multiprocesamiento simtrico (SMP)


Linux soporta mltiple procesamiento simtrico con compatibilidad hasta de 32 CPU, aunque ms de ocho rara vez se implementan en la arquitectura x86. La granularidad del multiprocesador se presenta de forma natural en el nivel del proceso (i.e., con dos CPU, un nico proceso no se ejecutar dos veces con la misma rapidez, pero dos procesos se pueden ejecutar simultneamente, cada uno en una CPU independiente). Con el desarrollo esperado, Linux tambin soporta procesos multihilos, donde un solo proceso puede generar mltiples hilos de ejecucin que se pueden ejecutar ms tarde simultneamente en mltiples CPU.

/proc/cpuinfo
El archivo del sistema de archivos proc /proc/cpuinfo entrega informacin acerca del CPU detectado, como se muestra en el ejemplo.
[root@station root]# cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 8 model name : Pentium III (Coppermine) stepping : 6 cpu MHz : 548.323 cache size : 256 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 2 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 mmx fxsr sse bogomips : 1094.45

Los siguientes campos tienden a proveer la informacin ms til. El nmero del procesador. En una sola maquina procesadora, el nmero es 0. En una mquina SMP, el archivo cpuinfo contiene mltiples estrofas, cada una identificada por un nmero de procesador distinto. El modelo de CPU. La velocidad de la CPU. El tamao de la memoria cach de CPU, la cual reduce de modo significativo tiempos de acceso de memoria. Varias banderas, las cuales indican capacidades de la CPU. Por ejemplo, la bandera tsc indica que la CPU soporta el contador de marcas de tiempo (que sirve para precisar informacin de temporizacin), mientras que la bandera pae especifica que la CPU puede

soportar extensiones de direccin fsicas (ms informacin ms adelante). Una estdstica sesgada y a menudo mal utilizada que suele utilizarse para correlacionar ciclos de CPU al tiempo mundial real. Solo merece mencionarse debido a que suele utilizarse mal como medida de velocidad del procesador. En su lugar, utilice el parmetro anterior MHz.

Memoria
Debido a que la familia x86 tiene una arquitectura de 32 bits, se podra esperar que el kernel de Linux soporte 4 gigabytes de memoria (donde 2 elevado a la 32 potencia es igual a 4 gigabytes). Aunque esto es cierto, los detalles de la implementacin necesitan ms claridad. En su forma ms sencilla, el kernel de Linux soporta hasta 1 Gigabyte de memoria. Se puede disponer de ms memoria compilando en el soporte de "alta memoria", a travs del cual se puede acceder a ms memoria (aunque no toda al mismo tiempo). De modo intuitivo, hay algunos procesadores de 32 bits que soportan "extensiones de direccin fsica" (PAE), a travs de las cuales un procesador de 32 bits puede acceder hasta 62 gigabytes de memoria (aunque de nuevo, no toda al mismo tiempo). Con el fin de ofrecer flexibilidad, la distribucin de Red Hat se entrega con mltiples versiones de kernel. Si el instalador detecta un procesador de la generacin Intel 586 (o menor), se instala un kernel configurado para un gigabyte de memoria. Si el instalador detecta un procesador Intel 686 (o Athlon), se instala un kernel configurado para 4 gigabytes de memoria. Un kernel configurado para utilizar extensiones PAE se incluye en el paquete RPM de kernel-bigmem, pero se debe instalar manualmente. El kernel "bigmen" soporta ms de 4 gigabytes de memoria, pero solo se ejecuta en chips que soportan extensiones RAE. Aparte de garantizar que el kernel adecuado est instalado, no hay otras funciones para el administrador. El kernel debera detectar automticamente toda la memoria disponible.

/proc/meminfo
El archivo del sistema de archivos proc /proc/meminfo proporciona estadsticas acerca de la cantidad de memoria detectada y la utilizacin actual de memoria como se observa en el siguiente ejemplo.
[root@station root]# cat /proc/meminfo total: used: free: shared: buffers: cached: Mem: 261357568 123998208 137359360 0 14143488 60194816 Swap: 534634496 0 534634496 MemTotal: 255232 kB MemFree: 134140 kB MemShared: 0 kB ...

Por ahora, nuestra discusin se limita a los siguiente campos: Los primeros tres nmeros dan una cantidad total de la memoria fsica detectada y un anlisis de cunta memoria se utiliza y cunto espacio libre tiene. El cuadro a continuacin presenta la misma informacin reportada en tamaos convencionales de computadores (donde 1 "kB" = 1024 bytes). La mayora de las estadsticas restantes en este archivo reportan en ms detalle cmo se utiliza la memoria "usada". Volveremos a este tema ms adelante.

Discos duros
Como los procesadores y la memoria, el kernel es responsable de la deteccin automtica de los discos duros. Los discos duros suelen utilizar ya sea el protocolo de bus IDE o el SCSI. Linux utiliza la siguiente nomenclatura para cada uno.

Discos IDE y /proc/ide


El protocolo de bus IDE permite a los computadores tener mltiples controladores, cada uno de los cuales puede administrar dos discos (conocidos como los controladores "maestro" y "esclavo"). Muchos de los escritorios de computadores comunes se distribuyen con dos dispositivos IDE conocidos como "primarios " y "secundarios". Esta configuracin permite la conexin de cuatro dispositivos IDE conocidos como dispositivos "maestro primario" y "esclavo primario", "maestro secundario" y "esclavo secundario". La funcin de un dispositivo particular se determina por su forma de conexin a la mquina. Linux se refiere a los dispositivos IDE como hdx, donde x se remplaza por una sola letra minscula. Las letras se asignan directamente a las posiciones fsicas del dispositivo. Table 1. Convenciones de nombre IDE para disco duro Nombre hda hdb hdc hdd hde ... Posicin maestro primario esclavo primario maestro secundario esclavo secundario maestro terciario ...

El directorio /proc/ide del sistema de archivos proc contiene subdirectorios para cada dispositivo IDE detectado llamado as por el dispositivo. (En realidad, los archivos son enlaces simblicos, que refieren a subdirectorios de directorios llamados ide0, ide1. Estos directorios refieren al controlador ide primario, al controlador IDE secundario, etc...) Un ls del directorio /proc/ide puede determinar

rpidamente qu discos IDE son reconocidos por el kernel. En el siguiente ejemplo, slo se detecta un dispositivo (hda).
[root@station ide]# ls /proc/ide/ drivers hda ide0 piix

El subdirectorio relacionado con un disco especfico contiene archivos que proveen informacin (a menudo de bajo nivel) acerca del disco, (en la siguiente salida, observe que el archivo llamado capacity se duplica! En un sistema normal de archivos, esto no se permitira. En el sistema de archivo proc, es un error del kernel).
[root@station ide]# ls /proc/ide/hda cache capacity geometry media settings capacity driver identify model smart_thresholds [root@station ide]# head /proc/ide/hda/* ==> /proc/ide/hda/cache <== 384 ==> /proc/ide/hda/capacity <== 11733120 ==> /proc/ide/hda/capacity <== 11733120 ==> /proc/ide/hda/driver <== ide-disk version 1.17 ==> /proc/ide/hda/geometry <== physical 12416/15/63 logical 730/255/63 ==> /proc/ide/hda/identify <== 045a 3080 c837 000f 0000 0000 003f 0000 0000 0000 2020 2020 2020 2020 2034 3256 ... ==> /proc/ide/hda/media <== disk ==> /proc/ide/hda/model <== IBM-DJSA-210 ==> /proc/ide/hda/settings <== name value -------acoustic 0 address 0 bios_cyl 730 bios_head 255 bios_sect 63 breada_readahead 8 bswap 0 current_speed 66 ...

smart_values

min --0 0 0 0 0 0 0 0 254 2 65535 255 63 255 1 70

max --rw rw rw rw rw rw r rw

mode ----

Discos SCSI
La nomenclatura de Linux para los discos SCSI no es tan transparente como para los discos IDE. Por lo general, Linux utiliza nombres de la forma sdx, donde x se remplaza por una o ms letras minsculas. Infortunadamente, los nombres no pueden asignarse directamente a la posicin fsica del dispositivo, ni siquiera a un parmetro utilizado comnmente referido como el ID SCSI. Linux suele referirse al primer SCSI detectado como sda, al segundo dispositivo como sdb y as sucesivamente. Sin embargo, predecir cul de los dispositivos conectados considerar Linux el "primero", "segundo" y as sucesivamente, es bastante difcil. Peor an, si se aade a la mquina un nuevo dispositivo SCSI, un disco preexistente llamado sdb se podra convertir (tras el reinicio) en sdc con el dispositivo recin conectado que toma el nombre de sdb. Aunque el sistema de archivos provee un directorio /proc/scsi y un archivo /proc/scsi/scsi que lista todos los discos detectados, ninguno proporciona informacin sobre los nombres de discos SCSI reconocidos actualmente. El mejor mtodo es observar los mensajes del kernel (cuando son reportados por el comando dmesg o en el archivo /var/log/dmesg) sobre los discos SCSI detectados.

Hardware and Device Configuration


Ejemplos Familiarizndose con una nueva mquina
El usuario elvis ha iniciado sesin en su cuenta en una nueva mquina y quisiera saber algo ms acerca de su hardware. Primero, examina la CPU de su mquina.
[elvis@station elvis]$ cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 8 model name : Pentium III (Coppermine) stepping : 6 cpu MHz : 697.867 cache size : 256 KB fdiv_bug : no ...

Observa que el procesador es un Intel Pentium III de 800 MHz con una memoria cach de 256 kilobytes. Luego examina la memoria de la mquina.
[elvis@station elvis]$ cat /proc/meminfo total: used: free: shared: buffers: cached: Mem: 261357568 238727168 22630400 0 36249600 149045248 Swap: 534634496 106676224 427958272 MemTotal: 255232 kB MemFree: 22100 kB MemShared: 0 kB Buffers: 35400 kB Cached: 102472 kB SwapCached: 43080 kB

Al observar la lnea MemTotal: determina que la mquina tiene 256 megabytes de RAM. Luego revisa qu dispositivos estn conectados, si son discos duros o CD- ROMS y el modelo.
[elvis@station elvis]$ ls /proc/ide/ drivers hda hdb hdc ide0 ide1 piix [elvis@station elvis]$ head /proc/ide/hd*/media ==> /proc/ide/hda/media <== disk ==> /proc/ide/hdb/media <== disk ==> /proc/ide/hdc/media <== cdrom [elvis@station elvis]$ head /proc/ide/hd*/model ==> /proc/ide/hda/model <== Maxtor 51536H2 ==> /proc/ide/hdb/model <== ST310212A ==> /proc/ide/hdc/model <== LTN485

Hardware and Device Configuration


Ejercicios en lnea
[Warning]

Lab Exercise Objetivo: Determinar la informacin sobre la configuracin del hardware en la mquina local. Tiempo estimado: 10 minutos.

Specification
Rena la siguiente informacin sobre el hardware de su mquina y almacnela en los archivos especificados. Cada archivo debe contener una sola respuesta. Archivo ~/lab2.1/cpuspeed ~/lab2.1/cpucache ~/lab2.1/memsize Contenido La velocidad de su procesador actual en megahertz. El tamao de su cach de CPU en kilobytes. La cantidad de memoria fsica en megabytes.

El nombre del mdulo del kernel que sirve de controlador de dispositivo ~/lab2.1/nicdriver para su interfaz de red eth0, (si no tiene una interfaz eth0, ponga la palabra en ingls "none"). ~/lab2.1/numide El nmero de dispositivos IDE conectados simultneamente en su mquina.

Si usted ha realizado el laboratorio correctamente, podr generar salida similar a la siguiente, (no se preocupe si sus valores reales difieren).
[student@station student]$ head lab2.1/* ==> lab2.1/cpucache <== 256 ==> lab2.1/cpuspeed <== 697.867 ==> lab2.1/memsize <== 255 ==> lab2.1/nicdriver <== 3x59x ==> lab2.1/numide <== 1

Resultados A title Question 1


1. Los archivos presentados anteriormente, cada uno contiene una respuesta de una sola palabra.
grade

Hardware and Device Configuration


Dispositivos PCI
Conceptos clave

El comando lspci lista todos los dispositivos PCI detectados. Incluyendo la informacin de configuracin de la opcin -v asociada con cada dispositivo. El archivo /proc/interrupts lista las tareas de la lnea de solicitud de interrupcin del sistema (IRQ) y la actividad. El archivo /proc/ioports lista las tareas del puerto E/S del sistema. El archivo /proc/iomem lista las direcciones fsicas del RAM del sistema y los buffer de dispositivo de la memoria.

Hardware and Device Configuration


Discusin El bus PCI
El bus PCI juega un papel primordial en la mayora de las arquitecturas x86compatibles. Todos los dispositivos PCI comparten un protocolo de configuracin comn, los dispositivos PCI incluyen dispositivos de tarjetas de expansin comunes, no solo tarjetas de sonido y controlador de red, sino tambin puentes que conectan otros buses con el bus PCI primario. Puede utilizar el comando lspci para listar todos los dispositivos PCI conectados, como en el siguiente ejemplo.
[root@station root]# lspci 00:00.0 Host bridge: VIA Technologies, Inc. VT8375 [KM266/KL266] Host Bridge 00:01.0 PCI bridge: VIA Technologies, Inc. VT8633 [Apollo Pro266 AGP] 00:05.0 Multimedia audio controller: Creative Labs SB Audigy (rev 03) 00:05.1 Input device controller: Creative Labs SB Audigy MIDI/Game port (rev 03) 00:05.2 FireWire (IEEE 1394): Creative Labs SB Audigy FireWire Port 00:07.0 Ethernet controller: Linksys Network Everywhere Fast Ethernet 10/100 model NC100 (rev 11) 00:10.0 USB Controller: VIA Technologies, Inc. USB (rev 80) 00:10.1 USB Controller: VIA Technologies, Inc. USB (rev 80) 00:10.2 USB Controller: VIA Technologies, Inc. USB (rev 80) 00:10.3 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 82) 00:11.0 ISA bridge: VIA Technologies, Inc. VT8235 ISA Bridge 00:11.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT8233/A/C/VT8235 PIPC Bus Master IDE (rev 06) 00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 74) 01:00.0 VGA compatible controller: S3 Inc. VT8375 [ProSavage8 KM266/KL266]

Este dispositivo conecta el AGP ("Puerto Grfico avanzado"), utilizado por muchas tarjetas de vdeo, al bus PCI. La tarjeta de sonido Audigy es un ejemplo de un dispositivo PCI "multifuncional". Esta y las siguientes tres lneas identifican el dispositivo nico realizando la funcin de los dispositivos individuales: una tarjeta de sonido, un controlador MIDI/joystick y un controlador FireWire. Estos dos dispositivos son dos tarjetas individuales de interfaz de red, (aunque no es evidente desde esta salida, uno se suministra con la tarjeta madre como componente "a bordo" y el otro es una tarjeta de expansin). Estos tres "dispositivos" PCI son ejemplos de controladores para buses alternos: el bus USB, el bus ISA y el bus IDE. El bus PCI suministra la infraestructura para los otros buses. Observe que los dispositivos IDE, ISA y USB no sern listados por el comando lspci, slo los controladores de bus. El comando lspci es un buen punto de partida para averiguar qu hardware est conectado a una mquina desconocida.

Recursos de hardware
La arquitectura x86 ofrece mecanismos para que dispositivos de hardware interacten con el kernel de linux. Cuando se agregan nuevos dispositivos a la mquina, se debe tener cuidado al compartir los siguientes recursos sin conflictos entre los diversos dispositivos.

Lnea de solicitud de interrupcin (IRQ) y /proc/interrupts


Cada dispositivo necesita alguna forma de llamar la atencin del kernel como si le dijeran "hola, alguien acaba de mover el ratn y quiero decrselo" o "Hola, termin de transferir ese bloque de informacin al disco tal como me lo pidi". Muchos dispositivos utilizan una lnea de solicitud de interrupcin o un IRQ, para este propsito. En la arquitectura x86, 15 lneas IRQ estn disponibles y mltiples dispositivos pueden compartir una sola lnea IRQ. El archivo del sistema de archivos proc /proc/interrupts muestra las lneas IRQ disponibles y los controladores de dispositivo que los estn utilizando. El nmero absoluto de veces que se presenta una interrupcin tambin se incluye (desde que la mquina arranc).

[root@station root]# cat /proc/interrupts CPU0 0: 6091325 XT-PIC timer 1: 41608 XT-PIC keyboard 2: 0 XT-PIC cascade 3: 0 XT-PIC ehci-hcd 5: 115473 XT-PIC usb-uhci 8: 1 XT-PIC rtc 10: 16384184 XT-PIC usb-uhci, eth0 11: 9720993 XT-PIC usb-uhci, eth1, Audigy 12: 848836 XT-PIC PS/2 Mouse 14: 190363 XT-PIC ide0 15: 1765002 XT-PIC ide1 NMI: 0 ERR: 0

En una mquina SMP, las interrupciones de hardware se hacen en CPU individuales y se incluira una columna separada de actividad de interrupcin para cada CPU. IRQ es utilizada sin variacin por el controlador de dispositivo temporizador. El temporizador interrumpe el kernel en una tasa de 100 interrupciones por segundo, solicitando al kernel interrumpir el flujo normal de actividad y realizar cualquier tarea peridica pendiente. Tres controladores de dispositivo no relacionados (el controlador USB, una tarjeta de interfaz de red Ethernet y la tarjeta de sonido Audigy) comparten IRQ 11. El campo NMI cuenta el nmero de ocurrencias de "interrupciones no enmascarables". Dichas interrupciones se utilizan normalmente para sealar las condiciones de error del hardware de bajo nivel.

Los puertos de E/S /proc/ioports


Despus de obtener la atencin del kernel (al provocar una interrupcin), los dispositivos suelen realizar algn tipo de transferencia de datos dentro o fuera del sistema. La arquitectura x86 proporciona un espacio de direccin de 16 bits para dispositivos, cuyas direcciones se conocen como puertos de Entrada y Salida. Cuando se comunican con el kernel a travs de los puertos de E/S, el kernel y el dispositivo deben coincidir con los puertos que estn utilizando. El archivo /proc/ioports del sistema de archivos proc muestra qu puertos han sido reclamados por cul controlador de dispositivo, (las direcciones de puerto se presentan en dgitos hexadecimales).
[root@station root]# cat /proc/ioports 0000-001f : dma1 0020-003f : pic1 0040-005f : timer 0060-006f : keyboard 0070-007f : rtc ... 03c0-03df : vesafb 03f6-03f6 : ide0 03f8-03ff : serial(auto) 0cf8-0cff : PCI conf1 c000-c01f : Creative Labs SB Audigy c000-c01f : Audigy c400-c407 : Creative Labs SB Audigy MIDI/Game port c800-c8ff : Linksys Network Everywhere Fast Ethernet 10/100 model NC100 c800-c8ff : tulip ...

Buffers de dispositivo de memoria y /proc/iomem


Muchos dispositivos modernos implementan su propia memoria, la cual una vez ha sido asignada dentro de un espacio de direccin de memoria, se puede utilizar para transferir datos. Las tarjetas de vdeo son ejemplos clsicos de dispositivos que proporcionan sus propios buffer de memoria. El archivo del sistema de archivos proc /proc/iomem muestra todos los dispositivos cuyos buffer de memoria se han asignado dentro de una memoria fsica y las direcciones de memoria fsica asignadas a cada buffer, (listadas en dgitos hexadecimales).

[root@station root]# cat /proc/iomem 00000000-0009fbff : System RAM 0009fc00-0009ffff : reserved 000a0000-000bffff : Video RAM area 000c0000-000c7fff : Video ROM 000f0000-000fffff : System ROM 00100000-2dfeffff : System RAM 00100000-002766f6 : Kernel code 002766f7-00384807 : Kernel data ... e3000000-e3003fff : Creative Labs SB Audigy FireWire Port e3004000-e30043ff : Linksys Network Everywhere Fast Ethernet 10/100 model NC100 e3004000-e30043ff : tulip e3005000-e30057ff : Creative Labs SB Audigy FireWire Port e3006000-e30060ff : VIA Technologies, Inc. USB 2.0 e3006000-e30060ff : ehci-hcd e3007000-e30070ff : VIA Technologies, Inc. VT6102 [Rhine-II] e3007000-e30070ff : via-rhine ...

En lo referente a este archivo, la memoria principal de la mquina (RAM o "Memoria de acceso aleatorio") se considera "apenas otro dispositivo" y asigna espacios de direccin fsica ms bajos. No es necesario utilizar el espacio de direccin fsica de modo contiguo (sin espacios). Aqu, la asignacin del RAM del sistema se interrumpe para asignar el dispositivo de vdeo VGA. La direccin de este dispositivo se produce al principio en el espacio fsico de direcciones y por razones de herencia no se puede mover. La mayora de los dispositivos modernos que implementan buffer de memoria se asignan a las direcciones superiores del espacio de direccin fsica.

Dispositivos PCI de configuracin


La conexin de nuevos dispositivos al sistema de Red Hat Enterprise Linux, se realiza generalmente en dos etapas para configurar el kernel que va a utilizar el nuevo dispositivo. Primero, si el controlador de dispositivo para el dispositivo se implementa como un mdulo de kernel, el mdulo debe cargarse (si no lo est an). Segundo, el controlador de dispositivo (y el dispositivo) debe configurarse para utilizar alguno o todos los dispositivos mencionados anteriormente de manera que no entren en conflicto con ningun otro dispositivo. A continuacin se resume cmo se realiza esto para los dispositivos PCI. Por lo general, ambas etapas se presentan con una intervencin mnima por parte del administrador.

Carga de controladores de dispositivos modulares


Cuando se inicia el sistema despus de agregar un nuevo dispositivo PCI, kudzu reconocer el nuevo dispositivo e interrumpir el proceso de arranque. Si se asume que el usuario elige configurar el nuevo dispositivo, kudzu, buscar el dispositivo en el archivo /usr/share/hwdata/pcitable mediante el proveedor y el ID del producto examinado. Si la tarjeta se encuentra en el pcitable y el mdulo de kernel se asocia con sta, se crea un alias en el archivo modprobe.conf que conectar el controlador del dispositivo con su rol. A manera de ejemplo considere el siguiente archivo modprobe.conf, el cual se utiliza para configurar los mismos dispositivos hallados con el comando lspcianterior.
[root@station root]# cat /etc/modprobe.conf alias eth0 tulip alias eth1 via-rhine alias snd-card-0 audigy ... alias usb-controller usb-uhci alias usb-controller1 ehci-hcd

A menudo, el kernel sabe que debe cargar el mdulo apropiado de kernel para cumplir con un rol en particular tal como "el controlador usb" o "la interfaz de red eth0" o el "controlador SCSI", pero no sabe cul de los controladores de dispositivo modular que podra desempear esa funcin es el adecuado para el hardware local. Utilizando alias en el archivo modprobe.conf, cuando el kernel intenta cargar "la interfaz eth0", el controlador de dispositivo modular apropiado para el hardware local se carga (en este caso, el mdulo del kernel tulip). El cuadro siguiente esboza algunas de los "roles" que el kernel conoce y que kudzu (o el instalador de Anaconda) configura modprobe.conf para desempearlas correctamente. No se preocupe si el cuadro trata conceptos con los cuales usted no est familiarizado an, la mayor parte de estos se tratarn ms adelante en este curso. Table 1. Alias comunes hallados en modprobe.conf

Alias ethN snd-card-N

Role El controlador de dispositivo apropiado para la tarjeta de interfaz de red asociada con la interfaz de red ethN. El controlador del dispositivo apropiado para la tarjeta de sonido asociada con el espacio en el subsistema de sonido.

controlador- usb El controlador de dispositivo apropiado para el controlador USB del sistema. scsi_hostadaptor El controlador de dispositivo apropiado para el controlador SCS del sistema. char-major-N block-major-N El controlador de dispositivo asociado con el nmero mayor de dispositivo de nodos de caracterN. El controlador de dispositivo asociado con el nmero mayor de nodos de dispositivo de bloque N.

Tambin puede utilizar y suprimir palabras clave para especificar comandos personalizados utilizados cuando se carga o descarga un mdulo particular o cuando se especifican opciones para que sea pasado a un mdulo con la palabra clave de opciones.

Asignacin de recursos
Adems de cargar el mdulo de kernel apropiado, los recursos se deben asignar al dispositivo. Esto suele hacerse en el tiempo de arranque mediante el protocolo Plug n' Play. Todos los dispositivos PCI utilizan un mecanismo comn para anunciar las diferentes configuraciones compatibles (tales como IRQ 11 en el puerto de E/S 0xe000 o en el puerto IRQ 10 en el puerto de E/S 0xc800) y para asignar una configuracin determinada. En el momento del arranque se examinan todos los dispositivos PCI y se especifican un conjunto de recursos no conflictivos para cada tarjeta. Esto suele ocurrir sin intervencin del administrador. Si el comando lspci presentado anteriormente se utiliza con la opcin -v reportar los recursos asociados con cada dispositivo. En el siguiente ejemplo, el comando lspci -v revela el puerto IRQ de E/S y la memoria fsica asignada a la tarjeta Linksys Ethernet (10, 0xc800, y 0xe300400, respectivamente).
[root@station root]# lspci -v ... 00:07.0 Ethernet controller: Linksys Network Everywhere Fast Ethernet 10/100 mod el NC100 (rev 11) Subsystem: Linksys: Unknown device 0574 Flags: bus master, medium devsel, latency 32, IRQ 10 I/O ports at c800 [size=256] Memory at e3004000 (32-bit, non-prefetchable) [size=1K] Expansion ROM at <unassigned> [disabled] [size=128K] Capabilities: [c0] Power Management version 2 ...

Ocasionalmente, el administrador podra necesitar modificar estas tareas. Por lo general, esto puede hacerse con las lneas de opcin en el archivo modprobe.conf para asociar parmetros con mdulos de kernel adecuados. Los nombres de opcin relevantes tienden a variar de un mdulo a otro. En el apndice A de Red Hat Enterprise Linux el manual de referencia lista los hardware comnmente hallados, el mdulo de kernel asociado con ste y los parmetros que pasan al mdulo de kernel cuando se requiere.

Hardware and Device Configuration


Ejemplos Exploracin de una nueva mquina
El usuario elvis contina explorando una nueva mquina. Con el fin de descubrir qu dispositivos PCI estn conectados a la mquina, elvis utiliza el comando lspci.
[elvis@station elvis]$ /sbin/lspci 00:00.0 Host bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03) 00:01.0 PCI bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)00:03.0 CardBus bridge: Texas Instruments PCI1420 00:03.1 CardBus bridge: Texas Instruments PCI1420 00:07.0 Bridge: Intel Corp. 82371AB/EB/MB PIIX4 ISA (rev 02) 00:07.1 IDE interface: Intel Corp. 82371AB/EB/MB PIIX4 IDE (rev 01) 00:07.2 USB Controller: Intel Corp. 82371AB/EB/MB PIIX4 USB (rev 01) 00:07.3 Bridge: Intel Corp. 82371AB/EB/MB PIIX4 ACPI (rev 03) 00:08.0 Multimedia audio controller: ESS Technology ES1983S Maestro-3i PCI Audio Accelerator (rev 10) 00:10.0 Ethernet controller: 3Com Corporation 3c556 Hurricane CardBus (rev 10) 00:10.1 Communication controller: 3Com Corporation Mini PCI 56k Winmodem (rev 10) 01:00.0 VGA compatible controller: ATI Technologies Inc Rage Mobility M3 AGP 2x (rev 02) 02:00.0 Ethernet controller: Xircom Cardbus Ethernet 10/100 (rev 03) 02:00.1 Serial controller: Xircom Cardbus Ethernet + 56k Modem (rev 03)

Al dar una mirada rpida a la lista observa una tarjeta de sonido ESS, una tarjeta de red 3Com, un Winmodem, una tarjeta de vdeo ATI y lo que parece ser una combinacin de una tarjeta de modem Ethernet/Xircom (PCMCIA). Intrigado por saber cules mdulos de kernel se utilizan como controladores de dispositivo para estos dispositivos, examina el archivo/etc/modprobe.conf.
[elvis@station elvis]$ cat /etc/modprobe.conf alias parport_lowlevel parport_pc alias eth0 3c59x alias snd-card-0 maestro3 install snd-card-0 /bin/aumix-minimal -f /etc/.aumixrc -L >/dev/null 2> &1 || : remove snd-card-0 /bin/aumix-minimal -f /etc/.aumixrc -S >/dev/null 2> &1 || : alias usb-controller usb-uhci

Hardware and Device Configuration


Ejercicios en lnea
[Warning]

Lab Exercise Objetivo: Determinar la configuracin del hardware de los dispositivos en su mquina local. Tiempo estimado: 10 minutos.

Specification
Rena la siguiente informacin sobre el hardware de su mquina y almacnela en los archivos especificados. Cada archivo debe contener una sola respuesta. Archivo ~/lab2.2/irq1 ~/lab2.2/fpuports ~/lab2.2/videoram Contenido El nombre del dispositivo que est utilizando la lnea 1 de solicitud de interrupcin (IRQ -1). El rango de puertos E/S que estn siendo utilizados por su dispositivo de mquina fpu. El rango de direcciones fsicas que estn siendo utilizadas por su rea de vdeo RAM de la mquina.

Si usted ha realizado el laboratorio correctamente, podr generar salida similar a la siguiente, (no se preocupe si sus valores reales difieren).
[student@station student]$ head lab2.2/* ==> lab2.2/fpuports <== 00e0-00ef ==> lab2.2/irq1 <== rtc ==> lab2.2/videoram <== 000c0000-000c7fff

Resultados A title Question 1


1. Los archivos presentados anteriormente, cada uno contiene una respuesta de una sola palabra.
grade

Hardware and Device Configuration


La USB y otros dispositivos conectables
Conceptos clave

El sistema utiliza una inftraestructura comn para todos los dispositivos conectables listos para utilizar, la cual consta del comando /sbin/hotplug y scripts hallados en el directorio /etc/hotplug. Las bases de datos de texto determinan qu nuevos dispositivos de conexin listos para usar son compatibles con mdulos de kernel almacenados junto con los mdulos del kernel en el directorio /lib/modules/kernel-version/. El comando lsusb lista informacin acerca de todos los dispositivos USB conectados. La compatibilidad de Linux con dispositivos PCMCIA es anterior a la compatibilidad general para dispositivos de conexin listos para uso y en su lugar utiliza el demonio cardmgr, el directorio /etc/pcmcia y la base de datos de texto /etc/pcmcia/config de tarjetas compatibles y mdulos asociados del kernel.

Hardware and Device Configuration


Discusin Dispositivos de conexin en caliente Expectativas para dispositivos conectables en caliente
En la leccin anterior abordamos problemas relacionados con la configuracin de dispositivos fijos, los cuales estn presentes cuando el sistema arranca. En contraste, esta leccin discute el soporte de Red Hat Enterprise Linux para dispositivos conectables en caliente. Con la llegada de las tarjetas PCMCIA, las USB, los dispositivos de FireWire. y los buses PCI y SCSI, los usuarios esperan poder agregar todos los dispositivos a su mquina en cualquier momento y hacer que los dispositivos "funcionen" con la mnima intervencin administrativa. El manejo apropiado de los dispositivos conectables en caliente presenta varios problemas. Por ejemplo, cuando se aade un dispositivo a una mquina, se deben tener en cuenta las siguientes etapas de reaccin. Cargar y configurar los controladores y dispositivos necesarios En el nivel de kernel, el controlador de dispositivo apropiado necesita descargarse y configurarse para el dispositivo. Este paso implica varios de los problemas discutidos anteriormente. Configuracin del sistema administrativo El sistema suele responder al nuevo dispositivo a nivel de administracin. Por ejemplo, si se agrega una nueva tarjeta de red USB, la interfaz adecuada debera activarse. Si se agrega un dispositivo que est ejecutando un disco duro, el disco debera montarse en el punto de montaje apropiado. Ambas acciones por lo general requieren privilegios de root. Inicio de aplicaciones Alguna aplicacin podra iniciarse de parte del usuario. Si se conecta una cmara, se puede iniciar una utilidad de manipulacin de imagen. Si se conecta un disco, se podra abrir una ventana de Nautilius, mostrando el directorio raz del disco. Tanto como sea posible, se trata de ejecutar la configuracin de estas etapas por fuera del kernel, utilizando scripts para implementar las polticas.

Infraestructura de conexin en caliente del kernel de Linux


Con el fin de admininstrar estos problemas, el kernel de Linux proporciona una infraestructura comn para dispositivos conectables en caliente con dos componentes diferentes.

Un punto de entrada comn: /sbin/hotplug


El kernel proporciona un punto de entrada comn para activar la configuracin de dispositivos conectables en caliente. Cada vez que un evento de conexin en caliente se presenta, (i.e., cada vez que un dispositivo es conectado o desconectado del sistema), el kernel llama al comando /sbin/hotplug con los argumentos adecuados.

Bases de datos del controlador de dispositivos modulares

En segundo lugar, para asociar los controladores de dispositivo modular con los dispositivos adecuados, las bases de datos de texto ASCII coincidentes con el proveedor y los ID de dispositivo con mdulos de kernel se generan directamente desde los mdulos de kernel. Las bases de datos se hallan en el mismo directorio que contiene los mdulos de kernel (/lib/modules/versinkernel) y llamados modulesBUSmap, donde BUS se remplaza por el bus adecuado como se ilustra en el siguiente ejemplo.
[root@station usb]# ls /lib/modules/2.6.9-5.EL/ build modules.generic_string modules.parportmap kernel modules.ieee1394map modules.pcimap modules.dep modules.isapnpmap modules.pnpbiosmap

modules.usbmap

El directorio /etc/hotplug
Fuera del kernel, los scripts que soportan los dispositivos conectables en caliente se hallan en el directorio /etc/hotplug. Los puntos de entrada suelen llamarse /etc/hotplug/TYPE.agent. donde TYPE se remplaza por el tipo apropiado de dispositivo.
[root@station root]# ls /etc/hotplug/ blacklist net.agent pci.rc hotplug.functions pci usb ieee1394.agent pci.agent usb.agent

usb.distmap usb.handmap usb.rc

usb.usermap

Para los dispositivos USB, la configuracin personalizada para dispositivos particulares se puede especificar mediante el archivo usb.usermap. El archivo tiene la misma sintaxis de las bases de datos del mdulo del kernel, pero en lugar de especificar un mdulo del kernel, se puede especificar un script en el directorio /etc/hotplug/usb. Cuando un dispositivo especificado se conecte, el script apropiado puede responder.

Otras fuentes de informacin


Encontrar ms informacin acerca de la configuracin de los dispositivos conectables en caliente en el directorio /usr/share/doc/hotplug-*/ o en http://linux-hotplug.sourceforge.net/.

El comando lsusb
El comando lsusb presenta una lista de todos los dispositivos USB conectados y la informacin de configuracin de USB de bajo nivel. En el siguiente ejemplo, el comando lsusb est identificando un disco USB conectado.
[root@station root]# lsusb -v ... Bus 001 Device 002: ID 0d7d:1300 Apacer Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 0 Interface ... idVendor 0x0d7d Apacer idProduct 0x1300 bcdDevice 0.50 iManufacturer 1 iProduct 2 USB DISK 2.0 iSerial 3 07371C5003E3 bNumConfigurations 1 ...

Dispositivos PCMCIA
Los primeros dispositivos utilizados fueron las tarjetas PCMCIA que se encuentran en muchos laptops. Puesto que la infraestructura para el manejo de dispositivos PCMCIA se desarroll antes de que se reconciera la necesidad de un mecanismo de conexin en caliente, la infraestructura PCMCIA no utiliza los mecanismos que tratamos anteriormente. Apesar de que la infraestructura comn no se utiliza, los conceptos generales son similares.

El demonio cardmgr
Los eventos PCMCIA son manejados por el demonio cardmgr (un proceso que se ejecuta en el segundo plano). Cuando una tarjeta PCMCIA se inserta o se quita del sistema, el demonio cardmgr responde de acuerdo con la configuracin hallada en el directorio /etc/pcmcia.

El directorio /etc/pcmcia
El directorio /etc/pcmcia/ contiene scripts que definen la forma como el sistema debera responder cuando se inserte o quite una tarjeta PCMCIA de la clase apropiada. Por ejemplo, cuando se inserta una tarjeta Ethernet, el script /etc/pcmcia/network crea su propia interfaz de red. El archivo /etc/pcmcia/config contiene una base de datos de tarjetas PCMCIA reconocidas y los mdulos del kernel. apropiados para asociarse con ellos.

La utilidad cardctl
La utilidad de la lnea de comando cardctl se puede utilizar para manejar tarjetas PCMCIA directamente. En el ejemplo anterior, el comando cardctl se utiliza para identificar las tarjetas PCMCIA que estn insertadas actualmente.
[root@station pcmcia]# cardctl ident Socket 0: product info: "Xircom", "CardBus Ethernet 10/100 + Modem 56", "CBEM56G", "1.3" manfid: 0x0105, 0x0103 function: 6 (network) Socket 1: no product info available

Mayor informacin sobre el manejo de los dispositivos PCMCIA puede hallarse en la pgina de manual pcmcia(5).

Hardware and Device Configuration


Ejercicios en lnea
[Warning]

Lab Exercise Objetivo: Familiarizarse con mdulos comunes del controlador de dispositivos USB Tiempo estimado: 20 minutos.

Specification
El archivo /lib/modules/kernel-version/modules.usbmap (donde kernel-version se remplaza por la versin actual de kernel) contiene una base de datos ASCII de mdulos de kernel USB y el proveedor dispositivo ID de los dispositivos a los cuales se relacionan. Los primeros 20 caracteres de cada lnea contienen el nombre del mdulo de kernel, (si no est seguro de la versin que est utilizando el kernel, el comando uname -r lo imprimir en pantalla por usted). Utilice la combinacin cut, sort, uniq, grep y los comandos head para generar un cuadro de los mdulos de kernel USB, precedidos por el nmero de veces que se nombran. Guarde el cuadro en el archivo ~/lab2.3/usbmodules. Si ha completado el laboratorio correctamente, podr generar una salida similar a la siguiente. No se preocupe si el conteo de frecuencia o el nombre de los mdulos difieren.
[student@station student]$ cat lab2.3/usbmodules 170 scanner 110 usb-storage 61 pegasus 35 ipaq 33 kaweth 30 io_edgeport 24 keyspan 20 wacom 20 pwc 19 visor

Resultados A title Question 1


1. El archivo ~/lab2.3/usbmodules que contiene un cuadro de los 10 mdulos de Kernel USB ms comunes, precedido por el nmero de veces que se nombran.
grade

Hardware and Device Configuration


Nodos de dispositivos del sistema de archivos
Conceptos clave

Controladores de dispositivo de acceso de procesos a travs del tipo especial de archivo conocido como nodos de dispositivo. Linux respalda bsicamente dos tipos diferentes de dispositivos, los dispositivos blocky los dispositivos character. Por consiguiente, los nodos del sistema de archivos pueden ser bloques o nodos de caracter. Cada nodo del dispositivo del sistema de archivos tiene un nmero mayor (que desglosa un controlador de dispositivo particular en el kernel) y un nmero menor. Los nodos del dispositivo del sistema de archivos se pueden crear con el comando mknod.

Hardware and Device Configuration


Discusin " Todo es un archivo"
En las lecciones anteriores hablamos de los controladores de dispositivo como componentes especializados del kernel, los cuales permiten al kernel comunicarse con varios dispositivos. Esta leccin trata el siguiente nivel: de qu forma se comunican los procesos con los controladores de dispositivo? Al administrar el flujo de informacin para y desde procesos, Linux (y Unix) tiene una filosofa de diseo simple: todo es un archivo. Siguiendo esta filosofa, la pregunta anterior ya se contest: los procesos se comunican con controladores de dispositivo como si fueran archivos. Por ejemplo, el controlador del dispositivo de la terminal para la consola virtual nmero 4 es llamado por el nodo del dispositivo /dev/tty4. Qu sucede cuando se escribe informacin en este archivo?
[root@station root]# echo "hello world" > /dev/tty4

La informacin pasa al controlador del dispositivo de la terminal, el cual hace lo que un controlador de dispositivo de terminal debera hacer cuando se escribe informacin en l: la presenta en la terminal. Al cambiar a la consola virtual nmero 4, hallamos lo siguiente:
Red Hat Enterprise Linux ES release 4 (Nahant) Kernel 2.6.9-5.EL on an i686

station login: hello world

El controlador del dispositivo de la terminal mostr la informacin que estaba escrita en /dev/tty4 en la ubicacin actual del cursor.

Nodos de dispositivos del sistema de archivos


Los archivos que hacen referencia a controladores de dispositivos se conocen como nodos de dispositivo. El archivo de sistema de Linux soporta varios tipos de archivos. La mayora de los usuarios estn familiarizados con tres: los archivos normales, los directorios y los enlaces simblicos (blandos). Los administradores del sistema suelen conocer dos ms: nodos de bloque y de dispositivos de caracteres. Por convencin, los nodos de dispositivo se encuentran en el directorio /dev. Cuando el kernel detecta un nuevo dispositivo, se agrega un nodo de dispositivo para ste all. Observe que esto contrasta con la conducta de versiones anteriores de Linux, donde el nodo de dispositivo exista para cada dispositivo posible, ya sea que estuviera en uso o no.

[root@station total 0 crw-rw---- 1 crw------- 1 crw------- 1 crw------- 1 lrwxrwxrwx 1 crw------- 1 ... brw-rw---- 1 brw-rw---- 1 brw-rw---- 1 brw-rw---- 1 brw-rw---- 1

root]# ls -l /dev root root root root root root root root root root root root root root root root root disk disk disk disk disk 14, 12 Aug 10, 175 Aug 36, 8 Aug 14, 4 Aug 3 Aug 5, 1 Aug 3, 3, 3, 3, 22, 0 1 2 3 0 Aug Aug Aug Aug Aug 5 5 5 5 5 5 5 5 5 5 5 16:30 16:30 16:30 16:30 16:30 16:30 16:30 16:30 16:30 16:30 16:30 adsp agpgart arpd audio cdrom -> hdc console hda hda1 hda2 hda3 hdc

Cuando se listan con el comando ls -l, los nodos de dispositivos de bloque y caracter se reconocen por el primer caracter en cada lnea. Mientras los archivos regulares son identificados por un -, y los directorios por una d los dispositivos de nodo de caracter se identifican por una c y los dispositivos de nodos de bloque se identifican por una b.

Por qu dos tipos de nodos?


El sistema de archivos permite dos tipos de nodos de dispositivo porque el kernel de Linux distingue entre dos tipos diferentes de dispositivos. Dispositivos de caracteres Los dispositivos de caracteres son dispositivos que pueden manipular datos como un flujo nico de bytes secuenciales (o "caracteres"). Los dispositivos de caracteres ofrecen una forma natural para generar o recibir informacin. Ejemplos de dispositivos de caracteres incluyen terminales, puertos seriales e impresoras. Dispositivos de bloque Los dispositivos de bloque son dispositivos que permiten acceso aleatorio y transferir informacin en pedazos fijos o "bloques". Por lo general, los discos se consideran dispositivos de bloque. Ms importante, para la mejora del rendimiento de E/S, todas las transferencias desde o hacia los dispositivos de bloque hacen uso de cach dentro del kernel, algunas veces conocidas como "pgina cach". "buffer cach" o simplemente "cach".

La anatoma de un nodo de dispositivos


A continuacin, el comando ls se utiliza para producir un listado largo de un archivo normal y el nodo de dispositivo /dev/fd0.
[root@station -rw-r--r-[root@station brw-rw---root]# ls -l /etc/passwd 1 root root 4004 Sep 17 12:34 /etc/passwd root]# ls -l /dev/fd0 1 root floppy 2, 0 Jan 30 2003 /dev/fd0

Los archivos normales se utilizan para almacenar informacin en un disco duro. Por consiguiente el comando ls -l reporta la cantidad de informacin almacenada en el archivo (i.e, la longitud del archivo). En contraste, los nodos de dispositivo, no se utilizan para almacenar informacin. En su lugar, sirven como conducto, transfieren informacin hacia y desde un controlador de dispositivo subyacente. Por lo tanto, el concepto de tamao de archivo no tiene sentido. En su lugar, el comando ls -l reporta dos nmeros asociados con cada nodo de dispositivo, el

nmero mayor y el nmero menor. Cada controlador de dispositivo en el kernel registra un nmero mayor, el cual es un nmero entero que sirve para identificar ese dispositivo. El nmero mayor de un nodo dispositivo de sistema de archivos se correlaciona con el nmero mayor del controlador de dispositivo al cual est asociado. Una lista de controladores de dispositivo registrada con el kernel y sus nmeros mayores, se encuentra en el archivo del sistema de archivos proc /proc/devices. A continuacin, observe que los dispositivos de caracter y bloque se manejan por separado. El controlador del dispositivo de caracteres con un nmero mayor que 2 es pty, mientras que el controlador de dispositivos de bloque con un nmero mayor que fd.
[root@station root]# cat /proc/devices Character devices: 1 mem 2 pty 3 ttyp 4 ttyS 5 cua 6 lp ... 143 pts 162 raw 180 usb 254 pcmcia Block devices: 1 ramdisk 2 fd 3 ide0 7 loop 9 md ... 58 lvm

El nmero menor asociado con un nodo de dispositivos se trata como parmetro, el cual se pasa al controlador de dispositivos cuando los datos se escriben desde o hacia el nodo. Los diferentes controladores de dispositivos implementan nmeros menores de forma diferente. Por ejemplo, el controlador de disquetes, (bloque mayor nmero 2) utiliza el nmero menor para distinguir entre formatos de disquetes, mientras que el controlador primario IDE (bloque mayor nmero 3) utiliza el nmero menor para distinguir diferentes particiones en el disco duro (esto se ver ms en detalle en otro cuaderno).
[root@station brw-rw---brw-rw---brw-rw---brw-rw---... brw-rw---brw-rw---brw-rw---brw-rw---... brw-rw---... brw-rw---... brw-rw---brw-rw---brw-rw---... root]# ls -l /dev/fd* 1 root floppy 1 root floppy 1 root floppy 1 root floppy 1 1 1 1 root root root root disk disk disk disk disk disk disk disk disk /dev/hda* 2, 0 Jan 2, 4 Jan 2, 4 Jan 2, 12 Jan 3, 3, 3, 3, 3, 3, 3, 3, 3, 0 1 10 11 Jan Jan Jan Jan

30 30 30 30 30 30 30 30

2003 2003 2003 2003 2003 2003 2003 2003

/dev/fd0 /dev/fd0CompaQ /dev/fd0d360 /dev/fd0D360 /dev/hda /dev/hda1 /dev/hda10 /dev/hda11

1 root 1 root 1 root 1 root 1 root

2 Jan 30 3 Jan 30 4 Jan 30 5 Jan 30 6 Jan 30

2003 /dev/hda2 2003 /dev/hda3 2003 /dev/hda4 2003 /dev/hda5 2003 /dev/hda6

Resumiendo, los nodos de dispositivos tienen tres parmetros que sirven para asociar el nodo de dispositivo a un controlador de dispositivo. Un archivo de tipo bloque o caracter, un nmero mayor, y un nmero menor. Observe que el nombre de archivo del nodo del dispositivo no se

incluye en esta lista y no se utiliza para determinar el controlador de dispositivo apropiado. Este esquema presenta problemas asociados con esto. Comnmente, un nodo de dispositivo podra existir, para lo cual no hay un controlador de dispositivo correspondiente en el kernel:
[root@station root]# echo "hello world" > /dev/sde -bash: /dev/sde: No such device or address

Con menos frecuencia, podra haber un controlador de dispositivo en el kernel sin ningn nodo de dispositivo que le haga referencia, por lo tanto, ninguna forma tradicional para procesos que interacten con l.

Manejo de nodos de dispositivos: mknod


Por lo general los administradores no necesitan manejar nodos de dispositivos directamente. La mayora de las distribuciones de Linux ocupan el directorio /dev con nodos de dispositivo para cualquier dispositivo concebible, (Red Hat Enterprise Linux tiene ms de 7.500 archivos en el directorio /dev). No obstante, a veces, especialmente en entornos mnimos (tales como una shell de rescate), los administradores pueden necesitar el comando mknod para crear nodos de dispositivo. El comando mknod espera ser llamado con cuatro argumentos. El primer argumento puede ser ya sea una c (para especificar un nodo de dispositivo de caracter) o una b (para especificar un nodo de dispositivo de bloque). Los dos argumentos siguientes son el nmero mayor y el nmero menor, respectivamente. Por ejemplo, nuestra demostracin inicial (escribir a una cuarta consola) se puede repetir mediante un nodo de dispositivo personalizado creado en el directorio de inicio de raz. Primero, root busca los nodos de dispositivos originales y el nmero menor.
[root@station root]# ls -l /dev/tty4 crw------1 root root 4,

4 Sep 27 06:52 /dev/tty4

Luego, utiliza mknod para crear un nuevo nodo de dispositivo en su directorio de inicio, lo observa con el comando ls -l y luego lo escribe en el nodo.
[root@station [root@station crw-r--r-[root@station root]# mknod mytty4 c 4 4 root]# ls -l mytty4 1 root root 4, 4 Sep 27 07:34 mytty4 root]# echo "hello my device node" > mytty4

Dnde est la informacin que escribi? En la cuarta consola virtual naturalmente:


Red Hat Enterprise Linux ES release 4 (Nahant) Kernel 2.6.9-5.EL on an i686

station login: hello world hello my device node

De nuevo, el nombre del nodo del dispositivo es irrelevante. nicamente interesan el tipo y los nmeros mayores y menores. Adems, no hay nada de especial acerca del directorio /dev aparte de la convencin.

Cmo se suprimen los nodos de dispositivos? De la misma forma que se suprimen del sistema de archivos.
[root@station root]# rm mytty4 rm: remove character special file `mytty4'? y

Nodos de dispositivo ms utilizados


Aunque el concepto de nodos de dispositivo se comparte con otras versiones de Unix, los nombres tradicionalmente asociados con los nodos de dispositivo tienden a variar de un versin de Unix a otra. A continuacin se presenta una lista de nombres de Linux de los nodos de dispositivo ms utilizados, los cuales deben formar parte del conocimiento de trabajo de cada administrador de Linux. Table 1. Nodos de dispositivos de bloque comunes de Linux Nombre de nodo hda hdb hdc hdd sda sdb fd0 fd1 Dispositivo asociado Dispositivo IDE de maestro primario Dispositivo IDE de esclavo primario Dispositivo IDE de maestro secundario Dispositivo IDE de esclavo secundario "Primer" dispositivo SCSI "Segundo" dispositivo SCSI Primer disquete Segundo disquete

Table 2. Nodos de dispositivos de caracteres de Linux Nombre de nodo ttyn ttySn lpn null cero urandom Puerto serial n Puerto paralelo n Toda la informacin escrita a este dispositivo virtual se descarta. Cuando es ledo, este dispositivo es una fuente infinita de ceros binarios. Cuando es ledo, este dispositivo es una fuente infinita de datos binarios aleatorios. Dispositivo asociado Nmero de consola virtual n

Enlaces simblicos como nombres funcionales


A menudo, las aplicaciones se interesan ms en la funcin del dispositivo que en el nodo del dispositivo real. Por ejemplo, la mayora de los controladores CD-ROM implementan ya sea una interfaz IDE o una SCSI y por lo tanto, se pueden solucionar mediante los nodos de dispositivo hdc o sda. Sin embargo, a una aplicacin de reproduccin de audio de msica, no le importara si el dispositivo fuera un dispositivo IDE o SCSI, slo deseara utilizar el "CD-ROM". Red Hat Enterprise Linux suele utilizar enlaces simblicos en el directorio /dev para ayudar a facilitar la configuracin de estas aplicaciones. El siguiente cuadro lista los enlaces creados ms comunes y los tipos de dispositivos a los cuales apuntan.

Table 1. Los enlaces simblicos ms hallados en el directorio /dev Nombre del enlace Muestra de nodos de dispositivo /dev/cdrom /dev/modem /dev/pilot /dev/hdc, /dev/sdb /dev/ttyS0, /dev/ttyS1 /dev/ttyS0, /dev/usb/ttyS1

Creacin de un nodo de dispositivo dinmico: udev


La tcnica tradicional de Unix para dispositivos de acceso (nodos de dispositivo) ha resistido la prueba del tiempo, pero no sin tener tropiezos. Por ejemplo, puede haber un conductor de dispositivo en el kernel al cual no se puede acceder porque no hay un nodo de dispositivo complementario en el sistema de archivos. En cambio, puede haber nodos de dispositivo en el sistema de archivos sin el controlador de dispositivo correspondiente en el kernel, lo que lleva a la confusin. Estos problemas se exacerban con el incremento de popularidad de los dispositivos intercambiables en caliente, los que la gente slo espera conectar a la mquina y que "funcionen". En un principio y hasta Red Hat Enterprise Linux 3, Red Hat resolvi el problema "Pre-poblando" el directorio /dev con cada nodo de dispositivo posible, incluso si los correspondientes controladores de dispositivos no estaban presentes. Como resultado, el directorio /dev tena literalmente miles de entradas. Desde Red Hat Enterprise Linux 4 (y el kernel de Linux 2.6), Red Hat (y la comunidad de Linux) est tratando de utilizar un mtodo ms inteligente para resolver el problema. El kernel ahora implementa un dispositivo de notificacin (conocido como "netlink", debido a que tambin est asociado con la red), el cual se monitoriza con el nuevo demonio udevd. La clave es que cuando el nuevo dispositivo se conecta a la mquina, el kernel notifica a udevd, el cual consulta una base de datos de reglas en /etc/udev. Las reglas le dicen al demonio udevd qu tipo de nodo de dispositivo debe crear para el dispositivo y qu propiedades y permisos debe tener para aplicar al nodo. De la misma manera, cuando se remueve el dispositivo, el demonio udevd responde de nuevo a una notificacin del kernel, esta vez quitando el nodo de dispositivo. Curiosamente, el demonio udevd considera todos los dispositivos como dispositivos cambiable en caliente. Los dispositivos permanentes "simplemente estaban all" cuando el sistema estaba cargando. Hay un par de consecuencias para la nueva tcnica. 1. La ventaja es que el directorio /dev tiene muchos menos nodos de dispositivo y los nodos existentes son un refleccin directa del hardware subyacente detectado. 2. La desventaja es que ya no podr simplemente utilizar mknod para crear sus propios nodos de dispositivos dentro del directorio /dev. Ms precisamente, usted puede crear el nodo pero debido a que el directorio /dev ahora est dinmicamente poblado por udevd, no puede esperar a que el nodo sobreviva un reinicio. Los detalles para configurar el demonio udevd van ms all del objetivo de este curso, pero el interesado puede utilizar rpm -ql udev para obtener una lista de pginas del manual (tal como

udev(8)) y una documentacin ms completa en el directorio /usr/share/doc/udevversion.

Hardware and Device Configuration


Ejemplos Crear una copia de seguridad del registro de arranque maestro del dispositivo con el comando dd
En general, los nodos de dispositivos permiten acceso directo a dispositivos. Los nodos de dispositivos asociados con discos les permiten a los usuarios leer el contenido del disco, byte por byte, como si el disco fuera un archivo gigante. El comando dd se puede utilizar para extraer longitudes especficas de datos desde sitios especficos de un archivo. El primer bloque (512 bytes) de un disco duro de carga se refiere a un "registro de arranque maestro" e incluye informacin sensible, como por ejemplo, el gestor de arranque y el cuadro de particin del dispositivo. Como precaucin, un administrador de sistema desea hacer una copia de seguridad de esta informacin. Utiliza el comando dd para hacer una copia de los primeros 512 bytes del disco. Especifica que su archivo de entrada debe ser /dev/hda, su archivo de salida debe ser /tmp/MBR.backup y que exactamente se debe transferir un bloque mediante un tamao de bloque de 512 bytes. Como resultado, termina con un archivo de 512 bytes exactos de longitud.
[root@station root]# dd if=/dev/hda of=/tmp/MBR.backup bs=512 count=1 1+0 records in 1+0 records out [root@station root]# ls -l /tmp/MBR.backup -rw-r--r-1 root root 512 Sep 28 07:58 /tmp/MBR.backup

Si el registro de arranque maestro se daa alguna vez, se puede restaurar invirtiendo el comando anterior.
[root@station root]# dd if=/tmp/MBR.backup of=/dev/hda

(Sin argumentos que determinen otra cosa, el comando dd transfiere todo el archivo de entrada).

Hardware and Device Configuration


Ejercicios en lnea
[Warning]

Lab Exercise Objetivo: Familiarizarse con los nodos de dispositivos del sistema de archivos Linux. Tiempo estimado: 10 minutos.

Specification
1. Cree el archivo ~/lab2.4/block-3-0, el cual contenga el nombre del nodo de dispositivo de bloque asociado con el nmero mayor 3 y el nmero menor 0. Haga referencia al archivo mediante una referencia absoluta. 2. Cree el archivo ~/lab2.4/char-1-8, que contenga el nombre del nodo de dispositivo de caracter asociado con el nmero mayor 1 y el nmero menor 8. Haga referencia al archivo mediante una referencia absoluta. 3. Cree el archivo ~/lab2.4/cdrom, que contenga el nombre del nodo del dispositivo al cual apunte el enlace simblico /dev/cdrom. Haga referencia al archivo mediante una referencia absoluta (i.e. sin /dev/). Si su mquina no tiene un dispositivo de CD ROM (o el archivo /dev/cdrom no existe) simplemente escriba la palabra "none". 4. Utilice el comando mknod para crear el nodo de dispositivo ~/lab2.4/myfd0. El nodo de dispositivo debe tener las mismas propiedades que el nodo de dispositivo /dev/fd0, (usted tendr que utilizar una cuenta de root para realizar este paso). Si ha realizado el laboratorio correctamente, debera poder generar una salida similar a la siguiente:
[student@station student]$ ls -l lab2.4/ total 12 -rw-rw-r-1 student student 10 -rw-rw-r-1 student student 9 -rw-rw-r-1 student student 10 brw-r--r-1 root root 2, 0 [student@station student]$ head lab2.4/* ==> lab2.4/block-22-7 <== /dev/hdd3 ==> lab2.4/cdrom <== /dev/sdc ==> lab2.4/char-1-8 <== /dev/tty8

Sep Sep Sep Sep

28 28 28 28

07:11 07:12 07:11 07:12

block-22-7 cdrom char-1-8 myfd0

Resultados A title Question 1


1. El archivo ~/lab2.4/myfd0 que contiene el nombre de un dispositivo de bloque asociado

con el nmero mayor 3 y el nmero menor 0 como una referencia absoluta. 2. El archivo ~/lab2.4/char-1-8, que contiene el nombre del nodo de dispositivo de caracter asociado con el nmero mayor 1 y el nmero menor 8 como referencia absoluta. 3. El archivo ~/lab2.4/cdrom, el cual contiene el nombre del nodo de dispositivo, al cual el enlace simblico del archivo /dev/cdrom apunta o la palabra "none". 4. El nodo de dispositivo ~/lab2.4/myfd0 el cual tiene las mismas propiedades del nodo de dispositivo /dev/fd0.
grade

Limpieza
El nodo de dispositivo ~/lab2.4/myfd0 puede causar problemas extraos (si se incluyen como un argumento para el comando grep, por ejemplo) y debera removerse despus de que su laboratorio sea calificado.

Hardware and Device Configuration


Monitorizar el funcionamiento
Conceptos clave

Linux utiliza una medida general de la actividad del sistema conocida como el "promedio de carga". Linux utiliza una memoria para dos propsitos fundamentales: compatibilidad con el proceso y almacenamiento en cach de operaciones de dispositivo en bloque E/S. El comando top se puede utilizar para monitorizar la actividad de procesamiento y la actividad de memoria.

Hardware and Device Configuration


Discusin Monitorizar el funcionamiento
Terminamos este cuaderno mencionando algunas de las herramientas y medidas ms utilizadas para monitorizar funcionamiento en sistemas de Linux

Funcionamiento de CPU El comando uptime


Como el nombre lo indica, el comando uptime retorna cunto tiempo las mquinas han estado funcionando sin volver a arrancar o sin apagar.
[root@station root]# uptime 08:14:10 up 1:28, 4 users,

load average: 0.56, 0.23, 0.12

Aunque esta mquina ha estado despierta ms de una hora y 28 minutos, Linux tiene tal reputacin de estabilidad que los servidores de red suelen utilizar uptimes medidos en meses en lugar de horas. Ms relevante para el rendimiento de la CPU, el comando uptime tambin retorna una estadstica Linux (y Unix) conocida como el promedio de carga de la mquina (a menudo abreviada loadavg). El promedio de carga es un promedio de tiempo del nmero de procesos que estn en el estado de "ejecutable" o "dormido voluntario". Por convencin, tres tiempos de promedio se mantienen. Un promedio de 1, un promedio de 5 minutos y un promedio de 15).

El comando top
La utilidad top lista en forma repetitiva procesos en la mquina, clasificados por orden de actividad de la CPU. La lista se actualiza cada 5 minutos. Mientras se ejecuta top, el teclado est "vivo", lo que implica que las pulsaciones de tecla se interpretan como comandos, sin tener que pulsar la tecla ENTER. Principalmente, la tecla q abandona top, mientras que la tecla h muestra una ayuda en la pantalla documentando otros comandos de pulsacin de teclas. Las tres lneas superiores del monitor top monitorizan la actividad de la CPU. La lnea superior retorna la misma informacin del comando uptime, principalmente incluyendo el promedio de carga.
[root@station root]# top top - 09:33:48 up 12:07, 5 users, load average: 0.23, 0.40, 0.30 Tasks: 91 total, 2 running, 88 sleeping, 0 stopped, 1 zombie Cpu(s): 8.6% us, 3.7% sy, 0.3% ni, 86.7% id, 0.7% wa, 0.0% hi, 0.0% si ...

La segunda lnea enumera los procesos que se estn ejecutando en la mquina y el estado en que se encuentran. Muchos procesos en el estado "ejecutable" (ms formalmente llamados "en ejecucin") implicaran una mquina ocupada. La tercera y cuarta lneas clasifican cmo la CPU se ha estado utilizando esta vez, mediante las siguentes tres clasificaciones estndar de Unix.

usuario - "us" Cuando la CPU est en el modo de "usuario" est funcionando en nombre de un proceso de usuario. Los procesos que realizan clculos intensivos computacionales tales como un programa de manipulacin de imagen o una biblioteca criptogrfica, haran que la CPU dedicara una gran cantidad de tiempo en el modo de usuario. sistema - "si" Cuando la CPU est en el modo de "sistema", est realizando actividades en nombre del kernel. Por ejemplo, las interrupciones de hardware o llamadas al sistema en nombre del proceso (tales como las operaciones de lectura y escritura). Los procesos que transfieren grandes cantidades de datos desde y hacia el disco o desde y hacia las conexiones de red, haran que la CPU consumiera una gran cantidad de tiempo en el modo de "sistema". inactivo - "id" Como el nombre lo indica, es el tiempo que tarda la CPU para calmar sus heridas porque no hay procesos en el estado ejecutable. Adems, Red Hat Enterprise Linux rastrea las siguientes estadsticas: nice - "ni" Esta es la cantidad de tiempo que la CPU tarda en actuar en nombre de los procesos ejecutados con "nice", para tener una prioridad de ejecucin ms baja. El tiempo que tarda en este estado se cuenta como tiempo gastado en el estado de "usuario" o de "sistema". espera E/S - "wa" Es el tiempo de montaje que tarda la CPU inactiva debido a que dos componentes compiten por el mismo recurso de E/S o un proceso est esperando a que finalice una operacin E/S. Interrupcin de hardware - "hi" Es la cantidad de tiempo que se tarda la CPU revisando las solicitudes de hardware de bajo nivel o "las interrupciones". Como su nombre lo indica, el hardware puede interrumpir el flujo normal de la ejecucin de la CPU cuando la informacin pertinente est disponible, tal como un ratn que se ha movido a otro sitio o una tarjeta Ethernet que ha recibido un paquete a travs de la red. Interrupcin de software - "si" Es la cantidad de tiempo que tarda la CPU revisando tareas peridicas dentro del kernel, tales como la administracin del transporte de paquetes de red a la aplicacin apropiada.

Utilizacin de memoria
Quizs la tarea ms importante del kernel de Linux es la utilizacin eficiente de recursos en toda ejecucin del sistema, dificultando la respuesta a preguntas fciles tales como "cunta memoria est utilizando el proceso?". No obstante, en general, los administradores pueden pensar que el kernel de Linux est tratando de balancear las solicitudes de memoria de dos tareas importantes.

Memoria del proceso

Los distintos procesos ejecutndose en la mquina solicitan cada uno memoria del kernel. Para procesos ms pequeos, las solicitudes de memoria pueden ser tan modestas como 100 kilobytes o menos por proceso. Aplicacines ms grandes (en particular grficas tales como el navegador de red Firefox) pueden solicitar decenas de megabytes de memoria.

Disco E/S cach


El kernel de Linux trata de optimizar disco de E/S haciendo buffer en todas la operaciones de disco (o ms exactamente, el dispositivo de bloque). El proceso de leer o escribir informacin a un disco o a la memoria es bastante ms bajo. Cuando un proceso solicita leer informacin desde un disco, la informacin es obviamente leda tan pronto como sea posible dentro de la memoria. No obstante, cuando un proceso solicita escribir informacin a un disco, el kernel rpidamente almacena la informacin en la memoria cach y retorna control al proceso. Cuando hay un "momento quieto" (es decir, cuando haya unas cuantas operaciones pendientes para poder funcionar) el kernel realizar una operacin relativamente lenta para confirmar la informacin depositada al disco. Qu sucede si otro proceso (o el mismo) trata de leer la misma informacin desde el disco antes de salir de la memoria cach? El kernel retorna la informacin desde el cach, circunvalando todo el disco. Los archivos ms utilizados, que suelen leerse o escribirse podran consumir la mayora de su tiempo en la E/S cach, slo en ocasiones cuando se ha sincronizado de nuevo con el disco. En sistemas con grandes cantidades de memoria, el cach E/S de disco puede fcilmente utilizar ms de la mitad de ste. La administracin correcta del cach E/S de disco mejora dramticamente todo el funcionamiento del sistema.

Monitorizar el uso de memoria con /proc/meminfo


Veamos de nuevo el contenido en /proc/meminfo, est vez centrndonos en la cantidad de memoria asignada al cach de disco E/S.
[root@station ~]# cat /proc/meminfo MemTotal: 255232 kB MemFree: 4340 kB MemShared: 0 kB Buffers: 12096 kB Cached: 138840 kB ...

Recuerde que la lnea MemTotal lista memoria detectada y la lnea MemFree lista cunta memoria se desaprovecha. Ahora nos centramos en las lneas Buffers y Cached. El archivo meminfo distingue entre dos variedades sutiles de cach E/S. (la ltima es para almacenamiento cach E/S relacionada con el contenido de archivos normales, el primero es para las interacciones de dispositivo de bloque). Para nuestros propsitos, la suma combinada de ambos se puede considerar la "cach E/S". En esta mquina que contiene cerca de 256 megabytes de memoria fsica, cerca de 150 megabytes (o ms de la mitad) se asignan a la cach E/S.

Monitorizar la utilizacin de memoria con top


El comando top presentado anteriormente tambin monitoriza el consumo de memoria. Arriba nos centramos en las primeras tres lneas de la visualizacin top relacionada con la actividad de la CPU. Ahora nos enfocamos en aspectos de las siguientes tres lneas.

[root@station root]# top top - 09:51:08 up 12:25, 6 users, load average: 0.00, 0.12, 0.28 Tasks: 91 total, 2 running, 88 sleeping, 0 stopped, 1 zombie Cpu(s): 0.3% us, 0.0% sy, 0.0% ni, 99.7% id, 0.0% wa, 0.0% hi, 0.0% si Mem: 514604k total, 505516k used, 9088k free, 219620k buffers Swap: 1044216k total, 132k used, 1044084k free, 110568k cached ...

El campo lista la memoria fsica disponible. El campo lista la cantidad de memoria disponible en uso. Este campo lista la cantidad de memoria disponible actualmente. Estos campos, combinados, dan una medida de la cantidad de memoria que se est utilizando para almacenar en cach de disco E/S. Los campos restantes en la ltima lnea se relacionan con el uso de espacio swap de Linux (disco de memoria virtual) y se abordar en el ltimo cuaderno.

Por qu mi memoria est siempre 90% llena?


Despus de observar la memoria dinmica de kernel de Linux durante varias operaciones, los usuarios novatos de Linux suelen sorprenderse por su incapacidad para "liberar memoria", incluso despus de salir de grandes aplicaciones. Por qu bajo Linux la memoria siempre est llena un 90%? Porque el kernel est haciendo justamente lo que se supone que debe estar haciendo, es decir, utilizando sus recursos de la mejor manera posible. La memoria que no se haya utilizado por procesos se asigna para mejorar la velocidad de las operaciones de E/S.

Hardware and Device Configuration


Ejemplos Uso de top para analizar la actividad del sistema
El usuario elvis se ha dado cuenta que su mquina est muy lenta. Utiliza el comando top para analizar el comportamiento de su mquina.
[elvis@station elvis]$ top top - 08:09:40 up 3 days, 15:29, 2 users, load average: 12.19, 6.00, 2.34 Tasks: 103 total, 9 running, 93 sleeping, 0 stopped, 1 zombie Cpu(s): 20.0% us, 79.8% sy, 0.0% ni, 0.2% id, 0.0% wa, 0.0% hi, 0.0% si Mem: 255148k total, 245412k used, 9772k free, 52968k buffers Swap: 1044216k total, 176k used, 1044040k free, 111860k cached PID 15276 15278 15280 15282 15273 15367 1 ... USER blondie blondie blondie blondie root root root PR 25 25 25 25 17 16 16 NI 0 0 0 0 0 0 0 VIRT RES 5208 1428 5352 908 4720 1432 4932 904 3852 968 2848 964 1932 516 SHR 632 632 632 632 756 756 440 S R R R R S R S %CPU %MEM 26.6 0.3 25.3 0.2 24.3 0.3 23.3 0.2 0.3 0.2 0.3 0.2 0.0 0.1 TIME+ 6:00.14 6:12.23 5:58.29 6:15.64 0:04.60 0:00.18 0:00.56 COMMAND find grep find grep top top init

Primero observa el nmero de comandos grep y find que blondie parece estar ejecutando. Hace las siguientes anotaciones: El promedio de carga de 1 minuto, 12.19, es alto, mientras que el promedio de carga de 15 minutos, 2.34, es bajo en comparacin. Esto implica que la mquina est respondiendo a una actividad desbordada. Su CPU est tardando mucho en el estado de "sistema", probablemente como resultado de toda la actividad de E/S requerida por los comandos find y grep. De los 256 megabytes de su mquina, 53 + 111 = 164 megabytes de memoria se utilizan para almacenar en cach operaciones E/S. Como resultado, otros procesos en la mquina probablemente respondern de un modo muy lento, pues tienen poca capacidad en memoria fsica.

Hardware and Device Configuration


Ejercicios en lnea
[Warning]

Lab Exercise Objetivo: Familiarizarse con el comando uptime. Tiempo estimado: 5 minutos.

Specification
1. Registrar la salida del comando uptime dentro del archivo~/lab2.5/uptime.

Resultados A title Question 1


1. El archivo ~/lab2.5/uptime que contiene la salida del comando uptime.
grade