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

    xiaoxiao2021-04-14  63

    一、移植YFFS2文件系统

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

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

    (1)获取源码并解压

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

    tar xjf yaffs2.tar.bz2

    (2)给内核打上yffs2补丁

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

    ++

    (3) 配置内核支持YAFFS

    1.    ls fs/yaffs2

    (4)编译、生成uImage

    出错,制作yffs2 source工程.

    (5)修改错误内容

    修改:

    加上下划线

    +

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

    再次编译出现如下错误:

    +

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

    更换函数名称 解决问题

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

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

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

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

    mkyaffs2image fs_mini_mdev_new     fs_mini_mdev_new.yaffs2

    (此步骤依赖于上一节移植jffs2文件系统的前半部分fs_mini_mdev_new(点击查看)

    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

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

    二、内核裁剪

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

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

    make menuconfig

    /来查找AT2440

    去掉不需要支持的单板:

    (2)文件系统裁剪

    make menuconfig

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

    1: 2: 这个需要配置上 3 4 5 6此时内核小于2M

    制作了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

    三、内核打补丁

    使用内核补丁:

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

    cp config_ok .config

    make uImage

    转载请注明原文地址: https://ju.6miu.com/read-670681.html

    最新回复(0)