E-post: salg@linmag.no



5.2.2012 - 7:12
 • Nyheter
 • Om Linux
 • Linuxskolen
 • Spørrespalte
 • Vitsespalte
 • LINUXmagasinet
 • Spill
 • WEBSHOP
 • Diskusjonsforum
 • Linker
 • For annonsører
 • English
 • Om oss
developer.ez.no
www.online4u.no

0

Utskrift fra Linux


Linuxskolen del 14, andre artikkel (LINUXmagasinet 3/2004)

Utskrift fra Linux har virkelig kommet seg i de siste årene. Med dette mener jeg både i form av støtte for nyere printere og plottere, men også når det gjelder installasjon og oppsett av disse. Den største forbedringen kom med CUPS, eller Common Unix Printing System som navnet egentlig står for.

cups
CUPS er et kryssplattformsystem som benytter seg av protokollen Internet Printing Protocol (IPP). Hovedmålet med denne protokollen er å oppnå følgende på applikasjonsnivå:

- Å finne en skrivers egenskaper over nettverk.
- Å kunne sende dokumenter til en slik printer
- Å kunne få tilgang til status for printer og d-okumenter under utskriving.
- Å kunne kansellere skriverjobber.

CUPS ble utviklet av firmaet Easy Software Products og skulle sørge for en standard skriverløsning for Unix-baserte systemer og brukere. CUPS støtter både System V og Berkely kommandolinje grensesnitt. I hovedsak benytter CUPS seg av IPP, men den inneholder også en begrenset støtte for Line printer Daemon (LPD), Server Message Block (SMB) og AppSocket (ala JetDirect). Noe av det som virkelig gjør susen i CUPS er muligheten for å søke i nettverket etter skrivere. Den vil vise deg både nettverksskrivere, skrivere koblet til skriver portene på andre maskiner og delte skrivere i Windows-nettverk (og Samba). CUPS følger nå stort sett med de fleste distribusjonene av Linux, men skulle du mot formodning sitte på en som ikke gjør det finner du systemet her; http://www.cups.org/software.php. Litt senere i artikkelen skal vi se på hvordan du går frem for å legge til skrivere vha CUPS, men først skal vi kose oss litt med noen andre metoder for utskrift under Linux.

Man kan i mange tilfeller ha behov for å kunne sette opp en lokal skriver eller en nettverksskriver via en enkel meny i en terminal. Det er her den tradisjonelle LPD (Line Printer Daemon) kommer inn.

lpd
For å kunne benytte deg av lpd må du i første omgang ha installert LPRng (sjekkes med 'rpm -qa |grep LPR') samt at kjernen din enten inneholde støtte for “lp” direkte, eller lastet som en modul ved behov. Du vil i så fall finne den som /dev/lp0 eller /dev/lp1 ('cat /proc/devices') avhengig av hvilken port du henger skriveren din på. Normalt vil skriveren bli oppdaget av systemet under boot, men om du laster modulen i ettertid må kjøre kommandoen '/etc/rc.d/init.d/lpd restart'. Ifm denne prosessen sjekkes filen /etc/printcap av lpd. Denne filen inneholder informasjon om hvilke skrivere du har og hvilke filtre som skal benyttes ifm de forskjellige skriverne. Et eksempel på en slik printcap ser du her:

# /etc/printcap
#
# DO NOT EDIT! MANUAL CHANGES WILL BE LOST!
# This file is autogenerated by printconf-backend during lpd init.
#
# Hand edited changes can be put in /etc/printcap.local, and will be included.

laserjet:\
:ml=0:\
:mx=0:\
:sd=/var/spool/lpd/laserjet:\
:af=/var/spool/lpd/laserjet/laserjet.acct:\
:sh:\
:lp=/dev/lp0:\
:lpd_bounce=true:\
:if=/usr/share/printconf/util/mf_wrapper:


Denne er i bruk på en maskin som har en HP Laserjet 4L tilknyttet lokal port. Den viser blant annet at lp er satt opp som /dev/lp0 og at spool-katalogen er /var/spool/lpd/laserjet. Den viser også at alle print-jobbene sendes igjennom filteret /usr/share/printconf/util/mf_wrapper som sørger for korrekt utskrift av de forskjellige typer dokumenter. I forbindelse med administrasjonen av en lpd-basert skriver har vi tilgjengelig følgende kommandoer:

lpr: Kontakter lpd ifm utskrift og sender den nye jobben inn i spool-katalogen.
lpq: Lister opp jobbene i spoolen.
lpc: Benyttes blant annet ifm start stop av skriverkøen.
lprm: Kommando for a slette dokumenter i skriverkøen.

