*カーネルの再構築 [#a3d25163]

トピ主さんからいくつか質問(要望)が出されていたので、ここしばらく検証に時間を割いていたのだけど、再び来てみるとページ自体が消えていたので、ページの取り戻しをさせていただきました。

Plamo Linuxでは、その他のメジャーなディストリビューションと比べると、利用者によるカーネルの再構築が盛んに行われていると思います。以前は、デフォルトカーネルが特定のサウンドチップや内蔵NIC、モデムカードなどに対応していなかったりして、Plamo Linux導入時のカーネルの再構築は、利用者の通過儀礼のようなものでしたが、最近だとデフォルトカーネルでたいていのものが満足に動作できてしまうので、ずいぶん楽ができるようになりました。ただ、そうはいっても、一部のテレビチューナーカードや無線LANなどが動かない場合もあるようで、カーネルの再構築がまったく不要というわけではありません。また、手元の環境向けにCPU種別を変更したり、使わない組込み機能を削ぎ落としたり、不要なモジュールを削除したりして軽量化しまくる目的で、カーネルの再構築を行うのも一興かと思います。

そんな背景があったものですから、Plamo Linuxを使う皆さんに有用なトピックを立てていただいたトピ主さんに感謝しています。カーネルの再構築は、Plamo Linuxではカーネルソースのお膳立てがOSインストール直後からできている分、通常のプログラムのインストールと比べると簡単ですし(時間は掛かるけど)、カーネルの再構築をやってみたのだけど、システムが動かなくなって途方に暮れるといったことは、ブートローダの設定次第で防げるので、そのあたりのノウハウを盛り込めば良いのかなと思ってます。PukiPlamoのページは誰でも編集できますし、自由に変更されることをトピ主さんは認められていたので、僭越ながらアタシも基本的手順などを追加させていただきました。ところが、その思い込みに反して、作成後に閲覧者からの意見を受け入れる意向だったことを悟り「あ、これは失礼なことをしてしまった」と反省し、追加した内容を慌てて預らせていただいた次第です。その後、どなたかの手によってページ自体が消されてしまったようで、トピ主さんには大変申し訳ないことをしてしまいました。 -- azuki

質問とその答え

Q1
カーネルのインストールは、arch/x86/boot/bzImageとSystem.mapを/bootに(bzImageはvmlinuzに名前を変えて)コピーするものと思っていました。
A1
インストールのプロセスはそれで良いです(ただし、bzImageはブートローダ依存のためcatを使ったコピー推奨)。ただ、オペレーションが複雑でミスを誘発しやすく、利用者に対して敷居を高くしている一要因ですので、カーネルソースのドキュメントにも書かれているように、make installを行う方法をお勧めしています。
Q2
make installで、ブートローダの設定までやってくれるんですか?
A2
Linuxカーネルソースでは、基本的にmake installを行うことで、新しいカーネルで起動できる状態にしてくれます。grubの場合、新しいカーネルを定位置に置くだけで、設定なしで起動できるのに対し、liloだと新しいカーネルで起動するには設定が必要なので、カーネルのコピーに加えて、liloの設定が含まれています。
Q3
make installすると、なぜかliloの設定が走ります(私はgrub使い)。
A3
make installでliloの設定が走るかどうかは、そのシステムでliloが実行可能かどうかで判断されます。Plamo Linuxでは、お好みに応じてliloもしくはgrubを選べるようになっており、grub使いであってもシステム的にはliloが実行可能なので、liloの設定が走ります。
Q4
make installで、liloの設定が走るのは困るのだけど(私はgrub使い)。
A4
make installを行うと、その延長でarch/x86/boot/install.shの処理が走り、/sbin/installkernelが存在していたら、処理をそちらに委ねることができるようになっています。その中で、liloの設定を走らせるかどうか判断すれば良いでしょう(/etc/lilo.confの有無でチェックすれば良いかな)。なお、この仕組み(/sbin/installkernel)は、本来kernelsrcパッケージに含めるべきものであり、利用者が気にする必要はありません(今後の課題)。
Q5
ブートローダでカーネル選択ができる設定はありますか?
A5
Linuxカーネルソースのmake installは、ブートローダでカーネル選択ができるような設定はありません。インストールされるカーネル名は、vmlinuz固定です。なお、前回インストールしたカーネルファイル一式は、.oldの拡張子を付けてバックアップされるので、お使いのブートローダの設定ファイルにバックアップ用のエントリを追加しておけば、新しいカーネルの起動が失敗しても大丈夫です。また、いろんなパターンのカーネルを作って、ブート時にカーネル選択をしたい場合は、各ブートローダのマニュアルを参照した上でご自分で設定するのが、Plamoらしいスタイルと言えると思います。


Top/話題/Kernel の再構築

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-12-17 (金) 16:35:43