Configurar un puerto paralelo adicional

Base de Datos de Soporte (jsmeix_print-device-parallel)
Referido a

SuSE Linux: Versiones 6.2 hasta 7.3
Kernel: Versiones desde 2.2

Situación:

Quiere añadir un puerto paralelo adicional.

A partir de SuSE Linux 8.0, consulte el manual de "Referencia".

Requisitos:

Debe usar un kernel 2.2.xx o superior.

Información adicional:

Por defecto, solamente el primer puerto paralelo /dev/lp0 está disponible.
Este puerto paralelo está configurado en el fichero /etc/conf.modules o /etc/modules.conf (SuSE Linux 6.3 o superior):

alias parport_lowlevel parport_pc
options parport_pc io=0x378 irq=none,none
# If you have multiple parallel ports, specify them this way:
# options parport_pc io=0x378,0x278  irq=none,none
io=0x... es seguido por la dirección E/S del puerto paralelo; irq=... usualmente está en "none" para polling o la interrupción del puerto paralelo. Normalmente, polling es mejor que el modo con interrupción y no afecta a la velocidad (excepto para ordenadores muy viejos).
Para que el primer puerto paralelo trabaje con esta configuración, deben estar configurados los siguientes valores para el puerto paralelo en su BIOS:
dirección E/S 378 (hexadecimal)
Interrupción 7 (irrelevante para polling)
Modo Normal o SPP (otros modos quizá no funcionen)
DMA off (debería estar inactivo en el modo normal)

Comprobación del primer puerto paralelo:
Si una impresora normal (no una impresora GDI) está conectada a /dev/lp0, al ejecutar el comando
echo -en "Hola\f" >/dev/lp0
como 'root' debería imprimirse una página con la palabra "Hola" (véase el artículo Impresoras GDI).

Procedimiento:

Caso simple:

Asumiendo que usted tiene un segundo puerto paralelo que pueda ser configurado con la dirección estándar E/S 278 (hexadecimal; configurada p.e con "jumpers" en una tarjeta ISA), la entrada siguiente en /etc/conf.modules o /etc/modules.conf (SuSE Linux 6.3 o superior) es suficiente:

alias parport_lowlevel parport_pc
# options parport_pc io=0x378 irq=none,none
# If you have multiple parallel ports, specify them this way:
options parport_pc io=0x378,0x278  irq=none,none
Después de reiniciar, el segundo puerto paralelo debería estar disponible.
Comprobación del segundo puerto paralelo:
Si una impresora normal (no una impresora GDI) está conectada a /dev/lp1, al ejecutar el comando
echo -en "Hola\f" >/dev/lp1
como root, debería imprimirse una página con la palabra "Hola".

Casos complejos:

Será más complicado si la dirección de E/S del puerto paralelo adicional no se conoce de antemano.
En este caso, debemos determinar primero la dirección E/S del puerto paralelo adicional.

I) Tarjetas ISA PnP:

A veces es posible configurar en estas tarjetas los valores de dirección de E/S, interrupción, y modo de la siguiente manera:
Mediante "jumpers" o, si tiene DOS/Windows, mediante un programa de configuración del fabricante.
Si esto es posible, configure valores fijos de dirección E/S, interrupción y modo.

Si no es el caso, los valores para las direcciones E/S, interrupción y modo serán establecidos en la tarjeta ISA PnP cuando arranque Linux.
Estos valores pueden averiguarse a través de los mensajes de inicio o con el procedimiento explicado en el manual (capítulo "Linux y Hardware"):

  1. Entre como usuario 'root'
  2. Si /etc/isapnp.conf ya existe, haga una copia del fichero existente con
    mv /etc/isapnp.conf /etc/isapnp.conf.bak
  3. Cree un fichero /etc/isapnp.conf nuevo con
    pnpdump -c >/etc/isapnp.conf
  4. Active la tarjeta ISA PnP con
    isapnp /etc/isapnp.conf
    y tome nota de la dirección E/S (port) e interrupción (IRQ) de la tarjeta que aparecerá en el resultado del comando.
