移植内核学习笔记4-----内核之裁剪及ECC简介及制作补丁

1、裁剪内核

(1)查看内核大小


(2)裁剪(通过make menuconfig去掉不需要的项)

把一些单板文件去掉


看.config文件,看一下有哪些东西,如单板:搜索mini2440的单板,


如单板AT2440EVB没见过可以在搜索栏中搜索并去掉(输入斜杠进入搜索界面)


搜索结果如下,到相应位置去掉不必要项


把一些不需要的文件系统去掉

前面带M的是作为模块的不用管,只需理会前面带*的,因为是要编译进内核的。

(3)看输出信息,看一下有哪些我们不需要

,因为我们没有PS/2接口

再看一下临时生成的文件系统,看一下不需要的文件系统


2、重新制作u-boot,因为之前有一个bug

(1)先清除掉生成的目标文件


(2)重命名改好的u-boot,解压原版的u-boot,从而制作补丁


3、mkyaffs2image工具

(1)解压文件


(2)解压后是Development_util_ok\yaffs2\utils目录下


(3)在utils目录下执行make 命令可以生成mkyaffs2image工具

我们用git命令下载的yaffs里面有这个工具,但是不完整,编译时有问题的

4、ECC简介

(1)介绍


(2)我们制作出来的yaffs映像,mkyaffs2image工具生成的映像文件既包含一页数据,也包含OOB 数据


(3)OOB里面的数据如何排放(看Mkyaffs2image.c)

useecc表示使用ecc,eccpos表示ecc的位置,OOB是64字节,


校验码是每256个字节生成3字节的ECC码,ECC码总共24字节


obbfree表示oob除了一部分放ECC,其他可以让你使用,这里2是表示从哪个字节开始,总共有38个字节(39-2+1),yaffs把它用作yaffs_tag


第0位表示是否坏块,0XFF表示为好,0表示是坏的。

5、实验

制作了u-boot_new.bin, uImage_new, fs_mini_mdev_new.yaffs
重烧整个系统:
使用jtag工具烧u-boot_new.bin
或使用uboot来更新自己: tftp 30000000 u-boot_new.bin; nand erase.part u-boot; nand write 30000000 u-boot
启动uboot,用它来烧写内核、FS
tftp 30000000 uImage_new; nand erase.part kernel; nand write 30000000 kernel
tftp 30000000 fs_mini_mdev_new.yaffs2; nand erase.part rootfs; nand write.yaffs 30000000 260000  $filesize
设置参数
set 'nand read 30000000 kernel;bootm 30000000'
set bootargs console=ttySAC0,115200 root=/dev/mtdblock3
set machid 16a
save

6、制作内核补丁

(1)制作补丁前把.config拷贝为config_ok,保存内核的配置


(2)清除生成的目标文件


(3)更改修改后的内核的名字,解压原版内核,diff命令生成补丁文件


(4)给内核打补丁,然后cp config_ok .config,然后进行make uImage编译内核


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值