# &CUPS;i valikud, mida &kcontrol; ei paku

See peatükk tutvustab põgusalt veel mõningaid seadistusvõimalusi, mis ei pruugi olla kättesaadavad &kdeprint;i &CUPS;ile pakutava &GUI; liidese vahendusel.

## Pakutavate omaduste ülevaade

&kdeprint; toetab kõiki &CUPS;i pakutavaid sagedamini kasutatavaid võimalusi ja funktsioone.

- Toetatud on printerihaldus: lisamine, eemaldamine, muutmine, seadistamine, testimine, lubamine, keelamine...

- Toetatud on tööde haldus: katkestamine, peatamine, taaskäivitamine, suunamine teisele printerile

- Trükkimisvalikud: täielik kontroll, nagu seda pakub &CUPS;.

## Kust leida abi &CUPS;i kasutamisel

Päris palju infot &CUPS;i siseelu kohta saab veebiliidese vahendusel, mida &CUPS; on alati toetanud. See töötab suvalise brauseriga (jah, isegi tekstipõhistes brauserites). Käivitamiseks mine aadressile http://localhost:631/. Sealt leiad viida kohalikult kättesaadavale &CUPS;i dokumentatsioonile HTML ja PDF kujul, mis peaks su esmavajadused rahuldama, kui soovid alles &CUPS;iga tutvuda.

&CUPS; on kättesaadav mõistagi ka muul moel kui &kdeprint;i vahendusel: käsurida ja brauser on lihtsalt kaks &CUPS;i loomupärast liidest. Arvukad käsureautilidid võimaldavad &CUPS;i igakülgselt kontrollida. Veebiliides on lihtsalt kõigi kättesaadavate seadistus- või juhtimisvalikute teatud alamosa.

Sama kehtib küll ka &kdeprint;i kohta. Üldiselt rakendatakse &CUPS;i arendades enamik uusi võimalusi esmalt käsurea vahendusel. Kontrolli kindlasti, et sul oleks &CUPS;i uusimad manuaalileheküljed, mis tagavad kursisoleku ka kõige uuemate võimalustega näiteks pärast uue versiooni paigaldamist.

Sõltuvalt sellest, kuidas sa &CUPS;i uuendasid, võis uus seadistustefail vana asendada, aga ei pruukinud. Viimasel juhul ei pruugi sinu uus ja võimekam &CUPS;i deemon teada uutest võimalustest, sest vana seadistustefail ei saa ega oskagi ju neid talle selgeks teha.

