linux3.4 内核裁剪,05-S3C2440学习之内核(移植)linux3.4.2移植(2)之yffs2文件系统移植+内核裁剪+内核制作补丁...

一、移植YFFS2文件系统

yffs文件系统更加支持nand设备

上节移植了jffs2文件系统(点击查看)到移植的内核中,这节我们将yffs2文件系统移植到刚移植好的内核中。

(1)获取源码并解压

git clone git://www.aleph1.co.uk/yaffs2

tar xjf yaffs2.tar.bz2

0818b9ca8b590ca3270a3433284dd417.png

(2)给内核打上yffs2补丁

./patch-ker.sh c m /home/book/linux-3.4.2

0818b9ca8b590ca3270a3433284dd417.png++

(3)配置内核支持YAFFS

1.    ls fs/yaffs2

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

(4)编译、生成uImage

出错,制作yffs2 source工程.

(5)修改错误内容

0818b9ca8b590ca3270a3433284dd417.png

修改:

加上下划线

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png+

等等多处需要添加下划线。

再次编译出现如下错误:

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png+

搜索s_root 查看其它文件系统如何使用

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

更换函数名称 解决问题

0818b9ca8b590ca3270a3433284dd417.png

make uImage 继续解决一系列缺少——的问题。

(6)编译成功后,拷贝新内核到NFS

cp arch/arm/boot/uImage/work/nfs_root/uImage_yaffs

(7)制作、烧写yaffs映象.

0818b9ca8b590ca3270a3433284dd417.png

mkyaffs2image fs_mini_mdev_new     fs_mini_mdev_new.yaffs2

uboot-2012的操作:

nfs 30000000 192.168.1.101:/work/nfs_root/fs_mini_mdev_new.yaffs2

nand erase.part rootfs

nand write.yaffs 30000000 260000  $filesize

set bootargs console=ttySAC0,115200    root=/dev/mtdblock3

nfs 32000000 192.168.1.101:/work/nfs_root/uImage_yaffs

bootm 32000000

uboot-1.1.6的操作:

nfs 30000000 192.168.1.101:/work/nfs_root/fs_mini_mdev_new.yaffs2

nand erase root

nand write.yaffs 30000000 260000  $(filesize)

set bootargs console=ttySAC0,115200   root=/dev/mtdblock3

nfs 32000000 192.168.1.101:/work/nfs_root/uImage_yaffs

bootm 32000000

0818b9ca8b590ca3270a3433284dd417.png

到此yffs2在内核上挂接成功。

二、内核裁剪

看看此时内核大小:

0818b9ca8b590ca3270a3433284dd417.png

MTD分区的时候 我们留给了内核2M的空间,所以要进行裁剪。

(1)查看.config,此时内核支持多种单板:

0818b9ca8b590ca3270a3433284dd417.png

make menuconfig

/来查找AT2440

0818b9ca8b590ca3270a3433284dd417.png

去掉不需要支持的单板:

0818b9ca8b590ca3270a3433284dd417.png

(2)文件系统裁剪

make menuconfig

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

还是大于2M,尝试根据打印信息去掉一些:

0818b9ca8b590ca3270a3433284dd417.png

1:

0818b9ca8b590ca3270a3433284dd417.png

2:

这个需要配置上

0818b9ca8b590ca3270a3433284dd417.png

3

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

4

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

5

0818b9ca8b590ca3270a3433284dd417.png

6此时内核小于2M

0818b9ca8b590ca3270a3433284dd417.png

制作了u-boot_new.bin, uImage_new,fs_mini_mdev_new.yaffs

重烧整个系统:

使用jtag工具烧u-boot_new.bin

或使用uboot来更新自己: tftp30000000 u-boot_new.bin; nand erase.part u-boot; nand write 30000000 u-boot

启动uboot,用它来烧写内核、FS

tftp 30000000 uImage_new; nand erase.partkernel; nand write 30000000 kernel

tftp 30000000 fs_mini_mdev_new.yaffs2; nanderase.part rootfs; nand write.yaffs 30000000 260000  $filesize

设置参数

set 'nand read 30000000 kernel;bootm30000000'(根据print)

set bootargs console=ttySAC0,115200root=/dev/mtdblock3

set machid 16a

save

0818b9ca8b590ca3270a3433284dd417.png

三、内核打补丁

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

使用内核补丁:

patch -p1 < ../linux-3.4.2_100ask.patch

cp config_ok .config

make uImage

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值