Dispositivos y Linux

Indicadores de Logros:

Lectura: Dispositivos y Linux

En esta sección se presenta información sobre dispositivos que normalmente están separados de la placa base, así como detalles de su configuración en Linux. Esta sección complementa las secciones sobre hardware que típicamente está en la placa base (ver Hardware básico y Linux) y sobre dispositivos para interconexión de varios computadores (ver Dispositivos para interconexión y Linux).

Soporte de hardware en Linux

La distribución Debian 2.2 incluye un kernel reciente con todos los módulos compilados y puede detectar hardware en el momento del arranque, de forma que un administrador o un usuario en general no debe encargarse de esto. Sin embargo puede haber algunos casos excepcionales:

  1. Si compra hardware diseñado para Windows o que no tenga especificaciones abiertas puede ser difícil usarlo en Linux.

  2. Si compra hardware muy moderno para el cual aún no haya controladores para Linux (o si su distribución de Linux no es la más reciente).

  3. Si Linux no reconoce automáticamente su hardware (aún cuando pueda soportarlo).

Hardware diseñado sólo para Windows

Algunos fabricantes de hardware están diseñando componentes que sólo funcionan con el sistema operativo Windows, o se niegan a publicar especificaciones que permitan crear controladores. Un ejemplo son los "Winmodems" y otros componentes que mantienen parte de la información que usualmente va en el hardware en software, disminuyendo con esto el desempeño y haciendo difícil su uso en otros sistemas operativos.

Modems diseñados para funcionar con sistema operativo Windows, pues parte de la funcionalidad del hardware es implementada por software en el controlador.

Para sobrellevar este problema usted puede considerar:

  • Cuando compre hardware nuevo, pregunte siempre de forma explícita al vendedor si el hardware que le está ofreciendo funciona con Linux y en particular pregunte la versión del kernel con la que funciona (para que usted sepa si funciona con el que usted tiene). Su pregunta no sólo le permitirá saber a usted si el hardware le servirá, también le permitirá saber al vendedor que hay un mercado para hardware que funciona con Linux.

  • Para determinar si un dispositivo particular es soportado, puede consultar la sección respectiva de esta guía o las lecturas que recomendamos.

  • También puede consultar en los empaques del hardware, el sitio web del fabricante, en el sitio de la compra, en grupos de usuarios o en listados de hardware disponibles en Internet. Si en el website del fabricante, encuentra forma de escribir un correo electrónico, hágalo y hágales saber que usted quiere emplear ese hardware con Linux, así ellos se enterarán que hay un mercado potencial para Linux.

Si desea conocer más sobre este problema y formas de solucionarlo, puede consultar la sección "Adquisición de hardware específicamente para Linux" de "Instalación de Debian Linux 2.2 para Intel x86": http://www.debian.org/releases/2.2/i386/ch-hardware-req.es.html#s2.5

Hardware no soportado por su distribución de Linux

A medida que se produce nuevo hardware, los desarrolladores de Linux crean controladores. Es posible que usted compre hardware muy nuevo, que aunque pueda ser soportado por versiones nuevas de Linux, no sea soportado por la que usted tiene.

Para determinar si tiene este problema busque el dispositivo en la sección respectiva de esta guía o en las lecturas que recomendamos. Si no encuentra el dispositivo, puede:

  • Buscar un módulo (precompilado o fuentes) que pueda funcionar con la versión del kernel que tiene, note que un módulo para una versión diferente del kernel NO servirá (ver Kernel y módulos).

  • Determinar si una versión más reciente del kernel soporta el hardware ---o en el caso de tarjetas graficadoras, una versión más reciente de XFree86. Si encuentra una versión más nueva que lo soporte, puede obtenerla de Internet e instalar sólo el kernel (ver Configuración del kernel) o XFree86 (verMonitor y tarjeta graficadora) sin actualizar la distribución completa.

Puede ver el hardware soportado por la distribución Debian 2.2 en estas guías la sección que corresponde al tipo de dispositivo, en las lecturas que se recomiendan en cada sección, en la sección "Hardware soportado" de "Instalación de Debian Linux 2.2 para Intel x86": http://www.debian.org/releases/2.2/i386/ch-hardware-req.es.html o en el Hardware-HOWTO, disponible en su sistema en /usr/share/doc/HOWTO/en-txt/Hardware-HOWTO.gz o en Internet en: http://www.linuxdoc.org/HOWTO/Hardware-HOWTO.html

Hardware no reconocido por su distribución de Linux

Si su distribución de Linux no reconoce automáticamente un dispositivo, pero usted sabe que lo soporta, intente determinar y/o configurar usted mismo los recursos de hardware que emplea ---sin que entre en conflicto con otros dispositivos--- y configure después Linux bien

  • Activando el módulo apropiado pasando como parámetro los recursos si es que el controlador es un módulo

  • pasando los parámetros desde el cargador de arranque (ver Configuración del kernel) si el controlador está incluido en el kernel. Puede consultar los parámetros en la sección correspondiente de esta guía o en las lecturas que recomendamos en cada sección.

Teclado

El controlador de este dispositivo debe inclurise estáticamente en el kernel. La dirección E/S que usan las versiones no USB es 0x60

Los conectores de teclado típicamente son redondos de 5 pines o 6 pines [1], aunque también hay teclados USB. Linux soporta gran variedad de distribuciones de teclado, el soporte para el tipo de teclado debe estar incluido estáticamente en el kernel (aunque la mayoría de kernels NO incluyen soporte para teclados USB, puede consultar más adelante en esta sección como emplear tal tipo de teclado).

Nombre en inglés que recibe el código de una tecla, que el teclado produce al oprimirla.

Un teclado produce en los puertos del teclado, secuencias de 1 a 6 bytes por cada tecla oprimida o soltada, estas secuencias se conocen como scancodes [2]. El kernel recibe estas secuencias y normalmente [3] las traduce a código internos (keycodes), que después son traducidos a ASCII o Unicode de acuerdo al mapa del teclado.

Programa que permite ver asociación entre scancodes y keycodes.

