[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:10469] Plamo/98 2.2.1 install and bug fix



山口@富山大学 です。

インストール報告とバグ修正です。

# 私は購読していないのですが、Linux/98 の方にも振らせていただきます

このほど研究室で眠りについていた PC98 がいたので Plamo 2.2.1 を入れて
やることにしました。

まず、ハードウェアは次のような構成になっています。

  NEC PC-9821Xa10/C4
       CPU: Intel Pentium 100MHz
    メモリ: 32MB SIMM(パリ有り)
       HDD: IDE Primary Master: 1.6GB (元の 400MB のものから換装)
                     SCSI ID 0: 4GB (外づけメルコ外装、中身は 2GB から換装)
    CD-ROM: IDE Secondary Master: x2 or x4
      SCSI: PCI Melco IFC-DP SCSI2 (チップは AM53C974)
       NIC: Cbus Allied Telesis RE1000Plus (AT1700)
     Sound: Cbus Sound Blaster for PC98

で、インストール前のパーティション構成は次のようになっています。

  IDE: Windows98
  SCSI: 0: FreeBSD 2GB
        (余り 2GB)

で、SCSI の余り 2GB の領域に Plamo 2.2.1 を突っ込みます。

Plamo のインストールディスクで SCSI が入っているものは、

  scsinet1.img       ほとんどの場合はこれで OK のイメージ
  SCSI/98pcmcia.img  PCMCIA 搭載機器用

ですが、SCSI/98pcmcia.img の方は AM53C974 に対応していなかったので
必然的に scsinet1.img となります。

しかし、これがはまりの始まりでした。
scsinet1.img は 98 で使う SCSI をほぼ全て網羅しているので、当然 Cbus
用の PC9801 55 SCSI ボードをサポートしています。これが今回の癌でした。

scsinet1.img で起動すると、SCSI 機器のチェック中に

  Invalid IRQ

でカーネルパニックを起こして止まってしまいました。上記のハードウェアの
中にはいわゆる 55 SCSI な機器はありませんので何か別の機器が間違って
55 SCSI だと認識されているようです。
# エラーメッセージを書き留めていないので曖昧な表現になりますが...

で、以前はここでお手上げだったのですが、今回はもうちょっとやって
みました。

こういう変な動きをするのは古い Cbus の機器が何か悪さをしているに
違いないということで、とりあえず NIC を一時的に外して起動して
みました。
# インストール時にネットワーク機能は使用しないので問題なし

きちんと立ち上がってくるではありませんか。
しかも以前は駄目だった PCI の SCSI 機器も見えてきて、つながっている
SCSI ディスクもちゃんと見えています。

ここまでくれば後は AT の場合と同じようにインストールすればいいだけ
なので、次のように、

  SCSI: 0: FreeBSD 2GB
        1: Plamo Linux 2GB - 64MB
        2: Linux Swap 64MB

パーティションを切ってインストールしました。問題なくインストール
できました。

で、再起動してハードディスクから Plamo を立ち上げると、

  / パーティションが見えない

状態で止まってしまいました。その前後を見ると、どうやら起動時に必要な
SCSI のドライバがモジュールになっているようです。
# エラーメッセージの詳細は書き取っていないので曖昧な表現になりますが...

このままだとどうしようもないので、動くカーネルをとりあえず入れなければ
なりません。で、今まで動いていたインストールディスクのカーネルを入れる
ことにしました。

これで起動すると、とりあえず上がってきました。ログインして、すぐに
カーネルの再構築をしました。

ここで、NIC のドライバ

  /usr/src/linux-98/drivers/net/at1700.c

でバグがあって、うまくコンパイルが通りませんでした。原因は、AT のみで
使われているマクロが、98 用の部分にも入っていたためでした。
## 修正 patch を後ろの方につけます

該当部分をマクロで避けてやることでコンパイルも通り、新しいカーネルで
NIC をつけ直して起動するときちんと認識し、動きました。

めでたしめでたし

で、at1700 用のパッチですが、一応これで動きましたが、ドライバ関係は
素人なので間違っているかもしれません。また、エラー処理を 1 つはしょる
格好になるので、不具合が出るかもしれません。もしテストできる環境の方が
いらっしゃいましたら、検証してみてください。

---- linux-2.4.3-pc98-at1700fix.patch ----
diff -aurN linux-98.orig/drivers/net/at1700.c linux-98/drivers/net/at1700.c
--- linux-98.orig/drivers/net/at1700.c  Mon Jul 16 14:03:14 2001
+++ linux-98/drivers/net/at1700.c       Mon Jul 16 14:04:54 2001
@@ -297,8 +297,10 @@
        int slot, ret = -ENODEV;
        struct net_local *lp;
        
+#ifndef CONFIG_PC9800
        if (!request_region(ioaddr, AT1700_IO_EXTENT, dev->name))
                return -EBUSY;
+#endif
 
                /* Resetting the chip doesn't reset the ISA interface, so don't 
bother.
           That means we have to be careful with the register values we probe for.
---- linux-2.4.3-pc98-at1700fix.patch ----
+--------+--------+--------+--------+--------+--------+--------+
富山大学大学院理工学研究科
電子情報工学専攻 知能システム工学第 3 講座
山口 真悟 (YAMAGUCHI Shingo)  shingo@kip.iis.toyama-u.ac.jp

Follow-Ups
[plamo:10473] Re: Plamo/98 2.2.1 install and bug fix, Tadashi Nakamura

[検索ページ] [メール一覧]
Plamo ML 公開システム