2005年11月27日

[PDA] Zaurus pdaXrom 改裝記 (6) - 設定 swap

為了加速系統的運行,一般在 linux 的系統中都會加上 swap patition 或是 swap file。我是選用 swapfile,大致上有底下三個步驟:
  1. 切割 sd 卡,並製作 ext3 的 partition
  2. 製作 swap file
  3. 修改系統,讓 swap 能自行啟動
先看第一個部份:
  1. 卸載 sd 卡:
    umount /mnt/card
  2. 切割 sd 卡。我是選擇把 sd 卡 (1G) 平均切作兩部份,第一個 partition 是 FAT16 格式,做為共通的用途;第二個 partition 是 ext3 格式,給 zaurus 使用 (含 swap file)。
    cfdisk /dev/mmcd/disc0/disc
    兩個 partition 都是 primary,第一個的 type 是 06 (FAT16),第二個的 type 是 83 (linux)。
  3. 格式化:
    mkfs.vfat /dev/mmcd/disc0/part1
    mkfs.ext3 /dev/mmcd/disc0/part2
    不過有時在 linux 下格式化 FAT16 會怪怪的,最好是找個 PDA/相機/windows 來格式化 FAT16。

再來是製作 swap file:
  1. 製作 swap file:
    mount -t ext3 /dev/mmcd/disc0/part2 /mnt/card
    cd /mnt/card
    dd if=/dev/zero of=swapfile bs=1M count=128
    mkswap swapfile
  2. 試著掛上 swap:
    free
    swapon swapfile
    free
    swapoff swapfile
    從兩次的 "free" 指令中,可以看出 swap 是否有正確的掛上?
  3. 最後記得把 /mnt/card 卸載:
    cd
    umount /mnt/card

最後是修改系統,讓系統運作順暢自動一些:
  • 修改 /etc/fstab 檔:
    ......
    /dev/mmcd/disc0/part1  /mnt/card-fat16  auto  noauto,owner  0  0
    /dev/mmcd/disc0/part2  /mnt/card  auto  noauto,owner  0  0
    ......
    另外,要記得下指令 "mkdir /mnt/card-fat16"。

    往後 ext3 的 partition 是掛在 /mnt/card,FAT16 的 partition 是掛在 /mnt/card-fat16。
  • 修改 /etc/sdcontrol 檔:
    ......
    DEVICE=/dev/mmcd/disc0/part2
    SWAP_FILE=/mnt/card/swapfile
    ......
    case "$ACTION" in
    'insert')
           ......
           swapon $SWAP_FILE
           ;;
    'eject')
           swapoff $SWAP_FILE
           ......
    亦即在 insert 的最後加上 swapon,在 eject 前 swapoff。
在這樣修改下,開機後 swap 會自行啟動。若要退出 sd 卡,要下 "/etc/sdcontrol eject" 指令;重插入 sd 卡時,會自行啟動 swap。


1 則留言:

mfhsieh 提到...

OK! 請記得載明出處即可。