SWAPつくってみた

bitWarpを入れたのがうれしくて、わざわざ電車の中でメールを受信してみたりする。
ん? メールの方が軽いはずなのに、ホームページ見るときと比べて遅く感じる。なんでだろ。
まぁ、普通に使えるからいいや。
nikkeibpのメールマガジンなど開いて、
あれ?
メール本文に書かれたURLには、どうやって跳ぶんだ?
コピーしてブラウザに貼り付け?
どっか、設定するところはないのか?
格闘すること10分。
なんのことはない。
「表示」メニューの「テキスト表示」に付いているチェックを外せばいい。
URLをタップすればNetFrontで開けるようになった。
しばらくブラウジングを楽しむ。
と、カタマッタ。
再起動、かなり時間かかります。数分待ち。
PCのタブブラウザ感覚で使ったからかな。ごめんSL-C1000君。
Operaとかw3mも試してみたいが、とりあえずSL-C1000をパワーアップしてみたい。

ということで、256MのSDカードに32Mのswapつくってみた。
こんな便利なツールがありますが、あえてターミナルで。
こことかこことかここらへんを参考に。
空のSDカードをFATとEXT2の領域に分けて、EXT2をSWAPに。

bash-2.05$ su			←rootで作業
# umount /mnt/card		←SDカードのマウント解除
# fdisk /dev/mmcda		←fdsik起動。SDカードは/dev/mmcda

Command (m for help): d		←既存のパーティションを削除
Command (m for help): nパーティション作成(FAT用)
Command action
  e  extended
  p  primary partition(1-4)
pパーティション2つしか作らないし
Partition number (1-4): 1		←FAT領域を1にするほうがいいです。
First cylinder (1-965, default 1):	←頭から作るからそのままEnter
Last cylinder or +size or sizeM or +sizeK (1-965, default 965): +224M	←FAT領域は256-32=224M
Command (m for help):nパーティション作成(EXT2用)
Command action
  e  extended
  p  primary partition(1-4)
p
Partition number (1-4): 2 
First cylinder (856-965, default 856):	←そのままEnter
Using default value 826
Last cylinder or +size or sizeM or +sizeK (1-965, default 965):	←残り全部割り当てるからそのままEnter
Using default value 965
Command (m for help):w			←設定反映。ここでqを押せば保存せず終了。
The partition table has been altered!
Calling ioctl() to re-read partition table
Syncing disks.
#mkfs.msdos /dev/mmcda1		←FAT領域フォーマット
#mkfs.ext2 /dev/mmcda2EXT2領域フォーマット
#mkswap /dev/mmcda2EXT2領域を丸ごとSWAPに

これで準備は整った。あとは

#swapon /dev/mmcda2

でSWAPオン。確認してみると

#free
	 total 	  used	    free
  Mem: 	 62028	  58752      3276
 Swap: 	 28156	      0      28156
Total:	 90184	  58752	    31432

あれ?32Mじゃないや。ちゃんと計算してないからな。まあいいや。
いちいち/dev/mmcda2を指定するのが面倒。/etc/fstabの最後の行に

/dev/mmcda2	swap	swap	defaults	0  0

を付け足してやれば

#swapon -a

でswapを有効にできる。
あとは起動するときに自動的にswapを有効に。

#!/bin/bash
case "$1" in
'start')
  echo "starting swap"
  /sbin/swapon -a
  ;;
'stop')
  echo "stop swap"
  /sbin/swapoff -a
  ;;
*)
  echo "usage: $0 {start|stop}"
  ;;
esac

てな感じのスクリプトを/etc/rc.d/rc5.d/S99swapとしてつくってみた。

あと、SDカードのアイコンをタップして取り外しできるように
/etc/sdcontrol の 'eject') の下に swapoff -a を追加。

これでメモリのパワーアップは完了。
メモリをパワーアップしたら、次はCPU。Special kernelいってみます。