• mini2440 最小根文件系统制作和nfs启动


    mini2440 内核启动后,可以用busybox制作一个简单的根文件系统并用nfs来启动该文件系统

    启动mini2440, 按任意键进入uboot,按q键进入uboot命令行:

    执行以下命令:

    set bootargs "noinitrd root=/dev/nfs rw nfsroot=192.168.211.2:/home/host/nfs/mini2440/rootfs ip=192.168.211.211 console=ttySAC0 init=/linuxrc"

      saveenv

    http://busybox.net/downloads/busybox-1.22.1.tar.bz2 下载busybox,然后解压缩并进入解压文件夹:

    tar xf busybox-1.22.1.tar.bz2 
    cd busybox-1.22.1/

    然后执行下面命令进行配置:

    make menuconfig

    选择下面的选项:

    Busybox Settings--->
      Build Options----> 
        [*]Build BusyBox as a static binary (no shared fibs) 
          (arm-linux-) Cross Compiler prefix 
    
    Busybox Settings --->
      Installation Options --->     Applets links (as soft-links) -->     (/home/host/nfs/mini2440/rootfs)BusyBox installation prefix

    其他选项选择默认即可。

    然后进行编译和安装(安装到/home/host/nfs/mini2440/rootfs文件夹下):

    make
    make install

    然后进入rootfs文件夹,执行下面命令:

    mkdir dev etc home lib mnt proc sys tmp var
    mkdir etc/init.d
    touch etc/inittab
    chmod +x etc/inittab 
    touch etc/init.d/rcS
    chmod +x etc/init.d/rcS
    touch etc/fstab
    cd dev
    mknod ttySAC0 c 204 64 
    ln -s ttySAC0 console
    mknod null c 1 3
    mknod mtdblock0 b 31 0
    mknod mtdblock1 b 31 1
    mknod mtdblock2 b 31 2
    mknod mtdblock3 b 31 3
    cd ../lib/

    在etc/inittab文件中添加如下内容:

    # System initialization. 
    ::sysinit:/etc/init.d/rcS 
    ::sysinit:/bin/sh   ::ctrlaltdel:/sbin/reboot  ::shutdown:/bin/umount -a -r

    在etc/init.d/rcS文件中添加如下内容:

    #!/bin/sh
    mount -a

    在etc/fstab文件中添加如下内容:

    none /proc proc defaults 0 0
    tmpfs /tmp tmpfs defaults 0 0

    这样根文件系统就基本完成了,然后重启nfs服务器:

    /etc/init.d/nfs-kernel-server restart

    再重启mini2440就可以从nfs启动根文件系统了。

    也可以制作yaffs镜像并烧写到nand flash:

    从mini2440光盘中找到工具mkyaffs2image-128M(光盘中以压缩包方式存放于linux/mkyaffs2image.tgz),然后执行下面命令:

    mkyaffs2image-128M  /home/host/nfs/mini2440/rootfs/ rootfs.img

    将rootfs.img拷贝到tftp文件夹,然后重启nfs服务器:

    /etc/init.d/tftp-hpa restart

    接着重启mini2440,进入uboot命令行,执行下面命令 :

    tftp 0x30008000 rootfs.img 
    nand erase 0x560000 $filesize 
    nand write.yaffs 0x30008000 0x560000 $filesize

    但是最后一步烧写yaffs失败,提示“ 2621440 bytes written: ERROR"。

    我之后修改成下面的命令就可以了(filesize 大小为2adc80):

    nand erase 0x560000 2d0000 
    nand write.yaffs 0x30008000 0x560000 $filesize

     但是之后我又试了一次,但再次烧写失败,不知道原因何在。

  • 相关阅读:
    贾鹏芳 二胡演奏家
    php 关于下载中文文件实现
    Android 线程。。
    Hadoop命令行接口运行自己编写的类
    ubuntu下jdk环境变量的设置
    navicat导入sql语句文件失败原因-----datetime
    sql server获取当前时间到秒级和毫秒级的语句
    sql关于group by的问题
    java的equal和==的区别
    win8.1 占用80端口问题
  • 原文地址:https://www.cnblogs.com/qiaoqiao2003/p/3737045.html
Copyright © 2020-2023  润新知