这一课主要是裁剪内核大小以及制作补丁文件:
可以查看分区信息:
device nand0 , # parts = 4
#: name size offset mask_flags
0: u-boot 0x00040000 0x00000000 0
1: params 0x00020000 0x00040000 0
2: kernel 0x00200000 0x00060000 0
3: rootfs 0x0fda0000 0x00260000 0
可以看到内核分区大小是2M空间,
所以要把内核裁剪到2M以下的大小。当然也可以将kernel分区改的更大。
注意:
如果内核中把分区大小改变了,则在uboot移植中,mtdparts是不是也要改变呢?当然,因为uboot是根据内核来
划分分区,它实际上并不直接决定NAND上分区的大小,只是做到易用性而已。内核才真正的实现划分分区大小。
查看.config文件,利用make menuconfig来配置有用的选项。
1. 编译新的内核uImage_new。
2. 重新烧写:
烧写内核:
tftp 30000000 uImage_new; nand erase.part kernel; nand write 30000000 kernel
烧写文件系统:
tftp 30000000 my_fs.yaffs2; nand erase.part rootfs; nand write.yaffs 30000000 260000 $filesize
3. 设置参数
set 'nand read 30000000 kernel;bootm 30000000'
set bootargs console=ttySAC0,115200 root=/dev/mtdblock3
set machid 16a // smdk2440 mach-smdk2440.c
save
4. 制作内核patch文件
4.1 先把配置文件.config拷贝为config_ok
4.2 make distclean // 清除所有配置生成的东西
4.3 清除完后,再制作补丁文件
mv linux-3.4.2 linux-3.4.2_configured
解压纯代码树:
tar xjf linux-3.4.2.tar.bz2
制作补丁:
diff -urN linux-3.4.2 linux-3.4.2_configured/ > linux-3.4.2_configured.patch
可以查看已经生成了补丁文件:
book@book-desktop:/work/system$ ls linux-3.4.2_configured.patch -l
-rw-r--r-- 1 book book 523419 2016-06-15 16:26 linux-3.4.2_configured.patch
5. 使用内核补丁:
进入纯内核代码树目录下:
patch -p1 < ../linux-3.4.2_configured.patch
cp config_ok .config
make uImage
阅读(987) | 评论(0) | 转发(0) |