Som en generell regel kan man vel si at det å redigere /etc/printcap er forbeholdt avanserte brukere, men så lenge som man beholder en kopi av original urørt, er vel litt fikling med systemet et sunnhets trekk sett med mine øyne. Det avslører vitebegjær, forskertrang og initiativ! Det finnes dog meget bra terminalbaserte oppsettverktøy for skrivere. Ett av disse, som jeg personlig synes er den beste er apsfilter av Andreas Klemn (http://www.apsfilter.org/).

apsfilter
Apsfilter sørger for en mest mulig korrekt gjengivelse av de dokumenter eller bilder du ønsker skrevet ut. Videre lar den deg på en enkel måte sette opp og konfigurere skrivere både lokalt og via nett. Apsfilter inneholder ikke noen egen spool-funksjon, men benytter seg av tjenestene tilbudt av lpd. Apsfilter inneholder heller ikke egne drivere for skrivere, men benytter seg i stedet av de driverne som følger med ghostscript for å gjøre denne jobben ved at den konverterer alle dokumenter til postscript som så sendes via ghostscript. Oppsettet av apsfilter er meget enkelt og godt forklart underveis, og det fungerer utmerket når det først er installert og konfigurert. Apsfilter lar deg like enkelt sette opp en lokal skriver som en delt skriver fra en Windows arbeidsgruppe. Et eksempel på styrken til apsfilter foruten det at du ikke trenger X Window for å kunne konfigurere den ser du i denne kommandolinjen:

'lpr -C photo:glossy:color file.ps.bz2 file.dvi.gz file.jpg'

Den sender her 3 forskjellige filer til printeren samtidig! Ett bz2-komprimert postscript-dokument, et gzippet dvi-bilde og til slutt en vanlig jpg-fil. Videre sier den også at bildene skal skrives ut i farger med glossy fotokvalitet. Ikke dårlig?

tilbake til cups
De aller fleste vil vel, på tross av den styrken apsfilter har på kommandolinjen, benytte seg av CUPS. Dette siden CUPS etter hvert har blitt meget godt integrert i mange distribusjoner med gode grafiske verktøy for oppsett og konfigurasjon. Ikke alle er like glade i kommandolinjen...

I det følgende eksempelet benytter jeg Fedora Core 1 som basis. Dette er Redhats frie versjon av Linux siden en tid tilbake og den kjører på en 2.4-kjerne. Core 2 som nå er ute i test 3 bruker 2.6.5 som har et annet modulsystem enn 2.4-kjernene. Det jeg skal vise dere her er hvordan dere kan sette opp en printer delt ut fra en Windows arbeidsgruppe i Fedora (og stort sett likt også i Redhat 8 og Redhat 9). Gjør følgende i en terminal som root:

'/usr/bin/redhat-config-printer-gui'
klikk “New”
Klikk “Forward”
Skriv inn et navn for ny skriver + en beskrivelse. Velg ENKLE navn slik at du husker dem lett. Årsaken kommer litt lengre ned på siden.
Klikk “Forward”
Under “Select a queue type:” velger du “Networked Windows”
Klikk deg inn på den maskinen som har printeren tilkoblet. Evt bruk “specify” for å oppgi arbeidsgruppe, brukernavn etc. Merk skriveren og klikk “Forward”
Velg riktig printer (i mitt tilfelle en HP Deskjet 840C) og klikk forward.
Se over at info stemmer og klikk “Finish”
Ikke skriv ut testsiden ennåsiden formatet ennå er i Letter og ikke A4. Klikk “No”
Klikk “Edit” og deretter “Driver options”
Under “Page size” velger du A4 og deretter “Ok”.
Klikk “Apply”

Nå kan du klikke “Test” og velge ut den testsiden du ønsker å skrive ut. Et godt valg er “CUPS test page”som gir deg test av farger og mye mer. Dette fungerer aldeles problemfritt i mitt hjemmenettverk hvor den aktuelle skriveren er delt ut fra en Windows XP-maskin.

Å sette opp en skriver du har hengende på egen port er ikke noe verre enn det du nettopp var igjennom. Det eneste du må sørge for er at du ser lp i /proc/devices slik:

[kolbjorn@antares kolbjorn]$ cat /proc/devices
Character devices:
1 mem
2 pty
3 ttyp
4 ttyS
5 cua
6 lp

Du kan også sjekke slik:

[kolbjorn@antares kolbjorn]$ dmesg |grep lp
On node 0 totalpages: 65499
lp0: using parport0 (polling).
lp0: console ready

Om du IKKE ser noen innføring for lp i noen av disse kan du prøve å legge inn modulen “lp” selv. Dette gjør du i så fall slik:

[kolbjorn@antares freebsd]$ /sbin/modprobe lp

Du kan så sjekke at alt gikk greit ved å se hvilke moduler som er lastet slik:

[kolbjorn@antares freebsd]$ /sbin/lsmod
Module Size Used by Tainted: PF
lp 8580 0 (autoclean)

Jeg har tatt vekk alle de andre modulene mine for å korte ned listen. Om det ikke fungerer med moduler må du kompilere inn støtten direkte i kjernen, men det faller langt utenfor denne artikkelens rekkevidde. Du er nå forhåpentligvis klar for selve CUPS konfigureringen.

'/usr/bin/redhat-config-printer-gui'
klikk “New”
Klikk “Forward”
Skriv inn et navn for ny skriver + en beskrivelse. Velg ENKLE navn slik at du husker dem lett. Årsaken kommer litt lengre ned på siden.
Klikk “Forward”
Under “Select a queue type:” velger du “locally connected” og lp0 skulle vises i listen under.
Velg riktig printer (i mitt tilfelle en HP Deskjet 840C) og klikk forward.
Se over at info stemmer og klikk “Finish”
Ikke skriv ut testsiden ennå . Siden formatet er i Letter og ikke A4. Klikk “No”
Klikk “Edit” og deretter “Driver options”
Under “Page size” velger du A4 og deretter “Ok”.
Klikk “Apply”

Du kan deretter velge “Default printer” i “Action-menyen”.
Vips! Du kan nå skrive ut på to skrivere, en utdelt fra en Windows-maskin og den andre tilkoblet egen maskin. I mitt tilfelle ser du en tredje skriver. Denne er satt opp på samme vis, men er en skriver tilkoblet en linux-maskin på jobb. Denne valgt som en “Networked UNIX (LPD)”. Ellers er resten likt.

Du kan nå ta en titt på /etc/printcap som burde se noe slikt ut:

# This file was automatically generated by cupsd(8) from the
# /etc/cups/printers.conf file. All changes to this file
# will be lost.
laserjet|Created by redhat-config-printer 0.6.x:rm=antares.arctic-linux.tnett.no:rp=laserjet:
deskjet-lokal|deskjet-lokal:rm=antares.arctic-linux.tnett.no:rp=deskjet-lokal:
deskjet-smb|Created by redhat-config-printer 0.6.x:rm=antares.arctic-linux.tnett.no:rp=deskjet-smb:

CUPS lar deg også legge til skrivere manuelt ved å benytte kommandolinjen. Det er sikker noen av dere som vil finne dette:

/usr/sbin/lpadmin -p DeskJet -E -v parallel:/dev/lp1 -m deskjet.ppd ENTER

Nyttig! Denne setningen legger til en HP Deskjet uten mye klikking og grafisk dilldall. For å se ytterligere informasjon om kommandolinjen for CUPS – Sjekk http://www.cups.org/sam.html#4_2_1

I tillegg til dette kan du benytte deg av CUPS medfølgende webserver. Denne lar deg konfigurere CUPS vha en webside. Pek webleseren din mot http://localhost:631/admin
og gjør dine endringer. Et etter min mening enda bedre hjelpemiddel er Webmin (http://www.webmin.com). Denne gjør samme nytten som CUPS eget web grensesnitt, men den lar deg i tillegg utføre en mengde andre administrative oppgaver i samme farten.

Årsaken til at jeg lengre opp nevnte at det ville være lurt av deg å navngi skriverkøene med enkle navn er at du i enkelte programmer er nødt til å sette opp selve skriverkommandoen selv. I slike tilfeller skriver du i «printer command» inn en slik kommando:

'lpr -P deskjet'

Denne enkle linjen gjør samme nytten som den grafiske klikkingen du gjør ifm valg av skriver i for eksempel OpenOffice. Som du ser ville et langt navn med store og små bokstaver gjøre dette straks vanskeligere.

Nå skulle du forhåpentlig vis ha fått en noe større forståelse for mulighetene innenfor temaet Linux og utskrift. Jeg synes personlig at dette etterhvert har blitt MINST like enkelt som under Windows, men i de fleste tilfeller med mange FÆRRE problemer etter at oppsettet er gjort! Om du fremdeles har problemer må du bare kontakte meg pr. epost. Jeg skal hjelpe som best jeg kan.



0







0 0