一、裁剪內核
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