うつ病双極性感情障害を抱えたけんけんFedoraFreeBSD勉強日記。
Linux/Unixデスクトップ用途として使う秘訣お教えします。
 since 2006年2月16日(木)

カーネル

[高速化]、[軽量化]Linuxカーネルkernelの再構築 on Fedora 12 13 14

Linuxでデバイスが動かなくて困った。
といった経験ないでしょうか?

また、
高速化したい。軽量化したい。
というご要望ありませんか?

そんな要望に答える最終手段。
カーネルの再構築に挑戦しましょう。

カーネルソースのダウンロード


まずは、Linuxカーネルのソースをダウンロードしましょう。
The Linux Kernel Archives
から右上のLatest Stable Kernel:の下のバージョン番号を
クリックしてダウンロードしてください。
2010年 2月 9日 火曜日 時点では、2.6.32.7がStableバージョンです。

ファイルの展開



cd ~/Downloads/
tar xvjf linux-2.6.32.7.tar.bz2

(2.6.32.7は現在のダウンロードしたバージョンに置き換えて下さい。
linux-まで入力したら[tab]キーで補完すれば間違いないでしょう。

必要なパッケージのインストール


開発ツールのインストール



カーネルをコンパイルするために開発ツールをインストールします。

su
(パスワード入力)
yum groupinstall 開発ツール



mkinitrdのインストール



カーネルのRAMディスクを作るために
mkinitrdパッケージをインストールします。

yum install mkinitrd


dracutがRAMディスクを作成してくれます。

ncurses-develのインストール



カーネルのパラメータ等を設定するメニューを
表示させられるようにncurses-develをインストールします。

yum install ncurses-devel


root権限からログアウト



無事必要なパッケージをインストール出来たら、

exit

して、root権限からログアウトします。


カーネルパラメータの設定



make oldconfig


カーネルパラメータ等を設定します。

cd linux-2.6.32.7
cp /boot/config-2.6.31.12-174.2.3.fc12.i686.PAE .
make oldconfig

すると、config-2.6.31.12-174.2.3.fc12.i686.PAEの
設定が読み込まれます。
さらに、Linuxカーネルは日々進歩しているので、
2.6.31.12カーネルから変化したカーネルパラメータについての
ON、OFF、モジュールかするかどうかについて質問されます。
DEBUGはn
m、もしくはMにできるもの(モジュールに出来るもの)は、
それぞれ、mMを選択。
それ以外は、yを選べば問題ないと思われます。

make menuconfig




make menuconfig

して、カーネルパラメータの設定をします。
CPUタイプの設定をするだけでかなり高速化されます。
また、KVMやXenやVMwareなどの仮想化を使わないならば、
VirtualizationをOFFにしてしまいましょう。

コンパイル



カーネル、カーネルモジュールをコンパイルするには、

make

と入力するだけです。
数時間かかるので寝る前にでも実行しましょう。


インストール



コンパイルしたカーネル、カーネルモジュールをインストールするには、

su -c "make modules_install install ; mkinitrd -f initramfs-2.6.32.7.img 2.6.32.7"
(パスワード入力)

2.6.32.7の所はダウンロード、コンパイルしたカーネルバージョンに
置き換えること。

grub.confの設定



make installしたことで、
/etc/grub.confに新しいカーネルが登録されます。
しかし、デフォルトで起動する設定に変更されていない。
そのまま再起動したままだと、
以前(Fedoraもしくはディストリビュータ)が
用意したカーネルが起動してしまうので、
新しく再構築したカーネルを起動させるために

default=1

となっている箇所を

default=0

としておく。
(環境によっては、
default=の後の数字が1意外になっているかもしれない。)


再起動



システムを再起動してください。
新しいカーネルで起動できたら、

uname -r

を実行して、

2.6.32.7

など自分がコンパイルしたカーネルのバージョンとして
表示しているか確認してください。

もし、nvidiaなどのグラフィックカードのドライバを
インストールする必要がある場合は、
新しいカーネルで起動した後、
make、make installなどして
ドライバをコンパイルし、
modprobeでモジュールを読み込んでください。


起動できない、
コンパイルできない!!といった場合は、コメントもしくは、
Twitterへ。

Fedoraが不安定なときに安定させる方法。on Fedora 12

Fedora 12になって、
色々と不安定な事が多くなりました。
特に私の環境では、
ndiswrapperというNDISというMicrosoft社が定めたネットワークドライバ
をLinuxで扱うためのモジュールを組み込んでいます。
このような場合、
従来の方法ではモジュールをインストールするだけで
安定して高速に無線LANの接続ができました。
しかし、Fedora 12での無線LANの接続が異常に遅くなりました。

ですが、initramfsをdracutを用いることで安定に、
そして高速に無線LANを接続することが可能になりました。

ndiswrapperだけでなくnvidiaのドライバモジュール
kmod-nvidiaを使った場合にも恐らく有効でしょう。

また、何故かcompiz-fusionも安定して動作するようになりました。

とりあえず、なんだか不安定だなと思ったら以下のコマンドを
実行してみてください。


$ su
(パスワード)
# cd /boot
# cp initramfs-2.6.31.9-174.fc12.i686.PAE.img initramfs-2.6.31.9-174.fc12.i686.PAE.img.orig
# dracut --force initramfs-2.6.31.9-174.fc12.i686.PAE.img 2.6.31.9-174.fc12.i686.PAE
# reboot


上記のようにコマンドを実行してください。

概要としては、/bootディレクトリに移動して、
initramfsをdracutで作り直したときに起動しなくなっては困るので、
initramfsの元ファイルをコピーします。
そして、dracut--forceオプションを付けて実行します。
ただし、ファイル名は、お使いのバージョンに合わせてください。
ファイル名の入力を間違わないようにするために、
initramfsまで入力したら、
[tab]キーを何回か押しながら、ファイル名の補完をすると間違いの確率が
減るでしょう。

カーネル再構築 on Fedora 7(Kernel recompile on Fedora 7 Fedora7)

カーネル(OSの中心部分)の再構築してみた。

目的は
あまりに古いPC(Celeron 500 Mhz,メモリ398 MB)を
カーネルの軽量化、高速化、最適化、
PCカードを使用する際に弊害となる4k stackの制限を外すため。続きを読む
ブログ内の検索
Google

WWW を検索
このblog内を検索
最新コメント
コンピューター オススメ
Linuxオススメ本
コマンド本
アクセスカウンター

    はてブリスト - 現在
    • ライブドアブログ