一。建立根文件系统目录与文件

  1. 创建目录

    #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

  2. 创建设备文件

    #cd rootfs/dev

    #mknod -m 666 console c 5 1

    #mknod -m 666 null c 1 3

  3. 加入配置文件

    #tar etc.tar.gz

    #mv etc/* …/root/etc/ -rf

  4. 添加内核模块

    #cd …/linux

    #make modules ARCH=arm CROSS_COMPILE=arm-linux-

    #make modules_install ARCH=arm INSTALL_MOD_PATH=…/rootfs

  5. 编译busybox

    1.配置busybox 

      #make menuconfig

      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的安装位置

    2. 编译、安装busybox

      #make

      #make install

二。挂载根文件系统到内核

  1. 挂载方式简介

   (1). 文件系统类型

       根据存储设备的硬件特性、系统需求,不同的文件系统类型有不同的应用场合。

       在嵌入式Linux应用中,主要的存储设备为RAM 和FLASH,

       常用的基于存储设备的文件系统类型包括:jffs2, yaffs2, ubifs, ramdisk等

   (2). 系统类型

      #基于nandflash的文件系统 yaffs2 ,UbiFS(可读可写)

      #基于norflash的文件系统  Jffs2

      #基于内存的文件系统 rmdisk , Initramfs

      #基于网络的文件系统 NFS

  2. initranfs挂载

    1. #cd …/rootfs/#ln –s ./bin/busybox init

    2. 配置Linux内核,支持initramfs

      

    3. 编译

    4. 设置环境变量

      setenv bootargsnoinitrd console=ttySAC0,115200

  3. NFS挂载

    

setenv bootargs noinitrd

       console=ttySAC0,115200 init=/init

      root=/dev/nfs rw

      nfsroot=192.168.1.3:/home/s5-ARM/Part4/rootfs,proto=tcp,nfsvers=

      3ip=192.168.1.6:192.168.1.3:192.168.1.1:255.255.255.0::eth0:off

最新文章

  1. c#方法重载,可选参数,命名参数。
  2. js函数自执行
  3. lower_bound和upper_bound算法
  4. Oracle RAC OCR 的管理与维护
  5. DEDECMS5.7 首页和栏目页调用文章按权重排序
  6. photoshop cc 版本安装失败解决办法
  7. python代码中pass的用法
  8. pthread_join
  9. app后端设计(9)-- 动态通知
  10. Angular2+ 实现组件交互的众多方式
  11. [转帖]Linux的进程线程及调度
  12. HTML学习-2标记标签-1
  13. 在Docker中运行EOS(MAC版)
  14. UVA 10815:Andy's First Dictionary(STL)
  15. 用原生的javascript 实现一个无限滚动的轮播图
  16. Firemonkey MultiView
  17. MySQL模糊查询(like)时区分大小写
  18. PHP exec()函数的介绍和使用DEMO
  19. AOJ.562 寻找罗恩和赫敏
  20. 1128 N Queens Puzzle (20 分)

热门文章

  1. Spring入门(6)-使用注解装配
  2. poj3083
  3. 虚拟机VMware里 windows server 2003 扩充C盘方法
  4. mysql全库备份数据库脚本
  5. U3D中的协同等待函数
  6. UVa442 Matrix Chain Multiplication
  7. PostgreSQL的 initdb 源代码分析之二十一
  8. 关于struts2 验证框架在联网的时候可以用,不联网不起作用的问题
  9. BZOJ 1005: [HNOI2008]明明的烦恼 Purfer序列 大数
  10. POJ 2420 A Star not a Tree? 爬山算法