找回密码
 立即注册
Qt开源社区 门户 查看内容

移植3.4.2linux kernel到jz2440开发板之三---移植yaffs文件系统

2019-9-8 12:37| 发布者: admin| 查看: 558| 评论: 0

摘要: 本系列文章是记录在学习韦东山老师的嵌入式开发教程中的课程笔记,方便一起学习的同学们参考。如果还没有购买韦老师的教学视频,或者不知道去哪里购买的,给大家一个小程序链接分享好视频资源后,我们开始今天的正式 ...
本系列文章是记录在学习韦东山老师的嵌入式开发教程中的课程笔记,方便一起学习的同学们参考。
如果还没有购买韦老师的教学视频,或者不知道去哪里购买的,给大家一个小程序链接





分享好视频资源后,我们开始今天的正式内容,直接开始今天的修改步骤

  1.  环境准备

    1.1 在ubuntu上安装git
      sudo apt-get install git
      1.2 如何获得yaffs文件系统,https://yaffs.net/get-yaffs

      1.3 选择git下载

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

      1.4 怎么使用yaffs呢,阅读yaffs2文件夹下面的README-linux

    • 给linux源码打yaffs补丁
        cd yaffs2chmod +x ./patch-ker.sh./patch-ker.sh c m /work/system/linux-3.4.2-new

      • 编译、配置yaffs2
          cd/work/system/linux-3.4.2makemenuconfig再重新配置yaffs2:Filesystems ---><*>Miscellaneous filesystems --->      <*> YAFFS2 file system support

        • 编译并拷贝
            makeuImagecparch/arm/boot/uImage /work/nfs_root/uImage_2

          • 制作yaffs文件系统
              mkyaffs2image fs_mini_mdev_new fs_mini_mdev_new.yaffs2

            • 烧写
                nfs 30000000192.168.0.109:/work/nfs_root/fs_mini_mdev_new.yaffs2nand erase.part rootfsnand write.yaffs 30000000260000 $filesizeset bootargs console=ttySAC0,115200 root=/dev/mtdblock3 rootfstype=yaffs
                nfs 32000000192.168.0.109:/work/nfs_root/uImage_2bootm 32000000

              • 启动后发现,挂载成功了,但是启动失败,用替代法查找问题



                7.1 uboot有问题,换上1.1.6的uboot
                tftp 30000000 u-boot.bin //是韦老师教程里面提供的uboot,不是我们自己编译的ubootnand erase.part u-boot //擦除老分区nand write 30000000 u-boot //写入新分区reset
                nfs 30000000192.168.0.109:/work/nfs_root/fs_mini_mdev_new.yaffs2nand erase rootfsnand write.yaffs 30000000260000 $(filesize)nand write.yaffs 30000000260000 $(filesize)
                set bootargs console=ttySAC0,115200 root=/dev/mtdblock3 rootfstype=yaffsnfs 32000000192.168.0.109:/work/nfs_root/uImage_2bootm 32000000
                我们使用老版本的 uboot发现没有异常,说明我们之前自己移植的uboot仍然存在问题。

                修改

                G:\100ask\systems\u-boot2012.04.01\drivers\mtd\nand\nand_util.c,在函数 nand_write_skip_bad 中,增加如下
                  if (!need_skip && !(flags & WITH_DROP_FFS) && !(flags & WITH_YAFFS_OOB))
                  烧写新版本uboot,并烧写新的kernel内核
                    nfs 30000000192.168.0.109:/work/nfs_root/u-boot_new.binnand erase u-bootnand write 30000000 u-bootset bootargs console=ttySAC0,115200 root=/dev/mtdblock3 rootfstype=yaffsnfs 32000000192.168.0.109:/work/nfs_root/uImage_2bootm 32000000
                    再次启动正常,能够挂载并启动文件系统了




                    ----------------------------------------------------------------------------------------------------------------------
                    我们尊重原创,也注重分享,文章来源于微信公众号:张笑生的地盘,建议关注公众号查看原文。如若侵权请联系qter@qter.org。
                    ----------------------------------------------------------------------------------------------------------------------

                    鲜花

                    握手

                    雷人

                    路过

                    鸡蛋
                    
                    公告
                    可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了