印刷環境を整える
〜 ネットワーク経由での印刷 〜

 PS2 Linuxのβリリース発表以来、よく聞かれたのが「サーバにしたい」という声。もちろんLinux自体デスクトップクライアントとしての地位が高くないことを反映してのことなんでしょうけど、それよりも安価なゲーム機がLinuxマシンになる、グラフィックワークステーションに並ぶか凌ぐとさえ言われる性能、あるいはパソコンに比べて静かというところがサーバ待望の声を大きくしたポイントだろうと思われます。
 しかしながら、実際には利益度外視(らしい)Linux Kitを考慮に入れても本体も含めて全部揃えることを考えると決して安くないことがいくつかのサイトで通販価格を引用して実証されましたし、性能もすごいのはグラフィック処理部であってCPU自体は2001年夏時点でのローエンド機以下、本体にファンがついているというゲーム機としては異例の設計に加えHDDもカリカリ音がして静音性にも優れないということで、当初期待されたようなサーバ用途にはあまり向いてないかもしれなくなりました。
 逆に私は、発表当初からクライアントとしての期待をかけていました。PS2がセットトップボックスやThin clientになるという考え方です。確かPS2発表時にSCEIは潜在的な敵としてWebTVなどのバックにネットワークを持つブラウザマシンの存在を公言していたように記憶しています。PS2の代わりにテレビを占有され、いつまでもウェブサーフィンをされていたらゲーム機がいらなくなりますし、PS2自体がそういう機械になったらゲームソフトの売れ行きがかげります。しかしながら、先日のJavaOneなどでPS2用のネットワークコンテンツを構築することを発表したり、Javaが移植されることになったり、Linux Kit向け以外にもHDDやキーボードなどが販売されるに至って、SCEIは「ゲームソフトが売れなくても困らない方法」を見出したのかもしれません。

 前置きが長くなりましたが、クライアントとして使用するならば、印刷環境も手元に構築しなければなりません。まさか印刷コマンドを実行したら3日後くらいに宅配便で印刷結果が送られてくるようなことにはなりませんしね。ですが、まぁ他のページでもしきりに書いてますが、PCのようなパラレルポートはPS2にはありません。さて、どうするか…。


