pcmciax.gz は Slackware 3.1 のカーネルと組みあわせて使うように pcmcia-cs も 2.0.0 のカーネル用にコンパイルしていますので、カーネルを バージョアップする際には pcmcia-cs も再コンパイルが必要です。
initrd 経由で起動している場合、pcmcia-cs が initrd で起動するファイル システムの中に置かなければならないので、システムをバージョンアップする 際には多少の注意が必要になります。
カーネルの再構築時には 以下の項目に注意して設定してください。これら以 外のオプションはお使いの環境に合わせて設定します。
カーネルをコンパイルする際には make zlilo
ではなく、make
zImage で /usr/src/linux/arch/i386/boot/zImage
を作りま
す。この zImage を DOS 領域にコピーして、このカーネルイメージを
loadlin.exe でロードするようにします。
# cp /usr/src/linux/arch/i386/booz/zImage /dos/linux/zimage.new
カーネルのコンパイルが終れば、モジュール類も忘れずコンパイル、インストー
ルしておきます(make modules; make modules_install
)。
次回に起動するときは loadlin.exe で zimage.new
を指定します。
pcmcia-cs はルートファイルシステムと initrd の双方にインストールしてや
る必要があります。pcmciax2 をループバックでマウントして
/sbin/{cardmgr, cardctl}
や
/lib/modules/2.0.x/pcmcia
以下を入れ替えるのも一つの方法です
が、この場合、pcmciax には libc-4.7.6 しか入っていないことに注意してく
ださい。すなわち、コマンドである /sbin/{cardmgr,cardctl}
をコ
ンパイルする場合は a.out 形式でコンパイルする必要があります。
このためには、pcmcia-cs を通常の make でコンパイルしてから、cardmgr ディ レクトリに移り、Makefile に CC = /usr/i486-linuxaout/bin/gcc を追加し て make clean; make します。いくつかのコマンドは a.out 形式でうまくコ ンパイルできないかも知れません。
もう一つの方法は、 ELF 形式のコマンドを集めた新しい initrd を用意する ことです。新しく initrd を作るには、まず ramdisk 上にファイルシステム を作って必要なファイルを集め、それをファイルに書き出すのが簡単でしょう。 以下にそのための一つの手順を述べます。
# mke2fs /dev/ram0 4000
/dev/ram0
は使用中の場合
がありますので、その際は /dev/ram1
等を使ってください。
# mount -t ext2 /dev/ram0 /workdir # mount /dos/linux/pcmciax /refdir -o loop,ro # cd /refdir; tar cvf - * | (cd /workdir; tar xf -)
make config
すると設定に関する質問が表示されますので、
"Alternate target install directory
" で
/workdir
を指定します。
# make config Linux PCMCIA Configuration Script The default responses for each question are correct for most users. Consult the PCMCIA-HOWTO for additional info about each option. Linux source directory [/usr/src/linux]: Alternate target install directory [/]: /workdir /workdir C compiler name [gcc]: ......
/workdir/etc/pcmcia
や /workdir/lib/modules/`uname -r`/pcmcia
に必要なモジュールがイ
ンストールされます。ただし、/workdir/usr/man
以下に pcmcia-cs の
マニュアル類もインストールされてしまうので不要ならば削除してください。
initrd 以外に、起動後に実行される実際のルートファイルシステムにも
pcmcia-cs はインストールしておく必要があります。そのためには、
pcmcia-cs を再度 "Alternate target install directory : / " に設定して
インストールしておきましょう。
/dev/ram0
に作成したファイルシステムを通常のファイルに落とし
ます。
# umount /workdir # dd if=/dev/ram0 of=initrd bs=1k count=4000
mount initrd /workdir -o
loop
として、正しくファイルシステムとして認識できるか確認しておき
ましょう。
# cp initrd /dos/linux # gzip /dos/linux/initrd
手元で試作した initrd を html://www.st.rim.or.jp/~isle/Linux/initrd.gz に用意しました。 この initrd には、対話的に外付け SCSI をルートファイルシステムにしたり、 NFS root を指定したりする dialog も付けていますので、興味のある方はお 試しください。この initrd に組みこんでいる pcmcia-cs は 2.8.23 でカー ネル 2.0.27 用にコンパイルしています。