【目前搭配 strip/objcopy/zip】
- 目前壓縮方式
- objcopy script: Makefile -> x86/Linksys
- 之後回到Makefile作壓縮,除了boot區段,壓後面區段。 - 目前解壓縮方式
x86/init.c 找到 zip相關function就是作解壓縮。 - 實驗結果
ldx(238k)-> objcopy(113k) -> compressed(61k) - 補充: 用objcopy作strip與抽出執行碼
- objcopy --strip-all --input-target=elf32-i386 --output-target=binary --verbose $src $dest
- http://www.cmlab.csie.ntu.edu.tw/~daniel/linux/ - 補充gzip使用方式: gzip -c $src > $dest
- http://www.lslnet.com/linux/f/docs1/i30/big5239887.htm
- lzma/SquashFS3.4
- mksquashfs $src $dest
- 官網 http://www.squashfs-lzma.org/
- SquashFS 於 linux 2.6.27 內建於 linux
- Set INITRAMFS_COMPRESSION_LZMA(1) - 因為我們bin file已經很小了(under 64k),做完實驗,壓起來頂多省1k上下而已。
【Action Items】
- 用Hex editor看firmware image,drop useless static define in your code。
- tar/upx
- 程式減肥三步走
http://linux.vbird.org/somepaper/20050117-jianfei.pdf