9.8 Hibaelhárítás

Az alábbi szakaszok a nyomtatóhardver és -szoftver leggyakoribb problémáit tekintik át, valamint bemutatják a megoldás módját vagy lehetoséget adnak a megkerülésükre. Szó lesz a GDI nyomtatókról, PPD-fájlokról, valamint a portok beállításáról. Szintén tárgyaljuk a leggyakoribb nyomtatási problémákat, a hibás nyomatok és a nyomtatási sorok kezelését.

9.8.1 Szabványos nyomtatónyelveket nem támogató nyomtatók

A szabványos nyomtatónyelveket nem támogató, csak speciális vezérloszekvenciákkal szabályozható nyomtatókat GDI-nyomtatóknak szokás hívni. Ezek a nyomtatók csak azon operációsrendszer-verziók alatt használhatók, amelyekhez a gyártó biztosít illesztoprogramot. A GDI a Microsoft* által grafikus eszközökhöz kifejlesztett programozási felület. A gyártók általában csak a Windowshoz adnak illesztoprogramot és mivel a Windows-illeszto a GDI-felületet használja, ezeket a nyomtatókat szintén GDI-nyomtatóknak szokás hívni. A tényleges problémát nem a programozási felület jelenti, hanem az a tény, hogy a GDI-nyomtatók csak az adott nyomtatómodell egyedi nyomtatónyelvével vezérelhetok.

Egyes nyomtatók átkapcsolhatók, hogy GDI-módban muködjenek, vagy a szabványos nyomtatónyelvek valamelyikével. Ha lehetséges, nézze meg a nyomtató kézikönyvét. Bizonyos modelleknél az átkapcsoláshoz szükség van egy speciális Window-szoftverre (figyeljen rá, hogy a Windows-illeszto lehet, hogy minden alkalommal visszaállítja a nyomtatót GDI-módra, ha Windowsból nyomtat). Más GDI-nyomtatókhoz vannak szabványos nyomtatónyelvi bovítomodulok.

Egyes gyártók egyedi illesztoprogramokat biztosítanak GDI-nyomtatóikhoz. Az egyedi illesztoprogramok hátránya, hogy nincs garancia arra, hogy ezek muködnek a telepített nyomtatórendszerrel, és hogy megfelelok a különféle hardverplatformokhoz. A szabványos nyomtatónyelveket támogató nyomtatók ezzel szemben nem függenek a nyomtatási rendszer egy adott változatától, sem a használt hardverplatformtól.

Az egyedi Linux-illesztoprogramok munkára bírása helyett lehet, hogy költséghatékonyabb megoldás egy támogatott nyomtató vásárlása. Ez megoldja az illesztoprogram problémáját egyszer és mindenkorra: nincs többé szükség speciális illesztoprogramok telepítésére és beállítására, valamint a nyomtatási rendszer fejlesztései miatt új illesztoprogram-verziók beszerzésére.

9.8.2 Nincs megfelelo PPD-fájl egy PostScript-nyomtatóhoz

Ha a manufacturer-PPDs csomag nem tartalmaz megfelelo PPD-fájlt egy PostScript-nyomtatóhoz, akkor használható a nyomtatógyártó illesztoprogram CD-jén található PPD-fájl, vagy letöltheto egy alkalmas PPD-fájl a nyomtatógyártó weboldaláról.

Ha a PPD-fájl ZIP-archívum (.zip) vagy önkicsomagoló ZIP-archívum (.exe) formájában érkezik, akkor csomagolja ki az unzip paranccsal. Eloször tekintse meg a PPD-fájl licencfeltételeit. Ezután a cupstestppd segédprogrammal ellenorizze, hogy a PPD-fájl megfelel-e az Adobe PostScript Printer Description File Format Specification, version 4.3. specifikáció eloírásainak. Ha a segédprogram FAIL eredményt ad vissza, akkor a PPD-fájlban komoly hibák vannak, és komoly hibákra lehet számítani a nyomtatásnál is. A cupstestppd által azonosított problémákat lehetoleg meg kell szüntetni. Ha szükséges, kérjen helyes PPD-fájlt a nyomtató gyártójától.

9.8.3 Párhuzamos portok

