次のページ 前のページ 目次へ

9. PLIP と LP (プリンタデバイス)をうまく共存させるには

PLIP と LP を共存させる一番いい方法は、カーネルモジュールを使う方法です。 plip.o をロードしておいて PLIP を使い、プリントする必要が生じた時に plip.o をアンロードして...その逆もまたしかり、という方法です。 どうしても PLIP と LP を同時に使いたい場合には、以下のパッチを試してみて ください。

9.1 PLIP と LP を同じポートで使う。

なんらかの理由で PLIP と LP をカーネルの直接サポートで(訳注:モジュール ではなく)使いたい場合には、以下のパッチを試してみて下さい。

以下のソースコードを書き換える必要がありますが、書き換える前にそれらの バックアップをとっておくことをお忘れなく:

******** modifications to linux/drivers/char/lp.c ***********************
struct lp_struct lp_table[] = {
        { 0x3bc, 0, 0, LP_INIT_CHAR, LP_INIT_TIME, LP_INIT_WAIT, NULL,
NULL, },
/*      { 0x378, 0, 0, LP_INIT_CHAR, LP_INIT_TIME, LP_INIT_WAIT, NULL,
NULL, },
        { 0x278, 0, 0, LP_INIT_CHAR, LP_INIT_TIME, LP_INIT_WAIT, NULL,
NULL, },
*/
};
#define LP_NO 1

******** modifications to linux/drivers/net/Space.c ********************
#if defined(PLIP) || defined(CONFIG_PLIP)
    extern int plip_init(struct device *);
    static struct device plip2_dev = {
        "plip2", 0, 0, 0, 0, 0x278, 2, 0, 0, 0, NEXT_DEV, plip_init, };
    static struct device plip1_dev = {
        "plip1", 0, 0, 0, 0, 0x378, 7, 0, 0, 0, &plip2_dev, plip_init, };
/*    static struct device plip0_dev = {
        "plip0", 0, 0, 0, 0, 0x3BC, 5, 0, 0, 0, &plip1_dev, plip_init, };
*/
#   undef NEXT_DEV
#   define NEXT_DEV     (&plip1_dev)
#endif  /* PLIP */

もちろん、お決まりの免責事項があります: 私は単にこのパッチをもらい、 「そのまま」ここに書いただけです。つまりこれを使うのは、"your own risk" で 行なって下さい。 まあ、いずれにせよ、なにか問題が起きたら、元のファイルに戻して、リコンパイル するだけのことですけどね。

9.2 PLIP と LP を異なったポートで使う。

もし2つ以上のパラレルポートがあるならば、次のパッチを試してみましょう。 片方のポートで PLIP を、もう片方のポートで LP を動作させることができる はずです。

  1. カーネルソースファイルの drivers/char/lp.c 中の1行をコメントアウトする。
    struct lp_struct lp_table[] = {
    { 0x3bc, 0, 0, LP_INIT_CHAR, LP_INIT_TIME, LP_INIT_WAIT, NULL, NULL, },
    { 0x378, 0, 0, LP_INIT_CHAR, LP_INIT_TIME, LP_INIT_WAIT, NULL, NULL, },
    /* { 0x278, 0, 0, LP_INIT_CHAR, LP_INIT_TIME, LP_INIT_WAIT, NULL, NULL, }, */
    }; 
    
    3つのポートから 2つのポートになってます。
  2. 次のようにカーネルコンフィグレーションをする。
    PLIP (parallel port) support (CONFIG_PLIP) [n] y
    
    Parallel Printer support [y] y
    
  3. ブート時に次のようなカーネルメッセージが表示されるはず:
    lp1 at 0x0378, using polling driver
    .....
    NET3 PLIP version 2.0 gniibe@mri.co.jp
    plip2: Parallel port at 0x278, using assigned IRQ 5.
    

繰り返しますが、8.1 章と同じ、お決まりの免責事項。"your own risk"


次のページ 前のページ 目次へ