mika-jです。
viewtopic.php?f=12&t=1258#p7847
ここで、SCSIモジュールを4.1.2からコピーする方法を書きましたが、
参考にカーネルを作り直す方法もここに書いておきます。
やり方はただ、カーネルコンフィグ時にSCSIモジュールを組み込むようにして、
カーネルを作り直すだけです。
カーネルの再構築方法はPuppy日本語wikiも出ているので、参考にしてみてください。
http://puppylinux.jp/w/index.php?Puppy% ... B%E7%AF%89
●1.準備
まずは、コンパイルするので、開発環境を用意してください。
次にカーネルソースを取得します。
カーネルソースは割と色んなところにあるのですが、
以下をローカルディスクに保存します。保存する場所はpup_save.2fsの中よりも
ハードディスクのパーティションとかの方がいいでしょう。
サイト:
http://puppylinux.com/sources/kernel-2.6.25.16/
ファイル:
linux-2.6.25.16-src-patched_squashfs_unionfs_aufs_lzma_mt.tar.gz
linux-2.6.25.16-src-patched_squashfs_unionfs_aufs_lzma_mt.tar.gz.md5.txt
DOTconfig-K2.6.25.16-26AUG08-STANDARD
カーネルのバージョンはかならず、作りたいPuppyバージョンと
合うようにしてください。
ダウンロードしたら展開し、/usr/src/linuxにシンボリックリンクします。
多分、シンボリックリンクは要らない気がしていますが、
用心のため、やっておきます。
/mnt/sdd3/test/scsi_kern/pup420/linux-2.6.25.16/
に展開したなら、以下の様にします。
コード: 全て選択
# cd /usr
# make src
# cd src
# ln -s /mnt/sdd3/test/scsi_kern/pup420/linux-2.6.25.16 linux
インストールしておかないと、作ったカーネルでブート出来ませんでしたので
これを入れておきます。パッケージマネージャにあるそうなので、
簡単にインストール出来ます。
ただ、私の場合はなぜだか、パッケージマネージャに表示されなかったので、
ftp://ibiblio.org/pub/linux/distributio ... packages-4
に行って、lzma-458.petをクリックしてインストールしました。
●2.コンパイル
以上で準備が整ったので、カーネルをコンパイルします。
コード: 全て選択
# cd /usr/src/linux
# make mrproper
次に、カーネルコンフィグファイルを置きます。
ダウンロードしたDOTconfig-K2.6.25.16-26AUG08-STANDARDがPuppyの
元となるカーネルコンフィグファイルなので、これを.configとして/usr/src/linuxに
置きます。
コード: 全て選択
# cp /mnt/sdd3/test/scsi_kern/pup420/DOTconfig-K2.6.25.16-26AUG08-STANDARD .config
コード: 全て選択
# make oldconfig
# make menuconfig
組み込みにします。
私の場合は、aic7xxxがあれば幸せになれるので、
コード: 全て選択
Device Drivers --->
SCSI device support --->
SCSI low-level drivers --->
Adaptec AIC7xxx Fast -> U160 support (New Driver)
Adaptec AIC7xxx support (old driver)
ちなみに組み込みにするのには、モジュールを選択して
スペースキーでかっこの中を`<*>`アスターにすれば良いのです。
腕に自信のある方は、menuなんか使わないで、.configを直接いじっちゃっても
いいかもしれないです。
自分がどのドライバを組み込みにすればよいか分からない場合は、
バリーさんの開発者ブログの記事を参考にして、いくつかまとめて
組み込みにして試してみてください。
http://www.puppylinux.com/blog/?viewDetailed=00230
一般的にはSCSI1の設定でうまくいくんじゃないでしょうか?
ここまで出来たら、コンパイルします。
コード: 全て選択
# make bzImage
カーネルモジュールもコンパイルしてしまうので、すごい時間がかかってしまいます。
できれば、bzImageを指定する方が良いでしょう。
コンパイル時間はPentium4 2.53GHz/メモリ1Gで15分〜20分程度です。
頑張って待ちましょう。
カーネルが完成するとmakeが作ったカーネルの在り処を教えてくれますが、
自分の場合を一応書いておくと、
/usr/src/linux/arch/x86/boot/bzImage
に出来ました。これをvmlinuzとリネームして、bootディレクトリにコピーすれば
めでたくSCSIブートが出来るようになります。もちろん、extlinuxやらgrubの設定は
新しいカーネルに向けてください。
これは、完全に好みの話ですが、自分の場合は、完全に差し替えないで、
vmlinuz-scsiとして、vmlinuzの横に置いてあります。
最後に参考として、私が使っているextlinux.confのサンプル。
コード: 全て選択
default pup420
display boot.msg
prompt 1
label pup420
kernel /pup420/vmlinuz.scsi
append initrd=/pup420/initrd.gz pmedia=scsihd psubdir=pup420
timeout 50
(IDEドライバがSCSIエミュレートになったため?)
最近のinitrdはよく把握していませんが、pmedia=scsihdは
デフォルトルートに落ちるだけ(指定しないのと同じ)だった気がするので、
場合によっては、idehdを指定した方がよい場合があるかもしれません。
以上ですが、参考になれば、幸いです。
最後までお読みくださり有難う。