A legbiztonságosabb megközelítés a nyomtatót közvetlenül az elso párhuzamos portra kötni és az alábbi beállításokat megadni a BIOS-ban:

  • I/O address (I/O-cím): 378 (hexadecimális)

  • Interrupt (megszakítás): mindegy

  • Mode (mód): normal (normál), SPP vagy output only (csak kimenet)

  • DMA: disabled (letiltva)

Ha a nyomtató a fenti beállítások ellenére sem érheto el a párhuzamos porton, akkor írja be az I/O-címet közvetlenül az /etc/modprobe.conf fájlba 0x378 formában. Ha két párhuzamos port van, amelyek I/O-címei 378 és 278 (hexadecimális), akkor ezeket 0x378,0x278 formában adja meg.

Ha a 7. megszakítás szabad, akkor az az alább bemutatott módon aktiválható (Példa 9-1). A megszakítási mód aktiválása elott ellenorizze a/proc/interrupts fájlban, hogy mely megszakítások vannak már használatban. Csak az éppen használt megszakítások kerülnek megjelenítésre. Ez függhet attól, hogy mely hardverelemek aktívak. A párhuzamos port megszakítását más eszköz nem használhatja. Ha nem biztos a dolgában, használja a lekérdezéses (polling) módot az irq=none beállítással.

Példa 9-1 /etc/modprobe.conf: Az elso párhuzamos port megszakítási módja

alias parport_lowlevel parport_pc
options parport_pc io=0x378 irq=7

9.8.4 Hálózati nyomtatók csatlakoztatása

Hálózati problémák azonosítása

Csatlakoztassa a nyomtatót közvetlenül a számítógéphez. Tesztelési célból állítsa be a nyomtatót helyi nyomtatóként. Ha így muködik, akkor a probléma a hálózatban lesz.

A TCP/IP-hálózat ellenorzése

A TCP/IP-hálózatnak és a névfeloldásnak muködnie kell.

Távoli lpd ellenorzése

Az alábbi paranccsal ellenorizheto, hogy létesítheto-e TCP-kapcsolat agép neve gépen futó lpd-vel (port 515):

netcat -z host 515 && echo ok || echo failed

Ha az lpd felé nem létesítheto kapcsolat, akkor lehet, hogy az lpd nem fut, vagy valamilyen gond van a hálózattal.

A root felhasználó nevében adja ki az alábbi parancsot egy (várhatóan jó hosszú) állapotjelentés lekéréséhez a távoli host gépen található sorról (queue), feltéve, hogy az lpd aktív és a gép elfogadja a kéréseket:

echo -e "\004queue" \
| netcat -w 2 -p 722 host 515

Ha az lpd nem válaszol, akkor lehet, hogy nem fut, vagy valamilyen gond van a hálózattal. Ha·az lpd válaszol, akkor a válaszból ki kell derülnie, hogy miért nem lehet nyomtatni a host gép sorára (queue). Ha a Példa 9-2 példában bemutatotthoz hasonló választ kap, akkor a problémát a távoli lpd okozza.

Példa 9-2 Az lpd hibaüzenete

lpd: your host does not have line printer access
lpd: queue does not exist
printer: spooling disabled
printer: printing disabled
Távoli cupsd ellenorzése

A CUPSD hálózati kiszolgáló alapértelmezésben 30 másodpercenként meghirdeti magát a 631-es UDP-porton. Így a következo parancs használható annak kiderítésére, hogy muködik-e CUPS hálózati kiszolgáló a hálózaton. A parancs végrehajtása elott gyozodjön meg róla, hogy leállította a helyi CUPS-démont.

netcat -u -l -p 631 & PID=$! ; sleep 40 ; kill $PID

Ha létezik nyilvános üzeneteket küldo CUPS hálózati kiszolgáló, akkor a kimenet az alábbi példában bemutatotthoz lesz hasonló: Példa 9-3.

Példa 9-3 A CUPS hálózati kiszolgáló nyilvános üzenete

ipp://192.168.2.202:631/printers/queue

Az alábbi paranccsal ellenorizheto, hogy létesítheto-e TCP-kapcsolat a host gépen futó cupsd-vel (631-es port):

netcat -z host 631 && echo ok || echo failed

Ha a cupsd felé nem létesítheto kapcsolat, akkor lehet, hogy a cupsd nem fut, vagy valamilyen gond van a hálózattal. Az lpstat -h host -l -t paranccsal lekérheto egy (várhatóan jó hosszú) állapotjelentés a host gépen található összes sorról, feltéve, hogy a cupsd aktív és a gép elfogadja a kéréseket.

