嵌入式Linux NFS根文件系统的构建及研究

时间:2022-08-24 07:52:46

【前言】嵌入式Linux NFS根文件系统的构建及研究由文秘帮小编整理而成,但愿对你的学习工作带来帮助。(Xi’an University of Science and Technology, Xi’an 710054, China) Abstract: In the process of the embedded Linux system development, the root file system is an important part of building the embedded Linux system. In order to facilitate and simp...

嵌入式Linux NFS根文件系统的构建及研究

摘要:在嵌入式linux系统开发过程中,根文件系统是构建嵌入式Linux系统的重要组成部分。为了方便和简化嵌入式Linux开发过程中的调试过程,主要研究了如何使用Busybox构建出基本的嵌入式Linux根文件系统,包括Busybox的配置、编译和安装。在此基础上,进一步构建出基于nfs的嵌入式Linux根文件系统,并给出了启动脚本和配置文件。这种根文件系统可以方便地在线更改、调试程序,降低了嵌入式系统的开发门槛。

关键词:NFS; Busybox; 根文件系统; S3C2440; Linux

中图分类号:TN91134; TP311文献标识码:A文章编号:1004373X(2012)04006503

Construction and research of embedded Linux NFS root file system

KANG Tianxia, ZHI Jianfeng

(Xi’an University of Science and Technology, Xi’an 710054, China)

Abstract: In the process of the embedded Linux system development, the root file system is an important part of building the embedded Linux system. In order to facilitate and simplify the debugging phase of embedded Linux development process, this paper mainly researches how to build a basic embedded Linux root file system with Busybox, including the configuration, installation and compilation of Busybox. On this base, the NFSbased embedded Linux root file system was built. The startup script and configuration file are given in this paper. This root file system can be easily changed and debugged online, and reduces the threshold of embedded systems development.

Keywords: NFS; Busybox; root file system; S3C2440; Linux

收稿日期:20110825随着信息技术的发展,嵌入式系统技术已经广泛应用于国防、通信、工业控制、消费电子等诸多领域。其中,Linux作为一款开源、成熟且高效稳定的多任务操作系统,先天具有许多不可比拟的优势,已成为目前最具潜力的嵌入式操作系统。众所周知,构建根文件系统对于嵌入式Linux开发至关重要,它是内核启动后加载的第1个文件系统,是决定系统能否正常启动的关键所在。在开发阶段,程序往往需要反复多次的调试,鉴于此,构建基于NFS(Network File System)的根文件系统就尤为重要;这样就免去了对目标开发板的反复烧写,方便地在线对程序进行更改与调试。本文以Busybox软件为基础,介绍了一种实用的NFS根文件系统构建方法。

1嵌入式根文件系统简介

Linux启动时,第一个必须挂载的就是根文件系统;若系统不能从指定设备上挂载根文件系统,则系统会报错进而退出启动。系统成功启动之后,才可以自动或手动挂载其他的文件系统。

Linux系统各个分区存储文件时,需要遵循一定的格式,这种文件格式称为文件系统类型,比如常见的有ext2,ext3,ext4等。在存储设备方面,FLASH是目前嵌入式系统中广泛采用的主流存储设备,它是一种可电擦写的非易失性存储器,具有体积小,功耗低,密度高等优点。目前FLASH中常见的文件系统主要有Cramfs,Jffs2,Yaffs2等。嵌入式Linux基本的根文件目录结构如表1所示。

表1根文件目录结构

目录名简介bin存放所有用户都可以使用的、基本的命令boot引导加载程序使用的文件dev该目录存放设备文件和其他特殊文件etc存放系统配置文件,包括启动文件home系统默认的用户主文件夹lib存放共享库和可加载块 ( 即驱动程序)mnt用于临时挂接某个文件系统的挂接点,通常是空目录opt第三方软件所存放的目录proc这是个空目录,常作为 proc 文件系统的挂载点rootroot 用户的主目录sbin存放的是基本的系统命令,它们用于启动系统、修复系统等tmp存放临时文件,通常是空目录usr里面存放的是共享、只读的程序和数据var一些变化的实例和工具

