Nastavení dalšího paralelního portu

Supportní databáze (jsmeix_print-device-parallel)
Platí pro

SuSE Linux: Verze 6.2 do 7.3
Kernel: Od verze 2.2

Dotaz:

Chcete nastavit další paralelní port.

Od verze 8.0 naleznete odpovídající informace v referenční příručce.

Předpoklad:

Používáte jádro od verze 2.2.xx.

Tech. pozadí:

Standardně je dostupné pouze první paralelní rozhraní /dev/lp0.
To je možné konfigurovat pomocí souboru /etc/conf.modules, resp. od SuSE Linuxu 6.3 v souboru /etc/modules.conf:

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
Kde v 'io=0x...' je IO adresa paralelního portu a v 'irq=' je většinou 'none', protože je používán polling, nebo přerušení paralelního rozhraní.
Polling je obecně bezproblémovější než přiřazování přerušení, ale není pomalejší (s vyjímkou obzvláště starých počítačů).
Předpokladem, aby i první paralelní port fungoval s tímto nastavením je následující standardní nastavení v BIOSu vašeho počítače pro paralelní port:
IO-Adresse 378 (hexadecimálně)
Interrupt 7 (nehraje roli v případě, že používáte polling)b
Modus Normal nebo SPP (ostatní režimy nejsou vždy funkční)
Vypnuté DMA (v režimu Normal by mělo být vypnuto)

Test prvního paralelního rozhraní:
řekněme, že na /dev/lp0 je připojena běžná tiskárna (ne tzv. GDI tiskárny) a příkazem echo -en "Hallo\f" >/dev/lp0
jako uživatel 'root' byste měli být s to vytisknout slovo Hallo. Bližší informace naleznete v dokumentu GDI tiskárny, resp. Nákup tiskárny a kompatibilita)

Postup:

Jednoduchý případ:

Řekněme, že máte druhý paralelní port, se kterým můžete komunikovat pomocí standardní IO adresy 278 (hexadecimálně). Pak stačí vytvořit následující položku v /etc/conf.modules, resp. od SuSE Linuxu 6.3 v /etc/modules.conf.

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
a po restartu budete mít druhý paralelní port k dispozici.
Proveďte test druhého parportu:
řekněme, že na /dev/lp1 je připojena běžná tiskárna (ne tzv. GDI tiskárna) a příkazem echo -en "Hallo\f" >/dev/ lp1
jako uživatel 'root' byste měli být s to vytisknout slovo Hallo.

Obtížnější případy:

Trochu obtížnější je to v případě, že další paralelní port předem nezná IO adresu.
Zde je třeba tuto adresu portu předem sdělit.

I) ISA PnP karty:

někdy je možné nastavit tyto karty na pevné hodnoty pro IO adresy, přerušení a režimy:
buď pomocí jumperu nebo - pokud máte DOS/Windows - pomocí dodávaného programu.
Pokud to je možné, pak nastavte pevné hodnoty pro IO adresy, přerušení a režimy.

V opačném případě jsou hodnoty pro IO adresy, přerušení a režimy přidělovány ISA PnP kartě teprve při startu Linuxu.
Které hodnoty budou přiřazeny je možné zjistit buď ze startovacích hlášení jádra Linuxu nebo následujícím postupem:

  1. Přihlaste se jako uživatel root
  2. Pokud již existuje /etc/isapnp.conf, pak uložte existující data příkazem mv /etc/isapnp.conf /etc/isapnp.conf.bak
  3. Vytvořte nový /etc/isapnp.conf příkazem
    pnpdump -c >/etc/isapnp.conf
  4. Aktivujte ISA PnP kartu pomocí
    isapnp /etc/isapnp.conf
    a poznamenejte si z výstupu IO adresu (port) a přerušení (IRQ) rozhraní.
Nevýhodou ISA PnP karet bez pevné hodnoty pro IO adresu, přerušení a režim je, že pokud již používáte takovou ISA PnP kartu a přidáte další podobnou kartu, je třeba všechny ISA PnP karty konfigurovat znovu.
U PCI karet se tento problém obecně nevyskytuje. Pokud do systému přidáte další PCI kartu, tak se také mohou změnit hodnoty pro IO adresu a přerušení stávajících karet, ale ovladač PCI karet převezme při startu aktuální hodnoty z BIOSu. Vyjímkou je např. ovladač pro paralelní porty - jaderný modul parport_pc - kterému je třeba hodnoty IO adres a přerušení paralelních portů explicitně sdělit.

II) PCI karty:

Které IO adresy a přerušení přicházejí u PCI karty v úvahu můžete zjistit jako uživatel 'root' následujícím příkazem:
lspci -v
reps. podrobnější popis příkazem
lspci -vv

Příklad:

Příkladový výstup z lspci -v pro PCI kartu s dvěma paralelními porty:

...
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
...
právě dvě IO adresy posunuté o 400 (hexadecimálně) patří spolu k jednomu paralelnímu portu.
Následují položky v /etc/conf.modules, resp. od SuSE Linuxu 6.3 v /etc/modules.conf
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
a po restartu máte k dispozici všechny tři paralelní rozhraní.
Test všech paralelních rozhraní:
pokud je připojena běžná tiskárna, pak byste měli být s to příkazem echo -en "Hallo\f" >/dev/lp0
echo -en "Hallo\f" >/dev/lp1
echo -en "Hallo\f" >/dev/lp2
jako uživatel 'root' vytisknout testovací stránku.

Pozn.:
místo restartu stačí, když jako uživatel 'root' aktualizujete seznam závislostí jaderných modulů a, pokud jsou na paralelní porty připojeny tiskárny, zastavíte činnost tiskového démona, odstraníte jaderné moduly, které mají co do činění s paralelním rozhraním, opět je nahrajete a nakonec znovu spustíte tiskového démona:
/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

Pokud byl test dalších paralelních portů úspěšný, můžete nastavit další tiskárny. Místo /dev/lp0 jako názvu zařízení je třeba použít /dev/lp1 nebo /dev/lp2.


Viz také:
o Nastavení tiskárny

Klíčová slova: TISK, TISKáRNA, PARALELNí, ROZHRANí, PORT, LP1, LP2, PARPORT

Kategorie: Často kladené dotazy , Dokumentace , Tiskárna

SDB-jsmeix_print-device-parallel, Copyright SuSE Linux AG, Nürnberg, Germany - Verze: 13. Mär 2000
SuSE Linux AG - Poslední změnu: 09. Mai 2002 provedl jsmeix (sdb_gen 1.40.0)