一、裁剪内核
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 (arch\arm\mach-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