Introducción
El proceso de configuración de los elementos de hardware en un ordenador requiere cierta familiaridad con los mismos y con su configuración, especialmente los más antiguos, que necesitan algún tipo de configuración manual para evitar conflictos de hardware. Actualmente no es necesario este proceso ya que la mayoría de las configuraciones básicas vienen prefijadas en el firmware del dispositivo o en la BIOS del sistema.Objetivo
El objetivo de esta entrada es poder determinar y configurar las opciones de hardware en un sistema GNU/Linux. De esta manera, además, podremos determinar y solucionar los conflictos y problemas que puedan surgirnos con nuestro hardware.El sistema de archivos /proc
Es un sistema de archivos virtual que se utiliza, entre otras cosas, para permitir a los procesos el acceso a la información del kernel. Para lo que nos interesa, este sistema de archivos nos proporciona información sobre la asignación de recursos del kernel, cualquier proceso en ejecución, del hardware instalado y de la configuración de los módulos (drivers).Para el caso que nos ocupa, los tres archivos más interesantes son:
/proc/interrupts
Cuando un dispositivo necesita comunicarse con el procesador, como indicarle un evento, transferirle una información o comunicarle un estado de error; éste le envía una señal de interrupción para que le haga caso.Grosso modo, cuando varios dispositivos acupan el mismo recurso de interrución decimos que entran en conflicto, porque el procesador no sabe a cual de ellos hacer caso.
Como nota adicional, decir que, antiguamente, era el procesador el que por un proceso de polling sondeaba todos los dispositivos. Como este método era totalmente ineficiente apareción el sistema de interrupciones, que se utiliza actualmente.
La primera columna se refiere al número de IRQ. Cada CPU tiene su propia columna y su propio número de interrupciones por IRQ. La segunda columna indica el tipo de interrupción y la última el dispositivo.
Valores son comunes del tipo de interrupción para las máquinas x86:
- XT-PIC — Interrupciones del ordenador AT antiguo que se han producido por un largo periodo de tiempo.
- IO-APIC-edge — Señal de voltaje de las transacciones interrumpidas desde abajo hasta arriba, creando una edge, en la que la interrupción IO-APIC-level, tan sólo se dan a partir de procesadores 586 y superiores.
- IO-APIC-level — Genera interrupciones cuando su señal de voltaje se alza hasta que la señal desciende nuevamente.
Ejemplo de salida del archivo /proc/interrupts
$ cat /proc/interrupts
CPU0 CPU1
0: 740 0 IO-APIC-edge timer
1: 9471 0 IO-APIC-edge i8042
7: 0 0 IO-APIC-edge parport0
8: 1 0 IO-APIC-edge rtc0
9: 0 0 IO-APIC-fasteoi acpi
12: 678611 0 IO-APIC-edge i8042
14: 285528 0 IO-APIC-edge ata_piix
15: 2850112 0 IO-APIC-edge ata_piix
16: 3 0 IO-APIC-fasteoi uhci_hcd:usb2, uhci_hcd:usb5, nouveau
17: 2263 0 IO-APIC-fasteoi Intel ICH5
18: 0 0 IO-APIC-fasteoi uhci_hcd:usb4
19: 0 0 IO-APIC-fasteoi uhci_hcd:usb3
22: 477885 0 IO-APIC-fasteoi firewire_ohci, eth0
23: 26043 0 IO-APIC-fasteoi ehci_hcd:usb1
ERR: 1
MIS: 0
/proc/dma
El acceso directo a memoria (Direct Acces Memory) permite a los dispositivos acceder a la memoria del sistema sin interrumpir al procesador. Esto es útil para aplicaciones que requieran muchos recursos, y es un mecanismo típico controladores de unidades de disco, tarjetas de sonido o tarjetas gráficas.Ejemplo de salida del archivo /proc/dma
$ cat /proc/dma
4: cascade
/proc/ioports
Proporciona una lista de las regiones de puertos registrados actualmente utilizados para la comunicación de entrada y salida con un dispositivo.La primera columna le indica el rango de direcciones de los puertos de entrada y salida reservado para el dispositivo listado en la segunda columna.
Ejemplo de salida del archivo /proc/ioports
$ cat /proc/ioports
0000-001f : dma1
0020-0021 : pic1
0040-0043 : timer0
0050-0053 : timer1
0060-0060 : keyboard
0064-0064 : keyboard
0070-0071 : rtc0
0080-008f : dma page reg
00a0-00a1 : pic2
00c0-00df : dma2
00f0-00ff : fpu
03c0-03df : vga+
03f8-03ff : serial
Resumen
Para exáminar la asignación de recursos en un sistema Linux, deberemos consultar el sistema de archivos /proc.Uno de los posibles fallos que podemos encontrar es el conflicto de interrupciones, que visualizaremos en el archivo /proc/interrupts.
No hay comentarios:
Publicar un comentario