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

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

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

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

**質問とその答え [#me91e863]

: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らしいスタイルと言えると思います。

-COLOR(red){何を検証されてたのかは?} ですが。 検証する内容ってありました。 私としては一般的な内容を提示しただけですけど。
-私自身(本人)が判断し削除しました。 Wiki なので自由に変更は覚悟してます。 &br; 私の質問に回答ないまま、ご自分の書き込みを削除されたので ( COLOR(red){'''「 自分の主張を通せよな投稿 」'''} 的に感じ削除しました) 。 &br;  後で考えると、私の方法をでなく、各個人の方法を個別ページで説明できるページを作成したほうが良いように思いました。 &br; 私個人的には kernel 2.6 になり一般ユーザモードでコンパイルできる。 カーネルの再構築(コンパイル)自体は難しくないと思ってもらいたいが第一目標で、又、その結果を実行できる (この点では root 権限が必要になりますが) 手順を示しておけばいいかなぁ (実説明は別ページで) ... なページを目指してたので 。 その辺を説明できればと思っていました。 &br;  -- [[M.Tomi]] &new{2010-04-13 (火) 20:08:27};
-- 改めて読み直してみると、私が質問してたのは Q4,Q5 がメインで Q1 は質問した覚えが無いし、引き続きをお願いしてたので、その方面での検討をお願いします ... 御自分でページを作成されれば良い事だとおもいますけど?。 &br; (組み込み系ではブートローダは様々ですし、カーネルのファイル名は自分が付けたい名前で良い ... 分かってますけど) -- [[M.Tomi]] &new{2010-04-13 (火) 21:36:56};
-お返事ありがとうございます。技術的に誤りがあるといけませんので、検証した上で発言してます。アタシが使って良いパソは、最新機種に比べると若干遅いようで、カーネルの再構築のプロセスを一通り行うのに約半日掛かります。ご迷惑をお掛けします。 -- [[azuki]] &new{2010-04-15 (木) 17:21:21};
-本人のお考えを示してくださり、ありがとうございます。不手際があり申し訳ありませんでした。インターネット上でのコミュニケーションは難しいです。若い番号のQは、読み手にとってスムーズにQ4,Q5へ導くための補足的Qでした。Q4,Q5に対する回答を発展させてさせていけば良さそうですね。Q4は、具体的な/sbin/installkernelの案を検討する方向で良いとして、Q5については一点確認ですが、カーネルの再構築のプロセス中、ブートローダでカーネル選択ができる設定にするってどんななのか、イメージするのが難しいです。ダイアログが出て、カーネル名を訊いてくるような感じのinstallkernelを用意すれば良いのかな。実際、カーネルコンフィグのローカルバージョン設定なんかも絡んでくるので、ややこしいですが。お互いボランティアで活動していますので、反応が遅くなることお許しください。 -- [[azuki]] &new{2010-04-15 (木) 17:21:49};
-長くなってすみません。あと、一般ユーザでカーネルコンパイルの件ですが、普通のソフトウェアと同じように、一般ユーザでソースをお膳立てしてコンパイルを行い、rootになってインストールを実行するというのは、確かに安全であり推奨すべき方法だと思います。Plamo Linuxでは、BSD系UNIXの伝統を受け継ぎ、カーネルソースのお膳立てが初めから/usr/src/linuxに出来上がっているので、わざわざ一般ユーザのホームディレクトリにコピーしなくても、という気持ちもあります。どちらかというと、最新カーネルを追いかけてパッチを当てまくる人に合っているスタイルのような気がしないでもないです。「カーネルの再構築(コンパイル)自体は難しくないと思ってもらいたいが第一目標」と目指す方向は同じだと思うので、今後ともよろしくお願いいたします。 -- [[azuki]] &new{2010-04-15 (木) 17:22:05};
-私も 24 時間 PC の前に居ませんので ^^;  &br; 要点だけ返信しておきます。-- [[M.Tomi]] &new{2010-04-16 (金) 15:12:08};
 カーネルの再構築のプロセス中、ブートローダでカーネル選択ができる設定にするってどんななのか、
 イメージするのが難しいです
grub でも lilo でも設定ファイルを編集で ... 起動時に選択できるようになりますね。 これ相等の事が make install で、できるのですかって ... 少し意地悪い質問です。済みません。
 わざわざ一般ユーザのホームディレクトリにコピーしなくても
私も基本的は同じ気持ちです。ただ、コマンドラインで root になり作業をする (書籍等でも注意がいる作業と記載されてるのが多数 ... 実際そうですけど) のはチョットと躊躇する人が多いのではと思い、とりあえず自分の環境下でコンパイルだけでも体験してもらえれば、その辺の垣根が少し下がるのでは? ってな事を思ってです。
- この辺の内容ってここでやりとりするより ML の方が向いていると思います (識者のアドバイスも得られるし) ので、簡易回答ですがお許し下さい。 &br; 別所で 「玩式草子」 にでも書いて欲しいと、おねだりしました。 実現されるかどうかは分かりませんが、その様なページがあればそれを元に「私流の再構築方法」の個別ページを作成してもらい、そこで個別の内容のやり取りをした方が良いと思っています。 (Wiki) ページが長くなりスクロールが増え、結局何だったの?ってのがありますので ^^; -- M.Tomi
-kernel のビルドスクリプトがでてます。 &br; [[[plamo:30585] package set around kernel:http://www.linet.gr.jp/~kojima/PlamoWeb/ML/htdocs/201004/msg00042.html]] -- [[M.Tomi]] &new{2010-05-08 (土) 16:38:43};

#comment
----
#topicpath

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS