4 モジュールの構築

この章の目次へ

標準のコアパッケージには以下のものはすべてバイナリで含まれています。 しかしモジュールの一部はカーネルに強く依存するため、 カーネルを再構築した際には、それに合わせてつくりなおさなければなりません。

4.1 pcmcia-cs

PCMCIA スロットへのアクセスを担当します。 PocketLinux では必須です。 3.0.9 以降で動作しますが、3.0.12 以降が望ましいです。

pcmcia-cs を再構築する必要があるのは、

の三つの場合があります。 1, 3は当然として、2 の理由は、バイナリパッケージの pcmcia-cs は SCSI を外して構築されているからです。

ソース展開後、make config ; make all します。 大抵の場合、母艦からのクロスインストールになるでしょう。 この場合 make config 時に注意すべきものは 3 つあります。

kernel source

PocketLinux kernel source のトップディレクトリを指示してください。

target install directory

cardmgr などを install する先のディレクトリ。このディレクトリを root directory と見なした時の /etc/pcmcia, /sbin, /usr/bin などに関連ファイルがインストールされます。 PocketLinux 用のルートディスクの mount point を指示してください。

module install directory

target install directory を root directory と見なした時の 'module install directory' に modules がインストールされます。デフォルトの /lib/modules/`uname -r`/ のままで かまわないはずです。

System V init script layout

n のままで良いでしょう。

4.2 e2compr

ext2 の圧縮ファイルシステムを担当します。 コアパッケージ 'mizuka' では必須になりますが、'akane' などでは 必ずしも必要ありません。

現在のところ e2compr-0.3.9-patch-2.0.35 が使われています。 e2compr をカーネルとは別に再構築する必要があるのは、

だけでしょう。 e2compr のカーネル依存部分はすべてカーネルに含まれており、 カーネル自身を再構築した段階で e2compr も再構築されます。

e2fsck や chattr などのユーティリティはカーネルではなく ancillary-981212 に含まれていますが、こちらはカーネルを rebuild しても つくりなおす必要はありません。

4.3 dmsdos

MSDOS の圧縮ファイルシステムを担当します。 いわゆる I:, J: ドライブにアクセスする時に必要です。

dmsdos をカーネルとは別に再構築する必要があるのは、

ですが、現在すでに warning がでる位で I:, J: へのアクセスには支障がないようなので、 2. のケースで再構築する必要はおそらくないでしょう。

dmsdos の再構築の場合、kernel tree は /usr/src/linux 下にある必要があります。 再構築の前に母艦用のソースツリーを避けて symlink するか、コピーするかしておいて 下さい。 また make all すると多くの場合、kernel に dmsdos パッチをあてようとします。 patch-2.0.37p1-3.diff は dmsdos パッチを含んでいますので、 こちらを既にあてている場合には make all してはいけません。

カーネルソースツリーを /usr/src/linux に移した後、 dmsdos のソースを展開し、cd src; make dmsdos.o します。

このあと dmsdos.o/lib/modules/`uname -r`/misc にコピーして depmod -a しておいてください。

4.4 pcsnd

モバイルギアのサウンドを担当します。 カーネル依存部分はすべてカーネルに含まれるため、カーネルの再構築後に pcsnd のために何かする必要はありません。

4.5 linux-ir

モバイルギアの IrDA ポートを駆動するには linux-ir-1998-10-12 が必要です。 カーネル依存部分、非依存部分すべてこちらに含まれます。

現在 linux-ir の開発は停止し、irda-util に移行しているため、 オリジナルカーネルの version が上がった時に再構築する以外は これをつくりなおす必要はないでしょう。

ソースのうち

#include <ioctls.h>
となっているものを
#include <asm/ioctls.h>
に書き換えます。 さらに Makefile の
MODVERSIONS = -DMODVERSIONS -include /usr/src/linux/include/linux/modversions.h
の項をコメントアウトします。これは PocketLinux カーネルを構築する時にデフォルトでは 'Set version information on all symbols for modules' を 'n' にしているためで、 'y' にしている場合にはコメントアウトする必要はありません。 同じく Makefile の
drivers: Makefile
drivers::
に書き換えます。このあと make depend; make all して IrDA modules が完成します。

make install すると /usr/sbin, /etc/irda, /lib/modules/`uname -r`/net/ に直接インストールしようとします。 クロスインストールのことは配慮されていないので注意してください。 もっとも 2.0.x の母艦で IrDA を使うことは普通ないので、そのままインストールして /lib/modules/`uname -r`/net/ir* を MobileGear 側に移すという程度でもかまわないでしょう。

次の章へ , 前の章へ

この章の目次へ, この文書の目次へ

この文書の最初へ , この章の最初へ