9.8.08

Vzdálený tisk přes CUPS

Před několika dny jsem za jednu službičku (nastavoval jsem poštovní server) pro jednu dávnou pracovní známost z brigády dostal sice použitou, ale funkční laserovou tiskárnu HP LaserJet 6L. Je to černobílá tiskárna, nicméně já skoro nic netisknu a když už, tak většinou text (přednášky a dokumentaci do školy třeba), takže pro mé potřeby je více než vyhovující.
Tiskárna má paralelní port, ten bohužel nemám na notebooku (existuje redukce paralelní konektor - USB konektor), na starém dobrém domácím PC však ano. Zapojil jsem tedy tiskárnu k tomuto PC a s menšími obtížemi jsem ji rozjel (nastavte v jádře CONFIG_PRINTER=m, CONFIG_PARPORT=y, CONFIG_PARPORT_PC=y a nezapomeňte pak ten modul lp.ko natáhnout :-)
Protože mám domácí síť, do které jsem zapojen ještě s notebookem a brácha s Windows, rozhodl jsem se, že zkusím rozjet síťovou tiskárnu, abych mohl tisknout z jakéhokoliv počítače doma. Na netu je sice spousta návodů, ale i přesto mi trvalo delší dobu a hodně pokusů, než jsem zdánlivě jednoduchou věc nastavil. Holt napoprvé se dělá všecko nejhůř. :-)
Takže pokud hledáte něco podobného, zkuste se řídit mým postupem, co jsem použil doma.
Tiskový server
Na tiskovém serveru (v mém případě to PC) musí být rozjeta dobře tiskárna (návody na rozjetí jsou všude po netu, každopádně ve zkratce spusťte cupsd démona, do prohlížeče zadejte http://localhost:631 a můžete snadno nastavovat), s největší pravděpodobností bude její adresa: Device URI: parallel:/dev/lp. U tiskárny dále povolte v Administration části položky Share published printers connected to this system a Allow printing from the Internet. Ostatní nejsou nijak třeba. Potvrďte Change settings.
Dále v záložce Printers u vaší tiskárny, kterou chcete sdílet, klikněte na tlačítko Publish printer.
To by mělo být vše. Používáte-li firewall, nezapomeňte povolit port 631, přes který bude probíhat komunikace protokolu IPP. V mém případě to vypadá následovně:
iptables -A INPUT -p TCP -s localhost -j ACCEPT
iptables -A INPUT -p TCP -s ! 10.129.99.232/29 --dport 631 -j DROP
iptables -A INPUT -p TCP -s 10.129.99.233 --dport 631 -j DROP
Toto povolí přístup k tiskovému serveru z lokálního stroje a ze všech strojů ze sítě 10.129.99.232/29 (krom 10.129.99.233, což je AP a to mi na tiskový server přistupovat nemusí) - nechceme přece, aby nám mohl z tiskárny tisknout kdokoliv. To samé se dá nastavit i v konfiguračním souboru cupsd.conf, nicméně je to ochrana až na úrovni aplikační vrstvy, firewall chrání na síťové vrstvě... Prostě každý ať si to nastaví dle svých potřeb. :-)
Tiskový klient
I když mluvíme o tiskovém klientu (v mém případě notebook připojený do sítě), i tak je třeba nainstalovat i zde CUPS. Tento CUPS však bude přistupovat k CUPSu na tiskovém serveru skrze protokol IPP. Nainstalujeme tedy CUPS a do prohlížeče zadáme také http://localhost:631. V Administration části dáme vyhledat nové tiskárny a měla by se automaticky najít naše tiskárna, respektive všechny dostupné tiskárny na síti s povoleným protokolem IPP. Možná bude ještě třeba nastavit soubor /etc/cups/client.conf a zadat do něj řádek:
ServerName nazev_vzdaleneho_pocitace
kde nazev_vzdaleneho_pocitace odpovídá doménovému názvu počítače v síti. V mém případě se tiskový server jmenuje m1c4a1, v souboru /etc/cups/client.conf tedy mám:
ServerName m1c4a1
Po této případné změně restartujte CUPS démona na tiskovém klientovi a zkuste vzdálený počítač vyhledat sami, mělo by se to povést. Osobně se mi pak tiskárna na klientovi zobrazuje takto: Device URI: ipp://m1c4a1:631/printers/LaserJet Všimněte si protokolu ipp:// a ne parallel://, jak je tomu u serveru.Ve Windows také není problém tuto tiskárnu přidat a to jako síťovou tiskárnu, možná jen někde budete muset místo ipp:// zadat http:// (aspoň tak jsem to musel udělat já u Windows 2003 Serveru).
Nyní můžete již bez problémů tisknout vzdáleně. Doporučuji případně překompilovat potřebné balíčky, hlavně třeba gtk, pro podporu cups, pokud ji již nemáte. Jinak budete moci tisknout maximálně přes příkazovou řádku a lpr.

1 komentář:

Procházky po Praze řekl(a)...

Diky clanecek mi pomohl nemohl jsem nikde najit format toho URL na kterym je vzdalena tiskarna ted uz to frci :-)