武汉嵌入式培训
达内武汉民大中心

15827352908

热门课程

最简单的嵌入式linux根文件系统制作

  • 时间:2016-06-03 15:15
  • 发布:嵌入式学习网
  • 来源:嵌入式学习网

    1.  准备工作
    下载busybox工具  说明:用于制作可执行命令工具集
    2.  开发环境
    1)主机:RedHat 9
    2) 交叉编译工具路径:/usr/local/arm/3.3.2/   (用于编译busybox1.2.0)
    把/usr/local/arm/3.3.2/bin路径添加到/etc/profile文件中
    3)开发板:友善之臂SBC2410
    4)开发板分别使用的Linux2.4.18内核和Linux2.6.14内核验证文件系统
    3.  建立目标板空根目录文件夹及根目录下的文件夹
    [root@190 friendly-arm]# mkdir myroots
    [root@190 friendly-arm]#pwd
    /friendly-arm/myroots
    [root@190 friendly-arm]#cd myroots
    [root@190 myroots]#
    [root@190 myroots]# mkdir bin sbin usr lib dev mnt opt root etc home proc tmp var
    [root@190 myroots]# mkdir etc/init.d
    进入etc/init.d目录下,建立一个脚本文件,并命名为rcS,用gedit打开,添加如下内容:
    #! /bin/sh
    PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:
    runlevel=S
    prevlevel=N
    umask 022
    export PATH runlevel prevlevel
    #
    #   Trap CTRL-C &c only in this shell so we can interrupt subprocesses.
    #
    trap ":" INT QUIT TSTP
    [root@190 myroots]# cd ……/lib
    也就是进入lib目录,添加相应的库文件,具体操作略。
    4.  移植Busybox
    进入到压缩文件存放的目录下,并解压。然后进入解压后的busybox目录文件夹,随后配置busybox .
    [root@190 busybox-1.2.0]# make menuconfig
    执行之后,将出现如下图所示的配置界面
 
    由于每个版本的配置选项组织有所不同。不管怎样,我们注意以下选项就行了:
    1) Support for devfs
    2) Build BusyBox as a static binary ( no shared libs )  //将busybox编译成静态链接
    3) Do you want to build busybox with a Cross Compile?
    (/usr/local/arm/3.3.2/bin/arm-linux-) Cross Compile prefix  //指定交叉编译器
    4) init
    5) Support reading an inittab file  //支持init读取/etc/inittab 配置文件
    6) (X) ash选中ash   //建立的rcS脚本才能执行
    7)ash
    8)cp  cat  ls  mkdir  mv   //可执行命令工具的选择,自己看着办吧,需要用到的就选上
    9) mount
    10) umount
    11) Support loopback mounts
    12) Support for the old /etc/mtab file
    13) insmod
    14) Support version 2.2.x to 2.4.x Linux kernels
    15) Support version 2.6.x Linux kernels
    16) vi
    以上内容必须选上,其他可按默认值;如果要支持其他功能,如网络支持等,可按需选择,英语不是很烂的话,这些都没有问题。
    配置好之后,保存退出。然后对其编译和安装到刚才建立的根文件系统目录下:
    [root@190 busybox-1.2.0] make TARGET_ARCH=arm CROSS=arm-linux- \ PREFIX=/friendly-arm/myroots/ all install
    安装好之后,将相应的二进制文件拷贝到根文件系统相应的目录下。
    5.  制作yaffs文件系统包
    [root@190 friendly-arm]#  mkyaffsimage  myroots  myroots.img
    6.下载根文件系统包到开发板上,并运行,其结果如图所示

    7.补充
    首先,本文档制作的根文件系统,是用mkyaffsimage打包成了yaffs镜像文件,也可以使用其他打包工具制作成其他形式的根文件系统,但必须是内核要有相应文件系统的支持,否则,将无法挂上根文件系统。
    其次,我们可以根据项目需要,在相应的目录下,添加相应的文件,并配置相应的服务。如内核动态加载模块可放在lib下,在启动脚本里挂载相应的模块;在etc目录下,可移植tinyligin 登录界面应用程序,等等。

上一篇:Qt/Embedded在嵌入式Linux系统中的应用
下一篇:实时操作系统在雷达信号处理中的应用

武汉嵌入式培训:嵌入式学习路线

嵌入式开发需要遵守的技术法则

嵌入式开发必知的小技巧

嵌入式入门看哪些书?

选择城市和中心
贵州省

广西省

海南省