Eida.cz - Síťový tisk z CUPS/Samba v 64bit Windows

Síťový tisk z CUPS/Samba v 64bit Windows

Eida

Už několikrát tu byla řeč o tom, jak jsme v srpnu dostali k Vánocům nový stroj a co všechno v něm bylo za zapeklité potíže, počínaje nepochopitelnou chybou na straně dodavatele, podivnou čipovou sadou a pseoudoRAIDem, či jen předinstalovanou 32-bitovou verzí Windows. Nějakou dobu pak zahálel pod stolem, než se koncem října podařilo na něj dostat opravdový operační systém a připravit ho tak do aktivní služby. Od té doby uplynulo kolem 140 dní, než nám veškeré byrokratické průtahy, vrtochy ISP a rozličné rekonstrukce umožnily pohnout se konečně z místa.

Tento server primárně slouží k souborovému sdílení pro jednu ohavnou windowsí aplikaci. K němu je ovšem přes USB připojena skvělá kopírka a bylo by těžké této možnosti nevyužít a nenabídnout její používání ostatním klientům v síti - zvlášť, pokud by to šlo jediným kliknutím a bez jakékoliv složité instalace. Minule jsem letem květem popsal první krok, a to přípravu 64bitových debianích ovladačů pro canoní UFRII pro použití v CUPS.

Když už je tiskárna funkční v samotném CUPS a všechno je v pořádku, zbývá ji už jen zpřístupnit nějakým způsobem do sítě. Nejsnazší může být dosažení tohoto záměru pomocí IPP, což bohužel naše síťová infrastruktura z nejasných důvodů odmítá a navíc není pro BFU tak snadné takovou tiskárnu samovolně nainstalovat, nebo dokonce i vůbec najít. A když už do Windows sdílíme soubory, sdílet tiskárnu stejnou cestou je logická volba. Ke slovu se dostává Samba (díky ní lze také bezelstně využívat výhod NetBIOSu běžícího vysoko nad IP; takto nakonfigurovaný klient bude bez problémů fungovat v různých sítích, na kterých se server může nacházet - ať už jsou to lokální wifi/kabelové okruhy, nebo i VPN).

Využití komba CUPS/Samba skýtá další dvě zásadní výhody. Tou první je skoro až magická automatická instalace ovladačů tiskárny jediným kliknutím, druhou pak fakt, že tyto ovladače jsou úplně obecné postscriptové, a tedy funkční i pro jakoukoliv jinou tiskárnu sdílenou stejnou cestou. Na řadu pak přichází příprava nastavení Samby.

smb.conf 334 bajtů
[global]
	#security = share
	guest account = nobody
	printcap name = cups
	printing = cups
	load printers = Yes

[print$]
	comment = Ovladace tiskarny
	path = /cesta/ovladace
	write list = root
	guest ok = Yes
	browseable = Yes
	read only = Yes

[kopirka]
	comment = Kopirka
	path = /var/spool/samba
	guest ok = Yes
	printable = Yes

Samba - konfigurace

Celkem hračka, skutečná magie teprve přijde. CUPS sám v sobě už po instalaci obsahuje polovinu ovladačů pro Windows, tedy aspoň jejich 32bitovou verzi; jsou šikovně umístěny v /usr/share/cups/drivers/. K nim je ještě potřeba ručně přidat systémové postscriptové ovladače přímo z Windows (nebo po stažení tytéž od Adobe). Jedná se konkrétně o soubory  ps5ui.dll, pscript.hlp, pscript.ntf a pscript5.dll, ve Windows dohledatelné v balíčku Windows\system32\spool\drivers\w32x86\pcc\ntprint.inf_{něco}.cab.

Toliko stačí pouze pro 32bitové Windows. Ovšem v našem prostředí jsou nové HP notebooky běžící 64bitové Windows 7, ve kterých toto rozhodně fungovat samo od sebe nebude. Už ze samotné adresářové struktury tiskových ovladačů ve Windows v system32 je patrné, že se počítá s různými architekturami. 64bitová architektura (x86_64, AMD64, EMT64) je tu označena jako x64 (neplést s IA64, což je něco úplně jiného!). Nezbývá než adresář x64 vytvořit (/usr/share/cups/drivers/x64) a umístit do něj 64bitovou verzi ps-souborů. Kamenem úrazu je tu ovšem nepřítomnost 64bitových ovladačů CUPS, které nejsou součástí instalace. Získat se ale dají například stažením ze SVN repozitáře aktuáního CUPS, nebo je možné je zkusit i vlastnoručně sestavit ve WinDDK. Když už jsou všechny tyto soubory na svém místě, stačí už jen jako root začarovat cupsaddsmb -a -v (příkaz vyžaduje přihlášení do Samby, musí tedy existovat - pro zjednodušení - účet root v Sambě a její režim security na user). To tyto ovladače spolu s profilem tiskárny nakopíruje do sdíleného adresáře specifikovného cestou v print$ v konfiguraci Samby. 

Po reloadu konfigurace Samby by jednak měly být vidět připojené tiskárny a taky by mělo všechno správně fungovat. Za předpokladu, že je použité zjednodušené sdílení (security = share), lze z Windows klienta přes síť server vyhledat a jen poklepat na viditelnou tiskárnu. Měla by se vyvolat hláška o tom, zda jsou ovladače důvěryhodné - to nezbývá než potvrdit. Pokud je všechno v pořádku, je tiskárna připravena k použití. Teoreticky. Teoreticky funguje i komunismus.

Bohužel v 64bitových Windows 7 takovýto pokus skončí s chybou a tiskárnu se nezdaří přidat (v XP a 2003 by to ovšem pravděpodobně jít mělo). Ve skutečnosti je jediný problém v dekoraci informačního souboru cups6.inf, který ovšem není pro provoz tiskárny potřeba - stačí ručně překopírovat cups a ps soubory do Windows\system32\spool\drivers\x64\3 - pak by příští pokus neměl skončit s chybou a tiskárna se zaregistruje správně. Aby šla i tato potíž obejít, lze se vrátit k nastavení Samby a vyzkoušet to znovu s use client driver = Yes. Zní to trochu divně vzhledem k původnímu záměru, ale pro klienty s Windows 7 to třeba zabere :). 

Jako třešničku na dortu pro naprostou nezávislost na klientské platformě při dané jednoduchosti lze ještě vysílat oznámení o přítomnosti Samby přes zeroconf, což zahrnuje jen instalaci démona Avahi a jeho nastavení pro Sambu, například následovně.

samba.service.txt 318 bajtů
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">

<service-group>
    <name replace-wildcards="yes">%h server</name>
    <service>
        <type>_smb._tcp</type>
        <port>139</port>
        <host-name>triceratops</host-name>
    </service>
</service-group>
Avahi - inzerování Samby

Tím je docíleno čisté jednoduchosti například i pro klienty Mac OS X, kteří tiskárnu snadno sami najdou přes Bonjour.

Mac OS X - sdílená tiskárna v Bonjour

Byla to zajímavá doba a multiplatformní síťový tisk celkem výzva, kterou se povedlo úspěšně zdolat a naše síť je teď mocnější než kdy dřív. Časem se ještě může stát, že bude diskuse o vynuceném a nevynuceném zamykání souborů, ale teprve čas ukáže, jestli něco takového bude skutečně potřeba.

Tento článek přečetlo již 843 čtenářů (0 dnes).

Komentáře

Nový komentář