パラレル接続 ZIP ドライブ使う

T.Tominaga

97.5.11

このページでは、IOmega の ZIP DRIVE を特にパラレルポート接続かつ Linux(v2.0.X for i386 arch.) で使う話を中心にのべます。

いきさつ

研究室には、図面製作用に WIN95 の動いているマシンがいくつかあるが、数がちょっと足りない. そのため、学会の直前などは取り合いになったりする. そこで、家にあるマシンで図面を作ろう、ということになるのだが、 図や表がたくさんはいった図面というのはファイルサイズがかなり大きくなり、フロッピー 1 枚では入りきらないので、 持ち運ぶのはかなり大変である.

さらにいうと、研究室ではインターネットがとっても快適に使える. 吉田の本部キャンパスではもっと快適だそうだが、 ここ宇治でも十分快適で、電話回線とは桁違いの速度がでる. ということで、でっかいバイナリをゲットするときは たいてい学校でやっている. が、とってきたファイルを持って帰るのは、これまた大変である.

と思っていたら、バックアップ用に ZIP Drive が研究室に導入された. これを使えば、 研究室と家の間で大量のデータをやりとりするのがかなり便利になる. いろいろと迷ったが、

ということで 97 年の 3 月末に寺町で ZIP Drive を買う. できるだけ安くあげるのを目的にしていたので、当然のことながら、パラレルポート接続のやつを買う. こういう特殊なハードだと Linux でサポートされているかが心配だが、 まあたぶん何とかなるさ、、、

とりあえず 95 で使ってみる

で、買ってきたものの、当然のことながらマニュアルには MS-Windows(3. 1,95) で使うことしか書いていない. ということで、とりあえず内容物を確認し、ハードウェア的に不都合がないことを確認するために 95 で使ってみる. マニュアル通り導入すると、、、うーん遅い. 遅いとは聞いていたが、ここまで遅いとは、、、 その上、データの転送中は CPU に異常に負荷がかかるようで、マウスカーソルの移動とかがやけにぎこちなくなる.

パラレルポート関係の設定をいじれば、何とかなるに違いないと思いつつ、まあバックアップとかデータ転送にしか使わないならば、少々遅くてもいいか、ということで、 とりあえずこのことはあきらめる. プリンタを同時に使っても大丈夫であることなどを軽く確認した上で、チェックを終える.

Linux で使ってみる - その1

やっぱりメインで使う OS でも使えないとね、ということで、Linux で使うことを考える. 基本に忠実に、まずは ZIP 関連のドキュメントを探してみると、ありました. そのものずばりの、
ZIP-mini-howto
なんてのが(ちなみに私は英語で読みましたが、日本語訳も JF の中にあります). なになに、
  1. パラレルポート接続でもちゃんと使える (すばらしい).
  2. パラレル接続だけど、内部的には SCSI と同様に扱われているので、SCSI 関係のオプションを有効にしてカーネルを再構築する必要がある.
  3. どうやらプリンタと同時に使うことはできないらしい (残念)
うーん、うれしいけどちょっと残念かな. まあ使えるんだし喜ばないとね. このドキュメントが対象としているカーネルのバージョンが古いのが気になったので、 最新版のカーネル (2. 0. 29) についてくるドキュメントを読んでみたけど、どうやらそれほど違わないみたいだ. ということで mini-howto ドキュメントに従って、 の三つのオプションを有効にしてカーネルを再構築. いろいろ問題があっても面倒が起こらないように、各デバイスドライバはモジュールとして作られるようにした. 待つこと十数分、再構築終了. 早速リブートして使ってみる. PPA ドライバにはいろいろオプションが与えられるみたいだけど、よくわからないので、とりあえずなにも付けずに立ち上げてみる.

フォーマット (mke2fs) するのが面倒なので、買ってきたディスクをそのまま使って、FAT File System として /mnt にマウントしてみると、、、 あっさり使えてしまえました. kerneld によるデマンドローディングもちゃんとうまくいっているようだし、 タイムアウトとかの問題もないみたい. なんか拍子抜け. でも、やっぱり遅い、、、

とりあえず、/etc/fstab とかを書き換えて、ユーザーレベルでも ZIP のマウントができるようにして、 専用のマウントポインタ /zip を作って、今日はおしまい.

Linux で使ってみる - その2

さて、zip-mini-howto がかなり古かったので、最新の情報を得るために、学校で「ネットサーフィン」する. ZIP-mini-howto にも記載されていた、 http://www. torque. net/zip. html を起点にして、ごちゃごちゃたどっていくと、なんと、 Dave Campbell, Tim Waugh, Phil Blundell といった人たちによって、parport というプロジェクトが進行中で、 このプロジェクトによってプリンタとパラレル接続の ZIP を同時に使うことができるということがわかった. ということで、早速 このプロジェクトの Web Pageにいってみる. ここからカーネルに parport ドライバを導入するパッチをゲットして、ZIP に入れて家に持って帰り、早速家で試す.

