上一節(jié)S3C2440移植linux3.4.2內(nèi)核之支持YAFFS文件系統(tǒng)我們修改了內(nèi)核支持了yaffs2文件系統(tǒng),這節(jié)我們裁剪內(nèi)核。
為什么要裁剪內(nèi)核?
??因為mtd的kernel分區(qū)只有2M大,而實際內(nèi)核有2.37MB,所以需要裁剪到小于2M(或者修改mtd分區(qū)值)
首先裁剪內(nèi)核里無關(guān)的CPU/單板文件
??通過vi .config,然后搜索2440,如下圖所示:

??然后參考上圖,make menuconfig
??進(jìn)入System Type ---> SAMSUNG S3C24XX SoCs Support:

??如上圖所示,CPU下只選擇2440,單板文件下只選擇SMDK2440以及MINI2440相關(guān)
裁剪無關(guān)的文件系統(tǒng)ext2、ext3、ext4
??重新make menuconfig,進(jìn)入File systems,去掉:
< > Second extended fs support //ext2
< > Ext3 journalling file system support
< > The Extended 4 (ext4) filesystem
裁剪光盤文件系統(tǒng)CD-ROM
進(jìn)入File systems---> CD-ROM/DVD Filesystems,去掉:
< > ISO 9660 CDROM file system support
裁剪不常用的雜項文件系統(tǒng)
進(jìn)入File systems---> Miscellaneous filesystems,去掉:
< > Compressed ROM file system support (cramfs) // cramfs壓縮文件系統(tǒng)
[ ] Include support for ZLIB compressed file systems //zlib壓縮文件系統(tǒng)
< > ROM file system support // Romfs
通過內(nèi)核啟動信息來裁剪
??如下圖所示,內(nèi)核啟動時,看到初始化了PS2鼠標(biāo)驅(qū)動

??由于,我們2440板子只有USB接口,所以需要裁剪掉PS2鼠標(biāo)驅(qū)動:
重新make menuconfig,進(jìn)入Device Drivers-> Input device support,去掉:
[ ] Provide legacy /dev/psaux device //PS2鼠標(biāo)鼠標(biāo)指向的鼠標(biāo)設(shè)備文件
[ ] Mice ---> //其它各種鼠標(biāo)驅(qū)動,包括PS2鼠標(biāo)、I2C鼠標(biāo)、觸摸板等
[ ] PS/2mouse
通過.config文件的內(nèi)容來裁剪
??通過vi .config,找到如下圖所示,由于CONFIG_TOUCHSCREEN_USB(USB觸摸板)很少見到,所以去掉

??USB-based Watchdog Cards(基于usb的看門狗卡)
??如下圖所示,這個看門狗卡很少用到,所以去掉CONFIG_SSB_POSSIBLE

??USB-based Watchdog Cards(基于usb的看門狗卡)
??Sonics Silicon Backplane (Sonics公司下的Silicon底板)
??如下圖所示,這個公司的產(chǎn)品沒有用到,所以去掉CONFIG_BCMA_POSSIBLE

??找到如下圖所示,由于CONFIG_SND_USB (USB聲卡)沒用到,所以去掉

??去掉CONFIG_USB_LIBUSUAL,沒用到

??去掉CONFIG_TOUCHSCREEN_USB
-> Device Drivers
-> Input device support
-> Generic input layer
-> Touchscreens
<*> Samsung S3C2410/generic touchscreen input driver //加上自帶的觸摸屏驅(qū)動
< > USB Touchscreen Driver //去掉USB觸摸屏驅(qū)動
??去掉CONFIG_SSB_POSSIBLE
搜索如下圖所示,該宏是被別的選項設(shè)置,所以去掉不了:

??去掉CONFIG_BCMA_POSSIBLE。該宏也沒找到,所以去掉不了
??去掉CONFIG_SND_USB
-> Device Drivers
-> Sound card support
-> Advanced Linux Sound Architecture
[ ] USB sound devices //去掉USB聲卡驅(qū)動
5)去掉CONFIG_USB_LIBUSUAL
-> Device Drivers
-> USB support
[ ] The shared table of common (or usual) storage devices
裁剪后大小如下所示

給內(nèi)核制作補(bǔ)丁
??制作補(bǔ)丁之前,首先需要make distclean清除所有的配置文件,也包括了menuconfig菜單。而menuconfig菜單是通過讀取.config文件來生成的.
所以我們需要保存.config文件
步驟如下:
cp .config config_ok //保存到config_ok文件
make distclean
cd ../
mv linux-3.4.2 linux-3.4.2_new //更改文件名
tar -xjf linux-3.4.2.tar.bz2 //解壓需要比較的源文件
diff -urN linux-3.4.2 linux-3.4.2_new > linux-3.4.2_new.patch //生成補(bǔ)丁文件linux-3.4.2_new.patch
有任何問題,均可通過公告中的二維碼聯(lián)系我
|