カーネル・コンパイル

[id:Orca:20080328] で放置したままだった, 未使用の 1GB程の領域を認識させてみた。
ホントは bigmemパッケージとかあればインストールするだけで簡単なんだけど Ubuntuにはそれが見当たらない。
てな訳で環境を整えてカーネルコンパイル
資料はここ → Kernel/Compile - Community Help Wiki

sudo aptitude install linux-kernel-devel   # fakeroot build-essentialはインストールしてたので
sudo apt-get build-dep linux-image-$(uname -r)
apt-get source linux-image-$(uname -r)
sudo apt-get build-dep linux-ubuntu-modules-$(uname -r)
apt-get source linux-ubuntu-modules-$(uname -r)
cd linux-2.6.24

ここからは古い方式でやってみた (古いと言っても make bzImageとかの方法じゃなく, Debianっぽい方式)。

cp /boot/config-`uname -r` .config
# sudo aptitude install libncurses5-dev   # ← menuconfig使うけどコレはインストール済み
make menuconfig
# "Processor type and features"→"High Memory Support"を 1〜4GBから 64GBへ
# ついでに "Processor family"を "Opteron/Athlon64/Hammer/K8"へ
#   (Athlon X2だからコレかな? てことで。K6,K7,K8の項目はあるけど K9が無かったので)

make-kpkg clean
fakeroot make-kpkg --initrd --append-to-version=-be2400 kernel-image kernel-headers

コンパイル後に *.debができるので後はインストールするだけ。
grubのメニューにも登録された。
とりあえずは freeコマンドで 4GBを確認したけど, 結局このカーネルでの起動はあまり使ってなかったりして。