# 表題 kernel-2.4.5 + xfs パッチのコンパイル # # 履歴 2001/09/27 小高正嗣 # 履歴 2001/09/30 石渡正樹 # ■ソース ftp.eos.hokudai.ac.jp: pub/Linux/kernel.org/linux/kernel/v2.4/linux-2.4.5.tar.bz2 ■手順 1) ソースを /usr/src/ 以下に移動し, 展開する. # mv ~/linux-2.4.5.tar.bz2 /usr/src/ # cd /usr/src # bunzip2 linux-2.4.5.tar.bz2 # tar xvf linux-2.4.5.tar /usr/src/linux 以下にソースが展開される. 別バージョンのカーネルソー スツリーと名称を揃えるため, ディレクトリ名を変更する. # mv linux kernel-source-2.4.5 # ln -s kernel-source-2.4.5 linux ファイルのオーナー, グループを変更する # chown -R root.root linux 2) xfs パッチをあてる 2.4.5 カーネル用 xfs パッチは, Debian パッケージが存在するのでそ れをインストールする. # dpkg -i kernel-patch-xfs-core_1.0.1-1_all.deb # dpkg -i kernel-patch-xfs_1.0.1-1_all.deb これでパッチファイルとパッチを当てるためのスクリプトが /usr/src/kernel-patch/all 以下 にインストールされる. /usr/src/karnel-patch/all/apply 以下にパッチあてスクリプトがある. これをカーネルソースツリーのトップディレクトリで実行する. # cd /usr/src/linux # ../kernel-patch/all/apply/xfs /usr/src/linux/fs 以下の複数のファイルのタイムスタンプが変更され ていることから, パッチがあてられたようである. 3) カーネルの構築 # make xconfig 以下メニューに従い設定する. デフォルト設定からの変更点のみ記述する. Processor type and features y -- MTRR (Memory Type Range Register) suppor n -- Symmetric multi-processing support y -- APIC and IO-APIC support on uniprocessors General Setup n -- PCMCIA/Cardbus support Block devices y -- Loopback devices support Networking n -- IP: multicasting y -- IP: TCP syncookie support IDE, ATA and ATAPI Block devices m -- Include IDE/ATAPI CDROM support y -- Generic PCI bus-master DMA support y -- PROMISE PDC20246/20262/20267 support y -- Special UDMA Feature SCSI support y -- SCSI tape support SCSI low-level drivers y -- Adaptex AIC7xxx support n -- SYM53C8xx SCSI support File systems y -- DOS FAT fs support y -- MSDOS fs support y -- VFAT fs support y -- Microsoft Joliet CDROM extensions y -- SGI XFS filesytem support y -- Enable XFS DMAPI Netwprk file systems n -- NFS file system support n -- NFS server support Native language support y -- Japanese charsets (S-JIS, EUC-JP) y -- NLS ISO 8859-1 (Latin 1) Sound n -- Sound card support USB support n -- USB support 設定をファイルに保存(ここでは kernel-config-dennou_2000-09-27). # make dep # make-kpkg clean # make-kpkg --revision=dennou.0.1 kernel-image リビジョン番号は都合により 0.1. /usr/src 以下に kernel-image-2.4.5-xfs-1.0.1_dennou.0.1_i386.deb ができる. カーネルのインストール # cd /usr/src # dpkg -i kernel-image-2.4.5-xfs-1.0.1_dennou.0.1_i386.deb 再起動する. # sync; sync; reboot ■コメント 2.4.9 ではパッチがうまく当たらなかった. 以下その記録. (1) 最新盤 2.4.9 の source を install. # dpkg -i kernel-source-2.4.9_2.4.9-1_all.deb # cd /usr/src # bzip2 -dc kernel-source-2.4.9.tar.bz2 | tar xvf - # rm /usr/src/linux # ln -s kernel-source-2.4.9 linux (2) XFS パッチのインストール パッチをとってくる. ftp://oss.sgi.com/projects/xfs/download/patches/ linux-2.4.9-xfs-2001-08-26.patch.bz2 パッチファイルを解凍 # bzip2 -dc linux-2.4.9-xfs-2001-08-26.patch.bz2 > xfs.patch パッチをあてる. # cd /usr/src # patch -p5 < xfs.patch -p5 にしたのは patch ファイルの中の path の指定が /export/xfs1/snapshots/linus-tree/linux/Documentation/Changes などのようになっており, 最初の 5 つのpath をとばしして linux/Documentation/Changes として認識してもらうため. パッチを当てると linux/Documentation/Changes などはちゃんと書き換えてくれるけど linux/fs/xfs/xfs_attr.c などは作ってくれない. patch コマンドを実行した /usr/src ディレクト リにそのファイルができちゃう. もともとないファイルはちゃんと作って くれないみたい. patch の使い方が悪いだけかもしれない. でも, rej ファイルもいっぱいできるのでどっちにしろうまくない.