おお、すばらしい. 確かに同時に使える. モジュール化したドライバを使えば、手動でモジュールをリムーブすることによってプリンタと ZIP を排他利用することは可能だし、 別に再起動する必要もないので、それほど手間がかかるわけではないけれど、やっぱり同時に使えるとうれしいものである. 使ってみたところ、特に問題もないようなので、そのまま使うことにする.

もうちょっと速くならんかな

とりあえず使えるし、フロッピーよりは速い(多分)のでまあ許せるんだが、それでもやっぱり遅いので、なんとかならんか考える. 最近のパラレルポートは、双方向インターフェースや、DMA を使った転送なんぞができると聞いていたので、 こういったやつについて、詳しいことを調べてみる.

調べた結果、

  1. こういう高速なインターフェースは、 ECP とか EPP とかいったやつが当てはまる(従来のインターフェースは SPP というらしい)
  2. 最近の一般的なマザーボードのほとんどでこれらのインターフェースが使える. インターフェースのモードは BIOS FEATURE で切り替えられる.
  3. ECP と EPP のどっちがいいかは転送するデータの性質によるが、どっちにせよ SPP よりは速い.
  4. EPP は DMA を使用するので、古いタイプ(ISA Bus に刺すような)の SCSI Adaptor と同時には使えない
  5. もしかすると古いプリンタとかでは EPP では問題がでるかもしれない.
  6. Linux でも最新版の ppa-3 ドライバなら EPP とかにも対応している.
ということがわかった. 使っているプリンタが BJC400 という、ちょっと古いタイプなので、5 が気になったけど、 とりあえず BIOS の設定を変えて、いろいろと試してみて、使えるかどうかをチェックする.

結果、Win95 ではどのモードでも使えることがわかった. プリンタ出力も問題なし. ただし、Canon のプリンタドライバのドキュメントには、 「BJC400 で EPP だと一部のマシンで不安定になることがある」という記載があるので、ちょっと心配する. 超忙しい修羅場とかに 不安定になられても困るなあと思いつつ、普段使う分には困らないから、いいや. あと、ZIP のマニュアルには書いてないけど、プリンタポートの設定を変えた後は、パラレルポートアクセラレータを実行しないと、 その変更がドライバに通知されないようである. 何とも間抜けなドライバですな. PnP が泣くよ、、、

Linux だと、EPP で使うとマウント時のドライバのデマンドローディング中にいきなり落っこちてしまった. なぜ?落っこちるときのメッセージをみていると、どうやら初期化の段階で Time out を起こしているらしい. ちゃんと ppa driver にオプションを付けて、タイムアウトの設定をすればいいのだろうけど、 いきなり落っこちるというかなりやばいバグ、もとい仕様であるように思える.

ちゃんと設定するのが面倒なのと、読み込み時の転送速度は ECP モードの方がいいようなので、 とりあえず ECP で使うことにした. SPP の時に比べると、確かに 2 倍近い転送速度がでている. それでも遅いけど、まあ値段が値段なので、これ以上高望みはしないことにする.

現在の使用状況

で、現在のところ、Linux ではそんなに使っていない. やっぱり MS-Windows で使うことの方が多い. 研究室と家の間でデータをやりとりするだけなら、いったん Windows を立ち上げて、その上で ZIP から HD にコピーしてから、 Linux を立ち上げればいいんだし. やりとりするファイルのほとんどは Windows で作った図面のファイル(PowerPointer で作ったやつが多い)なので、 その編集に Windows を立ち上げる必要があるので、結局 ZIP を使うときは Windows を使う必要があるためである.

現在、Linux の安定系のカーネルは 2. 0. 30 になっているが、今のところこのバージョン向けの parport ドライバはリリースされていないようである (parport ドライバそのものが 2. 0. 30 に組み込まれたのかなあと思ったのだが、そうではないようである). しかしながら上記のように、ZIP は Windows で使う状態なので、現在のところ parport というか、ppa-3 ドライバの必要性すら感じられない. ということで、現在のところとりあえず使えればいいやということで、ppa-3 ドライバと lp ドライバをともにモジュール化し、 2. 0. 30 のカーネルを使っている. プリンタと ZIP の排他利用ということになるので、ちょっと手間がかかるが、 ちゃんと ZIP も使える. ちなみに、最近では mule のソースや netscape4pr3 for linux を家に持って帰るときなどに使った.

まあ、もうじき Fortran で UNIX 用の大規模なプログラム(シミュレーションコードですが)を書く必要があるので、 そのときは家と学校の間でプログラムの転送に大活躍してくれることでしょう.