Next Previous Contents

8. Dele en Linux-skriver med Windows-maskiner

For å dele en Linux-skriver med Windows-maskiner må du være sikker på at skriveren er satt opp slik at den virker under Linux. Hvis du kan skrive ut fra Linux er det å sette opp en SMB-delt skriver enkelt og rett fram.

Se "Utskrifts-HOWTO" for å sette opp lokal utskrift.

Siden forfatteren bruker en skriver koblet til en NT-maskin bør ikke denne seksjonen betraktes som definitiv, men som forslag. Alle som har flere detaljer å dele ut kan sende dem til dwood@plugged.net.au slik at denne seksjonen kan kompletteres.

Legg til utskriftskonfigurasjon til smb.conf:


[global]
   printing = bsd
   printcap name = /etc/printcap
   load printers = yes
   log file = /var/log/samba-log.%m
   lock directory = /var/lock/samba

[printers]
   comment = Alle skriverne
   security = server
   path = /var/spool/lpd/lp
   browseable = no
   printable = yes
   public = yes
   writable = no
   create mode = 0700

[ljet]
   security = server
   path = /var/spool/lpd/lp
   printer name = lp
   writable = yes
   public = yes
   printable = yes
   print command = lpr -r -h -P %p %s

Sjekk og vær sikker på at skriver-stien (path, i dette tilfellet under [ljet]) stemmer overens med spool-katalogen i /etc/printcap!

Setningene:


   printcap name = /etc/printcap
   load printers = yes

kontrollerer om skriverne i /etc/printcap skal lastes som default. Gjør du dette er det ingen grunn til å sette opp skriverne individuelt. [printers]-seksjonen spesifiserer egenskaper for skriverne som du ønsker å definere eksplisitt. Hvis utskriftssystemet du bruker ikke fungerer på denne måten (BSD), må du sette opp en dummy printcap-fil (eller bruke 'print command'-teknikken, se under). For mer informasjon om printcap-systemet, se Printing HOWTO.

En nyttig teknikk for å teste nettverksforbindelsen er å endre utskriftskommandoen til:


   print command = cp %S /tmp/print.%P.%S

Filen dette resluterer i kan deretter analyseres.

MERK: Det er noen problemer med å dele skrivere på UNIX-bokser med Windows NT-maskiner ved å bruke Samba. Et problem er å få NT til å se skriveren skikkelig. For å rette dette, se notatene i Samba-distribusjonen, i filen docs/WinNT.txt. Det andre handler om passordproblemer. Se kommentaren i den samme filen for en plagsom økning av forståelsen og at det å løse problemet ikke er vellykket.

Oleg L. Machulskiy ( machulsk@shade.msu.ru) forteller at en bedre print-kommando til bruk i eksempelet over er:


print command = smb2ps %s | lpr -r -h -P %p

der 'smb2ps' er et skript som endrer spool-filen som kommer fra windows til en brukbar Postscript-fil. Det må fjerne de 3 første og de 2 siste linjene i utskriftsjobben, fordi disse linjene inneholder enkelte PJL- eller PCL-koder.

Denne måten å gjøre det på er bare nødvendig hvis Windows-maskinen din skriver PCL og ikke ordentlig Postscript. Jeg har funnet at Windows 95/98/NT ikke har en generell Postscript-driver som sådan, men "Digital turbo Printserver 20" fungerer som en god generell Postscript-driver for de fleste oppsett. Jeg har også hørt at "Apple LaserWriter II NTX"-driveren fungerer for dette formålet.

Jeff Stern ( jstern@eclectic.ss.uci.edu) fortalte følgende som kan være til hjelp for enkelte av dere:

--------------------------%<----------------------------------

Problemet mitt var at jeg kunne skrive ut via lpd/lpr til Linux-skriveren fra selve Linux-boksen. Men jeg kunne ikke få den til å skrive fra en tilkoblet Win95-maskin. Når jeg forsøkte:

smbclient \\eclectic\belen -P

og deretter prøvde å:

print myfile

Fikk jeg feil om 'access denied'. Så jeg satte tillatelsene på /var/spool/lpd/lp1-katalogen til 777. Jeg beklager, men det er det jeg måtte gjøre. Jeg antar at jeg kunne ha unngått feilmeldingen ved å legge alle brukerne på Linux-boksen i 'lp'-gruppa, eller gjort at katalogen ble eid av gruppa 'users', osv. Men for øyeblikket virker dette (med eierskap root.lp).

Til slutt, den andre tingen administratorer bør vite er at kontonavnet på Windows-maskinen (som forsøker å bruke Linux-skriveren via Samba) burde ha en konto med samme navn på Linux-boksen. Det vil si, hvis det er en bruker 'joe' på Windows-maskinen 'minwinboks' som forsøker å skrive til skriveren 'belen' på Linux-maskinen 'eclectic' (\\eclectic\belen) bør det finnes en bruker 'joe' på Linux-boksen. 'joe's passord når han logger inn vil være passordet for å få tilgang til eclectics belen-skriver. Dette passordet blir han spurt om når han setter opp skriveren på Windows-boksen med kommandoen Skriver|Legg til Skriver.

Jeg tenkte kanskje dette ikke ville være tilfelle siden jeg har satt opp min skriver til å være 'public' i smb.conf. Men øyensynlig spør den fremdeles etter passord. (Windows-boksen gir deg dessverre ikke sjansen til å oppgi et annent brukernavn til Linux-skriveren. Den bruker bare ditt lokale brukernavn som du brukte for å logge inn når du startet Win95).

--------------------------%<----------------------------------

Dr. Michael Langner ( langner@fiz-chemie.de påpeker at skrive-tillatelseproblemet på /var/spool/lpd/ katalogtreet kan unngås ved å bruke noe slikt som "path = /tmp" og "print command = lpr -r -P%p %s" istedet.

Av og til oppstår det en feil i oversettingen av Postscript-dokumentet som skrives ut fra Windows-maskiner som fører til at en ekstra side skrives ut etter alle utskrifts-jobber. Den siste siden vil alltid ha "%%[ Lastpage ]%%" øverst. Dette ser ut til å skje bare med Windows 95 og 98 og kommer av at Postscript-kommandoene er satt opp feil.

En måte å takle dette på er å bruke et skript som fjerner den gale delen av Postscript fra print-jobber som spoles. En annen måte er å finne en bedre Windows Postscript-driver. Den beste måten er sannsynligvis å bruke LPRng istedet for Postscript for å skrive til en Samba-server.

Erik Ratcliffe ( erik@caldera.com) i Caldera forteller meg at det å bruke LPRng betyr at enhver skriverdriver kan brukes fra Windows-maksiner. På Samba-serveren brukte de en /etc/printcap-oppføring som så slik ut:


raw:\
        :rw:sh:
        :lp=/dev/lp1
        :sd=/var/spool/lpd/raw
        :fx=flp

LPRng trenger ikke :\ på slutten av hver linje. En printer-oppføring vil fremdeles måtte legges til i /etc/smb.conf for den fysiske skriveren. Utskriftkommandoen må bruke "raw" oppføringen i /etc/printcap og data må sendes til skriveren i binær form. Forsøk en print command-linje som dette:


print command = lpr -b -Praw %s

Det kan også hende du må sette spoling på Windows95 til å skrive direkte til skriveren i stedet for å spole lokalt først.


Next Previous Contents