2010年04月03日

kernel 2.6.33.2

kernel 2.6.33.2が出ていたので、Debian(lenny)環境にインストールしてみた。

ramzswapを使用してみたかったので、menuconfigで
Device Drivers --->
Staging drivers --->
Compressed in-memory swap device (ramzswap)
を <M> に設定した。

make-kpkgの途中でエラーが発生するが、下記サイトを参考に解決。
http://yasu-2.blogspot.com/2010/01/debian-lenny.html

下記2つのファイルを、include/linux/ にコピーして、make-kpkgを再度実行したらビルドが通った。
include/generated/utsrelease.h
include/generated/compile.h


2.6.32の頃から、デフォルトではsensorsがうまく動かない(温度センサーを認識しない?)ため、下記サイトを参考にした。
https://bugs.launchpad.net/ubuntu/+source/lm-sensors-3/+bug/458811

/boot/grub/menu.lst で、カーネルオプションに
acpi_enforce_resources=lax
を追加。


再起動後、ramzswapを試してみる。

modprobe lzo_compress
modprobe ramzswap
を実行して、/dev/ramzswap0 を作成する。

適当に調べたところ、ramzswapを設定するためには、rzscontrolが必要なようなので、
http://code.google.com/p/compcache/downloads/list
から、compcache-0.6.2.tar.gz をダウンロード&ビルドする。
compcache-0.6.2/sub-projects/rzscontrol
にramzswapの設定コマンドがあるので、これを使用する。

cd compcache-0.6.2/sub-projects/rzscontrol
sudo ./rzscontrol /dev/ramzswap0 --init
sudo swapon /dev/ramzswap0
でramzswapを使用するように設定。

swapon -s
でswapが有効になっていることを確認。

sudo ./rzscontrol /dev/ramzswap0 -s
で統計を確認できる。。はずが、エラーになった。


Makefile中の
@gcc -g -Wall -D_GNU_SOURCE rzscontrol.c -o rzscontrol -I ../include -I../..
@gcc -g -Wall -D_GNU_SOURCE rzscontrol.c -o rzscontrol -I  /lib/modules/`uname -r`/build/drivers/staging/ramzswap/ -I ../include
に変更する。

rzcontrol.c:88,102行目をコメントアウト
        /* Extended stats */
printf(
"NumReads: %8" PRIu64 "\n"
"NumWrites: %8" PRIu64 "\n"
"FailedReads: %8" PRIu64 "\n"
"FailedWrites: %8" PRIu64 "\n"
"InvalidIO: %8" PRIu64 "\n"
//"NotifyFree: %8" PRIu64 "\n"
"ZeroPages: %8u\n"
"GoodCompress: %8u %%\n"
"NoCompress: %8u %%\n"
"PagesStored: %8u\n"
"PagesUsed: %8u\n"
"OrigDataSize: %8" PRIu64 " kB\n"
"ComprDataSize: %8" PRIu64 " kB\n"
"MemUsedTotal: %8" PRIu64 " kB\n",
s->num_reads,
s->num_writes,
s->failed_reads,
s->failed_writes,
s->invalid_io,
//s->notify_free,
s->pages_zero,
s->good_compress_pct,
s->pages_expand_pct,
s->pages_stored,
s->pages_used,
K(s->orig_data_size),
K(s->compr_data_size),
K(s->mem_used_total)
);

再びmake。
これで
sudo ./rzscontrol /dev/ramzswap0 -s
が実行できた。

実行結果はこんな感じ。
DiskSize:         512748 kB
NumReads: 35
NumWrites: 0
FailedReads: 0
FailedWrites: 0
InvalidIO: 0
ZeroPages: 0
GoodCompress: 0 %
NoCompress: 0 %
PagesStored: 0
PagesUsed: 0
OrigDataSize: 0 kB
ComprDataSize: 0 kB
MemUsedTotal: 0 kB


メモリを十分につんでいるので、まだrmazswapは使われていなかった。
posted by mypc at 10:08| Comment(0) | TrackBack(0) | 日記
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/36843022

この記事へのトラックバック