的usb驱动裁剪协议_S3C2440移植linux3.4.2内核之内核裁剪

上一节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,如下图所示:

b01f89126f04ed693c81d85f468c53e8.png 然后参考上图,make menuconfig

进入System Type ---> SAMSUNG S3C24XX SoCs Support:

e28fbbecc3ff7248d4adf45961388b74.png 如上图所示,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鼠标驱动

2cefa014578c109bb1e84f7d128de817.png 由于,我们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触摸板)很少见到,所以去掉

ca3e3626a96643c0bb72ac449dfd8c64.png USB-based Watchdog Cards(基于usb的看门狗卡)

如下图所示,这个看门狗卡很少用到,所以去掉CONFIG_SSB_POSSIBLE

2c426e0d102edc704894b8787dc3c297.png USB-based Watchdog Cards(基于usb的看门狗卡) Sonics Silicon Backplane (Sonics公司下的Silicon底板) 如下图所示,这个公司的产品没有用到,所以去掉CONFIG_BCMA_POSSIBLE

b813c2a80284fe39a8eea94052e16de9.png 找到如下图所示,由于CONFIG_SND_USB (USB声卡)没用到,所以去掉

9cb4174bf87fc860777af8d44abb1a40.png 去掉CONFIG_USB_LIBUSUAL,没用到

971d767ac43747075f9a4069b4cdff50.png

最后通过上节查找的裁剪内容,来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 搜索如下图所示,该宏是被别的选项设置,所以去掉不了:

e7f54e58eee7cf3b48c26e0c51ce72cf.png

去掉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       

裁剪后大小如下所示

69eb055efc8a58a1a124a2ead18be4d7.png

给内核制作补丁

制作补丁之前,首先需要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

如遇到排版错乱的问题或者有任何疑问、建议,可以在“我的主页”找到我的联系方式和我的博客链接。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值