上一节 S3C2440 移植 linux3.4.2 内核之反对 YAFFS 文件系统咱们批改了内核反对了 yaffs2 文件系统,这节咱们裁剪内核。
@[TOC]
移植 Linux3.4.2 内核其余文章链接:
S3C2440 移植 linux3.4.2 内核之内核框架介绍及简略批改
S3C2440 移植 linux3.4.2 内核之批改分区以及制作根文件系统
S3C2440 移植 linux3.4.2 内核之反对 YAFFS 文件系统
S3C2440 移植 linux3.4.2 内核之内核裁剪
为什么要裁剪内核?
因为 mtd 的 kernel 分区只有 2M 大, 而理论内核有 2.37MB, 所以须要裁剪到小于 2M(或者批改 mtd 分区值)
首先裁剪内核里无关的 CPU/ 单板文件
通过 vi .config, 而后搜寻 2440, 如下图所示:
而后参考上图,make menuconfig
进入 System Type —> SAMSUNG S3C24XX SoCs Support:
如上图所示,CPU 下只抉择 2440, 单板文件下只抉择 SMDK2440 以及 MINI2440 相干
裁剪无关的文件系统 ext2、ext3、ext4
从新 make menuconfig, 进入 File systems, 去掉:
< > Second extended fs support //ext2
< > Ext3 journalling file system support
< > The Extended 4 (ext4) filesystem
裁剪光盘文件系统 CD-ROM
进入 File systems—> CD-ROM/DVD Filesystems, 去掉:
< > ISO 9660 CDROM file system support
裁剪不罕用的杂项文件系统
进入 File systems—> Miscellaneous filesystems, 去掉:
< > Compressed ROM file system support (cramfs) // cramfs 压缩文件零碎
[ ] Include support for ZLIB compressed file systems //zlib 压缩文件零碎
< > ROM file system support // Romfs
通过内核启动信息来裁剪
如下图所示, 内核启动时, 看到初始化了 PS2 鼠标驱动
因为, 咱们 2440 板子只有 USB 接口, 所以须要裁剪掉 PS2 鼠标驱动:
从新 make menuconfig, 进入 Device Drivers-> Input device support, 去掉:
[ ] Provide legacy /dev/psaux device //PS2 鼠标鼠标指向的鼠标设施文件
[ ] Mice ---> // 其它各种鼠标驱动, 包含 PS2 鼠标、I2C 鼠标、触摸板等
[] PS/2mouse
通过.config 文件的内容来裁剪
通过 vi .config, 找到如下图所示, 因为 CONFIG_TOUCHSCREEN_USB(USB 触摸板)很少见到, 所以去掉
USB-based Watchdog Cards(基于 usb 的看门狗卡)
如下图所示, 这个看门狗卡很少用到, 所以去掉 CONFIG_SSB_POSSIBLE
USB-based Watchdog Cards(基于 usb 的看门狗卡)
Sonics Silicon Backplane (Sonics 公司下的 Silicon 底板)
如下图所示, 这个公司的产品没有用到, 所以去掉 CONFIG_BCMA_POSSIBLE
找到如下图所示, 因为 CONFIG_SND_USB (USB 声卡)没用到, 所以去掉
去掉 CONFIG_USB_LIBUSUAL, 没用到
最初通过上节查找的裁剪内容, 来 make menuconfig
去掉 CONFIG_TOUCHSCREEN_USB
-> Device Drivers
-> Input device support
-> Generic input layer
-> Touchscreens
<*> Samsung S3C2410/generic touchscreen input driver // 加上自带的触摸屏驱动
< > USB Touchscreen Driver // 去掉 USB 触摸屏驱动
去掉 CONFIG_SSB_POSSIBLE
搜寻如下图所示, 该宏是被别的选项设置, 所以去掉不了:
去掉 CONFIG_BCMA_POSSIBLE。该宏也没找到, 所以去掉不了
去掉 CONFIG_SND_USB
-> Device Drivers
-> Sound card support
-> Advanced Linux Sound Architecture
[ ] USB sound devices // 去掉 USB 声卡驱动
5)去掉 CONFIG_USB_LIBUSUAL
-> Device Drivers
-> USB support
[] The shared table of common (or usual) storage devices
裁剪后大小如下所示
给内核制作补丁
制作补丁之前, 首先须要 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 // 生成补丁文件 linux-3.4.2_new.patch
如遇到排版错乱的问题,能够通过以下链接拜访我的 CSDN。
**CSDN:[CSDN 搜寻“嵌入式与 Linux 那些事”]