2002.12.01
Verziótörténet | ||
---|---|---|
Verzió 1.1 | 2003.06.26 | iw |
Hozzáadva a jelszó megadása megosztott windowsos nyomtatónál, javítások | ||
Verzió 1.0 | 2003.05.15 | tmm |
Első kiadás, az LDP átnézte | ||
Verzió 0.8 | 2003.04.11 | iw |
LaTeX-ről konvertálva |
Tartalom
A Debian GNU/Linux (http://www.debian.org) az első önkéntesek által támogatott Linux disztribúció. Sajnos Debianban a nyomtatóbeállítás nem mindig egyszerű feladat. Nehéz találni olyan Windows és Linux közötti nyomtatómegosztást lépésenkét leíró dokumentumot, amelyben a legújabb programeszközöket használják fel. Ez a HOGYAN mindkét probléma megoldását célozza meg.
Ez a HOGYAN bemutatja, miként lehet beállítani Debian rendszerben a nyomtatást parancssoros eszközök segítségével. Kifejti, hogyan lehet Linuxból dokumentumokat küldeni windowsos nyomtatókra, és hogyan lehet linuxos nyomtatókat Windowszal felszerelt számítógépekkel megosztani. Néhány gyakori probléma megoldására is mutatunk példát.
Ezen dokumentum legfrissebb változata megtalálható a http://excess.org/docs/linux_windows_printing.html honlapon. Ezen dokumentumhoz kapcsolódó Docbook/XML és az EPS fájlok letölthetők a http://excess.org/docs/src/ webhelyről. Kérjük, hogy a dokumentummal kapcsolatos hibajelentéseket, javításokat és javaslatokat az ian@excess.org e-mail címre küldjétek.
A legfőbb komponensek, amiket használni fogunk:
CUPS
Az Egységes UNIX Nyomtatási Rendszer (Common UNIX Printing System; http://www.cups.org) egy nyomtatási sorkezelő, valamint a nyomtatóhasználatot és adminisztrációt segítő programok gyűjteménye.
Samba
A Samba (http://www.samba.org) egy olyan program, amely a Windows fájl és nyomtató megosztási protokollok implementálásával lehetővé teszi a nem Windowst futtató számítógépek számára, hogy egy hálózaton windowsos gépként viselkedjenek.
Nyomtató eszközmeghajtók
A LinuxPrinting.org (http://www.linuxprinting.org) webhelyen a legtöbb nyomtatóhoz található eszközmeghajtó, itt egy adatbázisban tárolják a Linux alatt használható nyomtatók listáját. A Linux alatt használni kívánt nyomtatók minden típusához le kell tölteni egy eszközmeghajtót. Egy nyomtató eszközmeghajtó egy PPD fájlból és egy szűrő programból áll, PostScript nyomtatók esetén pedig csak egy PPD fájlból.
Minden szükséges program és programkönyvtár része a szabványos Debian rendszernek. Ezek a csomagok a megszokott Debian csomagkezelőkkel letölthetők és telepíthetők. A következő csomagokra van szükség:
CUPS szerver
CUPS BSD parancsok
CUPS kliens programok
A LinuxPrinting.org nyomtatást segítő programjai
Samba SMB/CIFS szerver UNIX-hoz
Samba SMB/CIFS klines UNIX-hoz
ESP Ghostscript ( http://www.cups.org/ghostscript.php)
Kizárólag teszt vagy nem stabil változat érhető el. A stabil Debiant használóknak a “gs” csomagot kell telepíteniük helyetteGNU A2PS ( http://www.gnu.org/software/a2ps/)
A következő parancsok segítségével telepíthetjük ezeket a csomagokat:
apt-get update apt-get install cupsys cupsys-bsd cupsys-client foomatic-bin samba smbclient gs-esp a2ps
Bizonyos nyomtatókhoz esetleg további csomagok is szükségesek. Például a HP InkJet nyomtatók helyes működéséhez a hpijs csomagot is telepíteni kell.
Az lpadmin parancsot használjuk nyomtatók beállításához. Megadunk egy példát egy lézernyomtató CUPS-al történő beállítására:
/usr/sbin/lpadmin -p Laser -v parallel:/dev/lp0 -P /root/laser.ppd /usr/bin/enable Laser /usr/sbin/accept Laser /usr/sbin/lpadmin -d Laser
Az első parancs egy új nyomtatót hoz létre “Laser” néven, amely az első párhuzamos portra csatlakozik és a /root/laser.ppd nevű PPD fájt használja. Ezután engedélyezzük a “Laser” nevű nyomtató használatát és beállítjuk, hogy az enable és az accept parancsokkal fogadjon nyomtatási feladatokat. Az utolsó parancs a “Laser” nevű nyomtatót állítja be alapértelmezett nyomtatónak. A nyomtató beállításról részletesebb információk a CUPS dokumentációjában olvashatók.
Dokumentumokat a nyomtatási sorba az lpr vagy az lp paranccsal vehetünk fel, a parancs után megadva a fájl nevét. A nyomtatási sor megtekinthető és a nyomtató állapota ellenőrizhető az lpstat -o illetve az lpstat -p parancsokkal. Egy nyomtatási feladat törléséhez a cancel vagy az lprm parancsot használjuk, megadva utána a feladat azonosítóját.
A CUPS nyomtatási sorkezelő démon neve cupsd. Ez a dokumentumokat először PostScript formátumra, majd pedig a nyomtató saját formátumára konvertálja (1. ábra - Helyi nyomtatás). A PostScriptet nem ismerő nyomtatók egy raszteres vagy bittérképes dokumentum formátumot használnak. A raszteres formátum mérete az eredeti PostScript formátumúnál sokkal nagyobb lehet, és elküldése a nyomtatóhoz több időt vesz igénybe.
A szűrők (filters) olyan programok, amelyek a dokumentumokat egyik formátumról egy másikra konvertálják. A CUPS nyomtatási sorkezelő mindent megtesz, hogy az elküldött dokumentumok számára találjon egy megfelelő szűrőt. Ha nincs olyan szűrő telepítve, amellyel a dokumentumot konvertálni lehetne, egy ehhez hasonló hibaüzenettet kapunk: lpr: unable to print file: client-error-document-format-not-supported.
Sok alkalmazás nem tartalmaz szűrőket a saját dokumentum formátumaihoz. Ezekkel az alkalmazásokkal készített dokumentumok csak magából az alkalmazásból nyomtathatók ki, hacsak nem mentjük el a dokumentumot PostScript vagy más szabványos formátumba.
Az SMB és a CIFS, a Windows fájl- és nyomtatómegosztási protokollja. A Samba szervert használjuk arra, hogy ezekkel a protokollokkal kommunikáljunk a Windowst futtató számítógépekkel. A CUPS konfigurálása előtt meg kell győződnünk róla, hogy tudunk kapcsolódni a Samba SMB/CIFS kliensével, az smbclient programmal a windowsos számítógéphez (2. ábra - Hálózati nyomtatás).
Egy példa windowsos számítógéppel való kapcsolat létrehozására:
/usr/bin/smbclient -L rice -U fred added interface ip=10.6.7.234 bcast=10.6.7.255 nmask=255.255.255.0 Got a positive name query response from 10.6.7.8 ( 10.6.7.8 ) Password: (not shown) Sharename Type Comment PRINTER$ Disk INKJET Printer STUFF Disk IPC$ IPC Remote Inter Process Communication
A bemutatott parancs a “rice” nevű windowsos számítógép azon megosztott erőforrásainak listáját kéri le, melyekhez a “fred” nevű felhasználó hozzáférhet. Ez az “INKJET” elnevezésű nyomtatót jeleníti meg.
Ha a Windows névszolgáltatása nem érhető el, meg kell adni a windowsos számítógép IP címét az -I kapcsoló segítségével:
/usr/bin/smbclient -I 10.6.7.8 -L rice -N
További információkért az smbclient használatával kapcsolatban olvasd el a Samba dokumentációját.
Mihelyt rendelkezésre áll egy Windows rendszerről működtetett nyomtató, be lehet állítani a CUPS-t. Első lépésként ellenőrizzük a következő paranccsal, hogy a telepített CUPS tartalmazza-e az smb háttérszolgáltatást (backend):
ls -l /usr/lib/cups/backend/smb
Ha ez a fájl nem létezik, hozzuk létre a következő paranccsal:
ln -s `which smbspool` /usr/lib/cups/backend/smb
Egy példa a fent említett nyomtató beállítására:
/usr/sbin/lpadmin -p RicePrinter -v smb://fred:mypass@rice/INKJET -P /root/inkjet.ppd /usr/bin/enable RicePrinter /usr/sbin/accept RicePrinter /usr/sbin/lpadmin -d RicePrinter
Az “lpadmin” parancs egy megosztott windowsos nyomtatót állít be a felhasználói név, jelszó, netbios név és nyomtató név paraméterként történő megadásával. A fent említett parancsok bővebb magyarázatát lásd a “CUPS helyi nyomtató beállítás” fejezetben. Ha a Windows névszolgáltatása nem üzemel, az első lpadmin parancsot egészítsük ki a -h kapcsolóval, melyet a windowsos számítógép IP címe követ a következő módon:
/usr/sbin/lpadmin -p RicePrinter -h 10.6.7.8 -i smb://fred:mypass@rice/inkjet -P /root/inkjet.ppd
Most már készen áll a nyomtató a tesztelésre. Küldjünk egy fájlt a nyomtatóra az lp paranccsal, utána írva a fájl nevét, vagy nyomtassunk egy dokumentumot valamelyik alkalmazásból.
A Samba az nmbd és az smbd démonokat hasznája windowsos gépekkel való fájl és nyomtató megosztáshoz. Az nmbd windowsos névkiszolgálóként működik, üzenetszórással tájékoztatva a gép nevéről a helyi hálózat windowsos számítógépeit. Az smbd fájl és nyomtatási kéréseket fogad windowsos gépektől (3. ábra - Nyomtató megosztása).
Minden megosztott linuxos nyomtatóhoz le kell tölteni és telepíteni kell a windowsos nyomtató eszközmeghajtókat. A windowsos nyomtató eszközmeghajtókat a nyomtató gyártójának honlapján lehet megtalálni.
Ha a nyomtatóhoz az anonim (anonymous) hozzáférés engedélyezve van, akkor a távoli nyomtatási feladatok elvégzéséhez létre kell hozni egy új felhasználót:
/usr/sbin/adduser --system --disabled-password smbprint
Ez a parancs létrehoz egy “smbprint” nevű felhasználót. Bizonyosodjunk meg arról, hogy a /home/smbprint könyvtárban, az “smbprint” nevű felhasználó munkakönyvtárában (home) elegendő lemezterület áll rendelkezésre a nyomtatási sor kezeléséhez. Ellenőrizzük, hogy az “smbprint” nevű felhasználónak ne legyen jogosultsága a rendszer működésében fontos szerepet játszó fájlok és könyvtárak olvasásához vagy módosításához. Ha a CUPS beállítása csak bizonyos felhasználóknak teszi lehetővé a nyomtatást, az “smbprint” nevű felhasználó számára engedélyezni kell azon nyomtatókhoz való hozzáférést, amelyeket meg akarunk osztani.
Az /etc/samba/smb.conf a Samba konfigurációs fájl. A következő példa egy konfigurációs fájl, amely a CUPS-t az “smbprint” nevű felhasználó számára állítja be:
[global] printcap name = cups printing = cups security = share [printers] browseable = yes printable = yes public = yes create mode = 0700 guest only = yes guest account = smbprint path = /home/smbprint
Megjegyezzük, hogy ez a beállítás mindenki számára engedélyezi a nyomtatást, aki hálózati kapcsolatot tud létesíteni számítógépünkkel, és ezért nem ajánlott használni olyan, nem megbízható hálózatra csatlakozó gépek esetén, mint például közvetlen Internet hozzáféréssel rendelkező számítógépek. Ha a hozzáférést szabályozni szeretnénk, akkor írjuk be a security = user vagy a security = domain sort, és további információkért olvassuk el a Samba kézikönyv oldalait.
Ha a Samba konfigurációs fájlhoz hozzáadtuk a fenti beállításokat, újra kell indítani a Samba szervert a következő parancs segítségével:
/etc/init.d/samba restart
A windowsos eszközmeghajtók egy meghatározott formátumra alakítják a nyomtatónak küldött kimenetüket, mielőtt a hálózatra küldik azt. Az /etc/cups/mime.convs fájl következő sorának elején lévő megjegyzés-karakter törlésével be kell állítani a CUPS-t, hogy fogadja az előre formázott kimenetet:
application/octet-stream application/vnd.cups-raw 0 -
Az /etc/cups/mime.types fájl következő sorának elejéről szintén távolítsd el a megjegyzés karaktert:
application/octet-stream
Most pedig beállítjuk a CUPS-t, hogy engedélyezze a kapcsolódást a hálózat többi gépe számára. Az /etc/cups/cupsd.conf fájlhoz adjuk hozzá ezeket a sorokat:
<Location /printers> AuthType None Order Deny,Allow Deny From None Allow From All </Location>Ahogy a Samba beállítások esetén, ez a konfiguráció is engedélyezi a nyomtatóhoz való hozzáférést bármilyen számítógép számára, ezért nem ajánlott biztonsági szempontból megbízhatatlan hálózatokra csatlakozó számítógépek esetén. A nyomtatókhoz való hozzáférés szabályozásával kapcsolatos információkért olvasd el a cupsd.conf kézikönyv oldalait és a CUPS dokumentációt.
Végül indítsuk újra a CUPS-t a következő paranccsal:
/etc/init.d/cupsys restart
Ha minden jól ment, a linuxos nyomtatók most már meg vannak osztva a helyi hálózat windowsos gépei számára. Windowsos számítógépek esetén hálózati nyomtató hozzáadása a szokásos módon történik, és ne felejtsünk el tesztoldalt nyomtatni.
Ha az smbclient CUPS által használt segédprogramja, az smbspool nem tud kapcsolatot létesíteni, hibaüzeneteket ad, amelyek tréfásak ugyan, de nem túl hasznosak. Ilyen üzenetre példa: Unable to connect to SAMBA host: Success. A kapcsolódási hibáknak egy másik jele, amikor úgy tűnik, hogy a dokumentumok megrekednek a nyomtatási sorban, ha windowsos nyomtatóra nyomtatunk.
A CUPS naplójának legfrissebb bejegyzéseit a következő paranccsal nézhetjük meg:
/usr/bin/tail /var/log/cups/error_log
Ha a cli_connect() failed... üzenethez hasonlót látunk, akkor az smbspool nem tatálta meg azt windowsos számítógépet, amihez csatlakozni próbáltunk. Ellenőrizzük, hogy jól írtuk-e a windowsos számítógép nevét (host name). Ellenőrizzük, hogy a windowsos számítógép be van-e kapcsolva, és hogy a hálózati kapcsolata működik-e. Bizonyosodjunk meg róla, hogy az smbclient segítségével tudunk csatlakozni hozzá a “Kapcsolódás a Windowshoz” fejezetben bemutatott módon.
Ha az SMB tree connect failed: ERRSRV - ERRinvnetname üzenethez hasonlót látunk, akkor az smbclient sikeresen kapcsolódott a windowsos számítógéphez, de nem tudta felvenni a kapcsolatot a kért nyomtatóval. Ellenőrizzük az smbclient segítségével a “Kapcsolódás a Windowshoz” fejezetben bemutatottak szerint, hogy helyesen írtuk-e le a megosztott nyomtató nevét.
Ide tartozik az, ha nem lehet nyomtatni egy helyi nyomtatóra, és ha a nyomtatási feladatok anélkül tűnnek el a nyomtatási sorból, hogy nyomtatásra kerülnének. Esetleg olyan elbizonytalanító hibaüzeneteket is láthatsz, mint például a Child process 2384 exited with status 32. üzenet.
A CUPS naplózását “debug” szintre beállítva több üzenetet láthatunk arról, hogy mi történik mielőtt egy nyomtatási feladat hibát jelezve megszűnik.
Nyissuk meg a CUPS elsődleges konfigurációs fájlját, az /etc/cups/cupsd.conf fáljt egy ASCII szövegszerkesztővel.
Írjuk be a “LogLevel warn” sor helyett a “LogLevel debug” sort.
Mentsük el a konfigurációs fájlt és lépjünk ki a szövegszerkesztőből.
Indítsuk újra a CUPS szervert a következő paranccsal:
/etc/init.d/cupsys restart
A CUPS naplózását a következő paranccsal követhetjük nyomon:
/usr/bin/tail -f /var/log/cups/error_log
Léteznie kell a Scheduler shutting down due to SIGTERM sornak. Ez azt jelenti, hogy a CUPS szerver sikeresen leállt.
A nyomtatási feladatot küldjük el újra, és keressünk a kiírt nyomkövetési üzenetek (debug messages) között valami hasznavetőt. A GNU Ghostscript 7.05: Can't start ijs server 'hpijs'. egy ilyen hasznos nyomkövetési üzenet. Ez esetben a megoldás a “hpijs” csomag telepítése.
Ha nem tudjuk meghatározni a hiba okát, a kapott hibaüzenetek kulcsszavaira az Interneten keressünk rá. Valószínű, hogy valaki már korábban megoldotta a problémát. Meg lehet próbálni a “Szükséges csomagok” fejezetben felsorolt csomagok legújabb verzióra történő frissítését is.
Copyright © 2003 Ian Ward.
Ez a kézikönyv egy szabad szoftver; továbbterjeszthető és/vagy módosítható a Free Software Foundation (Szabad Szoftver Alapítvány) által közzétett GNU General Public License feltételei szerint; a GNU GPL2 vagy későbbi változata alapján.
Annak reményében került közzétételre, hogy hasznosnak bizonyul, de mindenféle garancia nélkül; beleértve a eladhatóságot vagy egyéb célokra való használhatóságot Olvasd el a GNU GPL-t a további részleteket illetőlen.
A GNU GPL másolata megtalálható a /usr/share/common-licenses/GPL könyvtárban a Debian GNU/Linux összeállítás esetén, vagy a WEB-en a http://www.gnu.org/copyleft/gpl.html honlapon. Megkaphatod postai úton is, ha írsz a Szabad Szoftver Alapítványnak a következő címre: Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
A magyar fordítást Mócza Zsolt készítette (2002.09.09). A lektorálást Daczi László végezte el (2003.09.15). Bármilyen fordítással kapcsolatos észrevételt a linuxhowto@sch.bme.hu címre küldjetek. A dokumentum legfrissebb változata megtalálható a Magyar Linux Dokumentációs Projekt honlapján.