http://blog.csdn.net/yinjiabin/article/details/7489563

根文件系统一般包括:

1)基本的文件系统结构,包含一些必须的目录,比如:/dev,/proc,/bin,/etc,/lib,/usr,/tmp;

2)基本程序运行所需的库函数,如:libc/uC-libc;

3)基本的系统配置文件,如:rc,inittab等脚本文件;

4)必要的设备支持文件,如:/dev/hd*,/dev/tty,/dev/fdO;

5)基本的应用程序,如:sh,ls,cp,mv等。 

根文件系统的制作就是生成包含上述各种文件的文件系统的过程,可通过直接拷贝宿主机上交叉编译器处的文件来制作根文件系统,但是这种方法制作的根文件系统一般过于庞大。也可通过一些工具如busybox来制作根文件系统,用busybox制作的根文件系统可以做到短小精悍并且运行效率较高。写成shell文件便于操作,有些人将BusyBox称为Linux工具里的瑞士军刀.

根文件系统是linux启动时使用的第一个文件系统。没有根文件系统,linux将无法正常启动。根文件系统:有一系列的目录组成,目录中包含了应用程序、c库、以及相关的配置文件。

step:创建根文件系统目录

cd /opt/FriendlyARM/mini6410/linux

mkdir rootfs

cd rootfs

mkdir bin dev etc lib proc sbin sys usr mnt tmp var 

mkdir usr/bin usr/lib usr/sbin lib/modules

step2:创建设备文件:

cd dev/

mknod -m 666 console c 5 1

mknod -m 666 null c 1 3

cd ..

step3:安装/etc(配置文件可以从其他做好的嵌入式系统中cp)

tarzxvf etc.tar.gz –C /xxx/rootfs

step4:编译内核模块:

进入Linux内核目录(linux 2.6.36)

make modules ARCH=arm CROSS_COMPILE=arm-linux-

step5:安装内核模块

make modules_install ARCH=arm INSTALL_MOD_PATH=/xxx/rootfs

step6: 配置busybox

Busybox: 嵌入式开发中的瑞士军刀

进入busybox目录执行

make menuconfig

a.进入 Busybox Settings à

build Options->

   选中 “Build busybox as a static binary”, 静态链接

   Cross Compiler prefix (arm-linux-)

   Installation Options->

   选中 “Don‘t use /usr”, 选中该项可以避免busybox 被安装到宿主系统的/usr目录下,破坏宿主系统

   Busybox Installation Prefix (/xxx/rootfs)

   该选项表明编译后的busybox的安装位置



step7: 编译,安转busybox

make ARCH=arm CROSS_COMPILE=arm-linux-

make install

step8: 从 NandFlash 启动 Tiny6410,然后修改UBoot 的环境变量 bootargs(就是这里了,可以解决一开始文章的 not responding的问题)!

操作命令:

setenv serverip console=ttySAC0 root=/dev/nfs nfsroot=192.168.1.100:/opt/FriendlyARM/mini6410/linux/rootfs,proto=tcp,nfsvers=3,nolock ip=192.168.1.70:192.168.1.100:192.168.1.100:255.255.255.0:linux.arm9.net:eth0:off

解释一下其中的意思了:

console=ttySAC0                 
   ttySAC0 作为控制台

root=dev/nfs                       
      固定格式,表示内核采用nfs 方式起根文件系统

nfsroot=192.168.1.100:/opt/FriendlyARM/mini6410/linux/rootfs,

表示的是 nfs 起的根文件系统位于 nfs 服务器/opt/FriendlyARM/mini6410/linux/rootfs,目录下

proto=tcp,nfsvers=3,nolock   如果不加这条语句会造成上面的nfs: server192.168.1.100notresponding,
still trying
这样的错误!

原因:NFS的默认传输协议是UDP,而PC机与嵌入式系统通过UPD交互时就会出现严重的网卡丢包现象(这个也只是暂时的分析)!貌似好多人都说是网卡移植出现的问题!具体我也就不知道了,反正写上这个,然后就没有问题了!

 ip=192.168.1.70:192.168.1.100:192.168.1.100:255.255.255.0:linux.arm9.net:eth0:off

这句话的格式是:ip=IP1:IP0:IP2:IP3:nameofyoulike:eth0:off

第一项(IP1)是目标板的临时IP(注意不要和局域网内其它的IP有冲突)

第二项(IP0)是我的虚拟机的IP

第三项(IP2)是目标板上网管(GW)的设置,这个参数设置跟虚拟机网管一致

第四项(IP3)是子网掩码

第五项(yourname)是开发板的名字(随便啦)

第六项(eth0)是网卡设备的名字

操作过程如下图所示:

1) 设置主机的IP地址和bootargs环境变量

执行结果

step9:通过 tftp 下载位于虚拟机 /tftpboot 目录下的uImage 文件到 0xc0008000 处!

执行结果

step: bootm

4. 等待查看,按提示按下Enter!

