zoukankan      html  css  js  c++  java
  • 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

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

  • 相关阅读:
    CentOS虚拟机和物理机共享文件夹实现
    集训第六周 数学概念与方法 概率 数论 最大公约数 G题
    集训第六周 数学概念与方法 概率 F题
    集训第六周 E题
    集训第六周 古典概型 期望 D题 Discovering Gold 期望
    集训第六周 古典概型 期望 C题
    集训第六周 数学概念与方法 UVA 11181 条件概率
    集训第六周 数学概念与方法 UVA 11722 几何概型
    DAG模型(矩形嵌套)
    集训第五周 动态规划 K题 背包
  • 原文地址:https://www.cnblogs.com/qiaoqiao2003/p/3737045.html
Copyright © 2011-2022 走看看