[Q]
pcmcia-cs 3.0.1 へのバージョンアップの方法は (MLD2)

[A]
以下の手順で行えばうまくいくと思います。

# 日樫さんのメール [mld-ml:833] の引用です。m(_ _)m

  1. メディアラボさんの ftp server から rpm binary package を取ってきます。
    場所は、
    ftp://ftp.mlb.co.jp/pub/linux/mld-update/i386/pcmci301.rpm
    だと思います。

  2. root で、
    $ rpm -i -U pcmci301.rpm
    というようにして、アップグレードインストールすれば良いようです。

    この時の注意として、 /usr/doc以下のファイルは MLD では tar + gzip で固められているため、 あらかじめ展開していない場合には、 remove ... というメッセージが表示されるかもしれません。 対策としては、動作には影響ないので無視するか、 あらかじめ展開しておくかのどちらかが良いと思います。

    ちなみに、 Windows95/98 でダウンロードする場合は C:\tmp のディレクトリーへファイルをダウンロードし
    $ cd /DOS/tmp
    $ rpm -i -U pcmci301.rpm
    とすれば良いと思います。

  3. /etc/rc.d/init.d/pcmcia をエディターで以下のように修正して下さい。
    24 行目の後に 2 行追加します。 追加の 1 行目は PCMCIA コントローラを教えるためのもので、 いまのノートパソコンでは i82365 コンパチのものが使われているので、 i82365 を使用します。
    もう 1 行は IRQ 等のオプションの指定で、 追加する行の irq_mask=0x0800 は 使える IRQ の指定で、 ビットが右から順に IRQ0、IRQ1 ... IRQ15になります。

    # 従って、ここでは最も安全なIRQ11を指定していることになります。
    # irq_mask について、もうちょっと詳しいことはこちらを参照。

    もし Windows95/98 で使用している PCMCIA カードの IRQ がわかっていれば、 irq_mask= でそのIRQを指定します。
    カードのプローブもよく問題を起こしますので、IRQ を使わないように poll_interval も指定します。

    まとめると
    変更前
    # Source PCMCIA configuration, if available
    if [ -f /etc/sysconfig/pcmcia ] ; then
        . /etc/sysconfig/pcmcia
        if [ "$PCMCIA" != "yes" ] ; then exit 0 ; fi
    else
    
    変更後
    # Source PCMCIA configuration, if available
    if [ -f /etc/sysconfig/pcmcia ] ; then
        . /etc/sysconfig/pcmcia
        PCIC=i82365
        PCIC_OPTS="do_scan=0 irq_mask=0x0800 poll_interval=100"
        if [ "$PCMCIA" != "yes" ] ; then exit 0 ; fi
    else
    
    となります。

  4. PCMCIA のネットワーク設定をします。
    Windows95/98 で IP アドレス等を設定してから MLD2 をインストールした場合には、 既に /etc/pcmcia/network.opts にその設定が書き込まれており、 rpm でアップデートした時に、 このファイルはnetwork.opts.rpmorigにコピーされてしまいます。
    そこで、root で
    $ cd /etc/pcmcia
    $ mv network.opts.rpmorig network.opts
    として、設定を戻せば良いと思います。

  5. PCMCIA カードを挿入せずに Linux を起動して下さい。
    ktermから
    $ /etc/rc.d/init.d/pcmcia restart
    を実行して、PCMCIAサービスを再起動し、
    $ dmesg
    でログを確認してみてください。
    このログの中に
    Intel PCIC probe:
    Cirrus PD6729 PCI at Oxfcfc ofs 0x00, 2sockets
    というような感じの表示があれば PCMCIA ソケットが認識されていると思います。

    次に kterm で
    $ tail -f /var/log/messages
    を実行しておき、PCMCIA カードを挿入します。
    カードの認識情報が kterm に表示されますので、 正しく認識されるかどうか確認してみるとよいでしょう。
    もし、正しく認識できない場合は、 その内容を mld-ml (LinuxMLD のメーリングリスト) に送ると詳しい方が相談にのってくれるかもしれません。

  6. 上記のテストで動作が正常であれば、 新しいバージョンが使われるよう変更します。
    デフォルトでは起動時に PCMCIA の古いバージョンがラムディスクから起動してしまいますので、以下の手順で LinuxMLD2 が起動してから新しいバージョンの pcmcia-cs が起動するようにして下さい。
    1. Linux MLD2 が内蔵の IDE ハードディスクにインストールしてある必要が
       あります。
    2. Windows95/98 を起動して下さい。
    3. 次に c:\mldload\kernel.par をメモ帳などで開いて下さい。 まずルートデ
       バイスを確認して下さい。ルートデバイスはデフォルトで Cドライブの
       hda1 に設定されています。インストールしたドライブに合わせて 変更し
       て下さい。ルートデバイスのデバイス名は添付の資料を参考にして下さい。
       ルートデバイスが /dev/hda1 以外の場合は
         root=/dev/hda1
       の行を変更して下さい。ここでは例として拡張パーティションの最初の
       論理ドライブ (/dev/hda5) にインストールしたとすると、
         root=/dev/hda5
       に変更します。 次に以下の 2 行をファイルの最後に追加して、pcmcia 設定
       をスキップして起動するようにします。
    
         mldpcic=skip
         mldprobe=n
    
       保存してメモ帳を終了します。
    4. MS-DOSモードから
         \mldload\linux
       で Linux を起動して下さい。
    
[Appendix]
********ルートデバイスについて********
o 先頭の 2 文字が IDE ハードディスクの場合は hd、 SCSI ハードディスクの
  場合は sd となります。
o 次の 1 文字はディスクの何番目かに当たります。IDE の場合には プライマ
  リー IDE ポートのマスタードライブが hda スレーブが hdb セカンダリーのマ
  スターが hdc スレーブが hdd となります。SCSI ディスクの場合は認識された
  ディスクの SCSI ID の若い番号の順に sda, sdb, ...となります。
  (注意: SCSI ID 0 が sda に 1 が sdb にと 2 が sdcにというように固定的に
  決まるわけではなく ID が 2 でも 0、1 の ID が使われていなければ sda と
  なります。)
o 最後の数字はパーティションの番号を表しています。DOS のプライマリー
  パーティションが 1 となり、拡張パーティションは論理ドライブの順で
  5、6... となります。



戻る