プリントサーバを使う

 …とご大層な前振りをしたところで、Linux/UNIX経験者ならすぐ答えはわかりますよね。自分が印刷できないんなら、ネットワークでつながった誰かに印刷させればいいんです。そういう、プリントサーバを立ててやって、そのサーバにプリンタを接続し、こちらはそのサーバの存在を設定ファイルに記述すればOK。慣れた人なら眠っている古いパソコンにLinuxなんかをインストールして、そういう設定をすれば安上がりになりますよね。

 でも「余ってるパソコンなんてない」とかいう人もいるわけで。まさかプリンタ用にパソコンを一台買ってくるなんてバカバカしいったらありゃしません。そこで候補に上がるのが、「プリント専用サーバ」。小さい物はごついコネクタぐらいから大きいものはLANのHubくらいのものまでいろいろあります。価格も安いものは6000円くらいから数万円まで千差万別です。
 「わかった!そんなに高級なのはいらないから、一番安いやつを買ってこよう!!」と思ったアナタ、ちょっと待ってください。意味もなく値段の上下があるわけではありません。ハードの性能差もさることながら、サポートするプロトコル(つまりソフト)でも値段が左右されるのです。例えばプラネックスプリントサーバの製品一覧にある対応プロトコル一覧を見てみると、一部製品にサポートされないプロトコルがあります(昔からすればかなり減った方ですけどね)。だいたい右へいくほど安い製品ですから、プロトコルのサポートは値段によりけりというふうにも読めるでしょう。PS2 Linuxで使用したいプロトコル、そしてネットワークにつなぐのですからこれまで直接つながっていたパソコンがネットワーク経由に変えても使えるプロトコルを考慮して製品を選んでください。

 今プラネックスを紹介しといてナニですが、これから私が紹介するのはヒューレット・パッカードプリントサーバであるJetDirect EX Plusです。

 これを買ったのはもう5年くらい前で、ちょうどSOHOとかが盛り上がりを見せ始めた頃です。職場で見たプリントサーバ(確かインテルのやつ)に異様に憧れてしまって、でも高いだろうなぁ…と立ち寄ったアキバのぷらっとほーむで、25000円前後の値札のついたJetDirect EX Plusを見つけてあまりの安さにびっくりしたのを憶えています。だって、十万円はくだらんだろうと思っていたので…。で、情報を集めるうちにこの製品がマルチプロトコル・マルチNOSを謳っていることがわかり、しかもそのプロトコルの中に当時私が主に使っていたOS/2 Warpのサポートするプロトコル「DLC/LLC」が含まれていることを知って、購入を決断しました。とか言いつつ、DLC/LLCで接続することなくOS/2の使用をやめてしまったのですが…。現在はこの製品は現行のものではないようで、JetDirect 300Xに置き換わっているようです。
 接続するプリンタ、ALPSMD-5000です。マイクロドライ方式…って要は熱転写だったんですが、買った当時は唯一の2400dpiの解像度を誇るすばらしいプリンタでした。印刷速度が遅いのはインクリボン式の泣き所ですけど…。なお、HPALPSJetDirect EX Plusでのネットワークプリントを保証してはいなかったのですが、オプションに純正のUSBケーブルがあることから、Windowsのドライバはちゃんと仮想化が図られている(=ポートを直接叩くようなことをしていない)という確信の元にネットワークプリント環境を構築し、狙いどおりに印刷に成功しました。
 ちなみに、自分のプリンタは今写真を撮影できる体勢ではないんで、しばらくMD-5000のページのものを拝借しておきます。そのうち自分のものに差し替えますんで…。

 では、JetDirect EX Plusをセットアップします。JetDirect EX PlusはWindows用の管理ツールJetAdminによっていろいろ設定変更ができたりするのですが、まずはTCP/IPで基本的な設定をします。プリンタとサーバをケーブルでつなぎ、ネットワークにも接続して、ACアダプタをつないだら、TELNETで次のように接続します。

telnet 192.0.0.192

このIPアドレスは、出荷時のデフォルトです。すると次のようなメッセージが現れます。接続確認のためにReturn(Enter)を2回押せと言ってますので、ポンポンと2回叩いておきましょう。

Please type [Return] two times, to initialize
telnet configuration
For HELP type "?"
>

現在の設定状況を確かめるには"/"を入力します。すると次のようなリストが現れます(使用中のサーバの設定を拾ってきたのでデフォルトではないものもあると思います)。

   ===JetDirect Telnet Configuration===
Present Config : FRONT PANEL/TELNET
MAC Address : 00:60:b0:43:c4:eb

IP Address : 192.0.0.192
Subnet Mask : 255.255.255.0
Default Gateway : 0.0.0.0
Syslog Server : 0.0.0.0
Idle Timeout : 120 Seconds
Set Cmnty Name : Not Specified
Host Name : Not Specified

DHCP Config : Disabled
Passwd : Disabled
Novell : Enabled
DLC/LLC : Disabled
Ethertalk : Disabled
Banner page : Enabled

少なくとも、IPアドレスだけは現状のネットワークに合わせる必要があります。我が家は固定IPなので

ip:192.168.1.10

と入力すればそのように設定されます。私は使ってませんが、DHCPで運用しているネットワークなら

dhcp-config:1

として設定リストのDHCP Configの欄をEnabledとする必要があるでしょう(デフォルトはEnabledのようです)。

 もしWindowsマシンなどがあって、そちらでもプリンタを共有するなら一度テスト印字をしておくのがいいでしょう。私の場合は、プリンタ添付のドライバをインストールする際にこのネットワークプリンタを指定することで、Windowsでも使えるようになりました。ファームウェアのアップデートをするならIPX/SPXドライバが必要になりますが、それ以外の場合ならTCP/IP接続で何も問題はありません(マニュアルがどうも読みづらくって、かなり長い間IPX/SPXでしか接続できないと思い込んでいました…)。


