- 2004年2月 9日 12:43
- Linux
まず言える事は、Kernelを再構築する前に自分の利用しているマシンのハードウェア構成を
詳細に把握しておくべきだと言う事だ。 特にKernel2.6を使うのであれば現状の2.4.xのカーネルの
設定は引き継げないと考えた方がいい。 つまりハードウェア構成を把握してないと・・・はまる。
# ServerはSSHで管理している訳だが、実際にNICのチップを間違えた為に
# 一時的にServerのNetworkが落ちて、ディスプレイを繋ぎなおして作業させられた
まぁ、大方のものは lspci を使うか /proc/pci を覗けば構成が解るんだが。
00:00.0 Host bridge: Silicon Integrated Systems [SiS] SiS651 Host (rev 02)
00:01.0 PCI bridge: Silicon Integrated Systems [SiS] SiS 530 Virtual PCI-to-PCI bridge (AGP)
00:02.0 ISA bridge: Silicon Integrated Systems [SiS] SiS962 [MuTIOL Media IO] (rev 25)
00:02.1 SMBus: Silicon Integrated Systems [SiS]: Unknown device 0016
00:02.5 IDE interface: Silicon Integrated Systems [SiS] 5513 [IDE]
00:02.7 Multimedia audio controller: Silicon Integrated Systems [SiS] SiS7012 PCI Audio Accelerator (rev a0)
00:03.0 USB Controller: Silicon Integrated Systems [SiS] SiS7001 USB Controller (rev 0f)
00:03.1 USB Controller: Silicon Integrated Systems [SiS] SiS7001 USB Controller (rev 0f)
00:03.3 USB Controller: Silicon Integrated Systems [SiS] SiS7002 USB 2.0
00:04.0 Ethernet controller: Silicon Integrated Systems [SiS] SiS900 10/100 Ethernet (rev 91)
01:00.0 VGA compatible controller: Silicon Integrated Systems [SiS] SiS650/651/M650/740 PCI/AGP VGA Display Adapter
Kernel2.6のモジュール周りにはかなりの変更点が加えられているらしくbinutilsを新しくする必要がある。
今回は binutils-2.14 をインストールした。 展開後ディレクトリに入り ./configure;make;make install
# インストール後、一度Kernel2.4.xでの起動を確認しているが実際環境を新しくしているので注意
Kernel2.6のソースをThe Linux Kernel Archivesから取得
当然Feb 4 ReleaseのKernel 2.6.2を取得後 /usr/src 以下に展開(..
CUIの場合はmake menuconfig KDEの場合はmake xconfig GNOMEの場合はmake gconfig でconfigureを行う
流石にconfig内容を解説すると本が一冊書けるので、自分に必要なものを適当に組み込むべし
ポイントは、動作に必要なものはモジュール化せずカーネルに組み込むという事(--
何の為のモジュールだ! と言われるかもしれませんが、カーネル2.6ではモジュール周りの仕様が変更されていて
インストール後すぐにはモジュールを読み込む事すら出来ない場合があるので、極力組み込む。
# Kernel2.6でmoduleを利用する方法が解ったので、こちらを参照してもらえれば幸い
# こちらを先に行っておけば、モジュール化しても全く以って問題ありません
かつてはカーネルをコンパイルするのに make dep, make clean, make bzimage, make module, make... などいろいろあったが
2.6からはmakeでカーネルとモジュールのコンパイル、make modules_installでモジュールのインストールが行われる。
昔からの伝統だが LANG=cとして英語環境でコンパイルした方がいいだろう(c以外だとエラー出るかも)
makeしてカーネルとモジュールをコンパイルしたら、make modules_installでモジュールをインストールする
自動的に /lib/module/カーネルのVer/ 以下にインストールされるはずなので確認してみるといい
次にコンパイルされたカーネルが恒例のように /usr/src/inux-2.6.2/arch/i386/boot/bzImage として出来ているので
/boot 以下にvmlinuz-2.6.2と名前を変えてコピーする(..
従来はmake installでカーネルのインストールが可能だったがエラーが出てしまったので手動で移動している。
module周りの変更のせいもあり mkinitrd も当然利用不可能だった。
最終的にKernel 2.6は動作こそするが周辺環境に問題が多い。
これでカーネルとモジュールのインストールが終わったのでブートローダーの設定に入る訳だが。
その前に /etc/fstab を確認した方がいいだろう、Kernel 2.6ではラベルが使えないそうなので
LABEL=/ などとなっている場合は /dev/hda2 などに修正する必要がある。
現在の対応を知りたければ df コマンドを叩いてみるといいだろう :D
Red Hat Linux 9.0標準のbootloaderはgrubなので /boot/grub/grub.confを編集する。
grubに関しては他の解説サイトでも参考にしてもらうとして(めんどくさくなったらしい)
今回はgrub.confに以下のような内容を追加(-- # 人によって違うのでそのままでは無理
title Linux (2.6.2-original)
root (hd0,0)
kernel /vmlinuz-2.6.2 ro root=/dev/hda2
2.6のカーネルが提供する機能と重複しそうなdaemonが立ち上がらないようにし
shutdonw -r nowでLinuxを再起動させ、ブートローダーでLinux (2.6.2-original)を選択すると
Linux Kernel 2.6での起動が始まる、フレームバッファを有効にしている場合には
ブート時にペンギンの絵なんかも拝めるはずだ(笑
- Newer: Kernel 2.6 modules
- Older: Linux Kernel 2.6 Ready!!
Comments:0
Trackbacks:0
- TrackBack URL for this entry
- http://distance.eclisse.info/cgi-bin/mt-tb.cgi/279
- Listed below are links to weblogs that reference
- Kernel 2.6 install log from distance