S3C2440移植linux3.4.2内核之内核裁剪
上一节S3C2440移植linux3.4.2内核之支持YAFFS文件系统我们修改了内核支持了yaffs2文件系统,这节我们裁剪内核。
移植Linux3.4.2内核其他文章链接:
S3C2440移植linux3.4.2内核之内核框架介绍及简单修改
S3C2440移植linux3.4.2内核之修改分区以及制作根文件系统
S3C2440移植linux3.4.2内核之支持YAFFS文件系统
为什么要裁剪内核?
因为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
有任何问题,均可通过公告中的二维码联系我
S3C2440移植linux3.4.2内核之内核裁剪的更多相关文章
- 移植Linux-3.4.2内核到S3C2440
一.BootLoader引导内核过程 1.Bootloader的工作 1.1.将内核读入内存 2.2.保存内核启动参数到指定位置,内核启动时去这个位置解析参数 3.3. ...
- 1.移植3.4内核-分析内核启动过程,重新分区,烧写jffs2文件系统
1.在上章-移植uboot里.我们来分析下uboot是如何进入到内核的 首先,uboot启动内核是通过bootcmd命令行实现的,在我们之前移植的bootcmd命令行如下所示: bootcmd=nan ...
- 在阿里云中编译Linux4.5.0内核 - Ubuntu内核编译教程
实验环境:Ubnuntu 64位(推荐使用14.04)+Xshell 阿里云现在提供的云服务器很好用的,用来编译内核性能也不错.本文介绍最基本的内核编译方法,为了方便,所有操作均在root用户下进行. ...
- 【转】.NET多种WebKit内核/Blink内核浏览器初步测评报告
第1篇:.NET多种WebKit内核/Blink内核浏览器初步测评报告 本文转自“吾乐吧软件站”,原文链接:http://www.wuleba.com/?p=23590 报告研究时间:2013-10- ...
- Linux 内核开发—内核简单介绍
内核简单介绍 Linux 构成 Linux 为什么被划分为系统空间和内核空间 隔离核心程序和应用程序,实现对核心程序和数据的保护. 什么内核空间,用户空间 内核空间和用户空间是程序执行的两种不同的状态 ...
- Linux设备驱动开发详解-Note(5)---Linux 内核及内核编程(1)
Linux 内核及内核编程(1) 成于坚持,败于止步 Linux 2.6 内核的特点 Linux 2.6 相对于 Linux 2.4 有相当大的改进,主要体现在如下几个方面. 1.新的调度器 2.6 ...
- Linux 内核开发 - 内核定时器
时间差的度量 系统的定时器硬件以固定的频率产生时钟中断,产生始终中断的间隔以HZ 常量来决定,通常在50~1200之间,x86默认是1000.HZ能够依据不同的内核来配置. Linux 採用jiffi ...
- Linux内核(5) - 内核学习的相关资源
“世界上最缺的不是金钱,而是资源.”当我在一份报纸上看到这句大大标题时,我的第一反应是——作者一定是个自然环保主义者,然后我在羞愧得反省自身的同时油然生出一股对这样的无产主义理想者无比崇敬的情绪来. ...
- [转帖]天津飞腾回应处理器造假 没有采用ARM的内核,内核自主设计
天津飞腾回应处理器造假没有采用ARM的内核,内核自主设计 ... https://www.expreview.com/63233.html 看了下 同意孟宪瑞老师的关系 飞腾 的确改动了 ARM的架构 ...
- S3C2440 移植最新5.2linux内核
基于 移植uboot后. 1. 移植linux内核 1.1 下载源码 打开 https://www.kernel.org/ 直接肝最新的 5.2.8 下载完后,在ubuntu里解压备用. 1.2 搭建 ...
随机推荐
- DevOps|研发提效-敏捷开发之每日站立会
对于研发效能团队建设和组织,本文不再赘述,可以参考之前的文章,已经讲得很透彻了.本文重点讲我们日常是怎么开站立会,怎么让团队跑起来,高效能产出的.每日站立会,15分钟到30分钟,看似非常短的一个会,但 ...
- [USACO2007FEB S] The Cow Lexicon S
题目描述 Few know that the cows have their own dictionary with W (1 ≤ W ≤ 600) words, each containing no ...
- Redis入门实践
安装Redis 下载:官网:https://redis.io/download/,选择稳定版下载. 上传至linux 解压Redis:tar -zxvf redis-6.2.7.tar.gz,得到: ...
- django-celery-beat插件使用
该插件从 Django 管理界面管理celery的定期任务,您可以在其中动态****创建.编辑和删除定期任务以及它们的运行频率. django-celery-beat提供了几种添加定时或周期性任务的方 ...
- 冲刺秋招之牛客刷Java记录第二天
第一题 下列代码输入什么? public class Test { public static Test t1 = new Test(); { System.out.println("blo ...
- shell中 << EOF 和 EOF 使用
转载请注明出处: EOF(End of File)在Shell中通常用于指示输入的结束,并在脚本或命令中进行多行输入.它允许用户指定一个特定的分界符来表示输入的结束,通常用于创建临时文件.重定向输入或 ...
- mv 用法
ls #查看目录下所有文件 mkdir 11 #创建11文件夹 mv * 11/ #把所有文件移动到11文件夹下 cd 11 #进入11文件夹 ls #查看文件夹里的内容 mv * ../ #把11文 ...
- CTFHub SSRF Redis协议 WriteUp
CTFHub SSRF Redis协议 进入环境,可以看到url格式为: http://challenge-2c082607df3fa433.sandbox.ctfhub.com:10800/?url ...
- libGDX游戏开发之按轨迹移动(十一)
libGDX游戏开发之运动轨迹绘制(十一) libGDX系列,游戏开发有unity3D巴拉巴拉的,为啥还用java开发?因为我是Java程序员emm-国内用libgdx比较少,多数情况需要去官网和go ...
- SpringBoot整合JavaFx(十三)
SpringBoot整合JavaFx(十三) 在Java中,基本上万物可springboot- 整合了spring全家桶,你可以很方便整合它的生态框架. JavaFx也能整合springboot,下面 ...