Linux側の設定

 LinuxなどのUNIX系と言われるようなOSでは、印刷設定のポイントは次の3つです。

  1. /etc/printcap
  2. lpd
  3. GhostScript

 一応説明しておくと、/etc/printcapは印刷に関する設定ファイル(The Linux Printing HOWTOを参照のこと)、lpdは印刷ジョブを適切なフィルタを通して指定されたプリンタデバイスにデータを送るデーモン、GhostScriptはフリーのPostScript互換インタプリタで、印刷データを特定のプリンタのコードに変換する「フィルタリング」の機能も持っています。
 で、実際のところPS2 Linuxではこの3つのいずれも存在します。実作業としては/etc/printcapの編集が残っているのですが、RedHat系のこのLinuxではもっと簡単に済ませることができます。それが"printtool"です(というか、/etc/printcapを見たら「printtoolで変更せい」とコメントされてますし)。

 printtoolはroot権限でのみ動かせるXアプリケーションです。rootでログインしてXを立ち上げるよりも、一般ユーザーでXを起動してsuでrootになるべきですね。root権限で、

printtool.ja &

と入力すれば(printtoolでもいいんですが、メニューが英語になります)、

というようなウィンドウが開きます。とその直後に、

というパネルが出るかもしれません。NetWareのプリンタが共有できる環境でそれを望むなら、ncpfsのインストールが必要になるのでしょう。今回はlpdで普通のプリンタを使うので「無視」でOKです。
 さて、プリンタの設定をするために最初のウィンドウの「追加」をクリックします。すると

というように使用するプリンタの種類を選択するパネルが現れます。ここはネットワーク上のリモートプリンタを使うので「リモートプリンタ(Unix lpd)キュー」を選択して「了解」をクリックします。すると次に

という、プリンタの接続方法に関する設定のパネルが現れます。主にここに入力するのはプリンタ名とリモートホスト名です。プリンタ名は複数台・複数設定があった場合に判別しやすいように名づけます。リモートホスト名はDNSやhostsでホスト名が定義されているならそれを、(私のように)さぼっているならIPアドレスを入力します。スプールディレクトリやファイルサイズリミットはそのままの値で、リモートキュー名は空白のままでいいでしょう。決めるものを決めたら入力フィルタの「選択」をクリックします。

ここでプリンタドライバの動作を定義します。左にプリンタの種類がありますので、使用するプリンタをここで選択します。右はドライバの詳細で、カラーかモノクロかとか解像度とかを決めます。ここでは日本語PostScriptサポート、1200x600ドットでの白黒印刷を指定しています。終わったら「了解」をクリックして閉じます。その前のパネルに戻りますので、これも「了解」で閉じます。

設定が終わるとこのようにプリンタ名とその所在について簡単にリストされるようになります。この内容が/etc/printcapにあるわけです。
 設定できたら、メニューの「テスト」からテストページの印刷をしてみましょう。「Postscriptテストページの印刷」を選択して出てきた紙がこれです。

左がモノクロ、右がカラーで印刷したものです。よく見ると、PS2 Linux専用に描かれたテストページだということがわかります。


ところで

 最近はlpdはもう古い、CUPSなるものが流行なんだとか。Windowsのように簡単で、かつ強力にプリンタを使うことができるんだそうな。しかもJetDirectのコントロールもできるらしい。実は最初それを入れてみようかと考えてたんですが、printtoolであっさり印刷できたのでどうでもよくなってしまって…。

 あと、最初英語メニューの出るprinttoolを使っていたのですが、その時にはどうしてもカラー印刷ができなくって「プリンタドライバが腐ってるんかな…?」などと考えていたんですが、printtool.jaを使うようにするとあっさり印刷されるようになりました。何が違うのやら…。

戻る