mini6410基于linux2.6.36内核通过NFS启动根文件系统总结(四制作根文件系统及通过NFS挂载文件系统)的更多相关文章

  1. mini6410基于linux2.6.36内核通过NFS启动根文件系统总结(一搭建开发环境——建立NFS服务器)

    http://blog.csdn.net/yinjiabin/article/details/7489030 建立 nfs 服务器 在嵌入式 linux 开发的时候,常常需要使用 nfs 以方便程序的 ...

  2. 基于tiny4412的Linux内核移植 -- DM9621NP网卡驱动移植(四)

    作者信息 作者: 彭东林 邮箱:pengdonglin137@163.com QQ:405728433 平台简介 开发板:tiny4412ADK + S700 + 4GB Flash 要移植的内核版本 ...

  3. Linux系统启动那些事—基于Linux 3.10内核【转】

    转自:https://blog.csdn.net/shichaog/article/details/40218763 Linux系统启动那些事—基于Linux 3.10内核 csdn 我的空间的下载地 ...

  4. 【内核】linux2.6版本内核编译配置选项(二)

    目录 Linux2.6版本内核编译配置选项(一):http://infohacker.blog.51cto.com/6751239/1203633 Linux2.6版本内核编译配置选项(二):http ...

  5. linux-2.6.26内核中ARM中断实现详解(转)

    转载:http://www.cnblogs.com/leaven/archive/2010/08/06/1794293.html 更多文档参见:http://pan.baidu.com/s/1dDvJ ...

  6. 【内核】linux2.6版本内核编译配置选项(一)

    Linux 2.6.19.x 内核编译配置选项简介 作者:金步国 版权声明 本文作者是一位自由软件爱好者,所以本文虽然不是软件,但是本着 GPL 的精神发布.任何人都可以自由使用.转载.复制和再分发, ...

  7. 基于linux-2.6.35的class_create(),device_create解析

    基于linux-2.6.35的class_create(),device_create解析 作者:苗老师,华清远见嵌入式学院讲师. 从linux内核2.6的某个版本之后,devfs不复存在,udev成 ...

  8. [转]Linux芯片级移植与底层驱动(基于3.7.4内核)

      1.   SoC Linux底层驱动的组成和现状 为了让Linux在一个全新的ARM SoC上运行,需要提供大量的底层支撑,如定时器节拍.中断控制器.SMP启动.CPU hotplug以及底层的G ...

  9. Suse环境下编译linux-2.6.24内核

    Suse环境下编译linux-2.6.24内核 1.下载linux-2.6.24内核源码: https://mirrors.edge.kernel.org/pub/linux/kernel/v2.6/ ...

随机推荐

  1. Gcc手册(转)

    手册链接地址:http://www.shanghai.ws/gnu/gcc_1.htm GCC中文手册 GCC现在是GNU中最主要和最流行的c & c++编译器. gcc/g++在执行编译工作 ...

  2. 1718 Cos的多项式

    1718 Cos的多项式 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 小明对三角函数充满了兴趣,有一天他突然发现一个神奇的性质. 2cos(nx)似乎可以表示成 ...

  3. JS实现过一段时间后清理数据(以Lable为例)

    <script type="text/javascript"> var t function cleaData() { t = setTimeout(syc, 3000 ...

  4. 类与类之间关系,用C#和JavaScript体现

    前言 在面向对象中,类之间的关系有六种,分别是: 关联关系(Association) 泛化关系(Generalization) 依赖(Dependency) 聚合(Aggregation) 组合(Co ...

  5. 巨蟒python全栈开发linux之centos1

    1.linux服务器介绍 2.linux介绍 3.linux命令学习 linux默认有一个超级用户root,就是linux的皇帝 注意:我的用户名是s18,密码是centos 我们输入密码,点击解锁( ...

  6. CAS单点登录------302个没完没了

    我的配置如上 背景:Shiro + Cas 进行的单点登录配置! 其实这个问题很扯淡!看代码! 我本在shiro里面配置的Sucessurl !嘿嘿!我哭了!屌用没有! 我一脸懵逼大写的WHY??? ...

  7. 用户画像 销量预测 微观 宏观 bi

    w 目前我们没有自己的平台 第三方平台又不会给任何我们想要的数据   没有用户的注册信息 全天候的行为信息   用户画像没法做    针对我们业务的bi做的思路是什么呢   数据中心怎么做销量预测呢 ...

  8. The JVM found at JAVA_HOME is damaged.Please reinstall or define EXE4J_JAVA_HOME to point to an installed 32-bit JDK or JRE

    一.介绍 exe4j是一个很棒的工具,可以把jar包打包成exe进行运行.他可以把jre环境和打包的exe进行集成,使得打包后的exe应用程序可以在没有安装java的机器上运行(前提是要把exe和jr ...

  9. 解决windows server 2003不识别移动硬盘

    解决windows server2003不显示移动硬盘的问题: 1.进入命令提示符环境(也就是DOS) 2.进入DISKPART程序 3.输入AUTOMOUNT ENABLE指令 4.输入OK 下次U ...

  10. ubuntu(已经配置了python2+opencv)简易配置python3的opencv:

    所达到的效果就是python2与python3都能使用opencv参考:http://blog.csdn.net/jiandanjinxin/article/details/71438780https ...