A következo paranccsal ellenorizheto, hogy a host gépen található sor (queue)) elfogad-e egy mindössze egyetlen soremelés karakterbol álló nyomtatási feladatot. Semmi sem kerül kinyomtatásra. A nyomtató esetleg kidob egy üres oldalt.

echo -en "\r" \
| lp -d queue -h host
Hálózati nyomtató vagy nyomtatókiszolgáló hibaelhárítása

A nyomtatókiszolgáló egységekben (pl. JetDirect) futó nyomtatásisor-kezelok néha problémát jelenthetnek, ha túlságosan sok nyomtatási feladattal kell megküzdeniük. Mivel ezt a nyomtatókiszolgáló egységben muködo nyomtatásisor-kezelo okozza, semmit nem lehet tenni vele. Kerülo megoldásként ki lehet hagyni a nyomtatókiszolgáló egységben muködo nyomtatásisor-kezelot, ha közvetlenül, egy TCP-socketen keresztül címzi meg a nyomtatót. Lásd:Szakasz 9.4, Hálózati nyomtatók

Ily módon a nyomtatókiszolgáló egység az adatátvitel különbözo formái (TCP/IP-hálózat és helyi nyomtatókapcsolat) közötti átalakítóvá egyszerusödik. A módszer használatához ismerni kell a nyomtatókiszolgáló egység TCP-portját. Ha a nyomtató a nyomtatókiszolgáló egységhez csatlakozik és be van kapcsolva, akkor ez a TCP-port általában meghatározható az nmap csomagban található nmap segédprogrammal a nyomtatókiszolgáló egység bekapcsolása után. Az nmap IP-cím például a következo eredményt adhatja egy nyomtatókiszolgáló egység esetében:

Port       State       Service
23/tcp     open        telnet
80/tcp     open        http
515/tcp    open        printer
631/tcp    open        cups
9100/tcp   open        jetdirect

Ez a kimenet azt jelzi, hogy a nyomtatókiszolgáló egységre csatlakozó nyomtató a 9100-as TCP socketporton keresztül érheto el. Alapértelmezésben az nmap csak az /usr/share/nmap/nmap-services fájlban felsorolt ismert portokat ellenorzi. Az összes lehetséges port ellenorzéséhez használja az nmap -p mettol-meddig IP-cím parancsot. Ez viszont eltarthat egy darabig. További információt talál az nmap parancs kézikönyvoldalán.

Az alábbihoz hasonló paranccsal

echo -en "\rHello\r\f" | netcat -w 1 IP-address port
cat file | netcat -w 1 IP-address port

küldhet karaktersorozatokat vagy fájlokat közvetlenül a megfelelo portra annak ellenorzésére, hogy a nyomtató valóban elérheto-e ezen a porton.

9.8.5 Hibás nyomtatás hibaüzenet nélkül

A nyomtatórendszerben a nyomtatási feladat akkor fejezodik be, ha a CUPS háttérrendszer befejezi az adatok elküldését a fogadónak (a nyomtatónak). Ha a fogadón a további feldolgozással probléma van, például a nyomtató nem képes a nyomtatóspecifikus adatok kinyomtatására, a nyomtatási rendszer ezt már nem veszi észre. Ha a nyomtató nem képes a nyomtatóspecifikus adatok kinyomtatására, akkor válasszon a nyomtatónak jobban megfelelo PPD-fájlt.

9.8.6 Letiltott sorok

Ha az adatátvitel a fogadóra több kísérlet után sem sikerül, akkor a CUPS háttérrendszer, például az USB vagy a socket hibát jelez a nyomtatási rendszer (a cupsd) felé. A háttérrendszer dönti el, hogy hány további kísérletet tegyen még, mielott visszajelezné, hogy az adatátvitel nem sikerült. Mivel ezek után a további kísérletek hiábavalók, a cupsd letiltja az adott sorra nyomtatást. A probléma okának megszüntetése után a rendszergazdának újra engedélyeznie kell a nyomtatást a cupsenable paranccsal.

9.8.7 CUPS tallózás: Nyomtatási feladatok törlése

