次にOS標準のカーネル設定ファイルをコピーしてきます。 これは/usr/src/linux/.configにあるはずです。 # cp -a /usr/src/linux/.config /path/to/new/kernel
新しいカーネルのツリーに移り、make oldconfigします。このとき、古いカーネル設定ファイルに存在しない新機能があると、そこで停止して指示を求められます。 終わったらmake clean && make && make modules && make modules_install && make installとします。
ちょっと聞きたいエロイ人教えてね (スコア:0)
必ず「Kernel panic: VFS: Unable to mount root fs on 」ってなります。
いろいろ聞いたり調べると外部モジュールとしてコンパイルしているからとか・・・
カーネルに組み込んだ設定でコンパイルしないといけないのがわかったのですが
理屈はわかったつもりでも、いさカーネルに必須モジュールを組み込んだとおもって
再度コンパイル&インストールしても Panic・・・ワーーーン状態です。
どなたか、カーネルのアップグレードの方法を教えてください。
Re:ちょっと聞きたいエロイ人教えてね (スコア:2, 参考になる)
ルートパーティションがLVM上にあったりするとinitrd必須になると思いますが、そこら辺はどうですか?
by RHEL3で何故かmkinitrdがまともに動かなくて困ってる人
Re:ちょっと聞きたいエロイ人教えてね (スコア:1, 参考になる)
rootfsをmountするのに必要なモジュールを探す。
あとは/procあたりにあるconfig.gzを眺めて、どういうconfigでコンパイルされてるのかチェックする。
それ以前に、UbuntuとかFedoraみたいないわゆるLinuxディストリビューションを使ってるなら、
カーネルのアップグレードはあなたの仕事ではなく、ディストリビューションの中の人が
アップグレードしたカーネルのパッケージを作るまで待てば良い。
Re:ちょっと聞きたいエロイ人教えてね (スコア:1)
などがマウントするまでにロードできていないようです。
もともとがどのデバイスドライバで動いているか、メモしてそれらのドライバをコンパイル対象にしてやればいいでしょう。
あとは
自分で/bootの下にvmlinuzをコピーしているのであれば、とりあえずmakeに任せてみましょう。initrdも作ってくれます。
Re: (スコア:0)
記憶装置とファイルシステムのモジュールが組み込まれてないんでしょ。もしくはカーネルに渡す引数が間違ってるか。
周りに識者がいない、かつよくわからないなら、Try and Errorで頑張るしかないな。
Re: (スコア:0)
ドライバのパッチ当てたり、そんなことが自分で出来るようになってから何年たったかな…
そして、自分でカーネルをビルドしなくなって、ディストリのお仕着せのままでいいや、ってなって
ドライバ動かなかったらマンドクセ、って、そんなになって何年たったかな…
すいません、興味があるならがんばってください、ということです。
Re: (スコア:0)
・initrdがマウント出来ていない。または不正なinird。
・カーネルの起動時に渡すべきオプションが設定し忘れている
・以前起動していたカーネルの.configと見比べて足りないものがある
くらいなんではないでしょうか。
提示されている情報が少なすぎるんであれですが、もしディストリが提供しているLinuxを使用されているのなら
待った方がいいと思います。独自のパッチなどあたっていることがありますんで。
勉強でやるならともかくですが。
Re:ちょっと聞きたいエロイ人教えてね (スコア:1)
(さすがにフルスクラッチでLinuxつくるのは面倒なので)
#最近はKernelの独自ビルドも面倒になってあまりやってませんが。
Re: (スコア:0)
そういや昔、Debian系サイトがアンケートとったら、半数はカーネルを自前ビルドしてるという結果だったなあ。今はどうなんだろ?
Re: (スコア:0)
Re: (スコア:0)
別にmake-kpkgを使ったところでビルドやインストールの手間はほとんど変わらないし、
例えばVineならmkkpkgとか、make-kpkg的ツールはDebianの専売特許という訳でもないんだが。
Re: (スコア:0)
まず新しいカーネルのソースを展開します。
次にOS標準のカーネル設定ファイルをコピーしてきます。
これは/usr/src/linux/.configにあるはずです。
# cp -a /usr/src/linux/.config /path/to/new/kernel
新しいカーネルのツリーに移り、make oldconfigします。このとき、古いカーネル設定ファイルに存在しない新機能があると、そこで停止して指示を求められます。
終わったらmake clean && make && make modules && make modules_install && make installとします。
/boot/に新し