HibaelhárításHibaelhá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 lehetőséget adnak a megkerülésükre. Szó lesz a GDI-nyomtatókról, a PPD-fájlokról és a portbeállításokról, valamint a hálózati nyomtatókkal kapcsolatos legjellemzőbb gondokról, a rossz nyomtatási kimenetekről valamint a sorkezelésről.

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

A szabványos nyomtatónyelveket nem támogató, csak speciális vezérlőszekvenciá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 illesztőprogramot. 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 illesztőprogramot és mivel a Windows-illesztő 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érelhetők.

Egyes nyomtatók átkapcsolhatók, hogy GDI-módban műkö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-illesztő 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 bővítőmodulok.

Egyes gyártók egyedi illesztőprogramokat biztosítanak GDI-nyomtatóikhoz. Az egyedi illesztőprogramok hátránya, hogy nincs garancia arra, hogy ezek működnek a telepített nyomtatórendszerrel, és hogy megfelelők 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-illesztőprogramok 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 illesztőprogram problémáját egyszer és mindenkorra: nincs többé szükség speciális illesztőprogramok telepítésére és beállítására, valamint a nyomtatási rendszer fejlesztései miatt új illesztőprogram-verziók beszerzésére.

Nincs megfelelő PPD-fájl egy PostScript-nyomtatóhozNincs megfelelő PPD-fájl egy PostScript-nyomtatóhoz

Ha a manufacturer-PPDs csomag nem tartalmaz megfelelő PPD-fájlt egy PostScript-nyomtatóhoz, akkor használható a nyomtatógyártó illesztőprogram CD-jén található PPD-fájl, vagy letölthető 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. Először tekintse meg a PPD-fájl licencfeltételeit. Ezután a cupstestppd segédprogrammal ellenőrizze, hogy a PPD-fájl megfelel-e az „Adobe PostScript Printer Description File Format Specification, version 4.3.” specifikáció előí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 lehetőleg meg kell szüntetni. Ha szükséges, kérjen helyes PPD-fájlt a nyomtató gyártójától.

Párhuzamos portokPárhuzamos portok

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

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

  • Megszakítás: mindegy

  • Mód: Normál, SPP vagy Csak kimenet

  • DMA: letiltva

Ha a nyomtató a fenti beállítások ellenére sem érhető 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ó (20.1. példa - /etc/modprobe.conf: Az első párhuzamos port megszakítási módja ). A megszakítási mód aktiválása előtt ellenőrizze 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.

20.1. példa - /etc/modprobe.conf: Az első párhuzamos port megszakítási módja

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

Hálózati nyomtatók csatlakoztatása 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 működik, akkor a probléma a hálózatban lesz.

A TCP/IP-hálózat ellenőrzése

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

Távoli elérés ellenőrzése

A cupsd alapértelmezésben csak a belső hálózati illesztőkön figyel (localhost). Ellenőrizze, hogy az /etc/cups/cupsd.conf fájl Listen irányelvében (irányelveiben) engedélyezett-e a hozzáférés a külső hálózatról:

Listen 192.168.2,*:631
Tűzfalbeállítások ellenőrzése

A CUPS-kiszolgálónak vagy a belső tűzfalzónában kell lennie, vagy ha a külső zónában van, akkor képesnek kell lennie adatok küldésére és fogadására a 631-es UDP- és TCP-porton keresztül.

Távoli lpd ellenőrzése

Az alábbi paranccsal ellenőrizhető, hogy létesíthető-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íthető kapcsolat, akkor lehet, hogy az lpd nem fut, vagy valamilyen gond van a hálózattal.

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 gép_neve 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 gép_neve gépsorára (queue). Ha a 20.2. példa - Az lpd hibaüzenete példában bemutatotthoz hasonló választ kap, akkor a problémát a távoli lpd okozza.

20.2. példa - 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 ellenőrzé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övetkező parancs használható annak kiderítésére, hogy működik-e CUPS hálózati kiszolgáló a hálózaton.

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

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

20.3. példa - A CUPS hálózati kiszolgáló nyilvános üzenete

ipp://192.168.2.202:631/printers/queue

Az alábbi paranccsal ellenőrizhető, hogy létesíthető-e TCP-kapcsolat a gép_neve gépen futó cupsd-vel (631-es port):

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

Ha a cupsd felé nem létesíthető kapcsolat, akkor lehet, hogy a cupsd nem fut, vagy valamilyen gond van a hálózattal. Az lpstat -h host -l -t paranccsal lekérhető egy (várhatóan jó hosszú) állapotjelentés a gép_neve 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övetkező paranccsal ellenőrizhető, hogy a gép_neve gépen található sor (queue)) elfogad-e egy mindössze egyetlen soremelés karakterből á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-kezelők 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 működő nyomtatásisor-kezelő okozza, semmit nem lehet tenni vele. Kerülő megoldásként ki lehet hagyni a nyomtatókiszolgáló egységben működő nyomtatásisor-kezelőt, ha közvetlenül, egy TCP-socketen keresztül címzi meg a nyomtatót. Lásd:20.5. szakasz - Hálózati nyomtatók

Ily módon a nyomtatókiszolgáló egység az adatátvitel különböző formái (TCP/IP-hálózat és helyi nyomtatókapcsolat) közötti átalakítóvá egyszerűsö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övetkező 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 érhető el. Alapértelmezésben az nmap csak az /usr/share/nmap/nmap-services fájlban felsorolt ismert portokat ellenőrzi. Az összes lehetséges port ellenőrzéséhez használja az nmap -p mettől-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 megfelelő portra annak ellenőrzésére, hogy a nyomtató valóban elérhető-e ezen a porton.

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

A nyomtatórendszerben a nyomtatási feladat akkor fejeződik 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 megfelelő PPD-fájlt.

Letiltott sorokLetiltott 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, mielőtt visszajelezné, hogy az adatátvitel nem sikerült. Mivel a 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 az /usr/bin/enable paranccsal.

CUPS tallózás: Nyomtatási feladatok törléseCUPS 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 megfelelő helyi cupsd aktív a kliensgépeken, akkor a kliens cupsd elfogadja az alkalmazások nyomtatási feladatait és továbbítja őket 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ˇjellemzőenˇazonnalˇtovábbításraˇkerülnek,ˇnemˇtörölhetőkˇaˇfeladatszámmalˇaˇkliensgépen,ˇmivelˇaˇkliensˇcupsd-jeˇa nyomtatási feladatot befejezettnek tekinti azonnal, ahogy az továbbításra került 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övetkező paranccsal törölhető a nyomtatási feladat:

cancel -h cups.example.com queue-jobnnumber

Hibás nyomtatási feladatok és adatátviteli hibákHibá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 megelőzéséhez tegye a következőket:

  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örlődnek a sorból, ha teljes egészükben el lettek küldve a nyomtatóra. Az lpstat -o vagy lpstat -h cups.example.com -o paranccsal ellenőrizheti, 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 feladatnak a sorból törlése után is továbbítódhatnak a nyomtatóra. Ellenőrizze, hogy fut-e a sorért felelős 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üntethető 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 időre. Ezután helyezzen bele papírt, majd kapcsolja újra be.

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

A CUPS nyomtatási rendszer problémái az alábbi eljárással kereshetők 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 műveletet, ami a hibához vezetett.

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