2Busybox简介

Busybox常被形象地称为嵌入式Linux系统开发中的“瑞士军刀”,它将许多常用的UNIX命令和工具结合到了一个单独的可执行程序中。虽然与相应的GNU工具相比较,Busybox所提供的功能和参数略少,但在比较小的系统或者嵌入式系统中已经足够了。它仅用一个可执行文件就可以提供基本的Linux操作系统所需的命令,体积很小,配置起来也很方便。

3Busybox的编译与安装

3.1开发环境

基凌OK2440Ⅲ的硬件平台采用S3C2440芯片,包括64 MB的SDRAM内存、128 MB的NAND FLASH,以及4 MB的NOR FLASH。采用宿主机加目标板的开发模式,宿主机的系统是Fedora12,目标板的内核版本是Linux2.6.30.4,Bootloader采用Uboot。

3.2配置Busybox

Busybox的源码在官方网站www.省略/下载,然后解压并进行配置安装,具体步骤如下:

4.3安装动态库

如果Busybox采用动态链接的方式编译,还需要加载器和链接库执行如下命令:

#cp f /usr/local/arm/4.3.2/armnonelinuxgnueabi/libc/armv4t/lib/*so* lib/ a

5NFS的安装与配置

NFS(Network File System)是由SUN公司推出的一种分布式文件系统,它能使用户在使用另外的联网机文件或外设时,与使用本地机一样方便。以root的身份在控制台输入setup,在系统服务选项中选中nfs服务,如图2所示。

图2NFS配置界面配置NFS服务器的共享主目录,注意权限问题:

# vi/etc/exports

/home/myrootfs *(rw,no_root_squash,sync)

# service nfs restart

6挂载NFS根文件系统

通过串口和RJ45网口连接宿主机与目标开发板,启动超级终端,输入以下命令:

#tftp 0x31000000uImage.img /*下载Linux内核到内存*/

bootm 0x31000000/*启动内核,挂载NFS根文件系统*/

目标板启动后在超级终端中显示的结果如图3所示。可见,NFS根文件系统已经成功加载。

图3NFS根文件系统运行效果7结语

对以Busybox制作嵌入式Linux根文件系统的基本方法进行了归纳和总结,进一步给出了基于NFS构建的嵌入式Linux根文件系统的一般方法。利用此法构建出来的NFS根文件系统可以直接用于嵌入式Linux系统的开发,实时方便地对开发程序进行更改和调试,有效地避免了反复对目标开发板的直接烧写,提高了开发效率,缩短了开发周期。

参考文献

[1]韦东山.嵌入式Linux 应用开发完全手册[M].北京:人民邮电出版社,2008.

[2]华清远见嵌入式培训中心.嵌入式Linux基础教程[M].北京:人民邮电出版社,2009.

[3]华清远见嵌入式培训中心.嵌入式Linux应用程序开发标准教程[M].2版.北京:人民邮电出版社,2009.

[4]陈卓,王田,梁新元.嵌入式系统开发[M].北京:电子工业出版社,2009.

[5]保定飞凌嵌入式技术有限公司.OK2440Ⅲ用户手册[EB/OL].[20090922].download.省略/detail/gooogleman/2840871.

[6]LABROSSE Jean,陈慧.嵌入式软件[M]. 北京:电子工业出版社,2009.

[7]孙天泽,袁文菊.嵌入式设计及Linux 驱动开发指南:基于ARM9处理器[M].2版.北京:电子工业出版社,2007.

[8]刘淼.嵌入式系统接口设计与Linux驱动程序开发[M].北京:北京航空航天大学出版社,2006.

[9]LOVE R. Linux内核设计与实现[M].陈莉君,康华,张波,译.2版.北京:机械工业出版社,2006.

上一篇:一种卫星定位组件测试软件的设计与实现 下一篇:基于STM32处理器的数字PDA系统设计