Ha egy CUPS hálózati kiszolgáló meghirdeti a sorait a kliensgépek felé tallózáson keresztül, és egy megfelelo helyi cupsd aktív a kliensgépeken, akkor a kliens cupsd elfogadja az alkalmazások nyomtatási feladatait és továbbítja oket a kiszolgálón futó cupsd felé. Amikor a cupsd elfogad egy nyomtatási feladatot, akkor új feladatszámot ad neki. Ez azt jelenti, hogy a kliensgépen a feladat száma nem fog megegyezni a kiszolgáló feladatszámával. Mivel a nyomtatási feladatok jellemzoen azonnal továbbítódnak, nem törölhetok a feladatszámmal a kliensgépen, mivel a kliens cupsd-je a nyomtatási feladatot befejezettnek tekinti azonnal, ahogy az továbbítódott a kiszolgáló cupsd-je felé.

Ahhoz, hogy a nyomtatási feladatot törölni lehessen a kiszolgálón, az lpstat -h cups.example.com -o paranccsal állapítsa meg a feladat számát a kiszolgálón, feltéve, hogy a kiszolgáló nem végzett még a feladat kinyomtatásával (nem küldte még el a nyomtatóra). A feladatszám segítségével a kiszolgálón a következo paranccsal törölheto a nyomtatási feladat:

cancel -h cups.example.com queue-jobnnumber

9.8.8 Hibás nyomtatási feladatok és adatátviteli hibák

A nyomtatási feladatok a sorokban maradnak és a nyomtatásuk folytatódik, hacsak ki és be nem kapcsolja a nyomtatót, valamint újra nem indítja a számítógépet a nyomtatási folyamat közben. A hibás nyomtatási feladatokat a cancel paranccsal lehet eltávolítani a sorból.

Ha egy nyomtatási feladat hibás, vagy hiba történik a gép és a nyomtató közötti kommunikációban, akkor a nyomtató egy csomó papírt ki fog nyomtatni hibás karakterekkel, mert nem lesz képes az adatok helyes értelmezésére. Ennek megelozéséhez tegye a következoket:

  1. A nyomtatás leállításához vegye ki az összes papírt a tintasugaras nyomtatóból, vagy nyissa ki a lézernyomtató papírtálcáját. Egyes nyomtatókon külön gomb is van az éppen folyó nyomtatás megszakítására.

  2. Lehet, hogy a nyomtatási feladat még mindig a sorban van, mivel a feladatok csak akkor törlodnek a sorból, ha már teljes egészében el lettek küldve a nyomtatóra. Az lpstat -o vagy lpstat -h cups.example.com -o paranccsal ellenorizheti, melyik sor nyomtatása folyik éppen. A nyomtatási feladat törléséhez adja ki a cancel sor-feladatszám vagy cancel -h cups.example.com sor-feladatszám parancsot.

  3. Bizonyos adatok még a nyomtatási feladat sorból való törlése után is továbbítódhatnak a nyomtatóra. Ellenorizze, hogy fut-e a sorért felelos CUPS háttérfolyamat, és ha igen, állítsa le. Például a párhuzamos portra csatlakoztatott nyomtató esetében a fuser -k /dev/lp0 paranccsal szüntetheto meg minden olyan folyamat, amelyik még mindig a nyomtatót (pontosabban a párhuzamos portot) próbálja elérni.

  4. Állítsa teljesen alaphelyzetbe a nyomtatót: kapcsolja ki hosszabb idore. Ezután helyezzen bele papírt, majd kapcsolja újra be.

9.8.9 A CUPS nyomtatási rendszer hibaelhárítása

A CUPS nyomtatási rendszer problémái az alábbi eljárással kereshetok meg:

  1. Állítsa be az /etc/cups/cupsd.conf fájlban a LogLevel debug paramétert.

  2. Állítsa le a cupsd démont.

  3. Törölje a /var/log/cups/error_log* fájlokat, hogy ne kelljen nagyon nagy naplófájlokban keresgélni.

  4. Indítsa el a cupsd démont.

  5. Ismételje meg a muveletet, ami a hibához vezetett.

  6. Ellenorizze a /var/log/cups/error_log* fájlokban található üzeneteket a probléma okának meghatározásához.

9.8.10 További információk

Számos speciális probléma megoldása megtalálható a SUSE támogatási adatbázisában (http://en.opensuse.org/SDB:SDB). A vonatkozó cikkek kikereséséhez adja meg az SDB:CUPS keresési feltételt.