HOWTO: 富士通パーティションを扱える Linux カーネルコンパイル


これは、PC/AT 用の Linux でも、富士通パーティションでフォーマットして ある MO を扱えるようにする方法です。HD も扱えるかも知れませんが、試し ていません。

ソースの用意

まずは Linux のカーネルと Linux/TOWNS パッチを用意しましょう。Linux の カーネルは以下のサイトなどにあります。traceroute などを使い、ネットワー ク的にもっとも近い所から入手しましょう。

Linux/TOWNS のカーネルは あせるかでたうんずから 入手しましょう。

の中から一番近い所からダウンロードして下さい。

patch を当てる

Linux のカーネルに、Linux/TOWNS パッチを当てます。新しい tar なら、 tar xIvf linux-2.2.18.tar.bz2 としてもよいでしょう。


# cd /usr/src
# bzip2 -dc linux-2.2.18.tar.bz2 | tar -xovf -
# bzcat lt-2218-01.patch.bz2 | patch -p0

この Linux/TOWNS カーネルで CONFIG_TOWNS を N にしても良 いですが、make xconfig で、Help を参照しようとするとエラー が起こったり、PC/AT の VGA コンソールが使えなくなったりします。フレー ムバッファのコンソールは動作します。それでも良い人はこのままコンパイル しても構いません。

Linux/TOWNS カーネルはリネームして、もう一度 Linux カーネルを展開しま す。


# mv linux linux-2.2.18-lt
# bzip2 -dc linux-2.2.18.tar.bz2 | tar -xovf -
# mv linux linux-2.2.18
# ln -s linux-2.2.18 linux

2.4.19 の場合はこうします。


# cd /usr/src
# tar xIvf  linux-2.4.19.tar.bz2
# ln -s linux-2.4.19 linux
# bzcat lt-2419-01.patch.bz2 | patch -p0
# mv linux-2.4.19 linux-2.4.19-lt
# tar xIvf  linux-2.4.19.tar.bz2

ここで、Configure.help の日本語訳があるならば利用しましょう。2001/1/15 現在、2.2.18 の日 本語訳は無いようです。


# cd /usr/src/linux/Documentation/
# gunzip Configure.help-2.2.18.ja.gz
# mv Configure.help Configure.help.orig
# mv Configure.help-2.2.18.ja Configure.help

ソース変更

富士通パーティションを扱ってるソースを Linux/TOWNS カーネルから持って きます。


# cd /usr/src/linux/
# cp -v ../linux-2.2.18-lt/include/linux/genhd.h include/linux/
# cp -v ../linux-2.2.18-lt/drivers/block/genhd.c drivers/block/
# cp -v ../linux-2.2.18-lt/drivers/scsi/sd.c drivers/scsi/
# vi include/linux/genhd.h

include/linux/genhd.h の適当な所で、#define CONFIG_FM_PARTITION 1を追加を追加します。例えば以下の様にします。


#ifdef CONFIG_TOWNS
#define CONFIG_FM_PARTITION 1
#endif /* CONFIG_TOWNS */
#define CONFIG_FM_PARTITION 1

2.4.19 の場合はこうします。ソースの書き換えは必要ありません。make xconfig 時に、CONFIG_FM_PARTION を ON にしましょう。


# cd /usr/src/linux-2.4.19-lt/fs/partitions/
# cp -v Config.in Makefile check.c /usr/src/linux/fs/partitions/
# cp -v towns.c towns.h /usr/src/linux/fs/partitions/

カーネルコンパイル

カーネルをコンパイルします。富士通フォーマットを扱う為の設問はありませ ん(Linux/TOWNS カーネルもしくは、2.4.19 ならば CONFIG_FM_PARTION を Y にしましょう)。VFAT(DOS) 領域で漢 字を使ったファイル名を扱いたい時は、 CONFIG_NLS_CODEPAGE_932 を Y(M) としましょう。


# make -j4 mrproper
# make -j4 xconfig
# nice -5 make -j4 dep
# make clean
# nice -5 make -j4 bzImage
# nice -5 make -j4 modules
# nice -5 make -j4 modules_install

これで、カーネルが出来上がりました。出来上がったカーネルを LILO に登録 します。/etc/lilo.conf を書き換えて、


# cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz
# /sbin/lilo

を実行しましょう。ここは各自の環境に合わせてください。また、カーネルコ ンパイルなどが失敗していた時の為に、古いカーネルでも起動できるようにし ておいた方が良いでしょう。

mount オプション

ここで、VFAT(DOS) 領域のファイルに漢字を使っていて、Linux のコンソール (コンソールエミュレータ)では EUC-JP で漢字を扱いたいならば、mount コマ ンドオプションに codepage=932,iocharset=euc-jp を追加しま す。カーネルのコンフィグ時に、CONFIG_NLS_CODEPAGE_932 に Y(M) と答えるのを忘れないで下さい。ただし、2.2.17 で iocharset=euc-jp とすると、VFAT(DOS) のファイルシステムを 破壊すると言うバグ(漢字を含んでいないファイル名のファイルを扱う場合で も破壊します)がある為に、とても悲しい思いをします。

ブート時から VFAT(DOS) 領域でファイル名で漢字を扱いたいならば、 /etc/fstab を書き換えて、vfat の mount オプションに codepage=932,iocharset=euc-jp 付け加えてください。


この文書により、何らかの障害が起こっても、私は責任を負いません。

(c)2001-2002 村上 智一
tomone(at)p-act.sakura.ne.jp
Last modified: Sat Nov 2 21:04:45 2002
HomePage に戻る