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..tar.bz2
cd busybox-1.22./

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

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
ln -s ttySAC0 console
mknod null c
mknod mtdblock0 b
mknod mtdblock1 b
mknod mtdblock2 b 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
tmpfs /tmp tmpfs defaults

这样根文件系统就基本完成了,然后重启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

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

mini2440 最小根文件系统制作和nfs启动的更多相关文章

  1. 根文件系统制作、NFS配置与安装及利用NFS挂载根文件系统

    最近打算从头开始制作根文件系统,下面是开发过程. 一.根文件系统的制作 0.FHS(Filesystem Hierarchy Standard)标准介绍 该标准规定了根目录下各个子目录的名称及其存放的 ...

  2. linux根文件系统制作,busybox启动流程分析

    分析 busybox-1.1.6 启动流程,并 制作一个小的根文件系统 源码百度云链接:https://pan.baidu.com/s/1tJhwctqj4VB4IpuKCA9m1g 提取码 :l10 ...

  3. NFS文件系统制作

    内核:              linux-3.0 u-boot:          2010.09 开发板:         fl2440(s3c2440主芯片) 交叉编译器:   2011.11 ...

  4. Exynos4412从SD卡启动的简单网络文件系统制作

    Exynos4412从SD卡启动的简单网络文件系统制作 1. 简介 嵌入式系统能够在开发板上正常运行,需要先进行系统配置,一个完整的嵌入式系统应该包含的几个部分::uboot,kernel,rootf ...

  5. 使用NFS启动Tiny4412开发板根文件系统

      1.Ubuntu14.04上搭建NFS服务 1.1.安装NFS服务 $ sudo apt-get install nfs-kernel-server    //安装NFS服务 1.2 创建Tiny ...

  6. EASYARM-IMX283 nfs启动内核和根文件系统

    EASYARM-IMX283(以下简称IMX283)默认采用从nand flash启动,但是在开发过程中因为要频繁的替换内核,我们更倾向于从nfs启动. 先看看IMX283中uboot中默认采用的启动 ...

  7. NFS启动文件系统

    NFS启动文件系统 一.软硬件平台 1.开发板:创龙AM3359核心板,网口采用RMII形式. 2.UBOOT版本:U-Boot-2016.05,采用FDT和DM. 3.交换芯片MARVELL的88E ...

  8. am335xSD卡启动--文件系统制作

    1.网上下载busybox工具https://busybox.net/downloads/ 2.根据此文章提示制作自己的跟文件系统 链接: https://pan.baidu.com/s/1bp6GK ...

  9. rootfs -根文件系统制作

    目录 目录 目录 概述 概念 根文件系统是什么 根文件系统中有什么 根文件系统的形式 Busybox 简介 什么是 linuxrc VFS 简介 Busybox 工具 Busybox 目录结构 Men ...

随机推荐

  1. STL之pair类型具体分析

    pair定义于头文件utility中.基本的作用是将两个数据组合成一个数据,两个数据能够是同一类型或者不同类型. pair类型提供的操作: pair<T1,T2> p1; pair< ...

  2. 身份证号码 javascript 验证

    function checkIsIdno(idcard) { var Errors=new Array( "SUCCESS", "身份证号码位数不对!", &q ...

  3. ORA-01591错误的原因和处理方法

    http://blog.csdn.net/tclcaojun/article/details/6777022错误代码:ORA-01591 错误原因:使用了分布式事务,造成这个问题的原因很多时候都是由于 ...

  4. ubuntu下编译原生ffmpeg

    本文主要介绍Linux 系统下如何编译Ffmpeg,编译环境是Ubuntu 16.04,Ffmpeg版本是3.4.2.Windows环境 下如何编译ffmpeg前面有博文介绍,也录有视频,感兴趣的同学 ...

  5. Android后退事件的处理

    当我们想退出应用程序时,一般都会采用按物理按键(后退键)的做法,当用户在按两次后退键的时候就将应用程序退出,即销毁当前的Activity(): 重写onBackPressed()方法即可: 代码如下: ...

  6. 【Union Find】JAVA implementation

    import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.Scan ...

  7. 取出所有的Map集合

    public static void main(String[] args) { Map<Integer, String> map = new HashMap<Integer, St ...

  8. JS 的引用赋值与传值赋值

    这个问题说大不大说小不小,如果你有幸踩了这个坑,一定会找这篇文章,哈哈~ 现说一下JS数字的类型:基本类型和引用类型 先看下下面两个栗子: var a = 30; var b = a; a = 20; ...

  9. NativeBase准备工作

    环境 node>= 4.0 npm>= 3.0 rnpm (only if React Native version < 0.29) ReactNativeCLI  安装及运行 ht ...

  10. FTPHelper类

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.N ...