
No.1ベストアンサー
- 回答日時:
まず/usr/srcに移動します。
作業はrootで行うことを前提としていますが、途中まではユーザーでも出来るでしょう。
# cd /usr/src
次にすでにlinuxという名前でシンボリックリンクがある場合はそれを削除します。
# rm -f linux
ダウンロードしたカーネルを展開します。
ダウンロードしたソースがkernel-2.4.3.tar gzだった場合
# tar zxvf kernel-2.4.3.tar gz
ダウンロードしたソースがkernel-2.4.3.tar.bz2だった場合
# bzip2 -d -c kernel-2.4.3.tar bz2 | tar xv
これで新たに/usr/src以下にlinuxというディレクトリが生成されます。
ここでこの新しいカーネルを再構築するのに必要なモジュールが自分の環境
に整っているかを確認しましょう。
/usr/src/linux/Documentationの中にあるChangesというファイルを確認しま
す。もしそこに示されたも
のよりもご自分の環境のバージョンが古い場合、あらかじめアップデートしてお
く必要があります。そのためのアップデータが置いてある場所も、更にファイル
を読み進めていくと親切に書いてありますので、そちらからダウンロードして、
アップデートしましょう。ほとんどのアップデータは一般的なconfigure,make,
make installでアップデートできます。またe2fsprogsやmodutilsはsrcファイルが
あるので、それをリビルドすると楽チンです。これらRPMの扱いについてお分か
りにならない場合は、ドキュメントを読むなり参考書を読むなりして下さい。一応
一般的には以下のようにします。
まずダウンロードしたファイルを/usr/src/redhat(turbo)/SRPMSに移します
# cp file(ファイル名).src.rpm /usr/src/redhat(turbo)/SRPMS
次にこれをリビルドします。
# cd /usr/src/redhat(turbo)/SRPMS
# rpm --rebuild file.src.rpm
すると/usr/src/redhat(turbo)/RPMS/i386以下にrpmファイルが生成されます。
# cd /usr/src/redhat(turbo)/RPMS/i386
# rpm -Uvh file.i386.rpm
ここまででエラーがなかった場合、アップデートは完了です。
すべての必要なアップデートが完了したら展開したカーネルをリネームします。
# cd /usr/src
# mv linux linux-2.4.3
リネームしたカーネルにシンボリックリンクを貼ります。
# ln -s linux-2.4.3 linux
次に新しいカーネルディレクトリに移動します。
# cd linux
カーネルをコンパイルする前に、一度カーネルをリセットします。
# make mrproper
カーネルのコンフィグをはじめます。
# make xconfig(X上でGUI)またはmake menuconfig
ここでご自分の環境に合わせてコンフィグレーションして下さい。
分からなければ現在のカーネルを参考にしてもいいでしょう。
その場合は新たにターミナルを起動して
# cd /usr/src/linux.bak
# make xconfig
とすると現在のカーネルの状態が同様にみることが出来ます。ただし見終わっ
たらセーブしないで終了して下さい。
新しいカーネルの方は必ずセーブして終了します。するとmake depしてね、と
言われますので、それを実行していきます。
# make dep
# make clean
----------------------------------
(ここであらかじめ/etc/lilo.confを
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
lba32
default=linux
image=/boot/vmlinuz-2.2.16-22LL6smp
label=linux22
initrd=/boot/initrd-2.2.16-22LL6smp.img
read-only
root=/dev/hda5
image=/boot/vmlinuz
label=linux
read-only
root=/dev/hda5
のように修正しておけば(あくまで一例です)、
以下の作業は不要になり、かわりに次のコマンドを実行して下さい
# make install
この過程が終了した後に
# make modules
# make modules_install
# /sbin/lilo
を実行し再起動すれば、新しいカーネルになります)
----------------------------------------
# make bzImage(Iは大文字の"アイ"でl"小文字のエル"ではありません)
# make modules
# make modules_install
どのプロセスでもエラーがなかった場合は次に進めます。
もしエラーがないと確信がある場合は
# make dep clean bzImage modules modules_install
と一気にやってしまうことも可能です。
次にinitrdを生成します。
# mkinitrd /boot/initrd-2.4.0 2.4.0(/lib/modulesを参照)
ここでエラーが出た場合はとりあえずinitrdの生成を諦めるか、再度カーネルを
コンフィグしなおして上記をやりなおします。
更に進めます。
# cp -p arch/i386/boot/bzImage /boot/vmlinuz24
# cp -p System.map /boot/System.map24
# cd /boot
# ln -s System.map24 System.map
ここまで順調にきたら、liloを書き換えます。
/etc/lilo.confをエディタで開いて下さい。
こちらに一例を示しました。赤字の部分は書き換え、青字の部分は書き加えます。
なお、initrd=/boot/initrd-2.4.0の部分はinitrd生成に失敗した場合は省いて下さい。
/etc/lilo.confを書き換えたら保存して、
# /sbin/lilo
を実行して下さい。これで再起動後は新しいカーネルで起動できるはずです。
なお、元のカーネルで起動したい場合はboot:と表示されたらlinuxとタイプして
Enterを押して下さい。
あくまで一般例です。
RPMを利用する方法とは違いますのでご注意下さい。
なお、上記は自分のHPに掲載している部分からコピーしてきましたので、若干おかしいところがあるかも知れません。
No.2
- 回答日時:
「再構築の方法」については、OSに依存することであり、ackyさんが非常に詳
しく説明されていますし、多くのサイトでも解説されているので、省略します。
カーネルというのは、UNIXのような古典的なOSの場合、通常のプログラム自身
が処理できないような作業をしてくれるプログラムと理解すればいいと思いま
す。OSを起動するというのは、なにはともあれカーネルをメモリ上に置いて、
それを実行することであるという面もあります。
カーネルがやってくれる作業には、入出力(デバイス操作、ネットワーク、割
込み処理を含む)、プロセス管理(最初のプロセスの生成を含む)、ファイル
システム管理、仮想記憶管理、アクセス制御などがあります。通常のプログラ
ムでも、入出力とか、ファイル操作をやってるじゃないかと考えるかもしれま
せんが、通常のプログラムはシステムコールという方法でカーネルにお伺いを
たてるだけで、実際の作業はカーネルがするわけです。
では、どんなときにカーネルを再構築するかというと、バグ修正やバージョン
アップのパッチを当てたいとき、非標準のファイルシステムなどの新しい機能
を付加したいとき、カーネルがサポートしている以外のデバイスを組み込みた
いとき、カーネルのパラメータを調整したいときなどが該当します。
最近のUNIXでは、動いているカーネルに対して、動的にモジュールを追加・削
除できる機能も付加されていますので、以前ほど頻繁にカーネルを再構築する
という状況は減っていますが、まったく不要という具合にもなっていません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- ファミレス・ファーストフード ケンタッキーの店の前のカーネルおじさん人形は日本だけなんですか? 2 2023/07/29 17:46
- その他(ビジネススキル・経営ノウハウ) 松下幸之助、本田宗一郎、豊田佐吉、ビル・ゲイツ、カーネル・サンダース、サム・ウォルトン、稲森和夫。 2 2023/04/09 03:49
- 経営学 松下幸之助、本田宗一郎、豊田佐吉、ビル・ゲイツ、カーネル・サンダース、サム・ウォルトン、稲森和夫。。 1 2023/03/17 22:57
- 医学 サブリミナルの研究で「kコアパーコレーション(percolation、浸透の意)を使用して、人間の脳 1 2023/01/29 16:20
- サーバー Webサイト構築フリーランスの案件受注について 1 2022/03/27 18:16
- ASP・SaaS イントラネットを構築したい 2 2022/04/24 11:08
- ストレス いつも心の処方箋をありがとうございます。 本日もよろしくお願いします。 人に興味がないけれど、人と接 1 2022/05/01 22:27
- 一戸建て 所有している家を解体して新築するか、新しく土地を探して新築するか。どちらのほうが安くつきますか? 11 2022/07/18 16:05
- 分譲マンション 都心部の老朽化したマンションの資産価値について相談させて下さい。 5 2022/05/13 20:17
- 浮気・不倫(結婚) 不倫後との旦那との再構築したいです 9 2022/09/20 04:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UNIXとBSDとLinuxの違いを小学...
-
Redhat9のカーネルのアップにつ...
-
カーネル再構築でのエラー
-
SolarisとLinuxの違い
-
Vine Linuxカーネルアップデー...
-
Linux のカーネル・パニックに...
-
LinuxでIDE、SATAの認識順番に...
-
カーネルの再構築について
-
pptpとLinuxカーネル
-
Dockerコンテナ(centos7.9)の...
-
Linuxって、、、、、、
-
魔改造版Windows 2000をインス...
-
USB無線LAN登録でつまづいてい...
-
フェイクRAIDとソフトウェアRAI...
-
/proc/sys/net/ipv4/route/flus...
-
今使用しているカーネルのディ...
-
Linux」は有料のOSでUNIXは無料...
-
Ubuntu Up date後 Xが起動しない
-
windows server 2012 r2 上でIP...
-
KNOPPIXが起動しない場合の対処...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パフォーマンスモニタの%Proces...
-
割り込み不可能?なプロセスを...
-
/dev/nvme0n1p2 clean と表示さ...
-
『カーネルとの通信中にエラー...
-
KNOPPIXが起動しない場合の対処...
-
カーネルバッファとは何でしょうか
-
SolarisとLinuxの違い
-
Windows Vistaは本当にゴミOSな...
-
*長文となっております、予めご...
-
/proc/sys/net/ipv4/route/flus...
-
romfsってなんですか?
-
カーネルアップグレード後、una...
-
エラー”Illegal seek”はどんな...
-
linuxカーネルのダウングレード...
-
魔改造版Windows 2000をインス...
-
UNIXとBSDとLinuxの違いを小学...
-
CentOS5.3でNICを認識しない
-
LAMP環境でのパーティション構...
-
Windowsのソースコードって非公...
-
D525MWにCentOS6でLANが繋がらない
おすすめ情報