Indicadores de Logros:
- Puede abrir la torre de un PC, identificar sus componentes y manipularlos.
- Identifica y configura el hardware básico que soportan los kernels 2.2 y 2.4 en PCs típicos (cercanos a las suposiciones de la plataforma de referencia ver Plataforma de referencia∞).
En ocasiones cuando un componente de un computador falla o cuando se requiere instalar uno nuevo, un administrador puede requerir comprar uno compatible con Linux, instalarlo y configurarlo. Estas actividad en general no presentará problemas, mientras se informe bien.
En esta sección presentamos nociones básicas sobre el hardware que típicamente se encuentra en la placa base de un PC, así como su configuración en Linux. Varios dispositivos que no se presentan en esta sección se presentan en la siguiente (ver
Dispositivos y Linux∞) o en el siguiente capítulo (ver
Dispositivos para interconexión y Linux∞). Tenga en cuenta al leer esta sección que nos hemos concentrado en hardware cercano a la recomendación de la plataforma de referencia ver
Plataforma de referencia∞.
Para instalar una tarjeta adaptadora, memoria o diversos dispositivos, tendrá que destapar su computador. A continuación damos algunas recomendaciones:
- Consulte la documentación particular de su computador y guardela para referencia futura.
- Normalmente NO tendrá que abrir el monitor de su computador. Le recomendamos no hacerlo porque los niveles de voltaje de un monitor o un televisor (i.e. de un tubo de rayos catódicos CRT) son bastante elevados (>10000V), permanencen así durante un tiempo después de desconectado y si no toma las precauciones debidas puede sufrir una descarga eléctrica mortal.
Este dispositivo puede mantener niveles de voltaje muy altos tiempo después de ser apagado y desconectado. No debe abrirse.
- Antes de abrir el computador apague el equipo, así evitará dañar componentes, haciendo cortos accidentales y evitará recibir descargar eléctricas.
En general, antes de abrir un componente eléctrico es recomendable ...
- Antes de abrirlo toque un elemento "tierra" [1], normalmente la carcaza de su computador si este tiene un polo a tierra. De esta forma puede sacar la carga eléctrica estática que pueda quedar en su cuerpo. Esto es importante, porque las cargas estáticas puede dañar ciertos dispositivos. Mantenga también los dispositivos en su envoltura antiestática mientras no los use y trate de manipularlos por sus esquinas sin tocar sus circuitos integrados.
- Si por algún motivo ve que el componente no está en óptimas condiciones, no le suministre energía ni lo instale en su computador.
TAmbién llamada tarjeta madre, es una lámina sobre la que hay circuitos, componentes electrónicos, el procesador y conexiones entre ellos.
Cuando destape un computador personal verá una lámina sobre la que encontrará entre otros: circuitos integrados (entre ellos el procesador y el BIOS), espacios para la memoria, puertos para discos, ranuras para otras tarjetas, jumpers para configurarla. Esa lámina se llama placa base o tarjeta madre [2]. Separados de la placa, aunque conectados por medio de cables, eventualmente podrá ver unidades de disquete, de CD-ROM, discos duros, una fuente de potencia (por la que se suministra corriente electríca alterna
en Colombia 110V 60Hz
y que convierte para uso del computador a corriente directa).
Esta es la frecuencia de la energía eléctrica en Colombia.
Con el fin de facilitar el cambio y actualización de los dispositivos, una placa base tiene ranuras de uno o más tipos de buses (e.g ISA, PCI, AGP) para conectar en ellos tarjetas que sean o que controlen dispositivos (e.g. tarjeta de sonido, tarjeta de video) o que sirvan como adaptadores para cierto tipo de puertos (e.g adaptadores para dispositivos SCSI), puede también tener integrados controladores y puertos para cierto tipo de dispositivos (e.g IDE, teclado, ratón, puerto paralelo, puerto serial), y eventualmente puede tener integrados dispositivos (e.g. tarjeta de sonido).
Los dispositivos que pueden conectarse a la placa base por puertos, ranuras o por intermedio de tarjetas adaptadoras tienen direcciones de entrada salida (también llamadas puertos E/S [3]) que les permiten intercambiar datos con el procesador, pueden emplear además unos cables especiales del procesador llamados líneas IRQ (
Interruption Request) para solicitar atención especial (por ejemplo cuando un dato llega a un modem, este puede activar la línea IRQ que tenga asignada para solicitar procesamiento del dato), eventualmente pueden emplear canales DMA (
Direct Memory Access) para transmitir información directamente a la memoria sin intervención del procesador y eventualmente si el dispositivo emplea directamente la memoria puede requerir además una dirección base en memoria compartida [4] para comunicarse con los programas.
Es un número con el que se asocia un dispositivo, para permitir su identificación y comunicación con el procesador. Un mismo dispositivo puede emplear diversos de estos números.
Una línea ... puede ser empleada por un dispositivo para solicitar atención al procesador.
Algunos dispositivos pueden emplear un canal ... para acceder directamente a la memoria, sin intervención del procesador.
Número de líneas IRQ en la arquitectura i386.
Número de direcciones E/S en la arquitectura i386.
Número de canales DMA en la arquitectura i386.
Archivo que puede examinarse para determinar las líneas IRQ en uso.
Archivo que puede examinarse para determinar los canales DMA en uso.
Archivo que puede examinarse para determinar los puertos de E/S en uso.
Archivo que puede examinarse para determinar los rangos de memoria compartida usados por dispositivos.
Normalmente los recursos citados sólo pueden ser empleados por un dispositivo a la vez, si dos emplean el mismo recurso pueden entrar en conflicto y no funcionar. Dado que sólo hay 16 líneas IRQ, 65535 direcciones de E/S, 8 canales de DMA (los primeros 4 de 8 bits y los otros 4 de 16 bits) y la memoria compartida es memoria RAM de su computador (límitada por la cantidad que tenga) debe configurar nuevos dispositivos teniendo en cuenta los que ya hay (algunos dispositivos y controladores permiten compartir IRQ con otros). Para conocer la asignación de recursos puede examinar:
/proc/interrupts que lista las interrupciones en uso,
/proc/dma que lista DMAs en uso,
/proc/ioports que presenta los puertos E/S asignados (tenga en cuenta que normalmente un dispositivo requiere un rango de puertos consecutivos, ningún puerto en ese rango debe estar ocupado
por ejemplo una tarjeta de red Ethernet requiere un puerto base y los 31 puertos siguientes),
/proc/iomem presenta los rangos de memoria compartida con dispositivos.
El estado de los puertos puede verse o modificarse por intermedio del archivo
/dev/port.
A nivel de sistema operativo, Linux presenta los dispositivos que puede manejar como "archivos" del directorio
/dev (ver
Ubicación de archivos y directorios∞), puede consultar la lista de los dispositivos reconocidos con:
cat /proc/devices
Este archivo lista los dispositivos reconocidos.
Este dispositivo puede realizar cálculos y administrar memoria y dispositivos, en un orden dictado por un reloj.
Unidad de frecuencia, empleada para indicar velocidad del reloj de un computador.
Es un circuito integrado que realiza algunos cálculos y que controla memoria y dispositivos. Para dar orden a su operación emplea un reloj para ejecutar una instrucción por cada pulsación. Recibe toda la información por diversos cables (por ejemplo el bus de datos de la arquitectura i386 [5] tiene 32 cables) codificada en cada cable con dos níveles de voltaje: alto y bajo [6]. La velocidad del reloj
que determina la velocidad del procesador
se mide en Hertz [7].
Es un nivel de voltaje alto o bajo, se representa con un 1 o un 0.
Un kernel compilado para un Intel 386 podría usarse en sus procesadores descendientes, clones o compatibles, aunque el kernel soporta de manera particular algunos de tales procesadores. La serie 2.2 del kernel soporta 80386DX/DXL/SL/SLC/SX [8] de Intel o Cyrix, 80486DX/DX2/DX4 de AMD o Cyrix o IBM o Intel, AMD K5, Intel 5x86/6x86/6x86MX, Intel Pentium Classic, Intel Pentium MMX, AMD K6-3D, Cyrix/VIA, CyrixIII, Intel Pentium Pro, Intel Pentium II, 6x86MX/MII de Cyrix/IBM/National Semiconductor. La serie 2.4 tiene soporte especial además para: Intel Pentium III, Intel Pentium 4, AMD K7 (Athlon/Duron/Thunderbird), Crusoe de Tansmeta, Winchip C6/2/2A y soporta varios procesadores en una misma placa base (SMP - Symmetric Multi Processing). No soporta 80286 o procesadores previos a ese.
En los depósito de Debian hay kernels ya compilados con soporte especial para algunos de estos procesadores. Sus nombres son de la forma
kernel-image-version-procesador (ver
Configuración del kernel∞).
Puede examinar información sobre el procesador que tiene con:
cat /proc/cpuinfo
En este archivo puede examinar información sobre el procesador que tiene.
Unidad con la que se mide capacidad de almacenamiento en memoria RAM.
La memoria RAM (
Random Access Memory) permite almacenar información mientras el computador está encendido. La cantidad de información que puede almacenar se mide en bytes [9].
La memoria tiene una velocidad de acceso, menor a la velocidad del procesador, que está limitada por el tipo de memoria, el procesador y el chipset [10] de la placa base.
Una placa base normalmente tendrá módulos de memoria [11]. que pueden cambiarse. Los tipos de conectores
que dependen del procesador y de la placa base
pueden ser SIMM (Single in-line memory module) de 32 bits y 72 pines o DIMM (Double in-line memory module) de 64 bits y 168 pines.
Puede examinar la memoria disponible en su sistema en este archivo.
Puede examinar la cantidad de memoria de su computador con el programa
free o con:
cat /proc/meminfo
que también presentará información sobre memoria virtual, es decir espacios del disco duro usados para hacer las veces de memoria RAM (estos espacios del disco son particiones especiales ver
Discos duros∞). Si nota que Linux no llega a reconocer automáticamente toda la memoria que tiene instalada puede especificarla manualmente pasando un parámetro como
mem=128M desde el cargador de arranque (ver
Parámetros desde el cargador de arranque∞).
El contenido de la memoria física puede verse o modificarse con el archivo
/dev/mem (c,1,1)[12] y la memoria virtual con
/dev/kmem (c,1,2).
||
Aviso ||
|| No modificar directamente
/dev/mem ni
/dev/kmem. ||
Aunque hay distribuciones más livianas que las sugeridas en estas guías que podrían instalarse con 4MB (e.g Tiny
/∞, SmallLinux
http://www.superant.com/smalllinux/)∞, nuestras recomendaciones de software requieren mínimo 32MB en RAM. La serie 2.2 del kernel soporta máximo 2GB, la serie 2.4 soporta máximo 64GB --Debian Potato por defecto soporta máximo 1GB y mínimo 12MB.
Número máximo de GigaBytes en RAM soportados por la serie 2.2 del kernel.
Número máximo de GigaBytes en RAM soportados por la serie 2.4 del kernel.
Para que un dispositivo pueda ser usado por el procesador es necesario que ambos estén eléctricamente conectados y que se comuniquen empleando un "lenguaje" (protocolo) común. A un tipo de conexión junto con un protocolo para realizar esta comunicación se le llama bus.
Especificación de las características que debe cumplir un dispositivos para comunicarse con un procesador. Hay diversos estándares como ISA, EISA, PCI, AGP.
Hay diversos tipos de buses, cada uno tiene un tamaño (medido en bits) que índica cuanta información puede transmitirse simultáneamente (8, 16, 32 o 64 bits) y una velocidad de reloj diferente a la velocidad del procesador (e.g 60Mhz, 100Mhz). A continuación presentamos información sobre los tipos de buses más comunes en computadores de escritorio, todos los cuales son soportados por Linux:
Tipo de bus bastante popular, que data de 1980 y es de 8Mhz.
Aunque este tipo de bus de 8Mhz es de 1980, hay placas base recientes con ranuras que lo soportan y hay una amplia gama de dispositivos tanto de 8 como de 16 bits (tarjetas de red, tarjetas SCSI, controladoras IDE, tarjetas de video, etc). Todas las versiones del kernel soportan este bus y gran cantidad de dispositivos ISA (algunos se presentan en otras secciones).
Algunos de estos dispositivos emplean recursos (puertos E/S, IRQ, DMA) con valores prefijados por quien lo instala antes de que el computador sea encendido. Normalmente cada dispositivo podrá ser configurado para emplear diversos recursos (por ejemplo diversas líneas IRQ) y así evitar conflictos en el uso de estos recursos con otros dispositivos. Algunos dispositivos se pueden configurar con jumpers en el hardware (de acuerdo a las instrucciones que acompañan al dispositivo y mientras el computador está apagado) o bien por software
normalmente con un programa para DOS que guarda la configuración que usted elija en una memoria EPROM del dispositivo. Hay algunos programas para Linux que permiten hacer estas configuraciones para ciertos dispositivos, puede también emplearse software para DOS con una versión de libre redistribución de ese sistema como FreeDOS
http://www.freedos.org∞).
Si el dispositivo usa una IRQ y su BIOS soporta Plug and Play, debe también entrar a la configuración del BIOS y marcar ese IRQ como "Legacy-ISA" en lugar de "PnP".
Después de configurar el dispositivo y tras iniciar el sistema operativo debe emplear el controlador apropiado para manejarlo y pasar parámetros acordes con la configuración que hizo, por ejemplo si configura una tarjeta de red ISA compatible NE2000 para usar la IRQ 12 y la dirección base 0x200 y tiene el módulo
ne, debe configurarlo por ejemplo con
modconf (ver
Kernel y módulos∞) o con:
modprobe ne irq=12,io=0x200
Algunos dispositivos para puertos ISA denominados
Plug and Play pueden ser configurados después de que el computador ha iniciado, bien por la BIOS o bien por el sistema operativo. Estos dispositivos son manejados automáticamente por el kernel 2.4 y pueden configurarse manualmente con las herramientas
isapnp tanto en el kernel 2.2 como en el 2.4. Si usted lo prefiere o el kernel no logra configurar alguno de estos dispositivos tiene estas alternativas:
- Algunos de estos dispositivos permiten activar/desactivar el funcionamiento como Plug and Play. Si ese es el caso desactívelo y configure el dispositivo como se explicó para dispositivos ISA. Eventualmente también tendrá que desactivar la posible opción de su BIOS: PnP OS.
- Programa que detecta posibles configuraciones para dispositivos ISA Plug and Play.
Emplee las utilidades
isapnptools (paquete con el mismo nombre) para asignar una configuración que no entre en conflicto con la de otros dispositivos y que en caso de tener otro sistema operativo en el mismo disco debe coincidir con esa (en tal caso revise primero la configuración que el dispositivo tiene en el otro sistema operativo). Para generar un archivo con las posibles configuraciones de los dispositivos ISA PnP, ejecute el programa
pnpdump redireccionando la sálida e.g
pnpdump > ~/pnp.txt
después edite el archivo
~/pnp.txt para escoger una configuración adecuada que no entre en conflicto y pruebela ejecutando: isapnp ~/pnp.txt
Programa que intenta configurar dispositivos ISA Plug and Play con un archivo de configuración como los producidos por
pnpdump.
El archivo generado consta de líneas con comentarios (iniciadas con el caracter '#') e instrucciones que indican como debe realizarse la configuración general y la configuración particular de cada dispositivo. Cada instrucción debe estar entre paréntesis con sus posibles parámetros. Las primeras instrucciones (configuación general) indican como se realiza el asilamiento de dispositivos ISA PnP, si debe ser realizado por
isapnp con la instrucción
(ISOLATE) (esto es necesario con algunas BIOS que no soportan ISA PnP), por el contrario si el aislamiento lo hace el BIOS el archivo debe comenzar con algo como:
(READPORT 0x3bb)
(CSN 2)
(IDENTIFY *)
A continuación debe haber una sección para cada dispositivo ISA PnP, que indica como se configura, por ejemplo una sección típica (tras quitar comentarios) para configurar una tarjeta de sonido Sound Blaster es: (CONFIGURE CTL0044/1132685 (LD 0
(INT 0 (IRQ 5 (MODE +E)))
(DMA 0 (CHANNEL 1))
(DMA 1 (CHANNEL 5))
(IO 0 (BASE 0x220))
(IO 1 (BASE 0x330))
(IO 2 (BASE 0x388))
(ACT Y)))"
donde CTL0044/1132685 es la identificación del dispositivo, LD 0 es un número asignado al dispositivo por Linux (logical device) y las siguientes líneas especifican que el usuario eligió para el dispositivo: 1 línea IRQ (5), 2 canales DMA (1 y 5) y 3 direcciones E/S base (0x220 [13], 0x330 y 0x388).
Importante: La línea con
(ACT Y) es indispensable para que la configuración sea tenida en cuenta. Después de todas las secciones de dispositivos el archivo debe terminar con la instrucción
(WAITFORKEY).
Archivo leido durante el arranque para configurar dispositivos ISA Plug and Play.
Una vez logre configurar el dispositivo
lo habrá logrado si al ejecutar
isapnp y al cargar el módulo no se presentan errores
puede hacer el cambio permanente guardando la configuración en el archivo
/etc/isapnp.conf que tiene la sintaxis de los archivos generados por
pnpdump y que es cargado automáticamente durante la inicialización del sistema (puede ver el script
/etc/init.d/isapnp que es usado en
/etc/rcS.d ver
Inicialización del sistema∞). Además de
/etc/isapnp.conf, el programa
isapnp emplea el archivo
/etc/isapnp.gone en el que se pueden especificar recursos que NO están disponibles para dispositivos Plug and Play.
Tipo de bus de 32 bits, 12Mhz usado en computadore IBM PS/2.
Este bus de 32 bits que opera a 12Mhz fue introducido por IBM en 1987 para su línea de computadores PS/2, es usado por estos y por algunos computadores portátiles. El kernel lo soporta con la variable de configuración CONFIG_MCA (vr
Kernel y módulos∞). De acuerdo a la documentación del kernel (Documentation/mca) cuando se usa puede examinarse en
/proc/mca:
pos lista de registros POS,
slot[1-8] información sobre el adaptador de una ranura,
video información sobre video integrado,
scsi información sobre SCSI integrado,
machine información sobre la máquina. Hay más bien pocos controladores Linux para este tipo de bus, así como también hay relativamente pocos dispositivos que lo soporten. Los dispositivos se configuran por software (ver sección ISA) y los controladores recibien como parámetros los recursos usados.
Extensión de 32 bits al bus ISA, puede operar a 20Mhz.
Esta es una extensión de 32 bits al sistema ISA [14] introducida en 1988, que puede funcionar a 20Mhz. Este bus y muchos dispositivos EISA son soportados por Linux (ver sección sobre el tipo de dispositivo particular).
Tipo de bus de 32 bits, específico para el procesador i486 y usado por algunas tarjetas graficadoras.
En su versión 1.2, se trata de un bus de 32bits, 33Mhz atado al procesador 486, usado por algunas tarjetas graficadoras producidas especialmente entre 1992 y 1994. La versión 2.0 de VESA es empleada por algunas tarjetas graficadoras (como ATI Video Expression, Matrox Millennium G200, Riva 128 y otras listadas en Framebuffer-HOWTO), en particular permite el uso de framebuffer desde Linux con el controlador
vesafb (en particular si se activa soporte para dispositivos framebuffer VESA en el kernel y si se cuenta con una tarjeta VESA 2.0, durante el arranque aparecerá el logo de Linux).
Tipo de bus de 32 bits, que puede extenderse con otros buses. Opera a 66Mhz, soporta ISA y asigna automáticamente líneas IRQ.
Este es un diseño de bus de 1993 extensible [15] de 32bits que opera a 66Mhz y que soporta ISA, las líneas IRQ de estos dispositivos son asignadas automáticamente durante el arranque por la BIOS (no hay forma de asignar manualmente una IRQ a un dispositivo PCI). El programa de configuración de algunas BIOS permite evitar que ciertas IRQs sean usadas en la asignación automática (eventualmente en una menú Plug and Play), de forma que esas pueden reservarse para otros dispositivos ISA/EISA.
Los dispositivos PCI tienen una identificación única que permite clasificar el tipo de dispositivo y el fabricante [16]. Estas identificaciones suelen ser presentadas por algunas BIOS durante el arranque del sistema, en Linux puede examinarse junto con los recursos que emplean con:
cat /proc/pci
Archivo que lista dispositivos PCI y los recursos que emplean.
o con
lspci. En Internet puede consultarse la lista de vendedores y dispositivos en:
http://www.yourvote.com/pci/∞ o en caso de sólo conocer el número FCC [17] de un dispositivo puede consultar el vendedor en:
http://www.fcc.gov/oet/fccid/∞
El kernel 2.2.19 y la serie 2.4, durante el arranque identifican también los dispositivos PCI conectados y tratan de cargar los controladores apropiados, normalmente sin intervención del usuario. Si el módulo apropiado para un dispositivo PCI no logra ser cargado automáticamente durante el arranque, puede cargarlo después por ejemplo con
modconf (normalmente no requerirá parámetros para dispositivos PCI ver
Módulos∞).
Es un tipo de bus extensible por medio de hubs. Funciona a 12Mbtis y soporta hasta 127 dispositivos.
Este tipo de bus que permite tasas de transmisión de 12 Mbits y hasta 127 dispositivos, no requiere la instalación de tarjetas, los dispositivos pueden conectarse y desconectarse mientras el computador está encendido, se conectan a puertos de la placa base o tarjetas adaptadoras o a otros dispositivos USB que actuan como concentradores [18]. Los conectores se distinguen por ser rectangulares, cada dispositivo puede separarse de un concentrador/puerto USB hasta 5 metros.
Las versiones del kernel posteriores a la 2.2.18 soportan dispositivos USB (
CONFIG_USB,
usbcore), y dos posibles protocolos empleados por el chipset de la placa base:
UHCI (
Universal Host Controller Interface)
Protocolo para buses USB desarrollado por Intel.
Desarrollada por Intel y presente en placas base con chipsets PCI de Intel como 430TX/44FX/440LX/440BX/i810/i820 o en chipsets PCI de VIA como VIA VP2, VP3, MVP3, Apollo Pro /II/133). En el kernel se configura con
CONFIG_USB_UHCI, módulo
usb-uhci o bien con el controlador alterno
CONFIG_USB_UHCI_ALT,
uhci.
OHCI (
Open Host Controller Inteface)
Protocolo para buses USB desarrollado por Compaq/Microsoft/National.
Desarrollado por Compaq/Microsoft/National los controladores USB en la mayoría de arquitecturas con chipsets no Intel (como SIS o ALI) cumplen este estándar.
CONFIG_USB_OHCI,
usb-ohci.
De acuerdo a documentación del kernel (Documentation/usb/scanner.txt), los chipsets que soportan UHCI al ejecutar
lspci -V presentan información de la forma:
USB Controller: ......
Flags: .....
I/O ports at ....
mientras que los que soporta OHCI dicen:
USB Controller: ......
Flags: .....
Memory at ...
El controlador básico presenta [19] los dispositivos detectados en
/proc/bus/usb/devices, los controladores usados en
/proc/bus/usb/001/002 (cambiando 001 por el número de bus y 002 por el número de dispositivo). Para verlos debe montarse antes el directorio con
mount -t usbdevfs none /proc/bus/usb (ver
Montaje y desmontaje de sistemas de archivos∞).
Directorio que debe montarse para poder ver información de dispositivos USB.
Los dispositivos USB para interacción con humanos (e.g ratón, teclado, joystick, tarjeta digitalizadora), son manejados con el controlador HID - Human Interface Device (
CONFIG_USB_HID,
hid)
si su computador tiene estos dispositivos puede requerir incluir estáticamente este controlador en el kernel, para eso debe escoger también durante la configuración soporte básico de entrada (Input core support,
CONFIG_INPUT).
Hay controladores genéricos para audio (
CONFIG_USB_AUDIO,
audio), scanner (
CONFIG_USB_SCANNER,
scanner), impresora (
CONFIG_USB_PRINET,
printer), modems y dispositivos ISDN (
CONFIG_USB_ACM,
acm), dispositivos de almacenamiento (
CONFIG_USB_STORAGE,
usb-storage), dispositivos Bluetooth
comunicaciones inalámbricas
(
CONFIG_USB_BLUETOOTH,
bluetooth).
Hay soporte para varios adaptadores de USB a puerto serial (
CONFIG_USB_SERIAL,
usbserial), y el kernel 2.4 soporta un adaptador de puerto paralelo a USB.
Tipo de bus introducido en 1997, especial para tarjetas graficadoras 3-D.
Fue introducido en 1997, es un bus especial para tarjetas graficadoras 3-D, que ofrece mayor velocidad que los puertos PCI. Es soportado por versiones recientes del kernel 2.2 (está en el 2.2.19) y por la serie 2.4.
CONFIG_AGP, módulo
agpgart. Es útil con algunas tarjetas de vídeo que emplean DRI o GLX de X-Window. Soporta los chipsets: Intel 440LX/BX/GX Intel 815/830M/840/850 (
CONFIG_AGP_INTEL), Intel 810/815/830M (
CONFIG_AGP_i810), VIA MPV3/Apollo (
CONFIG_AGP_VIA), AMD Irongate 761/762 (
CONFIG_AGP_AMD), SIS (
CONFIG_AGP_SIS), ALI M1541/M1621/M1631/M1641/M1647/M1651 (
CONFIG_AGP_ALI), Serverwork (
CONFIG_AGP_SWORKS).
Tipo de bus empleado en portátiles desde 1990.
Son puertos disponibles en portátiles desde 1990, para conectar tarjetas PCMCIA como Modems y tarjeta de red, los hay de 16 bits y de 32 bits (Cardbus). Los dispositivos PCMCIA pueden conectarse y descontarse mientras el computador está encendido y son reconfigurados automáticamente por las herramientas PCMCIA complementarias al kernel, paquete
pcmcia-cs.
Linux también soporta otros tipos de buses no tan comunes como: I2O (
http://www.i2osig.org∞), IrDA (Infrarojos), I2C.
La placa basa puede tener tener varias interfaces IDE [20] (usualmente 2:
ide0 e
ide1), cada una de las cuales puede soportar hasta dos dispositivos con una misma correa (uno de los dos dispositivos es llamado maestro y el otro esclavo [21]). Las interfaces IDE usan 7 puertos E/S y una línea IRQ (e.g para ide0 el puerto E/S base por defecto es 0x1f0 y la línea IRQ es la 14, para ide1 0x170 y 15), que de no ser estándar deben especificarse como opciones para el kernel pasándolas desde el cargador de arranque e.g
ide1=0x1f0,0x3f6,10 (Parametros cargador de arranque en ver
Apagado y encendido de una red∞).
Este tipo de interfaces normalmente se emplea para conectar discos duros y CD-ROMs, suele haber dos ranuras en la placa base, cada una puede tener una correa que soporta dos dispositivos.
La versión 2.2 del kernel soporta hasta 6 interfaces IDE, cada una con dos discos y cada disco máximo con 63 particiones, la versión 2.4 soporta hasta 10 interfaces IDE.
Cantidad máxima de discos duros IDE soportados por el kernel 2.2
Cantidad máxima de discos duros IDE soportados por el kernel 2.4
Cantidad máxima de particiones de un disco IDE (tanto en 2.2 como 2.4)
El controlador de Linux para interfaces IDE las reconoce automáticamente y las maneja directamente (sin intermediación de la BIOS) [22], pero durante el arranque LILO se apoya en la BIOS para usarlas y en particular para usar los discos duros
por eso al menos con BIOS no tan recientes, es indispensable que la partición
/boot (o
/ si no se cuenta con una partición propia apara /boot) esté en los primeros 1024 cilindros, que es el límite soportado por diversas BIOS [23].
Los dispositivos asociados con los discos de las dos primeras interfaces IDE son:
/dev/hda
Archivo que se asocia al primer dispositivo IDE maestro.
Primario maestro (b, mayor 3, menor 0)
/dev/hdb
Primario esclavo (mayor 3, menor 64)
/dev/hdc
Secundario maestro (mayor 3, menor 0)
/dev/hdd
Secundario esclavo (mayor 3, menor 64)
Podrá emplearlos para referenciar discos duros, CDROMs o los dispositivos que conecte a cada interfaz.
De acuerdo al
Hardware-HOWTO las siguientes interfaces IDE son soportadas: CMD-640 (soporta interfaces defectuosas), RZ1000 (soporta esta interfaz defectuosa), AEC62XX, ALI M15x3, AMD Viper, CY82C693, Cyrix CS5530 MediaGX, HPT34X, HPT366, Intel PIIXn, NS87415, OPTi 82C621, Promise PDC20246/PDC20262/PDC20267, ServerWorks OSB4, SiS5513, SLC90E66, Tekram TRM290, VIA82CXXX, DTC 2278D, FGI/Holtek HT-6560B VLB, Triton I, Triton II, ALI M14xx, Promise DC4030, QDI QD6580, UMC 8672.
Cuando se compila el kernel las variables de configuración relacionadas con interfaces IDE son:
CONFIG_BLK_DEV_IDE soporte para interfaz IDE,
CONFIG_BLK_DEV_IDEDISK soporte para discos IDE ATA-2 (módulo
ide-disk),
CONFIG_BLK_DEV_IDECD soporte para CDROM IDE ATAPI (módulo
ide-cd),
CONFIG_BLK_DEV_IDETAPE soporte para unidades de cinta ATAPI (módulo
ide-tape),
CONFIG_BLK_DEV_IDEFLOPPY floppy IDE con protocolo ATAPI (módulo
ide-floppy).
CONFIG_BLK_DEV_IDESCSI permite emular con un dispositivo IDE uno SCSI, esto por ejemplo es útil con quemadoras de CD-ROM IDE (módulo
ide-scsi, ver
Quemadora de CD∞).
Puede examinar el estado de las interfaces IDE en el directorio
/proc/ide. Durante el arranque, aunque las interfaces son detectadas automáticamente puede especificar algunos recursos manualmente pasandolos desde el cargador de arranque, por ejemplo:
ide0=0x1f0,0x3f6,14 [24].