2 - Configuración de hardware y dispositivos.pdf

39
Hardware and Device Configuration Información general acerca del hardware Conceptos clave Los controladores de dispositivos se pueden compilar en una imagen estática de kernel o ejecutar como módulos de kernel. Los controladores de dispositivo ejecutados como módulos 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 instantánea del buffer dmesg tomada inmediatamente después del arranque más reciente. El archivo /proc/cpuinfo entrega información acerca de los procesadores del sistema. El archivo /proc/meminfo entrega información acerca de la memoria del sistema. El directorio /proc/ide/ entrega información acerca de los dispositivos IDE del sistema.

Transcript of 2 - Configuración de hardware y dispositivos.pdf

  • 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.

    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.

    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 /proc/cmdline ro root=LABEL=/ vga=0x317 5

    [root@station root]# lsmod Module Size Used by Not tainted sd_mod 13516 2 (autoclean) usb-storage 74656 1 scsi_mod 107544 2 [sd_mod usb-storage] parport_pc 19076 1 (autoclean) lp 8996 0 (autoclean) ...

    [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.

    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.

    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]# dmesg Linux version 2.6.9-5.EL ([email protected]) (gcc version 3.4.3 20041212 (Red Hat 3.4.3-9.EL4)) #1 Wed Jan 5 19:22:18 EST 2005BIOS-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) ...

    [root@station root]# ls /etc/sysconfig/ apmd grub mouse system-config-users apm-scripts harddisks named redhat-logviewer authconfig hwconf network rhn clock i18n networking samba console init network-scripts sendmail desktop installinfo ntpd squid dhcpd iptables pcmcia static-routes dhcrelay irda pgsql syslog firstboot keyboard rawdevices tux gpm kudzu system-config-securitylevel 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.

  • 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.

    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.

    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.

    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

    [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

    [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"

    [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" ...

    [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.

  • 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.

    Los siguientes campos tienden a proveer la informacin ms til.

    [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

    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

  • 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.

    Por ahora, nuestra discusin se limita a los siguiente campos:

    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

    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

    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.

    [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 ...

    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).

    Nombre Posicin

    hda maestro primario

    hdb esclavo primario

    hdc maestro secundario

    hdd esclavo secundario

    hde maestro terciario

    ... ...

  • rpidamente qu discos IDE son reconocidos por el kernel. En el siguiente ejemplo, slo se detecta un dispositivo (hda).

    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).

    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.

    [root@station ide]# ls /proc/ide/ drivers hda ide0 piix

    [root@station ide]# ls /proc/ide/hda cache capacity geometry media settings smart_values capacity driver identify model smart_thresholds [root@station ide]# head /proc/ide/hda/* ==> /proc/ide/hda/cache /proc/ide/hda/capacity /proc/ide/hda/capacity /proc/ide/hda/driver /proc/ide/hda/geometry /proc/ide/hda/identify /proc/ide/hda/media /proc/ide/hda/model /proc/ide/hda/settings

  • 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.

    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.

    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]$ 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 ...

    [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

    [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 /proc/ide/hdb/media /proc/ide/hdc/media /proc/ide/hda/model /proc/ide/hdb/model /proc/ide/hdc/model

  • Hardware and Device Configuration Ejercicios en lnea

    Specification

    Rena la siguiente informacin sobre el hardware de su mquina y almacnela en los archivos especificados. Cada archivo debe contener una sola respuesta.

    Si usted ha realizado el laboratorio correctamente, podr generar salida similar a la siguiente, (no se preocupe si sus valores reales difieren).

    Resultados

    A title

    Question 1

    [Warning] Lab Exercise Objetivo: Determinar la informacin sobre la configuracin del hardware en la mquina local.

    Tiempo estimado: 10 minutos.

    Archivo Contenido

    ~/lab2.1/cpuspeed La velocidad de su procesador actual en megahertz.~/lab2.1/cpucache El tamao de su cach de CPU en kilobytes.~/lab2.1/memsize La cantidad de memoria fsica en megabytes.

    ~/lab2.1/nicdriver El nombre del mdulo del kernel que sirve de controlador de dispositivo 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.

    [student@station student]$ head lab2.1/* ==> lab2.1/cpucache lab2.1/cpuspeed lab2.1/memsize lab2.1/nicdriver lab2.1/numide

  • 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.

    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]# 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.

  • 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).

    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/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.

    [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 ...

  • 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.

    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

    [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.

    [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

  • 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).

    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.

    Alias Role

    ethN El controlador de dispositivo apropiado para la tarjeta de interfaz de red asociada con la interfaz de red ethN.

    snd-card-N 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 El controlador de dispositivo asociado con el nmero mayor de dispositivo de nodos de caracterN.

    block-major-N El controlador de dispositivo asociado con el nmero mayor de nodos de dispositivo de bloque N.

    [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 [disabled] [size=128K] Capabilities: [c0] Power Management version 2 ...

  • 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.

    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]$ /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 PCI142000: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)

    [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

    Specification

    Rena la siguiente informacin sobre el hardware de su mquina y almacnela en los archivos especificados. Cada archivo debe contener una sola respuesta.

    Si usted ha realizado el laboratorio correctamente, podr generar salida similar a la siguiente, (no se preocupe si sus valores reales difieren).

    Resultados

    A title

    Question 1

    [Warning] Lab Exercise Objetivo: Determinar la configuracin del hardware de los dispositivos en su mquina local.

    Tiempo estimado: 10 minutos.

    Archivo Contenido

    ~/lab2.2/irq1 El nombre del dispositivo que est utilizando la lnea 1 de solicitud de interrupcin (IRQ -1).

    ~/lab2.2/fpuports El rango de puertos E/S que estn siendo utilizados por su dispositivo de mquina fpu.

    ~/lab2.2/videoram El rango de direcciones fsicas que estn siendo utilizadas por su rea de vdeo RAM de la mquina.

    [student@station student]$ head lab2.2/* ==> lab2.2/fpuports lab2.2/irq1 lab2.2/videoram

  • 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/versin-kernel) y llamados modulesBUSmap, donde BUS se remplaza por el bus adecuado como se ilustra en el siguiente ejemplo.

    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.

    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 usb]# ls /lib/modules/2.6.9-5.EL/ build modules.generic_string modules.parportmap modules.usbmap kernel modules.ieee1394map modules.pcimap modules.dep modules.isapnpmap modules.pnpbiosmap

    [root@station root]# ls /etc/hotplug/ blacklist net.agent pci.rc usb.distmap usb.usermap hotplug.functions pci usb usb.handmap ieee1394.agent pci.agent usb.agent usb.rc

    [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.

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

    [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

  • Hardware and Device Configuration Ejercicios en lnea

    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

    [Warning] Lab Exercise Objetivo: Familiarizarse con mdulos comunes del controlador de dispositivos USB

    Tiempo estimado: 20 minutos.

    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.

    Resultados

    A title

    Question 1

    [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

    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?

    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:

    Nodos de dispositivos del sistema de archivos

    [root@station root]# echo "hello world" > /dev/tty4

    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.

    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.

  • 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 root]# ls -l /dev total 0 crw-rw---- 1 root root 14, 12 Aug 5 16:30 adsp crw------- 1 root root 10, 175 Aug 5 16:30 agpgart crw------- 1 root root 36, 8 Aug 5 16:30 arpd crw------- 1 root root 14, 4 Aug 5 16:30 audio lrwxrwxrwx 1 root root 3 Aug 5 16:30 cdrom -> hdc crw------- 1 root root 5, 1 Aug 5 16:30 console ... brw-rw---- 1 root disk 3, 0 Aug 5 16:30 hda brw-rw---- 1 root disk 3, 1 Aug 5 16:30 hda1 brw-rw---- 1 root disk 3, 2 Aug 5 16:30 hda2 brw-rw---- 1 root disk 3, 3 Aug 5 16:30 hda3 brw-rw---- 1 root disk 22, 0 Aug 5 16:30 hdc

    [root@station root]# ls -l /etc/passwd -rw-r--r-- 1 root root 4004 Sep 17 12:34 /etc/passwd [root@station root]# ls -l /dev/fd0 brw-rw---- 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

  • 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.

    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).

    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

    nmero mayor y el nmero menor.

    [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

    [root@station root]# ls -l /dev/fd* /dev/hda* brw-rw---- 1 root floppy 2, 0 Jan 30 2003 /dev/fd0 brw-rw---- 1 root floppy 2, 4 Jan 30 2003 /dev/fd0CompaQ brw-rw---- 1 root floppy 2, 4 Jan 30 2003 /dev/fd0d360 brw-rw---- 1 root floppy 2, 12 Jan 30 2003 /dev/fd0D360 ... brw-rw---- 1 root disk 3, 0 Jan 30 2003 /dev/hda brw-rw---- 1 root disk 3, 1 Jan 30 2003 /dev/hda1 brw-rw---- 1 root disk 3, 10 Jan 30 2003 /dev/hda10 brw-rw---- 1 root disk 3, 11 Jan 30 2003 /dev/hda11 ... brw-rw---- 1 root disk 3, 2 Jan 30 2003 /dev/hda2 ... brw-rw---- 1 root disk 3, 3 Jan 30 2003 /dev/hda3 ... brw-rw---- 1 root disk 3, 4 Jan 30 2003 /dev/hda4 brw-rw---- 1 root disk 3, 5 Jan 30 2003 /dev/hda5 brw-rw---- 1 root disk 3, 6 Jan 30 2003 /dev/hda6 ...

  • 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:

    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.

    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.

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

    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.

    [root@station root]# echo "hello world" > /dev/sde -bash: /dev/sde: No such device or address

    [root@station root]# ls -l /dev/tty4 crw------- 1 root root 4, 4 Sep 27 06:52 /dev/tty4

    [root@station root]# mknod mytty4 c 4 4 [root@station root]# ls -l mytty4 crw-r--r-- 1 root root 4, 4 Sep 27 07:34 mytty4 [root@station root]# echo "hello my device node" > mytty4

    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

  • Cmo se suprimen los nodos de dispositivos? De la misma forma que se suprimen del sistema de archivos.

    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

    Table 2. Nodos de dispositivos de caracteres de Linux

    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.

    [root@station root]# rm mytty4 rm: remove character special file `mytty4'? y

    Nombre de nodo Dispositivo asociado

    hda Dispositivo IDE de maestro primario

    hdb Dispositivo IDE de esclavo primario

    hdc Dispositivo IDE de maestro secundario

    hdd Dispositivo IDE de esclavo secundario

    sda "Primer" dispositivo SCSI

    sdb "Segundo" dispositivo SCSI

    fd0 Primer disquete

    fd1 Segundo disquete

    Nombre de nodo

    Dispositivo asociado

    ttyn Nmero de consola virtual n

    ttySn Puerto serial n

    lpn Puerto paralelo n

    null Toda la informacin escrita a este dispositivo virtual se descarta.

    cero Cuando es ledo, este dispositivo es una fuente infinita de ceros binarios.

    urandomCuando es ledo, este dispositivo es una fuente infinita de datos binarios aleatorios.

  • Table 1. Los enlaces simblicos ms hallados en el directorio /dev

    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

    Nombre del enlace Muestra de nodos de dispositivo

    /dev/cdrom /dev/hdc, /dev/sdb/dev/modem /dev/ttyS0, /dev/ttyS1/dev/pilot /dev/ttyS0, /dev/usb/ttyS1

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

  • 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.

    Si el registro de arranque maestro se daa alguna vez, se puede restaurar invirtiendo el comando anterior.

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

    [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

    [root@station root]# dd if=/tmp/MBR.backup of=/dev/hda

  • Hardware and Device Configuration Ejercicios en lnea

    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:

    Resultados

    A title

    Question 1

    [Warning] Lab Exercise Objetivo: Familiarizarse con los nodos de dispositivos del sistema de archivos Linux.

    Tiempo estimado: 10 minutos.

    [student@station student]$ ls -l lab2.4/ total 12 -rw-rw-r-- 1 student student 10 Sep 28 07:11 block-22-7 -rw-rw-r-- 1 student student 9 Sep 28 07:12 cdrom -rw-rw-r-- 1 student student 10 Sep 28 07:11 char-1-8 brw-r--r-- 1 root root 2, 0 Sep 28 07:12 myfd0 [student@station student]$ head lab2.4/* ==> lab2.4/block-22-7 lab2.4/cdrom lab2.4/char-1-8

  • 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.

    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

  • 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.

    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.

    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.

    [root@station root]# uptime 08:14:10 up 1:28, 4 users, load average: 0.56, 0.23, 0.12

    [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 ...

  • 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.

    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 ~]# 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".

  • 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.

    [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.

  • 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.

    Primero observa el nmero de comandos grep y find que blondie parece estar ejecutando. Hace las siguientes anotaciones:

    [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 USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 15276 blondie 25 0 5208 1428 632 R 26.6 0.3 6:00.14 find 15278 blondie 25 0 5352 908 632 R 25.3 0.2 6:12.23 grep 15280 blondie 25 0 4720 1432 632 R 24.3 0.3 5:58.29 find 15282 blondie 25 0 4932 904 632 R 23.3 0.2 6:15.64 grep 15273 root 17 0 3852 968 756 S 0.3 0.2 0:04.60 top 15367 root 16 0 2848 964 756 R 0.3 0.2 0:00.18 top 1 root 16 0 1932 516 440 S 0.0 0.1 0:00.56 init ...

    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

    Specification

    1. Registrar la salida del comando uptime dentro de