V dnešnej časti seriálu si predstavíme tlačové služby Samby. Ukážeme si tlač z linuxového klienta na tlačiareň pripojenú k Windows boxu a takisto si nastavíme Samba server na Linux boxe, ku ktorému máme pripojenú tlačiareň a tlačiť budeme z Windowsu.
1. Tlačiareň pripojená k Windowsu
Pri použití tlačového démona CUPS (Common UNIX Printing System) máte v podstate 2 možnosti, ako spojazdniť tlač z Windows boxu. Prvá metóda používa LPD protocol. Tá druhá, ako ste si určite domysleli, využíva na tlač Sambu, teda protokol SMB a keďže práve o nej je náš seriál, prvej metóde sa venovať nebudeme.
Na Windows boxe nemusíte nastavovať takmer nič, jediná vec, ktorú je potrebné vykonať, je dať zdielať tlačiareň a nastaviť jej nejaké vhodné meno.
Na počítači, kde máme Linux musíme mať nainštalované balíčky CUPS, Sambu a gutenprint, čo je sada driverov pre vačšinu tlačiarní. Ak sú nainštalované, máme vystarané a môžeme sa pustiť do samotnej konfigurácii. Spustíme si teda CUPS démon a taktiež aj Sambu. Gentoo má defaultne skripty v adresári /etc/init.d/ a spustenie je veľmi jednoduché:
# /etc/init.d/samba start
# /etc/init.d/cupsd start
Následne si v prehliadači otvoríme adresu localhost:631. Na akom porte vám bude CUPS démon bežať si samozrejme môžete zmeniť. Stačí editovať súbor /etc/cups/cupsd.conf, vyhľadať riadok Listen localhost:631
, upraviť ho podľa potrieb a následne reštartovať démon.
Ak všetko prebehlo v poriadku, mali by ste vidieť administračné rozhranie podobné tomu, aké môžete vidieť na obrázku nižšie.
Klikneme na tlačítko Add Printer, nejako výstižne ju pomenujeme (Name), (Location a Description sú nepovinné), v ďalšom kroku vyberieme z ponuky možností voľbu Windows Printer via SAMBA, ďalej nastavíme URI našej tlačiarne a to v tvare:
smb://meno:heslo@IP_adresa/nazov_zdielanej_tlaciarne
kde meno
a heslo
patria existujúcemu užívateľovi na Windowse, ostatné položky sú dúfam jasné.
V posledných krokoch už len zvolíme výrobcu tlačiarne a výrobný model. Je možné, že práve pridaná tlačiareň sa nezobrazí v administračnom rozhraní a budete musieť reštartovať Sambu a CUPS démon, čo je zároveň posledný krok, o nič viac sa nemusíte starať ani nastavovať, už len veselo používať vašu tlačiareň ;).
2. Tlačiareň pripojená k Linuxovému serveru
V prípade tlačiarne, ktorá je pripojená k Linuxu a tlače z Windows klienta je situácia o trochu ,,zložitejšia", čo značí o niečo viac konfigurácie, no nič extra zložité to v praxi nie je.
Predpokladám, že balíčky samba a cups uz máte nainštalované a teda sa pustíme do samotejne konfigurácie nášho servera.
Prvá vec, ktorú musíme zistiť, je typ našej USB zbernice cez príkaz lspci
. Rozlišujeme dva typy, OHCI a UHCI. Podľa toho aký typ máme, si nastavíme jadro. Výpis by mal vyzerať podobne, ako u mňa:
2.1 Nastavenie jadra
Pre USB tlačiareň
V jadre prejdeme na položku Device Drivers
-> USB Support
, kde zaškrtneme položky:
- Support for Host-side USB
- EHCI HCD (USB 2.0) support
- UHCI HCD (most Intel and VIA) support
- USB Printer support
Pre tlačiareň s paralelným portom
Dostname sa na položku Device Drivers
-> Character devices
a zakompilujeme:
- Parallel printer support
2.2 Konfigurácia CUPS
Ako prvý si editujeme súbor /etc/cups/mime.convs
, čo je súbor, z ktorého CUPS zisťuje ako má zaobchádzať z rôznymi dátovými súbormi, teda ako prekonvertovať jeden dátový typ na iný. V našom prípade si v tomto súbore odkomentujeme riadok:
application/octet-stream application/vnd.cups-raw 0 -
Následne upravíme súbor /etc/cups/mime.types
a odkomentujeme riadok:
application/octet-stream
Teraz potrebujeme nastaviť našu tlačiareň, buď cez užívateľsky prívetivejšie web rozhranie http://localhost:631/, alebo úpravou súboru /etc/cups/printers.conf
, ktorého obsah vymažeme a pridáme nasledovné (podľa potreby samozrejme upravíme):
<DefaultPrinter HPLaserJet1000> -- Názov tlačiarne. Info HP LaserJet 1000 -- Nejaký popis tlačiarne. Location usb:/dev/usb/lp0 -- Umiestnenie našej tlačiarne v súb. systeme (dev zariadenie) DeviceURI usb://uri/mojej/tlaciarne -- URI tlačiarne State Idle -- Nastavuje počiatočný status tlačiarne (Idle/Stopped) Accepting Yes -- Špecifikuje, či tlačiareň prijíma nové joby JobSheets none none -- Nastavuje banner stránky použitý pre tlačiareň, v tomto prípade žiaden QuotaPeriod 0 -- Hodnota nastavuje job-quota-period (v sekundách) PageLimit 0 -- Hodnota špecifikuje job-page-limit KLimit 0 -- Nastavuje job-k-limit </Printer>
Možných volieb je samozrejme viacero a kvôli stručnosti článku vás navigujem sem.
Poslednou vecou, ktorú na tomto mieste potrebujeme urobiť, je editácia súboru /etc/cups/cupsd.conf
(podrobnejšie nastavenie bude ukázané v niektorej z nasledujúcej časti seriálu), doležité sú prvé 2 riadky:
User lp Group lp
Ak potrebujete pristupovať k web rozhraniu z nejakého subnetu, napr. v našom prípade 192.168.1.x, zapíšte nasledujúce riadky:
<Location /> Order Deny,Allow Deny From All Allow From 192.168.1.* </Location> <Location /admin> AuthType Basic AuthClass System Order Deny,Allow Deny From All Allow From 192.168.1.* </Location> Alebo ak chcete blokovať prístup: <Location /> Order Deny,Allow Deny From All Allow From 127.0.0.* </Location> <Location /admin> AuthType Basic AuthClass System Order Deny,Allow Deny From All Allow From 127.0.0.* </Location>
Ak vám niečo z vyššie uvedeného príkladu nie je zrozumiteľné, odporúčam preštudovať manuálové stránky CUPS, ktoré sú vo väčšine prípadov bohaté na informácie, ktoré by vás mohli zaujímať.
Od tohto momentu máte nakonfigurovaný démon CUPS a mali by ste byť schopný lokálne tlačiť súbory. Či je to naozaj tak, si môžete overiť cez webové rozhranie, kde si môžete vytlačiť skúšobnú stránku.
2.3 Konfigurácia Samby
V tomto bode si musíme najprv vytvoriť 2 adresáre:
# mkdir -p /usr/share/cups/drivers -- adresár, kde sa nám budú sťahovať ovládače pre Windows workstation
# mkdir -m 777 /home/shared-folder -- tento budeme používať na kopírovanie nejakých súborov z Windows boxu
Teraz si vytvoríme súbor /etc/samba/smb.conf
:
[global] workgroup = MSHOME netbios name = mini-itx server string = file and printer server hosts allow = 192.168.1. security = user load printers = yes printing = cups printcap name = cups use client driver = no [share] path = /home/shared-folder comment = shared files read only = no browseable = yes guest ok = yes [printers] comment = All Printers path = /var/spool/samba browseable = yes printable = yes writable = no guest ok = yes [print$] comment = Printer Drivers path = /usr/share/cups/drivers browseable = yes guest ok = yes read only = yes write list = root
Pre vaše potreby si upravte nasledovné položky:
- netbios name -- nastavuje NetBIOS name, pomocou ktorého je Samba server rozpoznávaný. Je to názov, ktorý uvidíte vo Windowse pod Network Neighborhood (Susedia v sieti, resp. Miesta v sieti)
- workgroup -- ovláda, pod akou pracovnou skupinou sa váš server bude klientom zobrazovať
- server string -- určuje, aký string sa zobrazí v tlačovom manažéri a v IPC connection cez net view
- hosts allow -- čiarkou, medzerou alebo tabom oddeľuje povolených hostov, ktorí sú oprávnení používať tlačový server
- security -- ak nastavíte "users", iba používateľské kontá, ktoré špecifikujete budú mať oprávnenie. Ak by ste chceli povolenie pre každého, nastavili by ste "share", no v našom prípade MUSÍTE ponechať túto položku nastavenú na "users", ináč by ste mali problémy v ďalších krokoch.
Ostatné nastavenia necháme pre dnešok tak, o nastavení smb.conf
chystám samostatný článok ;).
2.4 Pridanie služieb do runlevelu
Na tomto mieste si pridáme cupsd a sambu do defaultného runlevelu:
rc-update add cupsd default rc-update add samba default /etc/init.d/cupsd start /etc/init.d/samba start
príp. môžete použiť toto riešenie, zároveň aj so spustením služieb:
for x in cupsd samba ; do rc-update add $x default ; /etc/init.d/$x start ; done
2.5 Príprava Windows ovládača
Pri prvom použití nášho tlačového servera z Windowsu, chceme zaistiť aby sa nám automaticky stiahli potrebné ovládače z nášho servera a nainštalovali. Budeme potrebovať:
- CUPS Windows Driver, ktorý pracuje s existujúcimi Windows PostScript drivermi a pridáva aj nejakú funkcionalitu navyše. Posledná verejná verzia je 6.0
- Originálne Adobe ovládače pre windows, v adresári
\WINDOWS\system32\spool\drivers\w32x86\3
Gentoo vám ich automaticky nainštaluje do adresára /usr/share/cups/drivers
po ich emergnutí, ostatní si ich tam budú musieť nainštalovať sami:
# emerge -av net-print/cups-windows net-print/adobeps
S nastaveniami na strane servera sme skončili, teraz je už len potrebné nastavenie na Windows boxe. No prv než s tým začneme, musíme si vytvoriť nejakého Samba užívateľa, aby sme mohli pristupovať z Windowsu k nášmu serveru.
# smbpasswd -a root
# smbpasswd -a <nejaky_uzivatel>
Následne príkazom cupsaddsmb
exportujeme našu tlačiareň/tlačiarne do samby:
# cupsaddsmb -H localhost -U root -a
Tento príkaz exportuje všetky naše tlačiarne. Ak potrebujete exportovať len nejakú špecifickú prezrite si manuálové stránky príkazu cupsaddsmb.
V tejto chvíli by ste mali bez problémov vedieť používať tlačiareň z Windows boxu. Stačí, keď kliknete na tlačiareň cez "Miesta v sieti" prípadne použijete wizarda pre pridanie novej tlačiarne.
Taktiež si už môžete povoliť prístup na váš Samba server všetkým užívateľom, zmenou security = user
na security = share
v súbore /etc/samba/smb.conf
.
Záver
V dnešnej časti sme sa naučili niečo o spolupráci tlačiarní a Samby. Do tej ďalšej chystám rozobrať administráciu Samby, či už cez nejaké GUI rozhranie (SWAT), ale hlavne manuálnu úpravu konfiguračného súboru /etc/samba/smb.conf
. Určite som neopísal všetky možnosti nastavenia tlače, je ich mnoho a všetko závisí od potrieb koncového použiváteľa, čím nabádam samozrejme k samoštúdiu. Kritika, nejasnosti a postrehy sú taktiež vítane.
Následne upravíme súbor /etc/cups/mime.types a odkomentujeme riadok:
/etc/cups/mime.types
ktory som tam nenasiel
help