!== !== 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"