裁剪内核

https://www.cnblogs.com/kele-dad/p/7107544.html

一、裁剪内核

1.1 第一次修改

  现在的内核大小为2.8M左右,要裁剪到2.0M以下,毕竟给内核分区就只有2.0M。

  

  

  这两个设备我们没有,裁剪掉。

  进入make menuconfig中,搜索mousedev:

  

  进入里面按需要进行裁剪。

  

  搜索 lp:

  

  hostname修改:

  

  文件系统再此修改:

  

  去掉如下选项:

  

  

  

  再次进入device driver,-》input device->touch creen

  配置上

  

  去掉:

  

  修改完后,保存。然后编译执行,查看uImage的大小

  

  裁剪出来的大小为2.66M,还得继续裁剪。

1.2 第二次修改

  查看.config文件,查看哪些能修改的。

  

  NETworking support->bluetooth

  蓝牙设备,我们的开发板上没有蓝牙,去掉

  

  device driver->network device support

  

  无线WIFI也不支持,去掉。

  

  这个去不掉,放那里了。

   编译

  

  根本没减少多少,只能现在内核自带属性越来越多了。只能修改分区了。

  修改两个分区,u-boot分区和linux里面的分区。

二、修改分区

2.1 修改u-boot分区

  u-boot 的分区在 include/configs/jz2440.h 中修改,修改为4M大小

  

  编译,然后下载。使用openjtag下载

  

  分区:

  

  删除原有的分区:

  mtdparts delall

  新建分区:mtdparts default

  

  分区已经建立好。

2.2 内核修改 

  Mach-mini2440.c (archarmmach-s3c24xx) 

  

  编译。

  烧写文件系统进去:

1 nfs 30000000 192.168.0.192:/home/ubuntu/work/nfs_root/fs_mini.yaffs2
2 nand erase.part rootfs
3 nand write.yaffs 30000000 260000 $filesize
4 set bootargs console=ttySAC0,115200 root=/dev/mtdblock3 

  烧写内核,此次就直接烧写进nand中了

1 nfs 30000000 192.168.0.192:/home/ubuntu/work/nfs_root/uImage
2 nand erase.part kernel
3 nand write 30000000 kernel

  u-boot中要设置启动参数:

1 set 'nand read 30000000 kernel;bootm 30000000'
2 set bootargs console=ttySAC0,115200 root=/dev/mtdblock3

  正常启动。

四、制作补丁

  内核补丁制作:

1 cp .config config_jz2440
2 make distclean
3 cd ..
4 mv linux-4.10.8 linux-4.10.8_jz2440
5 tar -jxvf linux-4.10.8.tar.gz
6 diff -urN linux-4.10.8 linux-4.10.8_jz2440 > linux-4.10.8_jz2440.patch

  

  打补丁:

1 cd linux-4.10.8
2 patch -p1 < ../linux-4.10.8_jz2440.patch

     

  

  

  

  

  

原文地址:https://www.cnblogs.com/mwl523/p/10894319.html