一:busybox:

  1、完整的操作系统=bootloader(u-boot)+kernel(zImage)+根文件系统。

  2、根文件系统的核心就是  各种以及系统运行配置参数(类似于linux的cd、ls、mkdir......)。

  3、根文件系统的核心文件:bin,sbin,usr,etc,lib

  4、制作嵌入式根文件系统,可以利用busybox开源的工具软件,它集合了所有的命令

二:根文件系统制作

  1:开发板跟的软件包理匹配的busybox工具,解压到linux中。

  2:进行菜单配置:make menuconfig---------------进入解压后的目录

    a)、编译器前缀

    b)、配置共享库(这里就是要挂载NFS的文件夹)---我的目录/work/busybox-1.17.2/rootfs/                                  

    c)、配置安装路径(可以不修改,为了你对自己文件有清晰的分类管理,建议修改)

           

    d)、配置模块,取消掉

            然后

  3、编译安装文件系统:make -j8;make install -j8  ------------------进入解压后的目录

    1、安装后查看生成的文件:ls /work/busybox-1.17.2/rootfs -l

      

    2、查看生成的busybox是否是arm架构的程序:

      file /work/busybox-1.17.2/rootfs//bin/busybox

    3、复制命令的动态库  -------- 进入共享的文件夹

      先查看生成的busybox程序依赖哪些动态库

      arm-linux-readelf -d bin/busybox | grep .so

      查看编译器的安装路径 which arm-linux-gcc

      复制编译器的lib文件到共享目录下 cp /opt/FriendlyARM/toolschain/4.5.1/arm-nonc-linux-gnueabi/lib/ .

    4、创建其他目录 mkdir dev home proc tmp var etc/init.d mnt opt sys -p

    5、创建控制台文件 mknod dev/console 5 1

       注:该文件世设备文件,只能用mknod创建,不能用vim,gedit,touch。c表示字符设备,5表示主设备号,1表示此设备号

    6、根据需要在etc目录下创建fstab文件

      

      以上文件是设置linux挂载上文件系统  后  还需要挂载  的  其他文件系统

    7、在etc目录下创建inittab文件

      因为在linux的examples文件夹里面已经提供了一个模板,我们只需把它拷贝过来修改就能用了   cp /work/busybox-1.17.2/examples/inittab etc/

       ::sysinit:/etc/init.d/rcS
      console::askfirst:-/bin/sh
      ::restart:/sbin/init
      ::ctrlaltdel:/sbin/reboot
      ::shutdown:/bin/umount -a -r
      ::shutdown:/sbin/swapoff -a

    8、在etc/init.d/里面创建rcS文件

      gedit etc/init.d/rcS &

      内容:#!/bin/sh
        mkdir /dev/shm -p
        mkdir /dev/pts -p
        #挂载 fstab 文件中指定的所有文件系统
        mount -a
        #以下是热拔插支持
        echo /sbin/mdev > /proc/sys/kernel/hotplug
        mdev -s

            hostname 你的名字(非中文)

    9、在etc目录下创建profile文件

      内容:

    10、添加用户信息,因为x86里面已经有了,所以我们可直接从里面复制出来使用

      cp /etc/passwd etc/

    11、总结linux启动过程,以及嵌入式系统启动过程

      在bootloader中 制定 各种要求 传递 给 linux内核的 参数,在开机后先mount上制定文件系统,(该文件系统主要负责启动运行的配置文件)

      1)、busybox init启动后,初始化控台

      2)、扫描etc/init.d文件

      3)、执行系统初始化命令,还有执行rcS文件(这里面会包含制定挂载的文件系统)

      4)、执行所有wait动作的命令

      5)、执行所有once动作的命令

      6)、执行所有终止时必须重新启动的 inittab 命令(动作类型: respawn)

      7)、执行所有终止时必须重新启动但启动前必须询问用户的 inittab 命令(动作类型: askfirst)

      8)、启动shell程序

      9)、执行profile文件

  到此根文件系统制作完成!

三:NFS 文件系统挂载

  1、开启nfs服务:service nfs restart--本次有效

          chkconfig iptables on

  2、关闭window防火墙,linux防火墙

  3、设置ip

  4、开启开发板设置环境变量:

    格式:root=/dev/nfs nfsroot=虚拟机 IP:虚拟机的 NFS 根文件系统路径 ip=开发板 IP:虚拟机 IP:网关:子网掩码::eth0:off init=/linuxrc console=ttySAC0 lcd=S70
    setenv bootargs root=/dev/nfs  nfsroot=192.168.111.251:/root/work/rootfs/ ip=192.168.111.252:192.168.111.251:192.168.111.1:255.255.255.0:edu118:eth0:off init=/linuxrc console=ttySAC0 lcd=w101(必须是同一行)
  5、挂载完成

  6、测试:开发板连接电脑进入共享文件下进行测试

  

      

      

      

      

        

    

转载于:https://www.cnblogs.com/pijiudu/p/7742121.html

