[參考文件,縮減 linux kernel 的 size]
(平台) GM8136s EVB /
GRD(gm8136s_ov9715_pt)
(修改項目)
(1)
General setup --->
[ ] Enable AIO support
這主要看用戶是否使用了 aio_read 之類的函數。 POSIX 標准的異步 I/O 有別於
linux 原生的 I/O 接口。linux 原生代碼認為,io 的讀操作是同步的,寫操作是異
步的。也就是說讀取某io 的數據,必須等待數據由 io 傳送到 buffer 之後才讀完
成返回。在有些情況下,更高性能的做法是希望讀操作發起之後,線程立即返
回,去做其他與 buffer 無關的事情。直到 buffer 數據准備好,才處理讀結果。
於是就有了 aio 接口支持。用戶通常都只是使用 linux 原生的 I/O 接口,可以將
該選項關閉。
(1)
General setup --->
[ ] Enable AIO support
這主要看用戶是否使用了 aio_read 之類的函數。 POSIX 標准的異步 I/O 有別於
linux 原生的 I/O 接口。linux 原生代碼認為,io 的讀操作是同步的,寫操作是異
步的。也就是說讀取某io 的數據,必須等待數據由 io 傳送到 buffer 之後才讀完
成返回。在有些情況下,更高性能的做法是希望讀操作發起之後,線程立即返
回,去做其他與 buffer 無關的事情。直到 buffer 數據准備好,才處理讀結果。
於是就有了 aio 接口支持。用戶通常都只是使用 linux 原生的 I/O 接口,可以將
該選項關閉。
(2)
Device Drivers --->
Block devices --->
Loopback device support
Loopback device 支持,該選項支持把一個普通文件當作塊設備文件使用。輸入設備驅動相關的支持,可以不選該選項。
Device Drivers --->
Block devices --->
Loopback device support
Loopback device 支持,該選項支持把一個普通文件當作塊設備文件使用。輸入設備驅動相關的支持,可以不選該選項。
(3)
Device Drivers --->
Input device support --->
Hardware I/O ports --->
< > Serial I/O support
< > Gameport support
Device Drivers --->
Input device support --->
Hardware I/O ports --->
< > Serial I/O support
< > Gameport support
(4)
linux 內核中有不少和系統的調試信息相關內容,這部分內容在系統調試定位的時候非
常重要,但也占用了一定的空間。在存儲資源極度缺乏的環境中,也可以考慮將他們
去掉。關閉它們不影響系統的正常運行。
linux 內核中有不少和系統的調試信息相關內容,這部分內容在系統調試定位的時候非
常重要,但也占用了一定的空間。在存儲資源極度缺乏的環境中,也可以考慮將他們
去掉。關閉它們不影響系統的正常運行。
linux 內核的debug 文件系統
這是一個虛擬的文件系統,用於存放內核開發者使用的 debug 文件。
Kernel hacking --->
[ ] Debug Filesystem
這是一個虛擬的文件系統,用於存放內核開發者使用的 debug 文件。
Kernel hacking --->
[ ] Debug Filesystem
內核跟蹤器
Kernel hacking --->
[ ] Tracers --->
Kernel hacking --->
[ ] Tracers --->
用戶態出錯信息
用戶態程序出錯後崩潰的時候,內核會打印一句簡短的信息,告知出錯的具體原因。
該信息在應用程序調試階段非常有用。關閉將不打印出錯信息。
Kernel hacking --->
[ ] Verbose user fault messages
用戶態程序出錯後崩潰的時候,內核會打印一句簡短的信息,告知出錯的具體原因。
該信息在應用程序調試階段非常有用。關閉將不打印出錯信息。
Kernel hacking --->
[ ] Verbose user fault messages
(5)
linux 內核編譯生成二進制文件之後,需要通過某種壓縮模式,將龐大的二進制文件壓
縮成體積更小的鏡像文件,以便存放在空間有限的存儲介質中;在系統啟動時,會首
先將壓縮的鏡像文件解壓到RAM 中,然後再從頭執行,完成系統啟動。對此,linux
3.0.y 內核提供了多種壓縮方式:Gzip,LZMA 和 LZO。而這幾種壓縮模式,在壓縮
率和解壓速度之間各有千秋。
linux 內核編譯生成二進制文件之後,需要通過某種壓縮模式,將龐大的二進制文件壓
縮成體積更小的鏡像文件,以便存放在空間有限的存儲介質中;在系統啟動時,會首
先將壓縮的鏡像文件解壓到RAM 中,然後再從頭執行,完成系統啟動。對此,linux
3.0.y 內核提供了多種壓縮方式:Gzip,LZMA 和 LZO。而這幾種壓縮模式,在壓縮
率和解壓速度之間各有千秋。
Gzip: linux 內核鏡像默認的、也是最經典的壓縮模式。它在壓縮率和解壓速度上,保持
了最佳的平衡。
LZMA:LZMA 是linux 內核新近才支持的壓縮模式,相比另外兩種壓縮模式,它具有
最高的壓縮率(同樣文件,通過LZMA 壓縮後的體積通常只有Gzip 的70%),但是壓
縮和解壓縮的速度要差一些。適用於spi flash 大小非常有限的場合中。
LZO:這種壓縮方式壓縮率最低,但是壓縮和解壓的速度最快。(目前該算法在3.0 內核
中還不完善,使用該壓縮算法會有風險,所以目前並不使用)
具體的選擇方法(以選擇 LZMA 模式為例):
General setup --->
Kernel compression mode (LZMA) --->
( ) Gzip
(X) LZMA
( ) LZO
了最佳的平衡。
LZMA:LZMA 是linux 內核新近才支持的壓縮模式,相比另外兩種壓縮模式,它具有
最高的壓縮率(同樣文件,通過LZMA 壓縮後的體積通常只有Gzip 的70%),但是壓
縮和解壓縮的速度要差一些。適用於spi flash 大小非常有限的場合中。
LZO:這種壓縮方式壓縮率最低,但是壓縮和解壓的速度最快。(目前該算法在3.0 內核
中還不完善,使用該壓縮算法會有風險,所以目前並不使用)
具體的選擇方法(以選擇 LZMA 模式為例):
General setup --->
Kernel compression mode (LZMA) --->
( ) Gzip
(X) LZMA
( ) LZO
(實驗結果)
基本測試 video liveview - ok; network - ok
基本測試 video liveview - ok; network - ok
無修改kernel的uImage size: 2.206672 MB
修改後kernel的uImage size: 1.639504 MB
相差 567.168 KB
修改後kernel的uImage size: 1.639504 MB
相差 567.168 KB
top 記憶體使用狀況
無修改 used : 72.084 MB
修改後 used : 73.316 MB
無修改 used : 72.084 MB
修改後 used : 73.316 MB
無修改 free : 53.636 MB
修改後 free : 52.432 MB
修改後 free : 52.432 MB
無修改 shrd : 0KB
修改後 shrd : 0KB
修改後 shrd : 0KB
無修改 buff : 4.276 MB
修改後 buff : 4.636 MB
無修改 cached : 14.256 MB修改後 buff : 4.636 MB
修改後 cached : 14.976 MB
==
uboot 裁剪資料
http://blog.csdn.net/xiaobin_hlj80/article/details/42466873#