![[ Samba ]](/swat/images/samba.gif)
!==
!== PRINTER_DRIVER.txt for Samba release 2.0.7 26 Apr 2000
!==
==========================================================================
共有 PRINTER$ のサポート
Jean-Francois.Micouleau@utc.fr, 10/26/97
modified by herb@sgi.com 1/2/98
訳出: nakano@apm.seikei.ac.jp 7/4/98
===========================================================================
お断り:
この文書の内容は Windows 95 で *のみ* 有効です。
Windows NT 4 では動作 *しません*。
目的:
samba で共有されたプリンタをクリックしたときに、そのプリンタの
ドライバを Windows 95 マシンに自動的にインストールできるように
することです。 samba サーバを NT server のようにするわけです。
方法:
3段階の設定となります。
まず第一に、プリンタドライバのファイルを置くディレクトリを新し
く作り、 smb.conf にそのディレクトリを用いる共有を作成します。
例:
[printer$]
path=/usr/local/samba/printer
public=yes
browseable=yes
第二に、用いるプリンタに必要なドライバのリストを作成します。こ
れが最も面倒な仕事です。 'msprint.inf' および 'msprint2.inf'
というファイルを入手して下さい。多分動作している Windows 95 マ
シンから持ってくるのが一番簡単でしょう。通常 'c:\windows\inf'
にあるはずです。それらを見て、お使いのプリンタを探して下さい。
ここで samba に新しく導入されたプログラム 'make_printerdef' を
実行します。ファイル名とプリンタの名前をパラメータに指定して下
さい。デフォルトでサポートされていないプリンタのドライバや、更
新されたドライバがある場合は、まずそのドライバを Windows 95 シ
ステムにインストールして下さい。すると inf ディレクトリに
'oem?.inf' (? は番号)というファイルができるはずです。このファ
イルを msprint.inf の代わりに用います。
例: (/usr/local/samba/lib ディレクトリで実行します)
make_printerdef msprint.inf "Apple LaserWriter" >> printers.def
このプログラムは必要となるファイルのリストを stderr に表示しま
す。リストされたファイルを、第一ステップで作成したディレクトリ
にすべてコピーして下さい。 smb.conf で "preserve case = yes"
を指定している場合は、ファイル名が大文字/小文字を含めて正確に
一致しているかどうか確認して下さい。
第三に、 smb.conf に二つの新しいパラメータを追加する必要があり
ます。一つは [global] セクションに追加する 'printer driver file'
で、いま作成したプリンタ記述ファイルを指定します。もう一つはプ
リンタの共有セクションに追加する 'printer driver location' で
す。これはクライアントがドライバを入手する場所を指定します。ま
た 'printer driver' パラメータに、 Windows でのプリンタ名を正
しく設定する必要があります。
例:
[global]
printer driver file=/usr/local/samba/lib/printers.def
[lp]
comment = My old printer laser
browseable = yes
printable = yes
public = yes
create mode = 0700
printer driver=Apple LaserWriter
printer driver location=\\%h\PRINTER$
%h はコンピュータの名前に展開されます。 PRINTER$ は第一ステッ
プで作成した共有です。
あなたのところでうまくいかなくても、どうか怒らないで下さい。私のところ
ではちゃんと動いているのですから。トラブルが起こった場合は、smb.conf
と printers.def を付けて、私まで気軽にメールを送って下さい。
******* herb@sgi.com による補足
原理について詳しく知りたい人のために、あるいは私自身がいくつかのフィー
ルドに関して間違っている可能性もあるので - 以下は printer.def ファイル
のエントリのフォーマットです。(各エントリは一つの行からなります。ここ
では可読性のために行が分割してあります)
::::
::
と は空でもかまいません。
または が inf ファイルに指定されて
いなければ、これらはデフォルトでそのプリンタのセクション名になります。
以下は Win95 マシンにあった MSPRINT2.INF ファイルからの抜粋です。ただ
し "QMS ColorScript 100 Model 30" プリンタにインストールするドライバに
関係していない行は、すべて削除してあります。この「ファイル」を用いて、
printers.def がどのように生成されるかを説明してみたいと思います。
make_printerdef を実行します。第一引き数にはこのファイルの名前(今回は
MSPRINT2.INF)、第二引き数にはプリンタの名前(今回は "QMS ColorScript
100 Model 30")を与えます。
まずプリンタ名が "Model section" に見つかります。すると "Installer
Section" の名前がわかります(等号の後の名前です)。別名は無視します。
"Installer Section" には "CopyFiles" と "DataSection" というエントリが
あります。 "CopyFiles" の行に、このプリンタに必要なファイルがすべて与
えられます。 @ で始まる名前はそのままファイル名を(@ を取り去ったもの
が名前になります)、それ以外の場合は "Copy Section" の名前を示します。
後者は、さらに必要なファイルのリストとなっています。このプリンタは
"QCS30503.SPD" というファイルを一つと、 "COLOR_QMS_100_30" と
"PSCRIPT" という二つのセクションを必要としていることがわかります。
"COLOR_QMS_100_30" は "[DestinationDirs]" にもあり、23 という値が与え
られています。これは、このセクションにリストされているファイルが、すべ
てサブディレクトリ "color" に行くべきであることを示しています。結局、
このプリンタのためにコピーしなければならないファイルは、以下のようにな
ります。
QCS30503.SPD,color\QMS10030.ICM,PSCRIPT.DRV,PSCRIPT.HLP,PSCRIPT.INI,
TESTPS.TXT,APPLE380.SPD,FONTS.MFM,ICONLIB.DLL,PSMON.DLL
"Data Section" から、 "DriverFile", "HelpFile", "LanguageMonitor" とい
う値が得られます。 "LanguageMonitor" の値の両側にある % は、これが展開
可能な文字列であることを示しており、したがって実際の値は "[Strings]"
で得られます。 "Data Section" には "DefaultDataType" が指定されること
もあります。
これらの情報を用いれば、 printers.def ファイルのエントリを構成すること
ができます。
-> QMS ColorScript 100 Model 30
(コマンドラインに与えた名前)
-> PSCRIPT.DRV (Data Section で与えられる名前)
-> QCS30503.SPD (Installer Section の名前)
-> PSCRIPT.HLP (Data Section で与えられる)
-> PostScript Language Monitor
(Data Section で与えられる)
-> RAW (指定されない場合のデフォルト)
さて... 結局エントリは以下のようになるでしょう(本当は一行になります。
ここでは可読性のために分割してあります):
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
---------------------- 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"