Los mapas de teclado asocian a códigos de teclado (keycode [4]) caracteres que deben producirse. Pueden definirse secuencias simultáneas de teclas (por ejemplo Ctrl-Alt-A) o secuencias con teclas muertas (para producir por ejemplo á al oprimir primero ' y después a). Encontrará mapas de teclado para diversas distribuciones en el directorio /usr/share/keymaps/i386, el mapa que se carga durante el arranque está en /etc/console-tools/default.kmap.gz, archivo que puede remplazarse o editarse (descomprima antes de editar y comprima cuando termine ver Administración de archivos directorios y enlaces). X-Window tiene su propia configuración del teclado, que durante el arranque de X-Window toma del archivo /etc/X11/XF86Config (ver Monitor y tarjeta graficadora) pero que cada usuario puede personalizar con xmodmap (ver Una sesión con X-Window).

Directorio donde puede encontrarse las distribuciones teclado reconocidas por el kernel para arquitectura i386 en una distribución Debian.

En Colombia las distribuciones de teclado más usadas son QWERTY (la primera fila de teclas con letras de izquierda a derecha tiene las teclas q, w, e, r, t, y), y en particular:

US

que no tiene ñ, ni símbolos de idiomas diferentes a los requeridos en inglés, recomendamos que use el mapa /usr/share/keymaps/i386/qwerty/us-latin1.kmap.gz con algunas modificaciones (ver Localización y configuración de programas).

Español

Tiene ñ y a la derecha de esta tiene el apostrofe '. Mapa: /usr/share/keymaps/i386/qwerty/es.kmap.gz

Latinoamericano

Tiene ñ y a la derecha de esta tiene el paréntesis cuadrado izquierdo [. Mapa: /usr/share/keymaps/i386/qwerty/la-latin1.kmap.gz

Programa que permite cambiar el mapa del teclado.

Antes de cambiar el mapa de teclado que se carga en el arranque, puede probar el nuevo mapa desde una consola virtual con el programa loadkeys:


loadkeys /usr/share/keymaps/i386/qwerty/es.kmap.gz

Al editar un mapa de teclado del kernel tenga en cuenta que las líneas iniciadas con ! o # son comentarios, cada definición debe estar una línea o en varias sólo si cada línea se terminen con el caracter '\'. Pueden incluirse otros mapas con líneas como:


include "euro"
Cada tecla debe configurarse (o estar configurada en un archivo incluido) con líneas de la forma:

keycode  39 = +ntilde +Ntilde
        alt     keycode  39 = semicolon
la primera línea configura la tecla con código 39, como la ñ (i.e ntilde), la segunda indica que al oprimir Alt con esa tecla debe producirse el caracter ';'. +ntilde por estar en la "columna 0" de la tecla 39 es el caracter que debe producirse si la tecla se usa sola, +Ntilde el que debe producirse si se emplea con Shift [5] El caracter '+' antes de ntilde y Ntilde indica que Shift debe invertir el efecto de Caps Lock (i.e si Caps Lock está activado Shift pasa a minusculas).

El código de cada tecla puede consultarlo con el programa showkey, que mostrará el código de cada tecla que oprima (el teclado no podrá usarse para nada más, este programa terminará después de 10 segundos sin oprimir tecla alguna). Los nombres de los símbolos que pueden producirse pueden consultarse desde una consola texto con dumpkeys, por ejemplo: dumpkeys --long-info.

El administrador, puede configurar la rata de repetición del teclado con kbdrate, por ejemplo:


kbdrate -r 30 -d 250
Cambiará la rata a 30 caracteres por segunda, con un intervalo de espera de 250mseg antes de empezar a repetir.

Aunque el mapa de teclado y la rata de repetición es común a todas las consolas virtuales, cada una tiene su propio modo y estado de leds. Puede configurarse el modo en el que el teclado produce caracteres en una consola virtual con el programa kbd_mode y el estado de los leds con setleds. Para el caso de español el modo ASCII que está configurado por defecto es suficiente, pero para otros idiomas o eventualmente para algunos programas el modo Unicode [6] es apropiado, lo puede establecer con kbd_mode -u [7]. Cada consola tiene su propio estado con respecto a mayúsculas sostenidas (Caps Lock), detención de desplazamiento (Scroll Lock) y teclado númerico (Num Lock), estos estados pueden cambiarse con los parametros -num, +num, -caps, +caps, -scroll o +scroll de setleds ('+' indica activar). Estos estados pueden o no verse en los leds del teclado físico, con el parámetro -F se cambia el estado de la consola pero no los leds, con -D se cambia el estado de ambos y con -L sólo el de los leds (puede haber algunos teclados cuyos leds no pueden ser controlados por setleds).

En X-Window, además de poder configurar el teclado con xmodmap, el estado de los leds puede controlarse con xset, e.g. xset led 3 o xset -led 3 para activar o desactivar el led de mayusculas sostenidas.

Teclado USB

Dado que el teclado es uno de los primeros dispositivos detectados y manejados por el kernel y dado que por defecto los kernels disponibles para Debian 2.2 no incluyen estáticamente ninguno de estos controladores, si su teclado es USB recomendamos instalar un kernel 2.4 y compilarlo con el controlador hid o usbkbd incluido estáticamente (ver Kernel y módulos).

Hay dos controladores, uno general que se apoya en el controlado HID (CONFIG_INPUT_KEYBDEV; keybdev) y uno restringido pero independiente de HID (CONFIG_USB_KBD; usbkbd) (sección sobre buses USB ver Buses). HID requiere más memoria porque además de teclados USB controla otros dispositivos para interacción con humanos (como ratón y game pads), para incluirlo estáticamente en el kernel debe configurar también Input Core Support (CONFIG_INPUT).

Ratón

El tipo de puerto de un ratón puede ser serial (conector rectangular de 9 o 25 pines [8]), PS/2 (conector redondo de 6 pines, también llamado Mini-DIN [9]), USB (conector rectangular) o Bus Mouse (tiene una tarjeta dedicada o se conecta a un puerto de algunas tarjetas graficadoras --ATI).

Archivo que representa al mouse. Es un enlace al archivo del dispositivo real.

Como recursos de Hardware un mouse emplea algunas direcciones de entrada sálida y una línea IRQ (ver Generalidades sobre dispositivos), recursos que son atendidos por un controlador, de acuerdo al puerto donde se conecte. El controlador puede ser usado por algunos programas con un archivo para dispositivos (normalmente /dev/mouse que debe ser un enlace al dispositivo apropiado). Por ejemplo es usado por gpm que permite emplear el ratón en consolas virtuales (verSistema de usuarios y manejo de clave) y por X-Window.

Ratón serial

Es manejado por el controlador de puertos seriales del kernel, el dispositivo puede ser por ejemplo /dev/ttyS0 (primer puerto serial c, 4, 64) o /dev/ttyS1 (c, 4, 65), que normalmente será configurado automáticamente por el controlador incluido estáticamente en el kernel. De requerir una configuración no estándar del puerto puede emplear el programa setserial (ver Puertos y dispositivos seriales).

Ratón PS/2

El puerto para ratón PS/2 emplea algunas direcciones de entrada sálida y la interrupción 1el En el kernel original de Debian 2.2, este controlador está incluido estáticamente (CONFIG_PSMOUSE), el dispositivo es /dev/psaux (c,10,1).

Bus mouse

Las versiones recientes del kernel 2.2 (posterior o igual a 2.2.19) y del kernel 2.4, soportan los siguientes bus mouse, cuyos controladores son por defecto módulos en Debian 2.2:

Inport

(CONFIG_MS_BUSMOUSE), se conecta a una tarjeta dedicada con un conector de 9 pines. Módulo msbusmouse, dispositivo /dev/inportbm (c,10,2). El módulo recibe el parámetro mouse_irq seguido del número de la interrupción, si se incluye estáticamente en el kernel puede configurarse desde del cargador de arranque (ver Parámetros desde el cargador de arranque) con msmouse=3 (cambiando 3 por el número de interrupción).

Logitech

El conector es redondo de 9 pines, (CONFIG_BUSMOUSE), módulo busmouse, dispositivo /dev/logibm (c,10,0). Al igual que Inport el módulo recibe el parámetro mouse_irq=3 y desde el cargador de arranque puede usarse bmouse=3 (remplazando 3 por el número de interrupción).

ATI-XL

(CONFIG_ATIXL_BUSMOUSE) módulo atixlmouse, dispositivo /dev/atibm (c,10,3). Por defecto emplea la interrupción 5 (que puede configurarse en la tarjeta), de requerir otra debe editarse y recompilarse el módulo (en las fuentes driver/char/atixlmouse.c línea con ATIXL_MOUSE_IRQ).

C&T 82C710 del TI Travelmate

(CONFIG_82C710_MOUSE), módulo qpmouse emplea por defecto la interrupción 12, emplea el mismo dispositivo de PS/2 (i.e /dev/psaux, c,10,1).

PC110 digitizer pad

Usado para emular un mouse PS/2 con la tableta digitalizadora del palmtop IBM PC110 (CONFIG_PC110_PAD), módulo pc110pad. Dispositivo /dev/pc110pad (c,10,9).

Ratón USB

Hay un controlador general apoyado en HID (ver Buses, sección USB), (CONFIG_INPUT_MOUSEDEV, CONFIG_INPUT_MOUSEDEV_SCREEN_X, CONFIG_INPUT_MOUSEDEV_SCREEN_Y), módulo mousedev. Maneja los dispositivos /dev/input/mouse0 (13,32) y /dev/input/mice (13,63) que emulan un mouse PS/2. En situaciones especiales pueden emplearse en lugar de este un controlador restringido que no requiere HID: CONFIG_USB_MOUSE; módulo usbmouse. De requerir el controlador basado en HID incluido estáticamente en el kernel recuerde agregar también Input core support CONFIG_INPUT.

Programas específicas para el ratón

Es recomendable que cree el enlace /dev/mouse al dispositivo de su ratón:


ln -s /dev/psaux /dev/mouse

Programa que permite copiar y pegar textos con el mouse desde consolas virtuales.

El programa gpm (paquete gpm) le permitirá copiar y pegar textos entre consolas virtuales. Se trata de un programa que se inicia durante el arranque y permanentemente monitorea el estado del mouse para copiar y pegar textos [10]. Para configurar gpm ---una vez el controlador del puerto al que está conectado el ratón esté operando--- puede emplear el programa gpmconfig, que le pedirá algunos parámetros de configuración como el puerto al que está conectado (e.g /dev/mouse) y el protocolo que usa (normalmente ms para ratones seriales y ps2 para ratones PS/2).

Tipo de puerto (o de ratón) cuyo conector es redondo y tiene 6 pines.

X-Window emplea el ratón de acuerdo a la configuración del archivo /etc/X11/XF86Config (ver Monitor y tarjeta graficadora), en la sección Pointer. Soporta diversos protocolos (el más común para puertos seriales es el protocolo Microsoft y para puertos PS/2 el protocolo PS/2). Puede emular 3 botones con mouse que sólo tienen dos (el tercero se "obtiene" oprimiendo simultaneamente los dos) agregando Emulate3Buttons. También permite configurar la rueda para desplazamiento (junto con 3 botón) de algunos ratones, agregando en la sección Pointer una línea con ZAxisMapping 4 5, aunque también se requieren programas que puedan aprovechar esta última característica (e.g Mozilla, programas de Gnome y KDE).

Monitor y tarjeta graficadora

El tipo de monitor más común en la actualidad tiene un tubo de rayos catódicos (CRT), que emplea imanes para apuntar un haz de electrones sobre una capa de fluorescente en el interior del monitor. Este haz recorre permanentemente la pantalla de de izquierda a derecha (con una frecuencia horizontal) y de arriba hacia abajo (con una frecuencia vertical) haciendo brillar algunas zonas durante un corto período de tiempo. De un monitor a otro tanto la frecuencia horizontal [11] como vertical [12] varian, consulte las precisas de su monitor en el manual o si X-Window ya está configurado puede verlos en /etc/X11/XF86Config en líneas iniciadas con HorizSync y VertRefresh.

En el archivo de configuración de X-Window, la frecuencia de refresco horizontal del monitor se configura en la línea que comienza con ...

La tarjeta graficadora puede tener memoria RAM específica para gráficas, que le permitirán soportar diversas resoluciones (las más comunes son 640x480, 800x600, 1024x768, 1152x864, 1280x1024, 1600x1200 y 1800x1440), y una cantidad máxima de colores (2,16,256, 65536 y 16 millones).

Para operar un sistema Linux en un i386, no se requiere configurar la tarjeta graficadora porque puede operarse en modo texto. Sin embargo para emplear características de internacionalización del kernel (como fuentes para alfabetos diferentes al del español), consolas en modo gráfico o para iniciar X-Window se debe configurar la tarjeta graficadora y el monitor.

X-Window

Esta sección presenta configuración de la tarjeta graficadora y el monitor en X-Window, operación que normalmente debe hacer una sola vez (otros aspectos de X-Windows se documentan en otras secciones, ver Inicio de sesiones X-Window).

Como implementación de X-Window, Linux y otros sistemas de libre redistribución para i386 emplean XFree86 (http://www.xfree86.org). Por esto, si no planea usar fuentes de otros idiomas en la consola, para la mayoría de tarjetas graficadoras sólo requerirá configurar XFree86 (aunque para algunas tarjetas recientes con aceleración 3D que emplean DRI/DRM puede requerir soporte del kernel i.e un módulo).

A menos que emplee tarjetas graficadoras que usen DRI/DRM, no necesitará hacer configuración en el kernel sólo en el sistema ...

Debian 2.2 incluye el servidor XFree86 3.3.6, el cual en el momento de este escrito ya ha sido descontinuado (ver más adelante sobre como actualizar a uno de la serie 4.x de requerirse), aunque soporta gran variedad de tarjetas recientes y no tan recientes (hay algunas tarjetas que 3.3.6 soporta, pero que la serie 4.x no), en cuanto a memoria aunque el mínimo requerido por un XFree86 3.3.6 es 4MB de RAM, sólo puede trabajarse confortablemente con 16MB o más.

A menos que emplee tarjetas graficadoras que usen DRI/DRM, no necesitará hacer configuración en el kernel sólo en el sistema ...

Para que X-Window pueda emplear los dispositivos que tiene, deben configurar: 1) El servidor por defecto 2) el archivo /etc/X11/XF86Config que incluye información sobre el monitor, el mouse (ver Ratón), la tarjeta de video y el teclado (aunque por defecto cuando X inicia emplea la configuración del teclado del kernel ver Teclado). Para algunas tarjetas la configuración puede realizarse facilmente con el programa anXious, que es ejecutado durante la instalación de Debian, pero que sólo soporta algunas tarjetas PCI (paquete xviddetect).

En la mayoría de casos el servidor por defecto que debe usar es XF86_SVGA (paquete xserver-svga), si su hardware lo requiere o lo soporta puede emplear otro como se presenta más adelante. Para cambiar la configuración puede emplear el programa XF86Setup (paquete xf86setup) que funciona en modo gráfico y requiere el servidor XF86_VGA instalado (paquete xserver-vga16), o puede emplear en modo texto el programa xf86config o eventualmente puede editar directamente el archivo /etc/X11/XF86Config. En todos los casos, no siempre es indispensable que escoja la tarjeta, ni el mouse que tiene (al iniciar X-Window intentará autodetectarlos), y normalmente será muy importante que escoja correctamente la frecuencia horizontal y vertical de su monitor (consulte el manual o intente con diversos valores sin sobrepasar los límites máximos de su monitor). Cada vez que cambie la configuración puede intentar arrancar el servidor con X, o con el nombre del servidor (e.g XF86_SVGA), o con startx, o con initx (ver Inicio de sesiones X-Window), mientras hace pruebas con la configuración, es recomendablep que redireccione errores a un archivo para buscar allí eventuales fallas:


startx 2> errores.txt

El servidor por defecto es un programa del directorio /usr/X11R6/bin apropiado para su tarjeta y que debe enlazarse desde /usr/X11R6/bin/X, así mismo debe ser especificado en la primera línea del archivo /etc/X11/Xserver. Así, si su servidor es /usr/X11R6/bin/XF86_SVGA (que es el más común porque soporta tarjetas con chips Cirrus 542x, 543x, Western Digital 90c3x y Oak) debe ejecutar:


ln -s /usr/X11R6/bin/XF86_SVGA /usr/X11R6/bin/X
y editar /etc/X11/Xserver.

Si el servidor XF86_SVGA no logra emplear su tarjeta, eventualmente puede intentar primero con /usr/X11R6/bin/XF86_VGA (paquete xserver-vga) que es un servidor genérico que soporta una resolución máxima de 640x480 y 16 colores (existen unas pocas tarjetas que no pueden usarse con este servidor). Eventualmente su tarjeta puede contar con soporte especial con otro servidor (también ubicados en el directorio /usr/X11R6/bin/ con nombres que comienzan con XF86_) disponible en alguno de los siguientes paquetes:

xserver-rage128

Para tarjetas ATI con chipset Rage128: ATI Rage Fury, ATI Rage Magnum, ATI Xpert99, ATI Xpert128, ATI Xpert2000 y ATI All-in-Wonder 128

xserver-mach32

Para tarjetas basadas en ATI Mach32.

xserver-mach64

Para tarjetas basadas en ATI Mach64: 3D Rage, 3D Rage II, y 3D Rage Pro

xserver-i128

Para tarjetas Number Nine Imagine 128, Ticket 2 Ride, Revolution 3D y Revolution IV.

xserver-3dlabs

Para tarjetas 3DLabs GLINT y basadas en Permedia.

xserver-agx

Tarjetas basadas en IBM XGA e IIT AGX.

xserver-ggi

Tarjetas LibGGI (no emplean XF86Config, consultar documentación del paquete).

xserver-8514

Tarjetas basadas en ATI 8514/A.

xserver-s3v

Tarjetas basadas en S3 ViRGE y ViRGE/VX, aunque el servidor XF86_SVGA también las soporta.

xserver-w32

Tarjetas basadas en Tseng ET4000/W32 y ET6000-based.

xserver-mono

Tarjetas y/o monitores monocromáticos.

xserver-sis

Para algunas tarjetas SiS como SiS 86c201, SiS 86c202, SiS 86c205, SiS 5597, SiS 5598, SiS 6326 AGP, SiS 530/620, SiS 540/630 and SiS 300 (otras son soportadas por XF86_SVGA).

xserver-s3

Tarjetas basada en el chipset S3.

xserver-p9000

Tarjetas basadas en Weitek P9000.

xserver-mach8

Tarjetas basadas en ATI Mach8.

xserver-fbdev

Tarjetas que emplean controlador framebuffer.

Los kernels recientes de la serie 2.2 y los de la serie 2.4 ofrecen soporte para tarjetas AGP (verBuses), y para la infraestructura DRI/DRM[13] introducida en XFree86 4.x (CONFIG_DRM). Ambos soportan las tarjetas: 3dfx Banshee/Voodoo3+ (CONFIG_DRM_TDFX, tdfx), 3dlabs GMX 200 (CONFIG_DRM_GAMMA, gamma), ATI Rage 128 (CONFIG_DRM_R128), Intel 810 (CONFIG_DRM_I810, i810), Matrox g200/g400 (CONFIG_DRM_MGA, mga) y el kernel 2.4.16 soporta también ATI Radeon (CONFIG_DRM_RADEON).

Si su tarjeta no es soportada por el servidor 3.3.6 de Xfree86 puede actualizar a la versión 4.1, empleando paquetes no oficiales para Debian 2.2, para eso agregue al archivo /etc/apt/sources.list las líneas:


deb http://people.debian.org/%7Ecpbotha/ xf410_potato/i386/
deb http://people.debian.org/%7Ecpbotha/ xf410_potato/all/

y despues ejecute (ver Paquetes en Debian):


apt-get update
apt-get -u dist-upgrade
apt-get install xserver-xfree86
wget http://people.debian.org/%7Ecpbotha/xf4_potato_deps/libfreetype6_potato/libfreetype6_2.0.2.20010514-1_i386.deb
dpkg -i libfreetype6_2.0.2.20010514-1_i386.deb
apt-get -u dist-upgrade

Después de actualizar o si lo requiere puede ejecutar el programa de configuración con:


dpkg-reconfigure xserver-xfree86
o emplear el nuevo programa de configuración de XFree 4.x xf86cfg. El archivo de configuración en Debian es /etc/X11/XF86Config-4, si emplea un teclado US puede habilitar teclas muertas en la sección Keyboard con:


   Option          "XkbLayout"     "us-intl" 

Si su tarjeta de video no es soportada por las versiones 3.3.6 ni 4.1 de XFree86, puede intentar compilar la versión más reciente (ver Compilación e instalación de programas a partir de fuentes). Para compilar la versión 4.2 (y eventualmente otras) puede aprovechar los tipos de letra del paquete 4.1 (que debe instalar primero) y compilar sólo la parte mínima de XFree86. En tal caso instale los paquetes libncurses5-dev, zlib1g-dev, libpam0g-dev y una vez descargue las fuentes de XFree86 4.2 (http://www.xfree86.org), edite el archivo xt/config/cf/site.def y agregue la línea #define BuildFonts NO, después puede compilar, instalar y probar sus cambios. Para compilar e instalar emplee make World (tomará más de 30 minutos) seguido de make install (eventualmente tendrá que borrar los archivos /etc/X11/lbxproxy/AtomControl y /etc/X11/proxymngr/pmconfig y eliminar la línea case ABS_WHEEL de la fuente programs/Xserver/hw/xfree86/input/wacom/xf86Wacom.c

Impresora

Nombre de un sistema que permite manejar trabajos de impresión.

En esta sección se presenta como configurar una nueva impresora local (conectada a uno de los puertos parelelos del computador en el que se configura) o como reconfigurar una existente con el sisteam lpd [14],

el uso de una impresora ya configurada y algunas nociones básicas se presentan en el capítulo 3 (ver Impresión y formatos para impresión) mientras que la configuración de impresoras remotas en el siguiente capítulo (ver Impresora en red).

Impresora local

Dispositivo que representa el primero puerto paralelo.

La mayoría de impresoras se conectan al puerto paralelo (por ejemplo utilizables con dispositivos /dev/lp0 o /dev/lp1). Eventualmente el kernel cargará por demanda los controladores apropiados, cuando intente usarla (e.g. cuando inicie lpd). E n ese caso o si ya ha configurado manualmente el controlador apropiado (verBuses, ver Puertos y dispositivos seriales, ver Puerto paralelo), puede probar que su impresora funciona enviando una cadena sencilla al puerto apropiad por ejemplo echo "Hola" >/dev/lp0 o lptest > /dev/lp0.

Si su impresora se conecta al puerto paralelo y requiere configuración manual tenga en cuenta que se requiere soporte del kernel (CONFIG_PRINTER, módulo lp), el cual en el caso de Debian 2.2 está incluido como módulo, así que de requerirlo sólo debe cargarlo durante el arranque y eventualmente pasar los parámetros apropiados (use por ejemplo modconf ver Módulos). Dado que lp emplea parport para el manejo a bajo nivel del puerto paralelo (verPuerto paralelo) los parámetros que este controlador recibe hacen referencia a dispositivios configurados con parport:

parport=0,none,1

Para configurar /dev/lp0 (c, 6, 0) como el primer dispositivo de parport, deshabilitar /dev/lp1 (c, 6, 1) y configurar /dev/lp2 (c, 6, 2) con el segundo dispositivo de parport. En caso de tener el controlador estáticamente en el kernel, el parámetro análogo que debería pasar desde el cargador de arranque es lp=parport0,none,parport1. Note que con este esquema dev/lp0 podría referirse a un puerto paralelo arbitrario.

parport=auto

Intenta autodetectar impresoras y crear los dispositivos necesarios. Si el controlador está incluido estaticamente lp=auto.

reset=1

Reinicializa impresora cuando carga el módulo. Si el controlador está incluido estaticamente lp=reset o para desactivar por completo el controlador lp=off.

Archivo donde se configuran impresoras para el sistema lpd.

Para atender solicitudes de impresión hechas por lpr (ver Impresión y formatos para impresión) debe configurar lpd durante el arranque, esto ocurrirá automáticamente cuando instale el paquete lpr y debe configurar la impresora en /etc/printcap. El siguiente es un ejemplo de tal archivo:


lp|local line printer:\
       :lp=/dev/lp0:sd=/var/spool/lpd/lp:lf=/var/log/lp-errs:

psprn|rp|remote line printer:\
        :lp=:rm=rojo:rp=psprn:sd=/var/spool/lpd/psprn: \
	:lf=/var/log/lp-errs:
que configura dos impresoras, la primera local llamada lp o local line printer y la segunda remota llamada psprn o rp o remote line printer. La impresora local está conectada a /dev/lp0, la cola de impresión la mantiene en /var/spool/lp y envia errores a /var/log/lp-errs. La impresora remota está conectada a rojo.micolegio.edu.co (suponiendo que micolegio.edu.co es el dominio del sistemas donde está /etc/printcap), el nombre en la máquina remota es también psprn y la cola de impresión en la máquina local es /var/spool/lpd/psprn.

¿Si tiene una impresora con nombre mips, manejada con lpd, cual es el directorio con la cola de trabajos?

Programa que ayuda a configurar un filtro de GhostScript para una impresora.

El ejemplo anterior no presenta como se configura filtros (para que lpd pueda imprimir documentos PostScript o PDF), ni muchos otros detalles configurables en /etc/printcap (ver man printcap). Para configurar un filtro de PostScript y PDF y ayudarle en la configuración de una impresora local puede emplear el programa magicfilter, el cual con base en los filtros de Ghostscript le puede ayudar a elegir el apropiado para su impresora. magicfilterconf le hará algunas preguntas sobre su impresora, modificará el archivo /etc/printcap y creara los directorios apropiados.

Si no logra determinar un filtro apropiado para su impresora puede revisar la base de datos de impresoras soportadas en Linux en: http://www.linuxprinting.org/database.html donde además de filtros para algunas impresoras que Ghostscript no soporta, encontrará concejo sobre que impresora comprar.

Mientras cambia su configuración puede probar imprimir un texto simple por ejemplo con lptest | lpr. Una vez configurada una impresora los usuarios locales podrán imprimir con el programa lpr (tanto textos como PostScript como PDF) y podrá controlar las colas con el programa lpc.

Discos duros

Un disco duro consta de varias placas circulares sobre las que se almacena información magneticamente. La organización o geometría de un disco suele especificarse como cantidad de cilindros [15], cantidad de cabezas [16] y cantidad de sectores. Para poder emplear un disco en Linux, se requiere un controlador que lo maneje, el disco debe estar formateado a bajo nivel, debe estar particionado, una o más particiones deben ser para Linux (tipo 83), una puede ser para swap (tipo 82) y las particiones para Linux deben tener un sistema de archivos apropiado para montarlo (ver Montaje y desmontaje de sistemas de archivos), como ext2 (ver Sistema de archivos ext2).

Además de esto para iniciar un computador con un disco duro, debe tener una partición marcada como iniciable en la tabla de particiones o debe emplear un cargador de arranque (e.g LILO o GRUB).

Todo disco duro cuya interfaz sea soportada por Linux debe funcionar sin requerir configuración manual. Debian 2.2 incluye estaticamente controladores para interfaces de discos RLL, MFM diversos IDE/EIDE y tiene módulos para diversos discos SCSI, así como módulos para discos conectados a puerto paralelo (ver Puerto paralelo) y controladores para arreglos de de discos RAID (0,1,4/5) ---para respaldar información [17].

Discos IDE

Como se presentó en la sección sobre dispositivos IDE (ver Interfaz y dispositivos IDE) el controlador de esta interfaz está incluido estáticamente en el kernel y reconoce automáticamente los discos conectados (probando o acudiendo a CMOS/BIOS), si ustede requiere configurar manualmente el disco conectado a un puerto IDE puede hacerlo pasando como parámetro desde el cargador de arranque (ver Parámetros desde el cargador de arranque) la geometría del disco, e.g: hdd=cdrom o hdc=1050,32,64 remplazando 1050 por número de cilindros, 32 por número de cabezas y 64 por número de sectores.

Este es el parámetro que debería pasar al controlador de discos IDE para indicar, en caso de requerirlo, que en su disco esclavo secundario hay conectada una unidad de CD-ROM.

Los nombres de los dispositivos son: /dev/hda (primaria maestro), /dev/hdb (primario esclavo), /dev/hdc (secundario maestro) y /dev/hdd (secundario esclavo).

Importante: Cuando lea o escriba en estos dispositivos (sólo lo puede hacer el usuario root), estará leyendo y escribiendo directamente sobre sectores de su disco

Para verificar la detección de su(s) disco(s) IDE puede consultar los mensajes del arranque (con dmesg o less /var/log/dmesg) o puede emplear el programa ide_info seguido del nombre de un dispositivo IDE, por ejemplo:


$ ide_info /dev/hda
MODEL="IBM-DTCA-24090"
FW_REV="TC6OAB4A"
SERIAL_NO="KY0KYJC0917"

Las particiones de cada disco se enumeran comenzando en uno, por ejemplo las tres primeras particiones de un disco primario maestro se identifican con: /dev/hda1, /dev/dha2 y /dev/hda3 (dispositivo por bloques con mayor 3, menor 0 para el disco entero 1 para la primera partición, 2 para la segunda y así sucesivamente hasta máximo 63).

Discos SCSI

Los discos con interfaz SCSI son en general más rápidos que los IDE pero más costosos y típicamente requieren una tarjeta controladora. Tal como se presentó en otra sección (ver Adaptadores y dispositivos SCSI), con una controladora SCSI soportada, se puede emplear el módulo sd_mod (CONFIG_BLK_DEV_SD) para manejar uno o varios discos SCSI.

Dispositivo que representa el primer disco SCSI

El primero disco SCSI es /dev/sda y su primera partición es /dev/sda1, el segundo, /dev/sdb y así sucesivamente hasta /dev/sdh.

Particiones

Una partición es una porción de un disco duro destinada para un sistema de archivos. Un disco duro puede particionarese para:

Es una porción de disco destinada para un sistema operativo

  • Mantener varios sistemas operativos.

  • Destinar varias particiones a Linux montando cada partición como un directorio (y limitando así el espacio de esos directorios), por ejemplo /var (donde está la cola de correo), /usr donde se ubican programas, /home donde cada usuario tiene su espacio personal (ver Ubicación de archivos y directorios).

  • Destinar alguna partición como zona de intercambio (swap) para emplear espacio de disco como si fuera memoria RAM.

  • Destinar alguna partición al directorio /boot para facilitar el arranque de Linux en algunos computadores con discos duros de más de 1024 cilindros, como se explica a continuación.

La partición /boot o el comienzo de su partición de arranque para Linux, por lo general (con BIOS anteriores a 1998) debe estar en los primeros ... cilíndros del disco

La división en particiones de un disco duro se mantiene en una tabla de particiones que está en el primer sector físico, que además puede tener un cargador de arranque (ver Inicialización del sistema).

Linux en un PC puede manejar a lo sumo 4 particiones primarias (en el caso de un disco IDE las particiones primarias están asociadas a los dispositivos /dev/hda1, /dev/hda2, /dev/hda3 y /dev/hda4). Dado que pueden requerirse más de 4, una de las particones primarias puede remplazarse por una partición extendida, y tal partición extendida puede entonces dividirse en una o más particiones lógicas (que en el caso de un disco IDE primario se referencian como /dev/hda5, /dev/hda6, y así sucesivamente).

Una partición primaria puede marcarse como partición ..., y así esta puede dividirse en particiones lógicas

Espacio en disco que puede emplearse para mantern información que normlamente va en memoria RAM

Para la operación de Debian se requiere al menos una partición de 300MB (o de 800MB para un sistema básico o 2GB para una instalación completa), aunque consideramos recomendable al menos una partición más para swap (memoria virtual [18]) de un tamaño cercano a la cantidad de RAM del computador. En los casos de un servidor o un cliente para una red en un colegio lo invitamos a consultar nuestra sugerencia para la división del espacio en particiones Ver Plataforma de referencia.

Aunque en un mismo disco duro pueden dejarse diversos sistemas operativos, por razones históricas, con diversas BIOS (previas a 1998 o que no soporten LBA32) es indispensable dejar el arranque de cada sistema operativo en los primeros 1024 cilindros. Para facilitar esto, en caso de requerirse, el arranque básico de Linux (directorio /boot) puede dejarse en una partición pequeña (e.g 10MB) en los primeros 1024 cilindros o incluso como un directorio en DOS, mientras que el resto del sistema puede estar en una o más particiones en cualquier ubicación del disco.

Con este programa puede cambiar las particiones de un disco duro.

Para cambiar la tabla de particiones de un disco en Linux pueden emplearse los programas cfdisk o fdisk [19]. Ambos se inician pasando como parámetro el dispositivo del disco que desea editar (e.g /dev/hda o /dev/sda), le permiten modificar la partición hasta que este satisfecho con la distribución y finalmente permiten salvar la partición configurada en el disco.

Aviso

Al modificar una partición el sistema de archivos que en ella hubiera no podrá usarse, es muy recomendable que mantenga en un escrito la tabla de particiones de su disco incluyendo tipo, inicio y fin de cada una para recuperarla de requerirse.

Zonas de intercambio

Este programa permite activar zonas de intercambio.

Normalmente se destinará una partición como zona de intercambio. Una vez en funcionamiento puede desactivarse el uso de memoria virtual con swapoff y reactivarse con swapon. De requerirse más memoria virtual puede destinarse una nueva partición para esto (tipo 82) y puede inicializarse con el programa mkswap. El dispositivo debe ser entonces agregado a /etc/fstab en una línea de la forma:


/dev/hdb6    none   swap    sw    0   0
para que pueda ser usada durante el arranque por swapon -a.

Cambio del tamaño de un sistema de archivos

En otras secciones se presentan las generalidades sobre sistemas de archivos (ver Montaje y desmontaje de sistemas de archivos, ver Sistemas de archivos en Linux) y sobre el sistema de archivos ext2 típico de Linux (ver Sistema de archivos ext2), aquí encontrará información para cambiar el tamaño de un sistema de archivos.

Después de que un disco ha sido particionado y se le ha instalado un sistema de archivos, puede ser difícil cambiar el tamaño de una partición. Si se desea una partición más grande sin borrar el sistema de archivos es necesario liberar espacio a continuación de la partición, aumentar el tamaño de la partición (desde Linux puede usarse fdisk o cfdisk) y después aumentar el tamaño del sistema de archivos. Si se desea una partición más pequeña, primero debe disminuirse el tamaño del sistema de archivos y después debe disminuirse el tamaño de la partición recortando el final ---teniendo cuidado de no sobreescribir sobre otro sistema de archivos. El tamaño de un sistema ext2 puede cambiarse con rezisee2fs, el tamaño de otros sistemas de archivos (entre otros vfat de Windows) puede cambiarse desde Linux con el programa parted.

Nombre de un programa para Linux que permite cambiar tamaño de particiones para diversos sistemas operativos.

Al instalar Linux, si ya tiene otro sistema operativo que ocupa el disco entero puede emplear un programa análogo a parted que funcione en el sistema operativo ya instalado. Para el caso de Windows y DOS puede emplearse fips que disminuye el tamaño de un sistema de archivos FAT12, FAT16 o FAT32, así como el de la partición en la que está, liberando con esto espacio que puede asignarse a una o más particiones para Linux. De acuerdo a la documentación de fips, la forma más precisa de usarlo es desde un disquete de arranque (para DOS) después de defragmentar el disco y de evitar dejar bloques inamobibles al final de la partición (puede ser quitando temporalmente soporte para swap a Windows o borrando los archivos image.idx o mirorsav.fil que volverán a generarse posteriormente: attrib -r -s -h image.idx, attrib -r -s -h mirorsav.fil y del image.idx, del mirrorsav.fil).

Cargador de arranque

LILO puede instalarse en el MBR de un disco, o en el sector de arranque de alguna partición (incluso de particiones lógicas) o en el sector de arranque de un disquete. Se configura en el archivo /etc/lilo.conf, después de modificar ese archivo debe ejecutarse el programa /sbin/lilo. Un ejemplo de este archivo con comentarios (líneas iniciadas con el caracter '#') que explican su uso es:


# Soporte LBA para discos grandes (más de 8GB)
lba32

# En este dispositivo LILO se instalará
boot=/dev/hda3

# Dispositivo que debe montarse como raiz
root=/dev/hda3

# Archivo con nuevo sector de arranque
install=/boot/boot.b

# Localización del mapa creado por lilo
map=/boot/map

# Milisegundos por esperar antes de arrancar imagen por defecto
delay=20

# Imagen por iniciar por defecto
default=Linux

# Primera imagen
image=/vmlinuz
	label=Linux
	read-only
	initrd=/initrd.img

# Segunda imagen, un kernel de repuesto
image=/vmlinuz.old
	label=LinuxOLD
	read-only
	optional

# Otro sistema operativo
other=/dev/hda1
        label=OpenBSD
        table=/dev/hda

Además de estas posibilidades de configuración, se presentan otras y la forma de pasar parámetros al kernel en otra sección (ver Parámetros desde el cargador de arranque).

Disquetes

Una unidad de disquete permite almacenar datos magnéticos en un disquete, emplea una línea de DMA (por defecto 2), una interrupción IRQ (por defecto 6). Dependiendo de la cantidad de información que puede almacenar una unidad o un disquete pueden ser de densidad doble, alta y extra alta, las dimensiones pueden ser de 3 1/2 pulgadas o 5 1/4.

El controlador de Linux (CONFIG_BLK_DEV_FD, módulo floppy) soporta unidades de baja, alta y extra alta densidad, puede soportar más de dos y soporta algunos formatos de capacidad extra [20].

Los parámetros cuando está incluido estáticamente son los mismos del módulo: floppy=daring mejor el desempeño de algunas unidades, floppy=two_fdc indica que tiene dos conroladoras de floppy, la seguda en la dirección 0x370 (puede cambiarse poniendo la dirección antes de two_fdc), floopy=thinkpad para usuarios de Thinkpad, floppy=nodma para evitar uso de DMA, floppy=nofifo deshabilita FIFO, floppy=unidad,tipo,cmos establece tipo CMOS de una unidad (1 - 5 1/4DD, 2 - 5 1/4HD, 3 - 3 1/2DD, 4 - 3 1/2HD, 5 - 3 1/2 ED, 6 3 1/2 ED), floppy=broken_dcl no usar línea de cambio de disco, floppy=6,irq para establecer IRQ, floppy=2,dma para establecer DMA. Documentación completa en driver/block/README.fd.

Aunque hay varios dispositivos para unidades de disquete (dependiendo del formato), los dispositivos /dev/fd0, /dev/fd1, etc. autodetectarán el formato. Para acceder a un disquete pueden usarse estos con mount/umount o con las herramientas del paquete mtools. Si se emplea mount es recomendable agregar a /etc/fstab:


/dev/fd0  /floppy  auto  defaults,user,noauto   0  0
que permitira a los usuario montar sus disquetes (sistema de archivo autodetectado) y que no montará la unidad durante el arranque (ver Lectura Disquetes y CDROM).

Nombre del dispositivo que corresponde a la primera unidad de disquete.

Para formatear un disquete con sistema de archivos vfat (leible también en Windows) puede emplearse:


mformat a:
o superformat (herramienta del paquete fdutils).

El paquete fdutils incluye entre otros los programas: diskseekd para mover la cabeza de la unidad periodicamente (para quitar el polvo), xdfcopy para copiar discos con formato XDF (1840MB), floppymeter para medir capacidad y velocidad de rotación de la unidad, fdmount monta un disquete, floppycontrol para configurar la unidad, fdumount para desmontar un disquete, superformat para formatear un disquete (puede ser a capacidades no estándar), fdrawcmd para enviar comandos a la unidad, xdfformat para formatear un disquete con formato XDF, setfdprm establece parámetros para un disquete, fdlist lista de unidades de disquete, getfdprm permite examinar parámetros establecidos con setfdprm. fdmountd monta un disquete autodetectando el formato.

Unidades de CD-ROM y DVD

Una vez configure su unidad de CD o DVD podrá montar CDs de datos ---si se trata de un CD con datos--- o con un programa apropiado podrá escuchar CDs de audio (ver al final de esta sección). Los controladores para los tipos más comunes de unidades de CD y DVD también soportan CDs multisesión (PhotoCD) y algunos soportan lectura de datos digitales.

En el momento de este escrito tanto la serie 2.2.x como la 2.4.x del kernel soportan las unidades de CD-ROM y DVD más estándares IDE/ATAPI y SCSI así como algunas unidades no tan recientes con sus propias interfaces. No soporta unidades Vertos, Genoa y algunos modelos Funai.

Unidades IDE/ATAPI y SCSI

Muchas unidades de CD-ROM y DVD comunes se conectan a un puerto IDE y siguen la especificación ATAPI. La configuración del hardware es análoga a la de discos IDE (maestro o esclavo) y el nombre del dispositivo en Linux sigue la misma convención de discos duros IDE (/dev/hda, /dev/hdb, etc. Interfaz y dispositivos IDE). El controlador de estas unidades es ide-cd, que por defecto está incluido estáticamente en el kernel y que reconoce y configura automáticamente su(s) unidad(es) mientras empleen dirección base estándar (ie. 0x1f0, 0x3f6 para ide0 y 0x170, 0x376 para ide1). Si la autodetección no reconoce su unidad puede pasar como parámetro al kernel (desde el cargador de arranque): hdb=cdrom cambiando hdb por el dispositivo IDE apropiado, o puede especificar direcciones base e IRQ del puerto IDE: ide1=0x170,0x376,15 remplazando 0x170 por la primera dirección base, 0x376 por la segunda 15 por la IRQ (ver Parámetros desde el cargador de arranque). Puede consultar más documentación sobre CD-ROMs IDE y el soporte en Linux en Documentation/cdrom/ide-cd.

Si emplea una unidad SCSI debe antes verificar que Linux reconozca la tarjeta controladora. Después emplee el dispositivo adecuado para referenciar la unidad de CD-ROM (e.g /dev/scd0 o dev/scd1).

Otras unidades de CD-ROM

Hay otras unidades que emplean una tarjeta controladora especial para conectarse al bus, o se conectan por medio de una tarjeta de sonido (aunque varias tarjetas de sonido recientes siguen el estándar IDE/ATAPI, así que las unidades conectados a estas se configuran como se presentó en la sección anterior).

aztcd (CONFIG_AZTCD)

Aztech,Orchid,Okano,Wearnes. Parametros de arranque aztcd=dirbase. Dispositivo: /dev/aztcd0. Documentación en Documentation/cdrom/aztcd.

gscd (CONFIG_GSCD)

Goldstar GCDR-420. Dispositivo: /dev/gscd0. Documentación: Documentation/cdrom/gscd.

mcd, mcdx (CONFIG_MCD, CONFIG_MCD_IRQ, CONFIG_MCD_BASE, CONFIG_MCDX)

Ambos soportan unidades Mitsumi modelos LU-005, FX-001 y FX-001D, pero el primero no soporta CD multisesión, mientras el segundo tiene soporte experimental. Parámetros para insmod: mcdx=0x300,11,0x304,5. Dispositivos: /dev/mcd o /dev/mcdx (mcdx soporta hasta 4 drives con nombres de la forma /dev/mcdx1). Documentación: Documentation/cdrom/mcd y Documentation/cdrom/mcdx.

cm206 (CONFIG_CM206)

Philips/LMS CM206 con tarjeta adaptadora CM206. Documentación: Documentation/cdrom/cm206. Autodetecta configuración. Parámetro del kernel o insmod: cm206=0x300,11. Dispositivo: /dev/cm206cd.

optcd (CONFIG_OPTCD)

Optics Storage Dolphin 8000AT (interfaz de 34 pines). Dispositivo: /dev/optcd. Parámetro para cargador de arranque e insmod: optcd=0x340 (dirección base en lugar de 0x340). Documentación: Documentation/cdrom/optcd. Este CD-ROM puede estar conectado a una tarjeta de sonido ISP16, MAD16 o Mozart, en tal caso también debe instalarse isp16 (ver más adelante).

sjcd (CONFIG_SJCD)

Sanyo CDR-H94A. Documentación: Documentation/cdrom/sjcd. Dispositivo: /dev/sjcd (18 0). Parámetros del kernel sjcd=0x340 (dirección base en lugar de 0x340). Parámetros para insmod: sjcd_base=0x340. Este CD-ROM puede estar conectado a una tarjeta de sonido ISP16, MAD16 o Mozart, en tal caso también debe instalarse isp16 (ver más adelante).

isp16 (CONFIG_ISP16_CDI)

Permite configurar tarjetas de sonidos que usan los chips 82c928 o 82c929 como interfaces de CD-ROM. ISP16, MAD16, Mozart. Ha funcionado con CD-ROMs que emplean los módulos sjcd y optcd. Documentación: Documentation/cdrom/isp16. Parámetros para el kernel: isp16=0x340,11,5,Sanyo --no se requieren todos-- remplazar 0x340 por dirección base (0x340, 0x320, 0x330 o 0x360), 11 por IRQ (3, 5, 7, 9, 10, 11 o 0 que indica no usar IRQ), 5 por DMA (0, 3, 5, 6 o 7) y Sanyo por tipo de unidad (noisp16, Sanyo, Panasonic, Sony o Mitsumi). Parámetros para insmod: isp16_cdrom_base=0x340 isp16_cdrom_irq=0 isp16_cdrom_dma=0 isp16_cdrom_type=Panasonic.

sbpcd (CONFIG_SBPCD)

Matsushita/Panasonic/Creative CR52x, CR56x, CD200, Longshine LCS-7260, TEAC CD-55A. Parámetros para el kernel: sbpcd=0x230, LaserMater con la dirección base en lugar de 0x230 y en lugar de LaserMater puede ser 0 o SoundBlaster (1), SoundScape (2) y Teac16bit (3). Parámetros para insmod: sbpcd=0x230,1 Dispositivo: /dev/sbpcd [21].

cdu31a (CONFIG_CDU31A)

Para las unidades Sony CDU31A/CDU33A. Documentación: Documentation/cdrom/cdu31a. No autodetecta, debe especificarse dirección base e IRQ (la descripción de la configuración del hardaware está en la documentación). Parámetros para el kernel: cdu31a=0x320,5 (remplazando 0x320 por la dirección base y 5 por la IRQ), si se usa con una tarjeta de sonido PAS-16 cdu31a=0x1f88,0,PAS. Parámetros para insmod: cdu31a_port=0x340, cdu31a_irq=5. Dispositivo /dev/sonycd (15,0).

sonycd535 (CONFIG_CDU535)

Sony CDU-531/535, CDU-510/515. Documentación: Documentation/cdrom/sonycd535. No debe activarse DMA, ni IRQ en la unidad, debe ser la unidad 1, la dirección base debe pasarse como parámetro del kernel: sonycd535=0x320. Si la unidad está apagado durante el arranque no será reconocida, pero puede después cargarse el controlador como módulo; el parámetro para insmod es también sonycd535=0x320. Dispositivo /dev/cdu535.

También existen unidades que se conectan al puerto paralelo, a tarjetas PCMCIA (en computadores portatiles) y a puertos USB. Puede consultase más sobre estas unidades en el CDROM-HOWTO.

Uso de CDs y DVDs

Dispositivo empleado por diversos programas para comunicarse con el CDROM, debe ser un enlace al dispositivo real.

Dado que varios programas usan /dev/cdrom para comunicarse con la unidad de CD o DVD, ese archivo debería ser un enlace al dispositivo al que esté conectado su unidad (creelo por ejemplo con ln -s /dev/hdb /dev/cdrom remplazando /dev/hdb por el dispositivo de su unidad).

Sistema de archivos más popular para CD-ROMs

Para almacenar datos en un CD hay diversos sistemas de archivos, el más usado es ISO9660 (CONFIG_ISO9660_FS incluido por defecto en el kernel), para DVDs el sistema de archivos es UDF.

Es usual montar un CD o un DVD en /cdrom, para esto puede agregar al archivo /etc/fstab (ver Montaje y desmontaje de sistemas de archivos) la línea:


/dev/cdrom /cdrom iso9660 defaults,ro,user,noauto  0  0
que también especifica que no debe montarse durante el arranque el CD y que otorga permiso a los usuarios para montarlo y desmontarlo con mount /cdrom y umount /cdrom respectivamente.

En Debian por convención los usuarios que requieran emplear la unidad de CD-ROM o DVD para leer datos deben estar en los grupos disk, cdrom y tape, los que requieran escuchar CDs de música además deben estar en el grupo audio.

Para escuchar CDs de música no es necesario (ni posible) montar el CD antes, se debe emplear un programa como workbone que funciona en modo texto. Para abrir una unidad de CD-ROM puede emplear el comando eject.

Quemadora de CD

El kernel 2.2 y posteriores incluye soporte para quemadoras IDE y SCSI, el kernel 2.4 soporta algunas quemadoras USB: HP CD-Writer 82xx y otras basadas en ISD-200 como Sony CRX10U CD-R/RW, CyQ've CQ8060A CDRW.

Si su quemadora es SCSI será especialmente fácil de usar con el programa por excelencia para quemar CDs en ambientes Unix: cdrecord. Si la quemadora es IDE debe "emular" una quemadora SCSI; para lograrlo debe:

Programa para quemar CD-ROMs

Nombre de uno de los módulos del kenrel que debe activarse para poder emplear una quemadora de CD-ROMs tipo IDE

  1. Activar los módulos del kernel: ide-scsi y sg (puede por ejemplo emplear modconf y buscar ambos módulos en la sección SCSI ver Kernel y módulos).

  2. Indicar al kernel que para manejar la quemadora IDE emplee ide-scsi en lugar de un driver IDE usual. Esto puede hacerse pasando al kernel durante el arranque el parámetro hdd=ide-scsi (en vez de hdd el IDE al cual está conectada la quemadora ver Interfaz y dispositivos IDE). Puede pasar el parámetro durante el arranque desde el prompt de LILO, o puede configurar LILO para que lo pase automáticamente durante el arranque (ver Parámetros desde el cargador de arranque) (i.e agregando una línea cómo append="hdd=ide-scsi" en la sección apropiada y después ejectuando /sbin/lilo).

  3. Finalmente, reinicie su sistema y vea entre los mensajes de arranque el número de drive SCSI que se le asigna a su quemadora (puede revisarlos posteriormente con dmesg) o averiguelo ejecutando cdrecord -scanbus. Cree entonces el enlace simbólico /dev/cdrom o /dev/quemadora para que referencie el dispositivo SCSI asignado por el kernel, por ejemplo suponiendo que le hubiera asignado el 0 (caso que se da cuando no hay más dispositivos SCSI):

    
rm /dev/cdrom
    ln -s /dev/scd0 /dev/cdrom
    

Quemado de CDs

Hay algunos programas gráficos para ayudarle a quemar un CD, estos programas emplean cdrecord. Este programa espera la especificación de la quemadora como dispositivo SCSI, puede ver la de su quemadora (una vez bien configurada) con cdrecord -scanbus.

cdrecord también permite controlar todos los detalles del proceso de escritura. A continuación presentamos dos ejemplos de su uso, suponiendo que su quemadora es reportada por cdrecord -scanbus como dispositivo 0,0,0 y que soporta velocidad 10x. Para transferir una imagen de un CD-ROM emplee:


cdrecord -v speed=10 dev=0,0,0 -data imagen.iso

Puede crear una imagen ISO a partir de un CD con:


dd 

O puede crear una imagen ISO-9660 con extensión Rock Ridge a partir de la información de un directorio /home/paz/cd con:


mkisofs -R -o imagen.iso /home/paz/cd

Para montar una imagen ISO en el sistema de archivos en el directorio /mtn/im puede emplear:


mount -o loop -t iso9660 imagen.iso /mnt/im
y desmontarlo cuando no necesite ver más el contenido con umount /mnt/im.

Para transferir audio emplee:


cdrecord -v speed=10 dev=0,0,0 -data musica.wav
o para copiar un CD de audio (de acuerdo al manual de cdrecord):

cdda2wav -v255 -D2,0 -B -0wav
cdrecord -v dev=2,0 -dao -useinfo *.wav

Tarjetas de sonido

Una tarjeta de sonido puede convertir una sonido almacenado como señal digital, en una señal análoga que por medio de un parlante produce el sonido (conversos digital/análogo) , típicamente también puede convertir información análoga que recibe de un micrófono en una señal digital (conversor análogo digital) para almacenarla en un archivo en algún formato apropiado.

Algunas tarjetas de sonidos además pueden tener: mezclador para controlar fuentes y volumen, secuenciador MIDI, sintetizador FM, sintetizador Wavetable o ofrecer funcionalidad no directamente relacionada con sonido: interfaz para Joystick, interfaces IDE o para CD-ROMs (ver Unidades de CD-ROM y DVD).

Para la mezcla, reproducción y captura de audio una tarjeta normalmente emplea un codec (e.g manejado por ac97_codec) usa una línea IRQ, uno o dos canales DMA y dos direcciones E/S. Si la tarjeta tiene un secuenciador MIDI (e.g manejado por mpu401) puede requerir otra línea IRQ y una dirección base, si tiene un sintetizador FM (e.g manejado por opl3) requiere una dirección base (normalmente 0x388), si tiene un sintetizador Wavetable (e.g manejado por awe_wave) puede requerir 3 direcciones base.

En el momento de este escrito hay tres conjutos de controladores para tarjetas de sonido que le podrían ayudar a configurar manual o automáticamente su tarjeta de sonido (aunque hay tarjetas no soportadas por controlador alguno):

  1. El que se distribuye con el kernel, cuyos controladores siguen normalmente el estándar Open Sound System (empleado en diversos sistemas Unix).

  2. Los controladores del proyecto ALSA (la versión 0.4.1 está disponible en los paquetes alsa-base, alsadriver, alsautils, alsaconf), estos controladores siguen la arquitectura ALSA (particular para Linux). La herramienta alsaconf autodetecta y trata de configurar diversas tarjetas. Puede obtenerse una versión reciente (en el momento de este escrito la más reciente es 0.9) en: http://www.alsa-project.org aunque debe compilarse antes de usarse.

  3. Los controladores comerciales del proyecto Open Sound System http://www.opensound.com

Además de controladores para sonido incluidos en el kernel y de los controladores Open Sound System, este proyecto ofrece otros controladores.

La configuración manual empleando los controladores del kernel se presenta más adelante en esta sección. Una vez configurado el sonido, puede usar (con el kernel 2.2 y con algunos controladores) cat /proc/sound o cat /dev/sndstat para ver los dispositivos reconocidos y su configuración. Puede verificar rápidamente si está funcionando la reproducción de sonido instalando el paquete sox y reproduciendo un sonido:


play /usr/share/sounds/login.wav

Algunas aplicaciones para sonido se presentan al final de esta sección.

Importante: Las aplicaciones de audio pueden ser usadas por todo usuario de Debian que pertenezca al grupo audio

Controladores del kernel

Dado que los controladores de Linux siguen la arquitectura Open Sound System[22], algunos de los siguientes dispositivos podrán ser usados una vez configure su tarjeta:

/dev/sndstat

Presenta información sobre los dispositivos de sonido en forma legible para humanos, por ejemplo con cat /dev/sndstat.

/dev/dsp /dev/audio

Voz digitalizada, los datos enviados a esta interfaz son reproducidos por la tarjeta. Cuando se lee, el sonido capturado por la tarjeta de sonido es retornado. Mientras que /dev/dsp emplea codificación lineal de 8 bits sin signo, mientras que /dev/audio usa codificación logaritmica mu-law (por ejemplo empleada por el formato .au de Sun).

/dev/mixer

Permite a los programas que lo usen controlar niveles de reproducción y grabación.

/dev/sequencer /dev/music /dev/sequencer2

Acceso a sintetizadores FM y MIDI de la tarjeta.

/dev/midi

Este dispositivo representa un sintetizador MIDI de la tarjeta de sonido (si es soportado por la tarjeta y el controlador).

Envio de datos a un sintetizador MIDI.

Para configurarla debe:

  1. Identificar un módulo que pueda servir para el chip de su tarjeta, puede buscar en esta guía ayudandose del nombre de la tarjeta y preferiblement del nombre del chip principal (puede verlo en la tarjeta misma o en la documentación o si se trata de una tarjeta PCI puede consultar la identificación ver Buses). También puede consultar el Sound-HOWTO referenciado en las lecturas recomendadas de esta sección.

  2. Si es una tarjeta ISA o ISA PnP, debe determinar los recursos de hardware que usa (sección ISA PnP ver Buses). Puede revisar el hardware y los manuales o la configuración en otro sistema operativo donde ya esté configurada.

Con estos datos puede intentar cargar el módulo apropiado y pasarle, de ser necesario, los parámetros de acuerdo a la configuración y al módulo. Si usa modprobe sólo necesitará especificar el controlador para el chip principal de su tarjeta y modprobe cargará automáticamente los otros (aunque no necesariamente todas las características opcionales ver Módulos).

Si la tarjeta es PCI normalmente será configurada durante el arranque y no necesitará especificar parámetros (sección PCI ver Buses) ni cargar el módulo, si la tarjeta es ISA PnP necesitará configurarla manualmente con isapnptools y cargar el módulo apropiado (sección ISA PnP ver Buses).

Los controladores del kernel están organizados en una jerarquía de módulos:

  • Controladores generales que deben cargarse primero (CONFIG_SOUND): soundcore funciones para registrar dispositivos por tipo, soundlow controladores de bajo nivel que no hacen parte de OSS/Lite, sound funciones comunes requeridas por todos los módulos.

  • Controladores específicos para cada tarjeta de sonido, dependen del chip principal de la tarjeta de sonido. Pueden requerir que otros módulos estén cargados.

  • Controladores generales para soportar o emular características. Las tarjetas que incluyen un codec AC97[23], requieren que se carge primero ac97_codec. Las tarjetas compatibles con la Roland MPU-401, pueden emplear el módulo mpu401 como secuenciador MIDI, este módulo puede recibir como parámetros: irq, io. Otras tarjetas con sintetizador midi pueden emplear bien uart401 (que puede recibir como parámetros: io, irq) o el sintetizador MIDI uart6850 (CONFIG_SOUND_UART6850) que puede recibir los mismo parámetros. Diversas tarjetas con sintetizador FM OPL3 emplean el módulo opl3 (que debe cargarse de forma independiente).

A continuación listamos los controladores disponibles junto con el kernel 2.2.19 (incluido en Debian 2.2r6) , con algunas tarjetas que los usan y en algunos casos detalles de la configuración, la información ha sido extraida especialmente de las fuentes del kernel y su documentación.

C-Media PCI audio chip (CMI8338/8738)

(CONFIG_SOUND_CMPCI, módulo cmpci). Tarjeta PCI que usa el chip CMI8338 o CMI8337, este chip de cmedia (ID vendedor 0x13f6, ID dispositivos 0x0100, 0x101, 0x111) El controlador puede recibir los parámetros: spdif_loop (1 para habilitar ciclo SPDIF), four_ch (1 para habilitar modo de 4 canales), rear_out (1 si la tarjeta tiene un conector de salida separado), mpu_io synth_io. El controlador disponible en el kernel 2.4 soporta más características.

Crystal CS4281

(módulo cs4281). Integrado de Cirrus (ID Vendor 0x1013, ID Dispositivo 0x6005), el controlador no requiere parámetro alguno.

Crystal SoundFusion (CS4280/461x)

(CONFIG_SOUND_FUSION, módulo cs46xx). Son chips con codec AC97. El controlador puede recibir los parámetros: external_amp=1 para activar soporte para Crystal EAPD, thinkpad=1 para habilitar soporte especial para Thinkpad.

Creative SBLive (EMU10K1)

(CONFIG_SOUND_EMU10K1, módulo emu10k1) El integrado emu10k1 está en tarjetas PCI como Creative SBLive!, SB PCI512 o emu10k1. El controlador no requiere parámetros.

Ensoniq AudioPCI (ES1370) (CONFIG_SOUND_ES1370, módulo es1370)

Identificación PCI 1274:5000 (ver con lspci -n). Las tarjetas Sound Blaster 64/PCI pueden emplear este chip. El controlador de Linux no soporta /dev/audio (usar el programa play). Los posibles parámetros son: joystick=1 para habilita puerto de joystick, lineout=1 para convertir una línea de entrada en línea de salida, micbias=1 para establecer desviación +5V para un microfono electret.

Ensoniq ES1371 (CONIFG_SOUND_ES1371, módulo es1371)

PCI ID 1273:1371 o 1273:5880. Las tarjetas Sound Blaster 64/PCI pueden emplear este chip. El controlador está más depurado en el kernel 2.2.21 o en la serie 2.4. (El controlador incluido en 2.2.19 no soporta bien 1273:5880). El controlador de Linux no soporta /dev/audio (usar play), sus posibles parámetros son: joystick=<io> para establecer dirección E/S del puerto de joystick, spdif=1 para habilitar salida en modo digital S/PDIF.

ESS Maestro (CONFIG_SOUND_MAESTRO, módulo maestro)

Usado en tarjetas Maestro 1 (Vendedor ID 0x1285, Dispositivo 0x100), Maestro 2 (Vendedor ID 0x125D, Dispositivo 0x1968) y Maestro 2E (0x125D:0x1978). Los parámetros que este controlador puede recibir son: debug=1 para habilitar mensajes de depuración [24], dsps_order=2 para usar esta tarjeta con tarjeta de sonido secundaria, use_pm 0 o 1 para deshabilitar/habilitar manejo de potencia en la tarjeta Maestro 2E. Hay disponible más documentación en Documentation/sound/MAESTRO

ESS Maestro 3 (CONFIG_SOUND_MAESTRO3, módulo maestro3)

Tarjeta PCI Maestro 3 (0x1998 o 0x199a, vendedor 0x125D) y Allegro (vendedor 0x125D, dispositivo PCI ID 0x1988). Los parámetros para el controlador pueden ser: debug=1 para habilitar mensajes de depuración, global_dsp_speed=velocidad por defecto 49, external_amp 1 o 0 para habilitar/deshabilitar amplificador externo. Más documentación en Documentation/sound/MAESTRO3.

ESS_SOLO1 (CONFIG_SOUND_ESSSOLO1,módulo esssolo1)

PCI ID 125D:1969. El controlador de Linux no soporta /dev/audio (usar play). Más información en Documentation/sound/solo1.

Intel ICH (810,820,440MX) (CONFIG_SOUND_ICH, módulo i810_audio)

En algunos computadores donde no se escucha bien pueden emplearse los parámetros ftsodell=1 o clocking=frecuencia. Hay más documentación en el archivo drivers/sound/i810_audio.

S3 Sonic Vibes (CONFIG_SOUND_SONICVIBES, módulo sonicvibes)

PCI ID 5333:CA00. El controlador puede recibir los parámetros: reverb=1 para habilitar reverberación, wavetable=1 para habilitar sintetizador wavetable y dmaio=dir_ES para asignar dirección E/S inicial para DMA (si el BIOS no lo hace). Hay más documentación en Documentation/sound/sonicvibes.

Trident 4DWave-DX/NX (CONFIG_SOUND_TRIDENT,

módulo trident). Incluido en tarjetas Trident 4Dwave (PCI ID 1023:2000 o 1023:2001), Sis7018 (1039:7018), ALi 5451 (10b9:5451).

Turtel Beach MultiSound Pinnacle Fiji (CONFIG_SOUND_MSNDPIN, módulo msdn_pinnacle) y Turtle Beach MultiSound Classic, Tahiti, Monterrey (CONFIG_SOUND_MSNDCLASS, módulo msnd_pinnacle)

Requiere código para el firmware. El controlador requiere los parámetros: io, irq y mem, y puede recibir también: write_ndelay, major, fifosize, calibrate_signal (0 o 1), digital, cfg (para especificar puert 0x250, 0x260 o 0x270 cuando no opera en modo PnP), reset, mpu_io, mpu_irq, ide_io0, ide_io1, ide_irq, joystick_io. Documentación y utilidades en Documentation/sound/MultiSound.

Codec VIA 82C686 (CONFIG_SOUND_VIA82Cxxx, módulo

via82cxxx_audio) Normalmente incluido en placas base como Kinetiz 7E-A.

ProAudioSpectrum 16 support (CONFIG_SOUND_PAS, módulo pas2)

Soporta las tarjetas Pro Audio Spectrum 16, ProAudio Studio 16, Logitech SoundMan 16. El controlador puede recibir los siguientes parámetros: io, irq, dma, dma16, sb_io, sb_irq, sb_dma, sb_dma16, joystick, symphony que puede ser 0 o 1, broken_bus_clock que puede ser 0 o 1.

100% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16) (CONFIG_SOUND_SB,módulo sb)

Soporta las tarjetas SoundBlaster, Thunderboard, SM Games, Avance Logic ALS-007, ESS, SB AWE 32, SB AWE 64, IBM Mwave [25]. Otras tarjetas que dicen ser compatibles con SoundBlaster normalmente no funcionarán con este controlador. Si la tarjeta es ISA Plug and Play debe usarse isapnpntools para la configuración (ver Buses), un ejemplo de /etc/isapnp.conf sin comentarios 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)))
Cómo módulos podrían cargarse:

modprobe sound
insmod uart401
modprobe sb io=0x220 irq=5 dma=1 dma16=5 mpu_io=0x330
La mayoría de tarjetas SoundBlaster y compatibles soportan sintetizador FM con:

insmod opl3 io=0x388
Eventualmente si su tarjeta no soporta DMA de 16 bits, puede emplear como parámetro dma16=-1. Si su tarjeta soporta Wavetable, en /etc/isapnp.conf podría agregarse los puertos E/S 0xA20 y 0xE20 en la sección sobre WaveTable:

  (CONFIGURE CTL0048/58128 (LD 2
  #     ANSI string -->WaveTable<--
	(IO 0 (BASE 0x0620))
	(IO 1 (BASE 0x0A20))
	(IO 2 (BASE 0x0E20))
	(ACT Y)
  ))
y para cargar el controlador (después de cargar sb): insmod awe_wave. El módulo awe_wave puede recibir los parámetros: io=dir_ES puerto E/S base de Emu8000, memsize=mem cantidad de memoria DRAM de la tarjeta en Kbytes. Hay más documentación en Documentation/sound/AWE32, INSTALL.awe, README.awe. El mismo controlador sb puede usarse con algunas compatibles empleando las opciones:

mad16=1 , trix=1 , pas2=1 , sm_games=1