Täieliku nimekirja saadaolevatest failidest ja manuaalilehekülgedest pakub alati &CUPS;i tarkvara administraatori manuaal (http://localhost:631/sam.html#FILES. Kirjuta &konqueror;is &URL;/asukohaväljale `man:/lpadmin` ja `man:/cupsd.conf`, mis tutvustab tähtsaimaid käsu- ja seadistustefaile. Sa ju kindlasti tead juba, et &konqueror; oskab imehästi näidata ka &UNIX; traditsioonilisi manuaalilehekülgi? Loe, mis seal kirjas seisab (paraku on see küll inglise keeles, vähemalt praegu). Seal leiad mitmeid huvitavaid ja vajalikke vihjeid ning viiteid muudele manuaalilehekülgedele ja dokumentatsioonile.

### Kuidas leida &CUPS;iga seotud manuaalilehekülgi

Seda, millised &CUPS;iga seotud manuaalileheküljed on sinu süsteemis olemas, saab teada näiteks nii:

    kurt@transmeta:~
    > apropos cups

    cups-calibrate (8)- ESP Printer Calibration Tool
    lpstat (1)        - print cups status information
    cups-lpd (8)      - receive print jobs + report printer status to lpd clients
    classes.conf (5)  - class configuration file for cups
    backend (1)       - cups backend transmission interfaces
    filter (1)        - cups file conversion filter interfaces
    cups-polld (8)    - cups printer polling daemon
    mime.types (5)    - mime type description file for cups
    cupsd (8)         - common unix printing system daemon
    lpadmin (8)       - configure cups printers and classes
    cupsd.conf (5)    - server configuration file for cups
    mime.convs (5)    - mime type conversion file for cups
    printers.conf (5) - printer configuration file for cups
    mime.convs (5)    - mime type conversion file for cups
    cups-polld (8)    - cups printer polling daemon
    lpstat (1)        - print cups status information
    backend (1)       - cups backend transmission interfaces
    mime.types (5)    - mime type description file for cups
    cupsd (8)         - common unix printing system daemon
    lpadmin (8)       - configure cups printers and classes
    printers.conf (5) - printer configuration file for cups
    cupsd.conf (5)    - server configuration file for cups
    filter (1)        - cups file conversion filter interfaces

## Ilma &kdeprint;ita: vihjed ja võtted &CUPS;i kasutamiseks käsureal

Toome siin mõningad näited võtmetest, mida praegu saab kasutada ainult käsureal.

### Printerile ligipääsu lubamine või keelamine konkreetsetele kasutajatele

Paigaldades (või muutes) printerit käsureal, on võimalik keelata või lubada teatud kasutajatel seda printerit tarvitada:

    lpadmin -pHeidelbergDigimaster9110 -v lpd:/10.160.16.99/mqueue -u allow:kurt,sylvi,hansjoerg -E -P /home/kurt/PPDs/DVHV.ppd

lubab selle (uskuge mind: väga vahva ja ühtlasi väga professionaalse printeri) kasutamise ainult kolmele mainitud kasutajale ning keelab samas kõigile teistele. Kui mõni muu kasutaja soovib trükkida midagi DigiMasteril &CUPS;i serverit kasutades, saab ta veateate client-error-not-possible.

    lpadmin -p HeidelbergDigimaster9110 -v lpd:/10.160.16.99/mqueue -u deny:tackat,boss,waba -E -P /home/kurt/PPDs/DVHV.ppd

keelab sama printeri kasutamise mainitud kolmele kasutajale ning lubab samas kõigile teistele. Kui keelatud kasutaja soovib midagi trükkida DigiMasteril &CUPS;i serveri vahendusel, saab ta veateate client-error-not-possible.

Korraga saab kasutada ainult üht kahest võtmest, praegu ei ole toetatud samalaadne võimalus grupi alusel. See on kavas küll tulevikus teoks teha.

### Kvootide kehtestamine teatud printeritele

Mõnikord võib sul tekkida äravõitmatu soov kehtestada teatud printeritele kvoodid. Nii saad määrata lehekülgede või andmehulga ülempiiri, mida teatud printer teatud ajavahemiku kestel võib trükkida.

Kvoote saab määrata võtmega `-o` printeri paigaldamisel käsuga `lpadmin` või ka hiljem juba olemasolevale printerile. Anname siinkohal mõned juhised (kirjapaneku ajal ei olnud neid veel &CUPS;i ametlikus dokumentatsioonis):

- &CUPS; võimaldab määrata konkreetsetele printeritele kvoodid lehekülgede arvu ja failisuuruse järgi.

- Kvoodid arvutatakse iga kasutaja jaoks eraldi (nii rakendub üks limiidikogum kõigile asjassepuutuva printeri kasutajatele).

- Kvoodid arvestavad ka bännerilehekülgi (kui neid kasutatakse).

- See tähendab, et võid seada näiteks väärtuslikul printeril igale kasutajale limiidi 20 lehekülge päevas, kuid ei saa seada limiiti igale kasutajale, välja arvatud Kurt või root.

- Printerit seadistades saab anda võtmed `job-k-limit`, `job-page-limit` ja `job-quota-period`.

- `job-quota-period` määrab ajavahemiku, mille kestel kvooti arvutatakse (seda arvutatakse sekundites, nii et päev on 60x60x24=86 400, nädals 60x60x24x7=604 800 ja kuu 60x60x24x30=2 592 000 sekundit).

- Et kvoodid jõustuks, peab periood ja vähemalt üks töölimiit olema erinev nullist.

- Võtme `job-k-limit` vaikeväärtus 0 tähendab, et limiit puudub.

- Võtme `job-page-limit` vaikeväärtus 0 tähendab, et limiit puudub.

- Võtme `job-quota-period` vaikeväärtus 0 tähendab, et limiit rakendub kõigile töödele, mida on trükkinud süsteemile tuntud kasutaja.

#### Toimivad näited:

Toimib, sest määratud on nii periood kui ka üks või mõlemad töölimiidid

    lpadmin -p danka_infotec_4850 -o job-quota-period=604800 -o job-k-limit=1024

See seab failisuuruse limiidiks 1 MB (kokku) igale kasutajale olemasoleval printeril danka_infotec_4850 ühe nädala jooksul.

    lpadmin p danka_infotec_4105 -o job-quota-period=604800 -o job-page-limit=100

See seab limiidiks 100 lehekülge (kokku) igale kasutajale olemasoleval printeril danka_infotec_4850 ühe nädala jooksul.

    lpadmin -p danka_infotec_P450 -o job-quota-period=604800 -o job-k-limit=1024 -o job-page-limit=100

See seab kombineeritud limiidi 1 MB (kokku) ja 100 lehekülge (kokku) igale kasutajale olemasoleval printeril danka_infotec_P450 ühe nädala jooksul. Milline limiit esimesena täitub, see ka jõustub.

#### Mittetoimivad näited

EI toimi, sest määratud on ainult üks, ajaline või töölimiit

    lpadmin -p danka_infotec_P320 -o job-quota-period=604800

    lpadmin -p danka_infotec_FullColor -o job-page-limit=100

    lpadmin -p danka_infotec_HiSpeed -o job-k-limit=1024

#### Veateated

Kui kasutaja limiit saab täis, saab ta trükkimissoovi avaldamisel teate client-error-not-possible.

### Toorprinteri paigaldamine

Toorprinterit saab defineerida mitmel moel. Üks ja päris mugav võimalus on kasutada käsku `lpadmin`. Jäta lihtsalt printeril defineerimata &PPD; fail ning sellest saabki toorprinter:

    lpadmin -p Raw_Danka_infotec -E -v lpd://10.160.16.137/PORT1

Toorprinteri järjekorrad on sellised, mis ei võta midagi ette trükitava failiga ega püüa seda kuidagi muusse failivormingusse teisendada. Seda läheb vaja näiteks siis, kui trükkida &Windows; klientidelt Sambat kasutades &CUPS;i serveri vahendusel PCL printerile: sellisel juhul loob &Windows; printeridraiver viimistletud trükitava faili just sihtprinteri tarbeks ning selle filtreerimine läbi &CUPS;i filtrite võiks ainult kahju tekitada. Teatud juhtudel (kui soovid olla kindel, et fail jõuab printerile, ilma et &CUPS; seda filtreeriks), on `lpadmin` ilma &PPD;-ta päris abiks.

## &CUPS;i probleemid &kdeprint;is

&kdeprint;i käsiraamatu see osa täitub kasutajate tagasisidest. Siintoodu on vaid kerge algus.

### Veateated

Mida tähendab viga client-error-bad-request?

Kasutaja saatis faili &CUPS;ile, mida server ei suutnud töödelda. See võib juhtuda ka tühja faili saatmisel.

Ja client-error-not-possible?

Kasutajal kas ei ole lubatud trükkida teatud printeril või on tema limiit (mille aluseks on failisuurus ja/või lehekülgede arv) täis saanud.

Aga client-error-not-found?

Kasutaja püüdis &CUPS;i serveril ligi pääseda olematule ressursile, näiteks trükkida olematut faili või faili, mida tal pole õigus isegi mitte lugeda.

### Küsimused ja vastused

Miks ma ei saa oma täid uuesti käivitada?

Oma lõpetatud tööde taaskäivitamiseks veebiliideselt on vaja seadistust failis `/etc/cups/cupsd.conf`: määrata tuleb `PreserveJobFiles True`.

Kuidas saada veebiliidesel lahti igavesti pikast lõpetatud tööde nimekirjast?

Veel kirjutamata

Kuidas see lehekülgede arvestus õieti käib?

&CUPS; kasutab trükkimise arvestuseks ära seda, et peaaegu iga töö saadetakse läbi pstops filtri. Kõige muu seas tegeleb see ka lehekülgede kokkulugemisega. Selle filtri väljund võib suunduda mõnesse muusse filtrisse (näiteks pstoraster --> rastertopcl) või ka otse printerile (kui tegemist on &PostScript; printeriga).

Igatahes käib see ühtmoodi võrgu-, paralleel-, jada- või USB-printeritel. Et pstops asjaga toime tuleks, vajab ja sisendiks &PostScript;-iga ühilduvat või enam-vähem ühilduvat dokumendi struktureerimise konventsiooni (Document Structuring Convention, DSC). Siis loeb programm printserveril filtreerimisega tegeldes nii muu seas kokku ka leheküljed ja kirjutab info iga lehekülje kohta (mis kell, milline kasutaja, milline töö ID ja -nimi, milline printer, mitu koopiat millisest leheküljest, mitu kilobaiti) faili `/var/log/cups/page_log`.

Muide: üks minu isikliku soovide nimekirja punkte käib selle kohta, et webalizer võiks lugeda ja analüüsida page_log'i ning anda samalaadse väljundi. Vabatahtlikud, ette!

Kuid see ei anna õiget tulemust järgmistel juhtudel:

- Vahel tekivad printeriummistused ning töö võidakse minema visata (küllap seda on pidanud paljud kogema) või siis visatakse töö minema seepärast, et printeril tekib raskusi andmevormingu tõlgendamisega.

- Toortööde suuruseks on alati 1 lehekülg (võib-olla küll mitu koopiat).

Seepärast on &CUPS;i lehekülgede arvestus ainult hinnang (paljudel juhtudel suurepärane või vähemalt korralik, vahel aga üpris kesine). Ainus tõeliselt usaldusväärne number on see, mida edastab printeri sisemine arvesti (sest lõpuks on ju just see, mille eest maksad, kui arvestus käib klõpsuhinna või millegi sellise alusel). Mõningate, aga paraku mitte enamiku printerite puhul saab neilt sellise info kätte SNMP (Simple Network Management Protocol, lihtne võrguhalduse protokoll) abil. See tähendab, et suuremates võrkudes, kus on palju erinevaid printereid, ei olegi olemas täiesti usaldusväärset ja täpset lehekülgede arvestuse vahendit!

Aga miks lehekülgede arvestus &Windows; klientidega kohe üldse ei tööta?

&Windows; klientidelt peavad trükitööd peaaegu igal juhul tulema toorvormingus. Miks? Kui &CUPS; on printserveriks &Windows; klientidele, mis kasutavad &Windows; vastavale trükiseadmele mõeldud algupärast draiverit, tagab see klientide töö korrektse vormingu - serveril ei ole siin põhjust sekkuda, vaid see peab töö trükkima toorena. Seepärast ei käivitata ka ühtki filtrit (see ei ole tegelikult isegi võimalik, sest kliendilt saadud sisend ei ole mitte &PostScript;, nagu ootab pstops) ja seepärast on ka lehekülgede arv alati 1.

Kust ma leiab saadaolevad võtmed antud printerile või &PPD; failile?

Vaata käsu `lpoptions` manuaalilehekülge. Enamasti saab suvalisel &CUPS;i võimalusega arvutil uurida kõigi sellele kättesaadavate printerite mis tahes võtmeid. Printer ei pea selleks olema isegi mitte antud arvuti külge ühendatud. Kui printer on kättesaadav kohalikult (&CUPS; printerite lehitsemise võimaluse abil), töötab see ka võrgus.

Printeri võtmete nägemiseks anna näiteks käsk ``lpoptions` `-p` `HitachiDDP70MicroPress` `-l``, mis näitab pikka võtmete nimekirja, mida pakub antud Hitachi pirnteri &PPD; fail (minu juhul on see paigaldatud võrguserverile transmeta). Võrguserver Transmeta ning selle &CUPS;i deemon, samuti kohalik &CUPS;i deemon peavad kõik töötama, et asi õnnestuks.

Kuidas saada aru kogu sellest võtmete nimekirjast, mida pakub `lpoptions`?

Siin tuleb lihtsalt teadmiseks võtta, et &PostScript; printerite tootjate arvates on igati legaalne määrata omaenda nimed ja protseduurid isegi standardsetele &PostScript; võtmetele. Seni, kuni draiver suudab võtme &PPD;-st kätte saada ja näidata seda kasutajale mõistetaval kujul, on kõik korras. Aga mida teed sa siis, kui soovid kasutada käsureal mõnda hämaramat printerivõtit? Kuidas anda see korrektse süntaksiga?

Võtame ühe näite. Vaatame Hitachi DDP70 printerit ning uurime, kuidas on sellel teostatud duplekstrükkimine. Kuidas peaks väljendama kahepoolse trükkimise soovi? duplex või Duplex? Või üldse mingi muu nimi?

    lpoptions -h transmeta -p Hitachi_DDP70_ClusterPrintingSystem -l | grep uplex

See tagastab väljundi

    TR-Duplex/Duplex: False *True

Asume nüüd tõlgendama:

- Otsitava võtme nimi on `TR-Duplex`

- Kaldkriipsu taga on näha võtme tõlge, nagu seda näitab &GUI; või veebiliides (Duplex)

- Võtmel võib olla väärtuseks kas `False` või `True`

- Antud juhul on väärtuseks `True`, mida näitab selle tähistamine tärniga `*`.

Vaikeväärtuse (duplex) tühistamiseks ning trükkimiseks ühepoolselt tuleb anda järgmine käsk:

    lpr -P Hitachi_DDP70_ClusterPrintingSystem -o TR-Duplex=False /meie/trükitöö/asukoht

Kuidas saada antud printeri või &PPD; saadaolevate võtmete kenasti vormindatud nimekiri?

Kasuta käsku `lphelp`, mis on usutavasti sinu süsteemi paigaldatud. Paraku pole veel olemas käsu `lphelp` manuaalilehekülge.

    lphelp infotecP450

See näitab antud printeri võimalike võtmete nimekirja, mis on kenasti vormindatud ning iga võtme juures selgitus ja kasutamisjuhend. Päringu saab esitada ka mitme erineva printeri võtmete kohta korraga:

    lphelp infotec7410color DANKA_fullcolor_D2000 HP_ColorLaserJet8550

Sama kehtib &PPD; failide kohta, anna ainult vajaliku &PPD; asukoht:

    lphelp /home/kurt/PPDs/HP-ColorLaserJet8550.ppd

### Probleemide lahendamine

Ükski süsteem ei ole veatu. Toome siin ära mõningad levinumad komistuskivid.

Minu printer nimega 3-lp-duplex käitub üsna isepäiselt. Mis lahti?

Printerinimed, mida &CUPS; kasutab, peaksid algama tähega ning nad võivad sisaldada kuni 128 tähte, numbrit ja alakriipsu. Sidekriipsude kasutamine võib tekitada probleeme. Ja mis veel nimedesse puutub: &CUPS; ei tee vahet väike- ja suurtähtedel. Nii on printer Best_of_Danka sama, mis best_of_danka või BEST_OF_DANKA (see on &IPP; nõue, mida &CUPS; kohusetundlikult täidab).

Miks ma saan teate Unable to connect to SAMBA host: Success oma printeri ressursside korral, kui kasutan neid &Windows; alt Samba vahendusel?

Kas &Windows; arvuti õigused on ikka korras? On sul tõesti õigus trükkida &Windows; jagatud printeril?

Minu printerile lp saadetud failid lähevad vahel müstiliselt kaotsi ja paar päeva hiljem öeldakse mulle, et need on välja trükitud printeril, mis asub kolm korrust allpool. Mis lahti?

Ma võin käe südamele panna: on väga vähe tõenäoline, et sinu printer on ainus, mis kannab nime lp. Võib-olla &CUPS; lihtsalt lollitab sind. Sul võib olla sisse lülitatud seadistus ImplicitClasses On, millisel juhul &CUPS; püüab koondada kõik printerid, mida ta võrgust leiab, klassi nimega lp. Kõik lp-le saadetud tööd saadetakse antud klassi ning need trükib välja esimene kättesaadav klassi liige. Nii et kui sulle juhtub taas lähedale see kena noormees, kes kuulas tähelepanelikult ja tõsise kaasaelamisega, kuidas sa &CUPS;i ja &kdeprint;i maapõhja manad... no saad aru küll, mida ma mõtlen?

Võta kuulda minu nõuannet: anna mis tahes võrguprinterile unikaalne nimi! (Pea meeles, et kui sa oma seadistuste eest hoolt ei kanna, on ka üks sinu paralleelportidest ülejäänud maailma arvates võrguprinter!)