ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

S3C2440移植linux3.4.2内核之内核裁剪

2021-04-16 16:55:52  阅读:258  来源: 互联网

标签:USB support 裁剪 内核 S3C2440 去掉 CONFIG linux3.4


上一节S3C2440移植linux3.4.2内核之支持YAFFS文件系统我们修改了内核支持了yaffs2文件系统,这节我们裁剪内核。

文章目录


移植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

标签:USB,support,裁剪,内核,S3C2440,去掉,CONFIG,linux3.4
来源: https://blog.51cto.com/u_11934066/2711474

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有