最初に、カーネルの設定が必要になります。
まずは、VMware上にインストールしたGuestOS、Windows上での 印刷ができるように、なる事です。
おそらく、普通にLinuxをインストールした状態では、 印刷に必要なModuleは、インストールされていると思います。
parport,parrport_pc,ppdev
この3つのmoduleを組み込んで下さい。lsmodで、確認できます。
$ lsmod
ppdev 8708 0
parport_pc 32964 0
parport 34248 2 ppdev,parport_pc
この3つのmoduleを組み込むには、modprobeというコマンドを 使います。また、Linux起動時に自動的に組み込むには、 Distributionによって、設定方法が違います。
Debianでは、/etc/modulesに、設定します。
$ cat /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file should contain the names of kernel modules that are
# to be loaded at boot time, one per line. Comments begin with
# a "#", and everything on the line after them are ignored.
parport
parport_pc
ppdev
というように、 parport,parport_pc,ppdevの3行を加えます。
この中の、parport_pcを組み込む時の注意点があります。 このparport_pcのmoduleを組み込む際に、"io=0x378 irq=7"という オプションを加えてください。
具体的には、/etc/modules.confに、以下の1行を加えて、 moduleをreloadするか、Linuxを再起動して下さい。
options parport_pc io=0x378 irq=7
この378と7というのは、使用しているPCによって異なる事があります。 BIOSの設定などを見て、各自変更してください。 これは、パラレルポートのIO PORTと、IRQです。 ここでは、IO PORTを378、IRQを7として設定しました。
# 最近では、/etc/modules.confから、/etc/modprobe.confに
# ファイル名が、変わりました。
# また、Debianでは、/etc/modprobe.d/上にファイルを作って、
# moduleのoptionを設定する事が推奨されています。
# /etc/modprobe.d/parportという感じにファイルを作成するのがいいと思います。
VMware Workstationをインストールして下さい。
このVMwareは、買う必要があります。もちろんLinux上で使用するので、 VMware Workstation 5.5 (for Linux Systems)の方を買う必要があります。 VMWareで売ってるのですが、 $189.00します(2005/12/12現在)。かなり便利なソフトなのですが、 高いです。2万近くするので、買うのには、ちょっと勇気がいります。^^;
## vmwareを起動するには、環境変数LC_ALLをCに設定する
## 必要があるかもしれません。(2005/12/12現在、Debian sid使用時)
## おそらく、LC_MESSAGEだけをCに設定すればいいと思うのですが、
## 検証していません。動作確認しているのは、LC_ALLをCに設定した時です。
##
## $ LC_ALL=C vmware
##
## shellがbashの場合、上のようにして起動すれば、動くと思います。
インストールするには、VMware-workstation-5.5.0-xxxxx.tar.gzを、 /tmp に展開します。そうすると、vmware-distribというディレクトリが できるので、そのvmware-distrib上にある、vmware-install.plをroot権限で 実行します。
moduleのコンパイルとインストールを行うので、 使用しているカーネルに対応した、カーネルのソースのヘッダーが 必要になります。もちろんgccも必要です。
# cd /tmp/vmware-distrib
# ./vmware-install.pl
途中で、ネットワークの設定を聞かれるのですが、natを 使用するようにしておけば、いいと思います。bridgeを使用するのも、 いいかもしれません。
VMwareがインストールできたら、guest OSであるwindowsを インストールをします。
New Virtual Machineを選んでください。New Virtual Machine Wizardが 起動するので、それに従ってVirtual Machineの設定をします。
Virtual Machineの設定ができたら、いよいよwindowsのインストールです。 windowsのインストールCDを、CD-ROMドライブ(DVDドライブ)にいれて、 Virtual MachineをPower Onしてください (おそらく、Power Onのボタンを押せば、自動的に、Virtual Machineが 起動すると思います)。
後は、普通にwindowsのインストールをするだけです。
windowsのインストールが終わったら、vmware toolsのインストールです。 これをインストールすると、マウスによるウィンドウのフォーカスイン、 アウト、host OS(ここでは、linux)とのカットアンドペーストのやりとり、 VGA以上の解像度での表示、が可能となります。
VMwareの VM -> Install VMware tools ...を選択すると、 インストールできます。
VMware上に、windowsがインストールできたら、そのwindowsで印刷ができるか テストしてみましょう。
普通にwindowsで印刷するように、printerのドライバーをインストールして テスト印刷をしてみます。
LP800Sのドライバーを EPSONのサイトから ダウンロードして、インストールします。
インストールが終了したら、 コントロール パネル -> プリンタ -> EPSON LP800Sを選びます。
そしたら、LP800S上の、プリンタ -> プロパティー、そして、 テスト ページの印刷を選びます。
うまくいかなかったら、Linuxの、パラレルポート関連のmoduleの設定を 見直してください。
parport,parport_pc,ppdevの3つのドライバーが、 moduleとしてloadされている必要があります。
redmonそして、lpr clientの設定とredmon+gs+smbclientのWindowsマシンの設定を参照。
redmonそして、lpr clientの設定のとおりに設定すると、 gvによる印刷イメージの閲覧が、可能になります。 また、gvから印刷することで、印刷も可能になります。
ですが、これでは、LPRから印刷をかけても、GVの所でいったん止まってしまい、 不便です。
そこで、redmon+gs+smbclientのWindowsマシンの設定を参考に、redmonの設定(Redirect Portの設定)を変更をすることにします。 そうすることによって、LPRからの印刷が途中で止まることなく、VMwareを とおして、一気に行われるようになります。
Ghostscript 8.53 + GSview 4.8 の日本語版 から、日本語版のGhostscriptを入手してください。もちろんwindows対応のバージョンです。
zipで圧縮されてるので、適当なtoolを使って解凍してください。(解凍先のフォルダーをあらかじめ作っておいて、そこに解凍するのが、おすすめです。) winzipなんか使うと、使いやすいかもしれません。
解凍先のフォルダーに、setupgs.exeというファイルがあるはずなので、 それを実行します。後は、画面の表示にしたがって、installして下さい。 俺は、c:\gsというフォルダーにinstallしました。
Redmonから、 redmonを入手して下さい。これもまたzipで圧縮されているので、 適当なフォルダーに解凍します。(俺は、c:\tmp\redmon17というフォルダーに 解凍しました。)解凍先のフォルダーに、setup.exeがあるので それを実行します。setup.exeが終了したら、redmonを解凍したフォルダーを c:\配下に移します。(おれの場合だと、c:\tmp上にあるredmon17という フォルダーをc:\に移動しました。
コントロールパネルの、プリンタから、プリンタの追加を起動します。
"ローカルまたはネットワークプリンタ"の設定にきたら、 "ローカルプリンタ"を選びます。
プリンタポートの作成という画面にきたら、"新しいポートの作成"を チェックし、その右の選択ダイアログで、"Redirected Port"を選択します。
その後の画面の、"Port Name"は、RPT1:のままでOKです。
その後の画面で、"PRT1: Properties"という画面になります。そこの設定が、肝です。
"Redirect this port to the program"の項目を、"C:\gs\gs8.53\bin\gswin32c.exe"に、します。(パスは、Ghostscriptをinstallした場所に、適時変更して下さい。)
そして、"Arguments for this program are"に、"@C:\gs\vrps.rsp -"と 設定します。
後は、"Output:"に、"Copy temporary file to printer"、
"Printer"に"EPSON LP-800S"、
"Run:"に"Hidden"、を設定し、
"Run as User"にチェックをいれて下さい。
設定ができたら、OKを押して、次に進みます。
プリンタモデルの設定になったら、適当なPSプリンタを選びます。 Postscriptに対応したプリンタなら、どれでもかまいません。 俺は、AdobePSGenericPostScriptPrinterを選びました。 このドライバーは、AdobeのHPから入手できます。
次に進むと、プリンタ名の設定画面になります。 俺は、vrpsという名前にしました。 後は、適当に進むと、仮想プリンタの作成は、終わります。
仮想プリンタの作成の中で、"@C:\gs\vrps.rsp -"と設定する所がありましたね。 そこで設定している、vrps.rspを作成します。
vrps.rspの置き場所は、先に設定した場所になります。俺の場合は、 c:\gsが置き場所になります。その内容は、
-Ic:\gs\gs8.53\lib;c:\gs\fonts;c:\gs\gs8.53\kanji;c:\gs\gs8.53\bin
-sDEVICE=mswinpr2
-dNOPAUSE
-dSAFER
-sPAPERSIZE=a4
-sOutputFile="\\spool\EPSON LP-800S"
です。
面倒くさかったら、ここからダウンロードして下さい。
"c:\gs\gs8.53\lib;c:\gs\fonts;c:\gs\gs8.53\kanji;c:\gs\gs8.53\bin"の 部分は、それぞれ、Ghostscriptをinstallした場所に変えてください。
Print Serverを起動しましょう。おそらく、このプログラムはinstallされて いないので、installします。windowsのCDを用意して下さい。
コントロールパネルのアプリケーションの追加と削除を起動します。
そして、Windowsコンポーネントの追加と削除を選びます。 そして、"そのほかのネットワークファイルと印刷サービス"から"詳細"を 選びます。その詳細の中の、"UNIX用印刷サービス"にチェックを入れて、 installします。
コントロールパネルから"管理ツール"を起動します。その中の、 "サービス"を起動します。その中の、"TCP/IP Printer Server"の サービスを開始します。また、TCP/IP Printer Serverのプロパティ の中の、"スタートアップの種類"を"自動"にします。
## windowsNTまたは、windows2000の場合、レジストリをいじる必要が
## あるかもしれません。
##
## [HKEY_USERS\.DEFAULT\Software\Microsoft\Windows NT\CurrentVersion\Devices]
## に
## "EPSON LP-800S"="winspool,LPT1:"
##
## という項目をregeditで作成するのですが、regeditでの作業を行うと、
## windowsが起動しなくなる可能性があります。気を付けて実行して下さい。
Linux側の設定をします。lprngと、printcapの設定です。
lprngパッケージをinstallします。Debianだと、
# apt-get install lprng
で終了です。
printcapに設定をするのですが、まず、guestOSであるwindowsのIPアドレスを 知っておかなければなりません。
windowsで、コマンドプロンプトを立ち上げます。そのコマンドプロンプトの中で、
ipconfig
とコマンドを打ちます。
Windows 2000 IP Configuration
Ethernet adapter ローカル エリア接続:
Connection-specific DNS Suffix . : localdomain
IP Address. . . . . . . . . . . . : 192.168.104.128
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . :
というように表示されると思います。この、IP Addressの値を メモしといて下さい。(この例では、192.168.104.128となっています)
このIP Addressの値を使って、printcapを設定します。
/etc/printcapの内容に以下のような、エントリーを作って下さい。
lp:lp=vrps@192.168.104.128
:sd=/var/spool/lpd/%P
:sh:mx=0:mc=0
上の、192.168.104.128の部分は、さっきメモしといた、IP Addressの値を いれて下さい。
printcapの設定が終わったら、lprngの再起動をして下さい。
# /etc/init.d/lprng restart
Debianでは、上のようにして、再起動ができます。
以上で、設定は終わりです。テスト印刷をしてみましょう。
適当なPSファイルを用意します。a2psやa2psjを使えば、簡単に用意できます。 a2psjは、日本語に対応したa2psです。Debianでは、a2ps-perl-jaという パッケージに入ってます
あとは、用意したPSファイルを印刷にかけるだけです。
$ lpr aaa.ps
うまくいけば、これで印刷ができるはずです。
(aaa.psは、それぞれ用意したPSファイルに置き換えてください。