根文件系统制作与NFS挂载相关推荐

  1. 嵌入式linux启动根文件系统,嵌入式Linux根文件系统制作和挂载

    嵌入式Linux系统由三部分组成: uboot.kernel.根文件系统, 还是这张老图 这里的根文件系统可以说是包含两个部分: 一个是根,一个是文件系统 那么什么是根呢?哈哈 其实根表示的就是第一个 ...

  2. 根文件系统制作一制作根文件系统树

    完成了u-boot移植后就是内核移植然后是根文件系统制作,这次分为这几部分书写:根文件系统树.文件系统initramfs.jaffs2.ubifs 有必要了解一些存储系统和文件系统的知识 Norfla ...

  3. 嵌入式Linux根文件系统制作

    嵌入式Linux根文件系统制作 一.根文件系统简介 根文件系统首先是一种文件系统,该文件系统不仅具有普通文件系统的存储数据文件的功能,但是相对于普通的文件系统而言它还是内核启动时所挂载(mount)的 ...

  4. Linux-2.6.32.2内核在mini2440上的移植(四)---根文件系统制作(1)

    移植环境(红色粗字体字为修改后内容,蓝色粗体字为特别注意内容) 1,主机环境:VMare下CentOS 5.5 ,1G内存. 2,集成开发环境:Elipse IDE 3,编译编译环境:arm-linu ...

  5. 嵌入式Linux内核以及根文件系统制作

    内核制作 注意: 我测试的使用nandflsh中bootloader启动,sd卡bootloader启动有问题 制作嵌入式平台使用的Linux内核,方法和制作PC平台的Linux内核基本一致. 清除原 ...

  6. Yaffs2根文件系统制作

    Yaffs2根文件系统制作 zouxy09@qq.com http://blog.csdn.net/zouxy09 环境: 交叉编译环境:4.3.3 (天嵌科技提供,存放路径/home/xiaoyi/ ...

  7. Linux内核移植和根文件系统制作(详细步骤精讲)

    第一章移植内核 1.1 Linux内核基础知识 1.1.1 Linux版本 1.1.2 什么是标准内核 1.1.3 Linux操作系统的分类 1.1.4 linux内核的选择 1.2 Linux内核启 ...

  8. s5pv210 linux内核移植,简单根文件系统制作 - S5PV210 Linux3.8.3内核移植_Linux编程_Linux公社-Linux系统门户网站...

    1.这里为什么选nfs文件系统呢? 在产品开发阶段,因为nfs根文件系统并不需要编译进内核,方便调试. 2.制作根文件系统需要用到BusyBox 解压进入busybox目录: root@linuxid ...

  9. tiny4412u-boot烧写及根文件系统制作(不进入终端问题)

    http://m.blog.csdn.net/article/details?id=51400196(转) VMware12 环境:ubuntu12.4 开发板:tiny4412 首先烧写bootlo ...

最新文章

  1. 铜陵新松工业机器人项目_投资10亿元,茶山德威工业机器人和精密模具项目动工...
  2. ctypealpha php_php ctype函数中文翻译和示例
  3. 关于寒假和春季开学!教育部通知来了!近400所高校寒假时间已公布!
  4. docker部署springboot_Docker+SpringBoot快速构建和部署应用
  5. c++深拷贝和浅拷贝
  6. 452 Minimum Number of Arrows to Burst Balloons
  7. 《中秋书月》月圆之夜,我和德鲁克
  8. 去哪里学习python_Python从哪里开始学?怎么入门?
  9. POJ 3090 Visible Lattice Points 【欧拉函数】
  10. VS在win32平台与mysql链接_mysql5.5.28-win32 + qt--4.8.2-vs2008 数据库驱动编译与连接...
  11. fck java_FCkjava三种调用方法
  12. LintCode 373: Partition Array
  13. js中当等于最小值是让代码不执行_从浏览器多进程到JS单线程,JS运行机制最全面的一次梳理...
  14. WCF学习笔记(2)——独立WCF服务
  15. ajax中异步属性,ajax中的async属性值之同步和异步及同步和异步区别
  16. 在java中对字符串的一些实现处理
  17. lambda表达式for_each,find_if简介
  18. python程序员面试题精选100题_在Python程序员面试中被问的最多的10道题
  19. ZPCategory
  20. HTML——响应式布局

热门文章

  1. uln2003资料,ULN2003中文资料详解
  2. linux系统怎么使用
  3. 乐观是乌云背后微笑的太阳
  4. Excel里写VB脚本自定义函数
  5. 压电陶瓷功率放大器在物镜驱动测试中的研究
  6. 自动驾驶入门技术(8)—— 自动驾驶仿真技术
  7. php积分经验,PHP论坛怎么来实现积分系统-PHP问题
  8. 二进制包安装Kubernetes集群环境完整版
  9. 当当网数据(1.1G)快速检索
  10. 博流智能科技 招聘FPGA工程师