嵌入式linux系統裁剪小結

主要步驟如下:

    1. 充分了解系統
    這有點像廢話,但是確實很重要,特別對不是自己負責的模塊,需要花點時間去在調研。最初覺得不好下手是沒有對系統進行足夠的瞭解,並不知道它爲什麼會這麼龐大,但當你瞭解之後,就會信心倍增。
    可以藉助 du * | sort -n 按大小對文件或者目錄進行排序, 從大到小依次裁剪。

    2. UI 裁剪
    一般來說,UI佔用了整個系統最多的存儲空間。SDK包括的東西都是一般比較全的,不同的產品有不同的需求。如QT,有網絡,各種數據庫,多種語言和字體的支持,以及爲了保持向下兼容的冗餘的庫等,使得整個系統非常龐大。根據產品特性在此基礎上刪減是最有效果的。

    3. 文件系統選擇
    文件系統包括根文件系統和應用程序的文件系統,嵌入式linux系統存儲結構一般爲:
   {boot loader} {kernel } { rootfs } { application filesystem }
    選擇一個壓縮率高的文件系統可以使系統變得非常小。
   對於嵌入式設備來說,文件一般存儲在flash裏面,常用的文件系統主要有:
      cramfs, squashfs, jffs2, yaffs2
    各有特點,前二者是隻讀的,壓縮率都比較高,後二者是可寫的,jffs2壓縮率比前二者稍差,Yaffs2最差。如果對空間要求比較高的系統,squashfs是比較好的選擇,若需要支持可寫,則squashfs + jffs2是比較合適的。  

    4. Kernel裁剪
    kernel的裁剪相對簡單,把不用的模塊, driver去掉, 還可以把一些driver以module形式編譯,放到rootfs中。編譯kernel時,一般會生成未壓縮的和經過壓縮的kernel, 燒到falsh時選擇壓縮過的。

    最後,提醒一下,在製作文件系統之前,別忘了對可執行文件和動態庫進行strip操作。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章