A nyomtatógyártók PPD-fájljai a manufacturer-PPDs csomagban
11.7. Hibaelhárítás
Az alábbi fejezetek 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.
11.7.1. Szabvá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 amióta a Windows-illesztő a GDI-felületet használja, ezeket a nyomtatókat szintén GDI-nyom-tató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ónyel-vé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 Windows 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, vagy 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.
Ahelyett, hogy megpróbál egy zárt forrású Linuxos illesztőprogramot működésre bírni, sokkal költséghatékonyabb, ha olyan nyomtatót vásárol, amely támogatja a szabványos nyomtatónyelveket (lehetőleg a PostScriptet). 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őprog-ram-verziók beszerzésére.
11.7.2. Nincs megfelelő PPD-fájl egy PostScript-nyomtatóhoz
Ha amanufacturer-PPDscsomag 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.
A PPD-fájl általában ZIP-archívum (.zip) vagy önkicsomagoló ZIP-archívum (.exe) formájában érhető el. A zip kiterjesztésű állomány kicsomagolása azunzipparanccsal lehetséges. Először tekintse meg a PPD-fájl licencfeltételeit. Ezután acupstestppd 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. Acupstestppdá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.
11.7.3. Pá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 address (I/O-cím):378(hexadecimális)
• Interrupt (megszakítás): mindegy
• Mode (mód):normal(normál),SPPvagyoutput only(csak kimenet)
• DMA: disabled (letiltva)
Ha a nyomtató a fenti beállítások ellenére sem érhető el a párhuzamos porton, akkor adja meg az I/O-címet a BIOS-ban található beállítással az/etc/modprobe.conf fájlban0x378formában. Ha két párhuzamos port van, amelyek I/O-címei378és278 (hexadecimális), akkor ezeket0x378,0x278formában kell megadni.
Ha a7-es megszakítás szabad, akkor az az alább bemutatott módon aktiválható (11.1.
példa -/etc/modprobe.conf: Az első párhuzamos port megszakítási módja [169]).
A megszakítási mód aktiválása előtt ellenőrizze a/proc/interruptsfá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árhu-zamos 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 azirq=nonebeállítással.
11.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
11.7.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 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ávolilpdellenőrzése
Az alábbi paranccsal ellenőrizhető, hogy létesíthető-e TCP-kapcsolat agép neve gépen futólpd-vel (port515):
netcat -z host 515 && echo ok || echo failed
Ha azlpdfelé nem létesíthető kapcsolat, akkor lehet, hogy azlpdnem fut, vagy valamilyen gond van a hálózattal.
Arootfelhasználó nevében adja ki az alábbi parancsot egy (várhatóan jó hosszú) állapotjelentés lekéréséhez a távoligép_nevegépen található sorról
(nyomtatási_sor), feltéve, hogy azlpdaktív és a gép elfogadja a kéréseket:
echo -e "\004queue" \
| netcat -w 2 -p 722 host 515
Ha azlpdnem válaszol, akkor lehet, hogy nem fut vagy valamilyen gond van a hálózattal. Ha azlpdválaszol, akkor a válaszból ki kell derülnie, hogy miért nem lehet nyomtatni agép_nevegép sorára (nyomtatási_sor). Ha a 11.2. példa
- Azlpdhibaüzenete [170] példában bemutatotthoz hasonló választ kap, akkor a problémát a távolilpdokozza.
11.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ávolicupsdellenőrzése
A CUPS hálózati kiszolgáló – alapértelmezés szerint –, az UDP631-es porton 30 másodpercenként üzenetet küld ki. Ennek megfelelően a következő parancs hasz-nálható annak kiderítésére, hogy található-e magát hirdető CUPS hálózati kiszolgáló a hálózaton. A parancs végrehajtása előtt győződjö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üldő CUPS hálózati kiszolgáló, akkor a kimenet az alábbi példában bemutatotthoz lesz hasonló: 11.3. példa - A CUPS hálózati ki-szolgáló nyilvános üzenete [170].
11.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 ahostgépen futócupsd-vel (631-es port):
netcat -z host 631 && echo ok || echo failed
Ha acupsdfelé nem létesíthető kapcsolat, akkor lehet, hogy acupsdnem fut, vagy valamilyen gond van a hálózattal. Azlpstat -h host -l -t pa-ranccsal lekérhető egy (várhatóan jó hosszú) állapotjelentés ahostgépen található összes sorról, feltéve, hogy acupsdaktív és a gép elfogadja a kéréseket.
A következő paranccsal ellenőrizhető, hogy ahostgé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 egyidejű nyomtatási feladatokkal kell megküzdeniük.
Mivel ennek oka a nyomtatókiszolgáló egységben található sorkezelő, ezért ezt a problémát nem lehet megoldani. 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, a TCP-soc-keten keresztül címzi meg a nyomtatót. Lásd: 11.4. - Hálózati nyomtatók [161].
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 nyom-tató a nyomnyom-tatókiszolgáló egységhez csatlakozik és be van kapcsolva, akkor ez a TCP-port általában meghatározható aznmapcsomagban találhatónmap segédprog-rammal a nyomtatókiszolgáló egység bekapcsolása után. Aznmap IP-cím pél-dá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ó a9100-as TCP socketporton keresztül is elérhető. Alapértelmezésben aznmap csak az/usr/share/nmap/nmap-servicesfájlban felsorolt ismert portokat ellenőrzi. Az összes lehetséges port ellenőrzéséhez használja aznmap
-p mettől-meddig IP-címparancsot. Ez viszont eltarthat egy darabig.
További információt talál aznmapparancs man oldalá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.
11.7.5. Hibás nyomtatás hibaüzenet nélkül
A nyomtatórendszerben a nyomtatási feladat akkor fejeződik be, ha a CUPS háttérrend-szer 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), akkor 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.
11.7.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áulUSBvagysockethibát jelez a nyomtatási rendszer (acupsd) felé. A háttér-rendszer határozza meg, hogy hány sikertelen nyomtatási kísérletre van szükség, amíg az adatátvitel lehetetlennek minősül. Mivel ezek után a további kísérletek hiábavalók, acupsdletiltja 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 acupsenableparanccsal.
11.7.7. CUPS tallózás: Nyomtatási feladatok törlése
Ha egy CUPS hálózati kiszolgáló meghirdeti a nyomtatási sorait a kliensgépek felé tallózáson keresztül és egy megfelelő helyicupsdaktív a kliensgépeken, akkor a kliens cupsdelfogadja az alkalmazások nyomtatási feladatait és továbbítja őket a kiszolgálón futócupsdfelé. Amikor acupsda kiszolgálón 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. Ennek oka az, hogy a klienscupsd-je a nyomtatási feladatot befejezettnek tekinti azonnal, ahogy az továbbításra került a kiszolgálócupsd-je felé.
Amikor szükségessé válik a nyomtatási feladat törlése a kiszolgálón, azlpstat -h cups.example.com -oparanccsal á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
11.7.8. Hibás nyomtatási feladatok és adatátviteli hibák
Amennyiben nyomtatás közben lekapcsolja a nyomtatót vagy a számítógépet, a nyom-tatási feladatok a nyomnyom-tatási sorban maradnak. A nyomtatás folytatódik, amint a számí-tógép (vagy a nyomtató) újra bekapcsolásra kerül. A hibás nyomtatási feladatokat a cancelparanccsal 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 kommu-nikációban, akkor a nyomtató sok papírt ki fog nyomtatni hibás karakterekkel, mert nem lesz képes az adatok helyes értelmezésére. A helyzet orvoslása érdekében kövesse az alábbi lépéseket:
1. A nyomtatás leállításához vegye ki az összes papírt a nyomtatóból, vagy nyissa ki a nyomtató 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 már teljes egészében el lettek küldve a nyomtatóra. Azlpstat -ovagylpstat -h cups.example.com -o paranccsal ellenőrizheti, melyik sor nyomtatása folyik éppen. A nyomtatási feladat törléséhez adja ki acancel sor-feladatszám vagycancel -h cups.example.com sor-feladatszámparancsot.
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. Ellenőrizze, hogy fut-e a sorért felelős CUPS háttérfo-lyamat és ha igen, állítsa le. Például a párhuzamos portra csatlakoztatott nyom-tató esetében afuser -k /dev/lp0paranccsal 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.
11.7.9. A 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.conffájlban aLogLevel debug para-métert.
2. Állítsa le acupsddé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 acupsddé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.
11.7.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/Portal:Support_database). A vonatkozó cikkek kikereséséhez adja meg azSDB:CUPSkeresési feltételt.