zoukankan      html  css  js  c++  java
  • 制作yaffs2文件系统并移植到ok6410开发板上

    首先用busybox制作根文件系统,参考我之前的博客:http://blog.csdn.net/start530/article/details/8018170

    yaffs2源码下载:http://download.csdn.net/detail/chenxh/4186203

    1.解压: tar -jxvf yaffs_source_util_larger_small_page_nand.tar.bz2 生成了一个[yaffs2]文件夹

     

    第2、3步的前提是你内核里不支持yaffs2文件系统,及在内核/fs/下没有一个yaffs2目录。

    2.拷贝[yaffs2]文件夹至Kernel根目录下的[fs]文件夹下: cp yaffs2 /usr/src/linux-2.6.36/fs/

    3.操作: ./patch-ker.sh c /usr/src/linux-2.6.36/[这个是我Kernel的根目录的路径,请按照你的进行修改]

    上面命令完成下面三件事:

    (1) 修改内核fs/Kconfig

        增加一行:source "fs/yaffs2/Kconfig"

    (2) 修改内核fs/Kconfig

        增加一行:ojb-$(CONFIG_YAFFS_FS) +=yaffs2/

    (3) 在内核fs/目录下创建yaffs2目录

        将yaffs2源码目录下面的Makefile.kernel文件复制为内核fs/yaffs2/Makefie;

        将yaffs2 源码目录的Kconfig文件复制到内核fs/yaffs2目录下;

        将yaffs2源码目录下的*.c *.h文件复制到内核fs/yaffs2目录下.

     

    4.进入Kernel根目录: cd /usr/src/linux-2.6.36/

    5.操作: make menuconfig 进入内核设置界面

    6.进入主界面的File systems  --->

    7.进入: [*] Miscellaneous filesystems  --->

    8.选中: <*>   YAFFS2 file system support

    9.保存&退出.

     

    使用以下命令安装好yaffs文件系统制作工具: 

    mkyaffs2image 可执行文件是使用 Linux3.0 源代码目录 yaffs2 文件夹下 util s

    目录中的 mkyaffs2image.c 文件编译出来的,如果您有兴趣可以自己制作适合 256MB

    NandFlash 和 2G NandFlash 的 Yaffs2 工具。

    在/nfsroot/目录下,使用命令mkyaffs2image rootfs rootfs.img生成根文件系统映像文件。

     

    烧写:

    设置uboot:

    首先来看下我的分区表:(在开发板启动内核的时候会看到下面这几行)

    0x000000000000-0x000000100000 : "Bootloader"

    0x000000100000-0x000000600000 : "Kernel"

    0x000000600000-0x000007e00000 : "User"

    0x000007e00000-0x000080000000 : "File System"

    setenv bootargs root=/dev/mtdblock3 rootfstype=yaffs2 init=/linuxrc console=ttySAC0,115200

    Setenv bootcmd 

    Printenv

    Saveenv

    用tftp下载zImage跟rootfs.img,并写入nand flash

    zImage:

    Tftp 50008000 zImage

    Nand erase 100000 500000

    Nand write.e 50008000 100000 500000

    rootfs.img:

    Tftp 50008000 rootfs.img

    Nand erase 7e00000 8000000

    Nand write.e 50008000 7e00000 8000000

    重启。

    *************************************************************************************

    如果要修改uboot的bootargs跟bootcmd的话,

    在开发板带的uboot1.16里的include/configs/smdk6410.h

    #define CONFIG_BOOTCOMMAND      "nand read 0xc0008000 0x100000 0x300000;bootm 0xc0008000"

    #define CONFIG_BOOTARGS         "root=/dev/mtdblock2 rootfstype=yaffs2 console=tty0 console=ttySAC0,115200"

    //#define CONFIG_BOOTARGS       "root=/dev/mtdblock2 rootfstype=cramfs console=ttySAC0,115200"

    保存后重新编译uboot,

    Make smdk6410_config

    make;

  • 相关阅读:
    redis如何实现数据同步
    mysql调优学习笔记
    介绍一个好用的dao层与mybatis互跳的idea插件MyBatisCodeHelperPro
    springboot执行流程
    zookeeper
    (原创) cocos2dx使用Curl连接网络(客户端)
    (转) Eclipse连接MySQL数据库(傻瓜篇)
    (原创)cocos2dx使用jsoncpp的正确姿势
    Java web开发(17)SpirngMVC 详解
    PLC 程序和仿真
  • 原文地址:https://www.cnblogs.com/start530/p/3834380.html
Copyright © 2011-2022 走看看