Desventajas de las tarjetas ISA PnP sin valores fijos de dirección E/S, interrupción, y modo:
Si ya usa tarjetas ISA PnP e instala una adicional, la BIOS o el comando
pnpdump -c >/etc/isapnp.conf
pueden hacer que cambien los valores de dirección de E/S e interrupciones asignados a las tarjetas ISA PnP anteriormente instaladas. En este caso, las tarjetas ISA PnP configuradas previamente no funcionarán y tendrán que reconfigurarse de nuevo.
Este problema no ocurre habitualmente con tarjetas PCI. Aunque al añadir una tarjeta nueva PCI los valores de direcciones E/S e interrupciones de las tarjetas ya instaladas sean modificados por la BIOS, los controladores de tarjetas PCI recogen normalmente los valores de la BIOS al iniciar el sistema. Una excepción a esta regla la constituye el controlador de puerto paralelo (el módulo del kernel parport_pc), que requiere una indicación explícita de los valores para las direcciones E/S e interrupciones de los puertos paralelos.

II) Tarjetas PCI:

Las direcciones E/S e interrupciones que puede ser usadas por una tarjeta PCI pueden mostrarse a través del comando (como usuario 'root'):
lspci -v
o con un nivel más alto de detalle con:
lspci -vv

Ejemplo:

Ejemplo del resultado de lspci -v para una tarjeta PCI con dos puertos paralelos:

...
00:0a.0 Parallel controller: ...
        ...
        Flags: stepping, medium devsel, IRQ 10
        I/O ports at b400
        I/O ports at b000
        I/O ports at a800
        I/O ports at a400
...
Dos direcciones E/S en intervalos de 400 (hexadecimal) corresponden a un mismo puerto paralelo.
La entrada en /etc/conf.modules o /etc/modules.conf (SuSE Linux 6.3 o superior) para que los tres puertos paralelos estén disponibles al reiniciar es:
alias parport_lowlevel parport_pc
# options parport_pc io=0x378 irq=none,none
# If you have multiple parallel ports, specify them this way:
options parport_pc io=0x378,0xb400,0xa800 irq=none,none,none
Compruebe todos los puertos que tengan impresoras normales conectadas con el comando:
echo -en "Hola\f" >/dev/lp0
echo -en "Hola\f" >/dev/lp1
echo -en "Hola\f" >/dev/lp2
Ejecutando este comando como usuario 'root', debería imprimirse una página con la palabra "Hola" en cada una de ellas.

Nota:
En vez de reiniciar, basta con actualizar la lista de dependencias de los módulos como usuario 'root' y, siempre que sólo haya impresoras conectadas al puerto paralelo, parar el daemon de impresión, descargar y recargar los módulos del kernel para los puertos paralelos y reiniciar el demonio de impresión con los siguientes comandos:
/sbin/depmod -a 2>/dev/null >/dev/null
rclpd stop
rmmod lp
rmmod parport_probe
rmmod parport_pc
rmmod parport
modprobe parport
modprobe parport_pc
modprobe parport_probe
modprobe lp
rclpd start

Si la comprobación de los puertos paralelos adicionales ha sido satisfactoria, pueden configurarse impresoras adicionales. Para ello sólo ha de utilizar /dev/lp1 o /dev/lp2 como dispositivo de impresión en lugar de /dev/lp0.


Temas relacionados:
o Instalando una impresora
o Parport - información general.
o Imprimir con el kernel 2.2.xx

Palabras clave: IMPRIMIR, IMPRESORA, PARALELO, PUERTO, LP1, LP2, PARPORT

Temas: Preguntas de Uso Frecuentes , Documentación , Impresora

SDB-jsmeix_print-device-parallel, Copyright SuSE Linux AG, Nürnberg, Germany - Versión: 02. Apr 2002
SuSE Linux AG - : 22. Mai 2002 de ip (sdb_gen 1.40.0)