mirror of
https://github.com/samba-team/samba.git
synced 2024-12-30 13:18:05 +03:00
0ea126237c
(This used to be commit f8b811bcda
)
241 lines
7.9 KiB
Plaintext
241 lines
7.9 KiB
Plaintext
!==
|
|
!== PRINTER_DRIVER.txt for Samba release 2.1.0prealpha 981204
|
|
!==
|
|
==========================================================================
|
|
Supporting the famous PRINTER$ share
|
|
|
|
Jean-Francois.Micouleau@utc.fr, 10/26/97
|
|
modified by herb@sgi.com 1/2/98
|
|
|
|
===========================================================================
|
|
|
|
Disclaimer:
|
|
|
|
This ONLY works with Windows 95
|
|
It does NOT work with Windows NT 4
|
|
|
|
|
|
Goal:
|
|
|
|
When you click on a samba shared printer, you can now install the driver
|
|
automatically onto the Windows 95 machine, as you would from an NT server.
|
|
|
|
How To:
|
|
|
|
It's a three step config.
|
|
|
|
First, create a new directory, where you will put the driver files, and
|
|
make a share in smb.conf pointing to it.
|
|
|
|
Example:
|
|
|
|
[printer$]
|
|
path=/usr/local/samba/printer
|
|
public=yes
|
|
writable=no
|
|
browseable=yes
|
|
|
|
Second, you have to build the list of drivers required for a specific
|
|
printer. This is the most complicated thing to do. Get the files
|
|
'msprint.inf' and 'msprint2.inf' from Windows 95, the easiest way is to
|
|
grab them from a working Windows 95 computer. They are usually located
|
|
in 'c:\windows\inf'. Look in them for the printer you have. Run the new
|
|
program 'make_printerdef' with the file name and the printer name as
|
|
parameters. If you have drivers for an unsupported or updated printer,
|
|
first install these drivers on an Windows 95 system. There will be a
|
|
file created in your inf directory named 'oem?.inf' (where the ? is some
|
|
number). Use this file instead of msprint.inf.
|
|
|
|
Example: (from the /usr/local/samba/lib directory)
|
|
|
|
make_printerdef msprint.inf "Apple LaserWriter" >> printers.def
|
|
|
|
The program will print out a list of required files to stderr.
|
|
Copy all the files listed into the directory you created in step 1.
|
|
If you have "preserve case = yes" make sure your files names match
|
|
EXACTLY the names listed.
|
|
|
|
Third, you need to add 2 new parameters in smb.conf. One is in the
|
|
[global] section, called 'printer driver file' pointing to the printer
|
|
description file you just created, and the other in each printer share,
|
|
called 'printer driver location' pointing to where the client will get
|
|
the drivers. Don't forget to set correctly the printer driver parameter
|
|
to the Windows printer name.
|
|
|
|
Example:
|
|
|
|
[global]
|
|
printer driver file=/usr/local/samba/lib/printers.def
|
|
|
|
[lp]
|
|
comment = My old printer laser
|
|
browseable = yes
|
|
printable = yes
|
|
public = yes
|
|
writable = no
|
|
create mode = 0700
|
|
printer driver=Apple LaserWriter
|
|
printer driver location=\\%h\PRINTER$
|
|
|
|
%h will expand to the computer name, and PRINTER$ is the name of the
|
|
share created in step one.
|
|
|
|
|
|
If it doesn't work for you, don't send flame ! It worked for me. In case of
|
|
trouble don't hesitate to send me a mail with your smb.conf file and
|
|
printers.def
|
|
|
|
|
|
******* added by herb@sgi.com
|
|
|
|
For those of you who like to know the details, and in case I have guessed
|
|
wrong on some of the fields - The following is the format of the entries
|
|
in the printers.def file: (entries are 1 single line - they are split here
|
|
for readability)
|
|
|
|
<Long Printer Name>:<Driver File Name>:<Data File Name>:<Help File Name>:
|
|
<Language Monitor Name>:<Default Data Type>:<Comma Separated list of Files>
|
|
|
|
The <Help File Name> and the <Language Monitor Name> can be empty.
|
|
If no <Driver File Name> or <Data File Name> are specified in the inf file,
|
|
these will default to the section name for the printer.
|
|
|
|
The following is an excerpt from the MSPRINT2.INF file on a WIN95 machine.
|
|
I have deleted all but the entries relating to installing a driver for the
|
|
"QMS ColorScript 100 Model 30" printer. Using this "file" I'll try to
|
|
explain how the printers.def file is created.
|
|
|
|
make_printerdef is run with the first argument being the name of this
|
|
file (MSPRINT2.INF in this case) and the second argument being the
|
|
name of the printer ("QMS ColorScript 100 Model 30" in this case).
|
|
|
|
The printer name is first found in the "Model section" to obtain the
|
|
name of the "Installer Section" (this is the name after the equal sign).
|
|
We ignore the alternate name.
|
|
|
|
The "Installer Section" contains entries for "CopyFiles" and "DataSection".
|
|
The "CopyFiles" line gives a list of all the required files for this
|
|
printer. If the name begins with an @ it is the name of a file (after
|
|
you strip off the @), otherwise it is the name of a "Copy Section" which
|
|
in turn is a list of files required. This printer has one file listed
|
|
"QCS30503.SPD" and two sections "COLOR_QMS_100_30" and "PSCRIPT". The
|
|
"COLOR_QMS_100_30" section is listed in the "[DestinationDirs]" as
|
|
having a value of 23. This means that all files listed in this section
|
|
should go into the "color" subdirectory. The list of files to copy for
|
|
this printer is thus:
|
|
|
|
QCS30503.SPD,color\QMS10030.ICM,PSCRIPT.DRV,PSCRIPT.HLP,PSCRIPT.INI,
|
|
TESTPS.TXT,APPLE380.SPD,FONTS.MFM,ICONLIB.DLL,PSMON.DLL
|
|
|
|
From the "Data Section" we obtain values for "DriverFile", "HelpFile",
|
|
and "LanguageMonitor". The % around the value for "LanguageMonitor"
|
|
indicates that it is a string that can be localized so its actual value
|
|
is obtained from the "[Strings]" section. The "Data Section" could also
|
|
have contained an entry for "DefaultDataType".
|
|
|
|
Using the information we have obtained we can now construct the entry
|
|
for the printers.def file.
|
|
|
|
<Long Printer Name> -> QMS ColorScript 100 Model 30 (name given
|
|
on the command line)
|
|
<Driver File Name> -> PSCRIPT.DRV (given in Data Section)
|
|
<Data File Name> -> QCS30503.SPD (defaults to Install Section name)
|
|
<Help File Name> -> PSCRIPT.HLP (given in Data Section)
|
|
<Language Monitor Name> -> PostScript Language Monitor (given in Data Section)
|
|
<Default Data Type> -> RAW (default if not specified)
|
|
|
|
|
|
So.... the enty (actually one line but split here for readability) would
|
|
be:
|
|
|
|
QMS ColorScript 100 Model 30:PSCRIPT.DRV:QCS30503.SPD:
|
|
PSCRIPT.HLP:PostScript Language Monitor:RAW:
|
|
QCS30503.SPD,color\QMS10030.ICM,PSCRIPT.DRV,PSCRIPT.HLP,PSCRIPT.INI,
|
|
TESTPS.TXT,APPLE380.SPD,FONTS.MFM,ICONLIB.DLL,PSMON.DLL
|
|
|
|
---------------------- Info from MSPRINT2.INF ------------------------
|
|
;
|
|
; The Manufacturer section lists all of the manufacturers that we will
|
|
; display in the Dialog box
|
|
|
|
[Manufacturer]
|
|
"QMS"
|
|
|
|
|
|
;
|
|
; Model sections. Each section here corresponds with an entry listed in the
|
|
; [Manufacturer] section, above. The models will be displayed in the order
|
|
; that they appear in the INF file.
|
|
;
|
|
; Each model lists a variation of its own name as a compatible ID. This
|
|
; is done primarily as an optimization during upgrade.
|
|
;
|
|
[QMS]
|
|
"QMS ColorScript 100 Model 30" = QCS30503.SPD,QMS_ColorScript_100_Model_30
|
|
|
|
|
|
;
|
|
; Installer Sections
|
|
;
|
|
; These sections control file installation, and reference all files that
|
|
; need to be copied. The section name will be assumed to be the driver
|
|
; file, unless there is an explicit DriverFile section listed.
|
|
;
|
|
[QCS30503.SPD]
|
|
CopyFiles=@QCS30503.SPD,COLOR_QMS_100_30,PSCRIPT
|
|
DataSection=PSCRIPT_DATA
|
|
|
|
; Copy Sections
|
|
;
|
|
; Lists of files that are actually copied. These sections are referenced
|
|
; from the installer sections, above. Only create a section if it contains
|
|
; two or more files (if we only copy a single file, identify it in the
|
|
; installer section, using the @filename notation) or if it's a color
|
|
; profile (since the DestinationDirs can only handle sections, and not
|
|
; individual files).
|
|
;
|
|
[COLOR_QMS_100_30]
|
|
QMS10030.ICM
|
|
|
|
[PSCRIPT]
|
|
PSCRIPT.DRV
|
|
PSCRIPT.HLP
|
|
PSCRIPT.INI
|
|
TESTPS.TXT
|
|
APPLE380.SPD
|
|
FONTS.MFM
|
|
ICONLIB.DLL
|
|
PSMON.DLL
|
|
|
|
|
|
;
|
|
; Data Sections
|
|
;
|
|
; These sections contain data that is shared between devices.
|
|
;
|
|
[PSCRIPT_DATA]
|
|
DriverFile=PSCRIPT.DRV
|
|
HelpFile=PSCRIPT.HLP
|
|
LanguageMonitor=%PS_MONITOR%
|
|
|
|
|
|
;
|
|
; Color profiles go to the colors directory. All other files go to the
|
|
; system directory
|
|
;
|
|
|
|
[DestinationDirs]
|
|
DefaultDestDir=11
|
|
COLOR_QMS_100_30=23
|
|
COLOR_TEKTRONIX_200I=23
|
|
COLOR_TEKTRONIX_III_PXI=23
|
|
|
|
|
|
;
|
|
; Localizable Strings
|
|
;
|
|
[Strings]
|
|
MS="Microsoft"
|
|
PS_MONITOR="PostScript Language Monitor,PSMON.DLL"
|
|
|