Linuxのkernelには、"a.b.c"というversion numberが付きます。
現在(1999.1.29)の最新のversionは"2.2.1"です。
このうち、"b"=2番目の数字が、
奇数のものは、Development Branch 「開発版」で、
偶数のものは、Stable Release「安定版」になります。
2.2.1は安定版の最新のものです。
これまでの開発版2.1.xに変わって、2.3.xが最新の開発版になっていきます。
"c"=3番目の数字は、minnorなbug fixなどです。
2.2.0は1999.1.26にreleaseされましたが、1999.1.28には2.2.1が出ました。
従来、LinuxPPC用のkernelは、Australian National University の
Paul Mackerras さんらを中心に、独自に開発されていましたが、
(ftp://samba.anu.edu.au/pub/linux-pmac/)
2.2.0から、
正式にメインの開発の中に取り込まれました。
しかし、iMacなどへの対応は今後も
ftp://samba.anu.edu.au/pub/linux-pmac/imac/で続くものと考えられます。
$ su # mount /dev/cdrom /mnt/cdrom # perl comps2sh 実行したdirに install_C_Developmentなどのscriptができます。 # sh install_X_Development などと実行して各packageをinstall します。
今回は、
http://ring.asahi-net.or.jp/pub/linux/kernel.org/kernel/v2.2/
を利用させていただきました。
UNIX UsersやLinux Japanなどの雑誌のCD-ROMに収載されると思われます。
LATEST-IS-2.2.1 29-Jan-1999 05:56 0k README 26-Jan-1999 10:43 1k linux-2.2.0.tar.bz2 26-Jan-1999 10:41 10.1M linux-2.2.0.tar.bz2.sign 26-Jan-1999 10:41 1k linux-2.2.0.tar.gz 26-Jan-1999 10:41 12.5M linux-2.2.0.tar.gz.sign 26-Jan-1999 10:41 1k linux-2.2.1.tar.bz2 29-Jan-1999 05:56 10.1M linux-2.2.1.tar.bz2.sign 29-Jan-1999 05:56 1k linux-2.2.1.tar.gz 29-Jan-1999 05:56 12.5M linux-2.2.1.tar.gz.sign 29-Jan-1999 05:56 1k patch-2.2.1.bz2 29-Jan-1999 05:56 22k patch-2.2.1.bz2.sign 29-Jan-1999 05:56 1k patch-2.2.1.gz 29-Jan-1999 05:56 24k patch-2.2.1.gz.sign 29-Jan-1999 05:56 1kある日のkernel/v2.2のdirectoryです。
$ which bzip2 /usr/bin/bzip2と見つからなければ、CD-ROMなどのRedHat/RPMS/からrpm -ivhしてinstallしておいてください。
入手したファイルはkernel sourceのPGPによる検証方法を参照して、
検証してください。
初めてkernelのソースをgetする場合には、最新のbz2形式(この場合linux-2.2.1.tar.bz2)をgetしてください。
もし、少し前の(この場合 linux-2.2.0 )のソースが入手済みならば、
そこからの patch ファイル(とそのsignファイル)を入手してください。(patch ファイルもsignで検証します)
/usr/src/linux が存在している場合は、あらかじめ別の名前にしておいてください。
sourceを展開した後、/usr/srcへ移動し、必要ならpatchをあてます。
また、/usr/src/linuxを/usr/src/linux-2.2.1と名前を変えて、
/usr/src/linuxへlinkしておきます。
ここでは、2.2.0のsourceを展開し、2.2.1へのpatchをあててみます。
$SRC = kernelのsource, patchが存在するdirectoryの名前とします。 $ su # bzip2 -dc $SRC/linux-2.2.0.tar.bz2 | tar -xvf - -C /usr/src # cd /usr/src # bzip2 -dc $SRC/patch-2.2.1.bz | patch -p0 # mv /usr/src/linux /usr/src/linux-2.2.1 # ln -s /usr/src/linux-2.2.1 /usr/src/linux
# cd /usr/src/linux # make mrproper (注:初期状態に戻します。初めてmakeするときは必要ないです。) # make config または make menuconfig または make xconfig
ここで、自分のkernelに必要な機能をYesにし、不要な機能をNoにします。
それぞれの項目については、
Configure.help日本語版を参照してください。
まず、最初は、defaultのままでSave & Exitして、
実験してみるとよいでしょう。
Save & Exitすると、/usr/src/linux/.config というファイルができます。
# # Automatically generated make config: don't edit # # # Platform support # CONFIG_PPC=y CONFIG_6xx=y # CONFIG_8xx is not set CONFIG_PMAC=y # CONFIG_PREP is not set # CONFIG_CHRP is not set # CONFIG_ALL_PPC is not set # CONFIG_APUS is not set # CONFIG_MBX is not set CONFIG_MACH_SPECIFIC=y # CONFIG_SMP is not set 以下略。
# make dep # make clean # make または make vmlinux # make modules # make modules_installしばらくするとエラーもなくmakeが終了するはずです。
# ls -l vmlinuxでvmlinuxができているか確認してください。
OpenFirmwareでbootしている場合は、
# mv /boot/vmlinux /boot/vmlinux.old # mv /boot/System.map /boot/System.map.old # cp vmlinux /boot/ # cp System.map /boot/としてください。
BootXで起動している場合には、 HFSを/mnt/mac などに mountして、
# cp vmlinux /mnt/mac/として、一旦、LinuxPPCをshutdown -rしてMacOSを再起動します。
!!! 注意 !!!
HFSへの書き込みは HFS を破壊する恐れがあります。
(書き込みだけなら問題なく、rmすると破壊されるという説もあります)
LinuxPPCとMacOSのdataのやり取り専用のpartitionをHFSで作っておくのが、
よいと思います。