2012年11月2日 星期五

Rootfs 的改造

Rootfs 的改造

1. 瘦身
Q. 那些檔案可以宰 ?

在  $ROOTFS 目錄下執行

du -sh *

以觀看每個目錄所佔空間。

$ROOTFS/usr/share/man    -> 清除 man manual
$ROOTFS/usr/share/doc    -> 沒人看的文件
$ROOTFS/usr/share/locale -> 語系設定檔 (翻譯檔),僅留 en_US (+ zh_TW) 即可。

請移除舊版核心模組,並複製新版核心模組至此目錄

$ROOTFS/lib/modules                     -> 舊核心之驅動程式模組目錄
$ROOTFS/lib/modules/2.6.32-5-versatile  -> 移除
$ROOTFS/lib/modules/3.2.30              -> 新增
$ROOTFS/boot                            -> 舊版核心檔案,請全部清掉

$ROOTFS/var     ->
$ROOTFS/var/log -> 日誌檔目錄,可完全清除
$ROOTFS/var/cache/apt 目錄有套件的快取資料,可清除

2. 複製新檔案回去

a. 複製新 Linux 核心模組
   (不需要放 Linux 核心,因為其核心檔案放置至 sdcard 之第 1 個分割區)

3. 加入我們想要的設定

a. $ROOTFS/etc/fstab

proc            /proc        proc    defaults           0   0
/dev/mmcblk0p2   /           auto   errors=remount-ro   0   1
/dev/mmcblk0p1   /boot       auto   defaults            0   0

b. $ROOTFS/etc/inittab
最後一行加上:
T2:23:respawn:/sbin/getty -L ttyO2 115200 vt102

3. 複製至真正的 sdcard 中

請使用 fdisk 分割 sdcard (2 GB 以上),其中第 1 個分割區為 80 MB,剩下為第 2 個分割區。並依以下方式掛載:

/mnt/sdcard1 -> 第 1 個分割區,FAT 16/32 格式,有打開開機旗標。
/mnt/sdcard2 -> 第 2 個分割區,ext3 格式。

a. 複製核心、bootloader 及 uEnv.txt 至 /mnt/sdcard1,裡面內容如下:
-rwxr-xr-x 1 root root   45128 2012-10-30 22:19 MLO
-rwxr-xr-x 1 root root 1215711 2012-10-30 22:19 u-boot
-rwxr-xr-x 1 root root  294672 2012-10-30 22:19 u-boot.bin
-rwxr-xr-x 1 root root  294736 2012-10-30 22:19 u-boot.img
-rwxr-xr-x 1 root root       1 2012-10-30 23:29 uEnv.txt
-rwxr-xr-x 1 root root 2475616 2012-10-30 22:15 uImage


b. 複製 rootfs 至 /mnt/sdcard2,請使用 rsync 來複製

rsync -av $ROOTFS/* /mnt/sdcard2

4. 作完收工,可以至 devkit 8000 開機

沒有留言:

張貼留言