para Logitech soundman

acer=1

para detectar tarjetas en algunos portatiles ACER

esstype=tipo

De acuerdo a Documentation/sound/ESS puede tener los siguientes valores: -1 sólo autodetectar ES688 o ES1688, 0 intentar autodetectar el chip ESS (puede fallar para ES1688), 688 chip ES688, 1788 chip ES1788, 1688 chip ES1688, 1888 chip ES1888, 1868 chip ES1868, 1869 chip ES1869, 1887 chip ES1887 (soporta Full Duplex). ES1868 es compatible con 1688 PnP, debe configurarse con isapnp:


  (CONFIGURE ESS1868/-1 (LD 1
  (IO 0 (BASE 0x0220))
  (IO 1 (BASE 0x0388))
  (IO 2 (BASE 0x0330))
  (DMA 0 (CHANNEL 1))
  (INT 0 (IRQ 5 (MODE +E)))
  (ACT Y)

El mismo driver soporta tarjetas AVance Logic ALS007 y Avance Logic ALS100. Ambas se configuran con isapnptools, dejando un DMA de 8 bits (0,1 o 3), pero DMA de 16 bits debe dejarse en -1. Más documentación en Documentation/sound/ALS.

Gravis Ultrasound (CONFIG_SOUND_GUS, módulo gus)

Tarjetas GUS y GUS MAX. El controlador puede recibir como parámetros: io, irq, dma, dma16, type=1 para indicar que es PnP, gus16, no_wave_dma, db16=1 para habilitar Gus16 AD1848.

Personal Sound System (ECHO ESC614) (CONFIG_SOUND_PSS, módulo pss)

Funciona con las tarjetas Orchid SW32, Cardinal DSP16, Beethoven ADSP-16, PSS y otras basadas en ECHO. Los posibles parámetros del módulo son: pss_io=0x220 puerto E/s base (0x240), mss_io=0x530 o 0x604 o 0xE80 o 0xF40 WSS (audio) E/S base, mss_irq=3 o 5 o 7 o 9 o 10 o 11 o 12 WSS (audio) IRQ, mss_dma=0 1 o 3 WSS (audio) DMA, mpu_io=0x330 puerto E/S base para Midi, mpu_irq=3 o 5 o 7 o 9 o 10 o 11 o 12, IRQ Midi, pss_cdrom_port=0x340 puerto base para el CDROM PSS, pss_enable_joystick=1 o 0 para habilitar/deshabilitar puerto de Joystick en tarjeta PSS, pss_no_sound=1 para no configurar componentes de sonido, útil para quienes sólo quieren configurar CDROM o Joystick de la tarjeta, pss_keep_settings=1 para mantener configuración de hardware después de descargar módulo, pss_firmware=/etc/sound/pss_synth localización del archivo con el firmware (está en los discos de instalación para DOS), pss_mixer=1 o 0 para habilitar o deshabilitar mezclador PSS. Más documentación en Documentation/sound/PSS y Documentation/PSS-updates.

Microsoft Sound System (CONFIG_SOUND_MSS, módulo ad1848)

Funciona con varias tarjetas en particular Windows Sound System, Aztech SG 16 Pro o NX16 Pro, CMI8330 (ver Documentation/sound/CMI8330). El codec ad1848/cs4248 es un chip usado en el MS Sound System, compatible con CS4231 (usada en GUS MAX) y CS4231A, AD1845, CS4232, CS4232A, Los parámetros, junto con valores típicos son: io=0x530, irq=11, dma=0 canal primario, dma2=5 canal secundario, type=1 si no tiene registros IRQ/DMA, deskpro_xl=1 habilitar soporte especial para Deskpro XL, deskpro_m=1 habilitar soporte especial para Deskpro M, soundpro=1 habilitar soporte especial para chips SoundPro (ver Documentation/sound/SoundPro).

Ensoniq SoundScape (CONFIG_SOUND_SSCAPE, módulo sscape)

Algunas tarjetas de Ensoniq, Spea y Reveal. El controlador puede recibir los parámetros: dma, irq, io, spea (1 o 0), mpu_irq, mpu_io, mss (si es 1 habilita soporte para Microsoft Sound System).

MediaTrix AudioTrix Pro (CONFIG_SOUND_TRIX, módulo trix)

El controlador recibe los parámetros: io, irq, dma, dma2, sb_io, sb_dma, sb_irq, mpu_io, mpu_irq, joystick (si es 1 habilita interfaz para Joystick).

OPTi MAD16, Mozart (CONFIG_SOUND_MAD16, módulo mad16)

Mozart (OAK OTI-601), MAD16 (OPTi 82C928, 82C929, 82C931). Un uso típico es:


modprobe mad16 io=0x530 irq=7 dma=0 dma16=1 mpu_io=816 mpu_irq=5
además puede recibir los siguientes parámetros: joystick=0 (deshabilitado) o 1 (habilitado), cdtype=0x00 (deshabilitado), 0x02 (Sony CDU31A), 0x04 (Mitsumi), 0x06 (Panasonic), 0x08 (Secondary IDE) 0x0a (Primary IDE), cdirq=0 (deshabilitado), 3 (IRQ3), 5,7,9,10,11, cddma=0 (deshabilitado), 1,2,3 (DMA3 para Sony o Panasonic), 5, 6,7, (DMA5 para Mitsumi o IDE), opl4=0 (OPL3), 1 (OPL4). Más documentación en Documentation/sound/MAD16 y Documentation/sound/Opti.

TurtleBeach WaveFront

(CONFIG_SOUND_WAVEFRONT, módulo wavefront), Tropez Plus, Tropez o Maui. Una configuración típica de una tarjeta Tropez+ es:


modprobe wavefront io=0x200 irq=9
modprobe cs4232 synthirq=9 syntio=0x200 io=0x530 irq=5 dma=1 dma2=0
modprobe opl3 io=0x388
El controlador wavfront también puede recibir los parámetros: io, irq, wf_raw=1 para evitar revisión de estado limpio antes de cargar firmware, fx_raw=0 para evitar limpiar después de cargar firmware, debug_default para depuración, wait_usecs=150, sleep_interval=100, sleep_tries=50, ospath=/etc/sound/wavefront.os vía donde encontrar firmware, reset_time=2, ramcheck_time=20, osrun_time=10. Más documentación en Documentation/sound/TROPEZ+. Para tarjetas Maui o Tropez también puede emplearse el módulo maui que recibe los parámteros: io e irq.

Crystal CS4232

(CONFIG_SOUND_CS4232), tarjetas basada en CS4232, usan Plug and Play. Un uso típico es:


modprobe cs4232 io=0x534 irq=5 dma=3 dma2=0
Además de los mostrados recibe los parámetros mpuio, mpuirq, syntirq, syntio. Para tener sintesis FM: insmod opl3 io=0x388 Ver también TurtelBeach WaveFront

Yamaha OPL3-SA2, SA3 y SAx PnP (CONFIG_SOUND_OPL3SA2, módulo opl3sa2)

El controlador recibe los parámetros: io para establecr dirección E/S base (e.g 0x370), mss_io establece base E/S de MSS (audio) (e.g 0x530, 0xE80, las direcciones posibles deben terminar en 0 o 4 y deben estar entre 0x530 y 0xF48), mpu_io base E/S para MIDI (e.g 0x330, debe ser una dirección entre 0x300 y 0x334), irq línea IRQ para irq MSS (5, 7, 9, 10, 11, 12), dma primer canal DMA MSS (0, 1, 3), dma2 segundo canal DMA MSS (0, 1, 3).

Aztech Sound Galaxy (no PnP) (CONFIG_SOUND_SGALAXY, módulo sgalaxy)

Soporta Waverider Pro 32 - 3D y Galaxy Washington 16. El controlador puede recibir los parámetros: io, irq, dma, dma2, sgbase (para especificar la dirección E/S básica).

Tarjetas basadas en AD1816

(CONFIG_SOUND_AD1816, módulo ad1816) Tarjeta basada en el chip Analog Devices AD1816, algunas tarjetas que lo usan son: Terratec Base 1, Terratec Base 64, HP Kayak, Acer FX-3D, SY-1816, Highscreen Sound-Boostar 32 Wave 3D, Highscreen Sound-Boostar 16 , AVM Apex Pro card y las siguientes pasando el parámetro option=1 al cargar el módulo: Aztech SC-16 3D, Newcom SC-16 3D, Terratec EWS64S. Cuando este controlador se incluye estáticamente puede configurarse con un parámetro del kernel de la forma: ad1816=0x530,5,1,3, remplazando los valores por la dirección E/S base, línea IRQ, primer y segundo canales DMA. Como módulo los parámetros podrían ser:


modprobe ad1816 io=0x530 irq=5 dma=1 dma2=3 ad1816_clockfreq=33000
Debe usarse isapnp para configurarla, líneas como las siguientes son relevantes:

	(INT 0 (IRQ 5 (MODE +E)))
	(DMA 0 (CHANNEL 1))
	(DMA 1 (CHANNEL 3))
	(IO 0 (BASE 0x0220))
	(IO 1 (BASE 0x0388))
	(IO 2 (BASE 0x0530))
Más documentación en el kernel Documentation/sound/AD1816.

Yamaha OPL3-SA1 (CONFIG_SOUND_OPL3SA1, módulo opl3sa)

Para emplear este chip en modo WSS (Windows Sound System) puede usarse:


modprobe  opl3sa io=0x530 irq=11 dma=0 dma2=1 mpu_io=0x330 mpu_irq=5
también podrían cargarse módulos para soportar sintetizador FM (opl3 o SoftOSS) con:insmod op3 io=0x388r o insmod softoss. Más documentación en Documentation/sound/OPL3-SA.

NeoMagic NM256AV/NM256ZX (CONFIG_SOUND_NM256, módulo nm256)

Chip NeoMagic 256AV/256ZX, usado en laptops como: Sony Z505S/SX/DX/RX, F150, F160, F180, F250, F270, F28, PCG-F26, Dell Latitude CPi, CPt. El controlador soporta los parámetros: usecache, buffertop, nm256_debug, force_load. Más documentación en Documentation/sound/NM256.

Adlib (CONFIG_SOUND_ADLIB, módulo adlib_card)

El controlador recibe la dirección E/S base con el parámetro io.

Yamaha YMF7xx PCI (CONFIG_SOUND_YMFPCI, módulo ymfpci)

Tarjetas YMF711, el controlador puede recibir como parámetros: mpu_io y synth_io.

Tarjetas Gallant (SC-600, SC-6600) (CONFIG_SOUND_AEDSP16, módulo aedsp16)

Para tarjetas que incluyen el DSP Audio Excel. El controlador establece los recursos del DSP desde Linux, un uso típico es:


modprobe aedsp16 io=0x220 irq=5 dma=1
También podría pasar como parámetros: mss_base (e.g 0x530 o 0xE80), mpu_base (0x300, 0x310, 0x320 o 0x330) mpu_irq (5, 7, 9, 10 o 0).

Programas que emplean la tarjeta de sonido

Hay gran variedad algunos gráficos otros para consola, puede buscarlos con apt-cache search sound | less (ver Paquetes en Debian).

sox

Este paquete incluye programas como play y uno que permite convertir un sonido de un formato a otro.

Incluye el program sox que permite convertir de un formato de sonido a otro, play que permite reproducir un sonido almacenado prácticamente en cualquier formato y rec que permite grabar un sonido. Por ejemplo para convertir de formato raw (PCM 11025 Hetz, 16 bits) a .wav:


sox -r 11025 -s -w voz.raw voz.wav

playmidi

Útil si su tarjeta incluye un sintetizador MIDI que ha logrado configurar. Incluye los programas playmidi (consola) y xplaymidi (X11), así como algunos ejemplos. Si su tarjeta no tiene sintetizador MIDI puede emplear Timidity.

timidity timidity-patches

Emula sintetizador MIDI por software.

aumix

Mezclador modo texto, se inicia con aumix.

soundtracker

Editor y reproductor gráfico de archivos MOD para Amiga.

xmms

Aplicación gráfica para reproducir MP3 y otros formatos.

Lecturas recomendadas: Dispositivos y Linux

Ejercicios: Dispositivos y Linux

1. Continue el ejercicio 1 de la sección anterior, completando el script para que reporte:

  • Marca y referencia de cada disco duro. Capacidad de cada uno y forma como cada uno está particionado. (Ayuda: fdisk -l)

  • Marca y referencia de la tarjeta de video, así como el nombre del controlador que Linux emplea. (Ayuda: /etc/X11/XF86Config).

  • Marca y referencia del monitor, así como los parámetros de configuración del mismo para X-Window. (Ayuda: /etc/X11/XF86Config).

  • Marca del ratón, cantidad de botones, tipo de puerto al que está conectado y recurso que emplea (puerto COM en caso de que sea serial).

  • En caso de que tenga tarjeta de sonido, marca y referencia de la misma junto con los recursos de hardware que emplea (IRQs, DMA, puertos). Módulo que usa y parámetros que recibe el módulo.

  • Si el computador tiene modem, marca y referencia, así como recursos de hardware que emplea (puerto serial, IRQ). Si el modem requiere controladores especiales, también nombre y los parámetros de los mismos.

  • Marca y referencia de otros dispositivos externos que estén conectados al computador, así como controladores y parámetros de configuración. (e.g. de scanners, unidades para quemar CD-ROM, camaras, etc.).

  • Si el computador está conectado a una red, también es importante que el script extraiga:

    • Marca y referencia de la tarjeta de red así como los recursos de hardware que emplee (IRQ, DMA, puertos). De ser necesario (si el kernel no lo configura automáticamente), el nombre del controlador y los parámetros que requiera.

    • Dirección IP del computador y nombre.

    • Dirección del servidor DNS, del gateway y mascara de red.

2. Además del algo de información en estas guías y del Hardware-HOWTO, hay algunas bases de datos de hardware soportado por Linux. Busque alguna(s) y comparta la información con sus compañeros.
3. Opcional: busque controladores para Linux de algunos componentes de su computador en cada casa que hace el hardware, en caso de que no encuentre, es recomendable que les envíe un correo preguntando por el controlador específico. Si ellos no tienen el controlador, tendrán la oportunidad de enterarse de la necesidad del controlador para el hardware que usted está utilizando, y los instará a crearlo o liberarlo al público.

1. Continue el ejercicio 1 de la sección anterior, completando el script para que reporte:

  • Marca y referencia de cada disco duro. Capacidad de cada uno y forma como cada uno está particionado. (Ayuda: fdisk -l)

  • Marca y referencia de la tarjeta de video, así como el nombre del controlador que Linux emplea. (Ayuda: /etc/X11/XF86Config).

  • Marca y referencia del monitor, así como los parámetros de configuración del mismo para X-Window. (Ayuda: /etc/X11/XF86Config).

  • Marca del ratón, cantidad de botones, tipo de puerto al que está conectado y recurso que emplea (puerto COM en caso de que sea serial).

  • En caso de que tenga tarjeta de sonido, marca y referencia de la misma junto con los recursos de hardware que emplea (IRQs, DMA, puertos). Módulo que usa y parámetros que recibe el módulo.

  • Si el computador tiene modem, marca y referencia, así como recursos de hardware que emplea (puerto serial, IRQ). Si el modem requiere controladores especiales, también nombre y los parámetros de los mismos.

  • Marca y referencia de otros dispositivos externos que estén conectados al computador, así como controladores y parámetros de configuración. (e.g. de scanners, unidades para quemar CD-ROM, camaras, etc.).

  • Si el computador está conectado a una red, también es importante que el script extraiga:

    • Marca y referencia de la tarjeta de red así como los recursos de hardware que emplee (IRQ, DMA, puertos). De ser necesario (si el kernel no lo configura automáticamente), el nombre del controlador y los parámetros que requiera.

    • Dirección IP del computador y nombre.

    • Dirección del servidor DNS, del gateway y mascara de red.


echo "+ IDE ========================================================";
for i in /proc/ide/hd* ; do \
cat $i/driver; \
if (test -f $i/geometry) then { \
  cat $i/geometry; \
  d=`echo $i | sed -e "s|/proc/ide/|/dev/|g"`; \
  echo $d; \
  fdisk  -l -u $d; \
} fi;\
done
echo "+ X-Window ========================================================";
r=`ps ax | grep "[X]11/X"`
if (test "$r" != "") then {
	f=/etc/X11/XF86Config
	if (test -f "/etc/X11/XF86Config-4") then {
		echo "Servidor 4.x";
		f="/etc/X11/XF86Config-4";
	} fi;
		
	grep "^[ ]*XkbLayout" $f
	grep "^[ ]*Protocol" $f
	grep "^[ ]*Device[ ]*\"/" $f
	grep "^[ ]*HorizSync" $f
	grep "^[ ]*VertRefresh" $f
	grep "^[ ]*Chipset" $f

	cat /var/log/XFree86.0.log
} 
else {
	echo "No se ha configurado X-Window" > /dev/stderr
} fi;
echo;
echo "+ Módulos======================================================";
echo;
lsmod
echo;
if (test "`lsmod | grep "soundcore"`" = "") then {
	echo "No hay dispositivo de sonido" > /dev/stderr;
} fi;

echo "+ /etc/modules.conf============================================";
echo;
ls /etc/modutils
cat /etc/modules.conf
echo;
echo "+ /etc/hostname================================================";
echo;
cat /etc/hostname
echo;
echo "+ /etc/network/interfaces======================================";
echo;
cat /etc/network/interfaces
echo;
	

2. Además del algo de información en estas guías y del Hardware-HOWTO, hay algunas bases de datos de hardware soportado por Linux. Busque alguna(s) y comparta la información con sus compañeros.

Base de datos de las distribuciones Mandrake o Suse.

3. Opcional: busque controladores para Linux de algunos componentes de su computador en cada casa que hace el hardware, en caso de que no encuentre, es recomendable que les envíe un correo preguntando por el controlador específico. Si ellos no tienen el controlador, tendrán la oportunidad de enterarse de la necesidad del controlador para el hardware que usted está utilizando, y los instará a crearlo o liberarlo al público.

Por ejemplo hay soporte de Intel para algunas tarjetas gráficadoras http://support.intel.com/support/graphics/linux/graphics.htm.

Notas

[1]

Los teclados no USB emplean la línea IRQ 1, y las direcciones de E/S 0x60 a 0x6F.

[2]

por ejemplo al oprimir s se produce 0x1f y al soltarlo 0x9f, puede ver estas secuencias con showkey -s.

[3]

Cada consola virtual puede tener un modo que controle la traducción de acuerdo a la aplicación que corra: por ejemplo bash --modo ASCII o Unicode--- o X-Window ---modo Raw--- o showkeys ---modo keycode).

[4]

La asociación entre scancodes y keycodes puede verse con getkeycodes y puede cambiarse con setkeycode.

[5]

Pueden especificarse, combinaciones de teclas bien con nuevas líneas iniciadas con modificadores (e.g shift keycode 39=+Ntilde o bien en otras columnas de la definición sin modificadores (i.e iniciada con keycode), el número de columna corresponde a la suma de las siguientes posibles teclas modificadoras: Shift 1, AltGr 2, Control 4, Alt 8, ShiftL 16, ShiftR 32, CtrlL 64, CtrlR 128. Pueden omitirse algunas de las 256 columnas, con una línea que indique que columnas se especifican como keymaps 0-2,4-5,8,12.

[6]

Unicode es un estándar que codifica con números de 16 bits los caracteres de diversos idiomas.

[7]

En realidad establecerá modo UTF-8, UTF-8 es una codificación para Unicode que resulta compatible con ASCII para los primeros 256 caracteres.

[8]

Si un ratón serial maneja también el protocolo PS/2, puede emplearse un conversor (por ejemplo de D-SUB 9 a Mini-DIN: DTR+RTS+RI,4+7+9 - 4,+5V; CD,1 - 1,Data; TXD+GND, 3+5 - 3, Gnd; DSR,6 - 5, Clock. http://www.hardwarebook.net/adapter/serial/mouseserialps2.html

[9]

Si un mouse PS/2 maneja también el protocolo serial, puede emplear un conversor de PS/2 a Serial: GND, 3 - 5, GND, RxD,2-2,RxD; TxD,6-3,TxD; +5V,4-7,RTS. http://www.pchardware.org/HWB/ad_MousePs2Serial.html

[10]

Si se inició con el parámetro -R, gpm retransmite la información al dispositivo /dev/gpmdata (con el protocolo de ratones Microsoft) lo cual puede ser util para emplear gpm simultaneamente con otros programas (como X-Window)

[11]

La frecuencia horizontal es un rango que suelen estar entre 30Hz y 150Hz ---en televisores en Colombia es 15,735Hz.

[12]

La frecuencia vertical es un rango que suele estar entre 50Hz y 135Hz ---en televisores en Colombia es 60Hz.

[13]

Direct Rendering Interface/Direct Rendering Manager

[14]

Para atender trabajos de impresión hay disponibles varios sistemas: lpd, LPRng, CUPS, QPD. El más popular en sistemas Unix es lpd que permite a varios computadores en red compartir una misma impresora.

[15]

cilindros: del inglés cylinder.

[16]

cabeza: del inglés head.

[17]

El kernel también cuenta con controladores para tarjetas controladoras para discos duros XT (CONFIG_BLK_DEV_XD, módulo xd) y para discos ESDI de PS/2 (CONFIG_BLK_DEV_PS2, módulo ps2esdi), así como 2 discos con interfaces defectuosas (cuyos problemas soluciona): CMD-640 y RZ1000.

[18]

Memoria virtual es un espacio en disco que puede emplearse para mantener información que típicamente está en memoria RAM, dotando de más memoria RAM un computador a cambio de una disminución en el desempeño ---el acceso a un disco duro (ms) es mucho más demorado que el acceso a memoria RAM (ns).

[19]

Otro programa para particionar discos, menos interactivo es sfdisk.

[20]

De acuerdo a la documentación de superformat, puede formatearse un disquete de alta densidad a 1734K (83 cilindros, 21 sectores) con superformat /dev/fd0 sect=21 cyl=83 y a 1992K (83 cilindors, pistas de 12KB) con superformat /dev/fd0 tracksize=12KB cyl=83 mss

[21]

Este driver soporta hasta 4 unidades de CD-ROM los nombres son /dev/sbpcd1, /dev/sbpcd2 y /dev/sbpcd3

[22]

Los controladores de ALSA también pueden soportar OSS.

[23]

AC97 es un estándar para mezcla análoga/digital.

[24]

Mensajes útiles para desarrolladores del controlador.

[25]

En Documentation/sound/mwave, hay documentación particular para IBM Mwave que permite usarlo, cargando primero el firmware desde DOS.