一种基于ext2根文件系统的用户程序自启动方法技术方案

技术编号:15690632 阅读:46 留言:0更新日期:2017-06-24 03:11
本发明专利技术请求保护一种基于ext2根文件系统的用户程序自启动方法,属于嵌入式技术领域。根文件系统是Linux系统中重要的组成部分,文中以ext2格式的文件系统作为研究对象,详细介绍了linuxrc文件的生成和一些必要文件的配置、设计。其次成功移植一个库文件,为用户代码的自启动提供库文件的支持。最后基于NFS方式挂载的根文件系统实现一个ext2格式的镜像文件的创建。事实证明ext2格式的根文件系统能够很好地应用于嵌入式平台上,并且能够使用户文件自行启动。

Self starting method of user program based on ext2 root file system

The invention claims to protect a user program self starting method based on the ext2 root file system, belonging to the embedded technology field. The root file system is an important component of the Linux system. In this paper, the file system of ext2 format is taken as the object of study. The generation of linuxrc file and the configuration and design of some necessary files are introduced in detail. Second, you successfully transplant a library file that provides library support for user code self - startup. Finally, the root file system mounted on NFS implements a ext2 format mirroring file creation. It turns out that the root file system of the ext2 format can be well applied to the embedded platform and can enable user files to start by themselves.

【技术实现步骤摘要】
一种基于ext2根文件系统的用户程序自启动方法
本专利技术涉及嵌入式
,具体涉及一种基于ext2根文件系统的用户程序自启动方法。
技术介绍
根文件系统是Linux操作系统运行时必有的一种文件系统,该文件系统不仅具有普通文件系统存储数据的功能,还被操作系统用来执行一些所必需的特殊文件。这些文件是操作系统运行时的配置文件,例如:/etc、/dev目录下的文件。与此同时也为库文件的移植提供一个驻所,用户的库文件移植也基于根文件系统的。由于嵌入式中不包含编译器的库文件,用户在开发平台上动态编译的文件在嵌入式平台上不能执行。而静态编译生成的文件大,占用嵌入式平台的资源多,在微内核的嵌入式平台上消耗过多的资源,使得嵌入式平台设计时要考虑一些硬件资源的问题。而库文件的移植使得在开发平台上动态编译的文件能够很好的在嵌入式平台上运行。用户文件启动方式,在嵌入式发开中比较常见的一种运行文件的方式,在一些没有界面和交互设备的微型系统中,需要将用户的文件设置成自启动模式,结合所需的库文件达到上电即可运行用户文件。这种机制使得程序在上电是自行启动,不需要用户干预。
技术实现思路
本专利技术旨在解决以上现有技术的问题。提出了一种应用于嵌入式平台上,并且能够使用户文件自行启动的方法。本专利技术的技术方案如下:一种ext2根文件系统的创建与用户程序自启动的方法,其包括以下步骤:1)、首先在官网下载源码并且使用gcc编译器进行编译、运用makeinstall指令进行安装,然后在相应目录下生成linuxrc文件;2)、其次对rcS和inittab文件进行配置,其中rcS文件只要是负责用户文件的自启动,inittab主要是运行时的配置文件;3)、在完成rcS与inittab文件的配置的基础上移植一个交叉编译器库文件,并且修改rcS文件,实现在根文件rootfs启动的同时能够启动服务器端的动态交叉编译库文件;4)、若采用配置NFS网络文件系统的方式启动bootargs启动参数设置挂载rootfs,则NFS启动根文件系统,用户文件完成自启动,否则就通过制作ext2格式的镜像文件烧录启动。进一步的,所述步骤1)下载的源码为busybox(busybox是linuxrc文件的源码)源码,并将busybox源码下载到到Ubuntu上,利用命令tar–jxvfbusybox1.24.1.tar.g解压,用命令makemenuconfig进行配置,然后make进行编译,最后makeinstall进行安装。进一步的,所述步骤3)还包括步骤:将Ubuntu中/etc/shadow、/etc/password移植到rootfs相对应的文件夹下,设置bootargs实现NFS挂载根文件系统,实现上电用户登录。进一步的,所述步骤4)当上电时会出现一些文件夹挂载错误时,根据profile文件中的挂载情况,在根文件夹下mkdirxxx建立所需挂载的文件即可。进一步的,所述步骤4)ext2格式的镜像文件烧录包括步骤:在home/tong/x210_vsp/rootfs下建立一个rootfs文件夹,然后ddif=/dev/zeroof=rootfs.ext2bs=1024count=10240给rootfs.ext2建立一个10M的的空间,防止用户代码过大超出了该空间区域;losetup/dev/loop1rootfs.ext2;mke2fs-m0/dev/loop110240;mount-text2/dev/loop1./rootfs/;利用以上命令可将rootfs挂载到rootfs中;向./rootfs中复制内容,用cp../rootfs/*./-rf;umount/dev/loop1;losetup-d/dev/loop1;通过以上几步就可以将NFS方式挂载成功的根文件系统制作成rootfs.ext2格式的镜像文件。本专利技术的优点及有益效果如下:本专利技术的有益效果在于,克服传统静态方式编译造成的代码量大,在传统硬件资源数不多的嵌入式平台中占用资源过多的等问题。并且使用最小根文件的方式来管理操作系统资源的方式消耗的硬件资源少,用户操作简单,在微内核处理器的嵌入式平台中具有很好的应用价值。附图说明图1是本专利技术提供优选实施例流程图;图2启动linuxrc文件成功;图3rcS文件内容;图4inittab文件内容;图5lib文件移植内容;图6用户运行程序打印信息;图7ext2格式的根文件系统。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、详细地描述。所描述的实施例仅仅是本专利技术的一部分实施例。本专利技术解决上述技术问题的技术方案是,结合图1说明本实施方式,本实施方式步骤如下:步骤一:如图2所示,首先在busybox官网下载busybox1.24.1.tar.gz文件。在Ubuntu14.04中建立一个文件夹,将该文件复制到文件夹下tar–jxvfbusybox1.24.1.tar.gz解压。类似于内核编译进入解压后的busybox中更改Makefile。找到ARCHCROSS_COMPILE后,更改如下:ARCH=armCROSS_COMPILE=/usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-做了相应的修改后即可makemenuconfig(选项配置)进行简单必要的配置,其中不能少的就是设置好编译好busybox安装路径:/home/tong/x210_bsp/rootfs/rootfs。然后即可make、makeinstall;在安装目录中生成一个Linuxrc文件。有了Linuxrc文件,内核在挂载rootfs文件夹是就会显示挂载成功,但是由于找不到rcS文件,所以启动rootfs失败。步骤二:根据SecureCRT窗口上的显示,缺少rcS文件和inittab文件,在rootfs文件夹中添加/etc/init.d/rcS和/etc/init.d/inittab文件,根据所需要的配置文件进行设置,如图3和图4所示。步骤三:经过步骤二和三可实现rootfs文件夹的挂载,为了完善根文件中的信息,添加一个用户登录的操作。这里只需要将Ubuntu14.04中/ect/password、/etc/shadow复制到rootfs的/etc目录下,这两个文件的添加为根文件系统增添了一个用户登录的功能。步骤四:通过以上步骤对根文件系统的完善,根文件系统能够提供一般用户的需求,这里为了实现一个用户文件的启动,需要做一个交叉编译库文件的移植工作。用到的库文件在/usr/local/arm/arm-2009q3/arm-none-linux-gnueabi/libc/lib目录中,因此库文件移植的主要任务就是将该编译器的库文件移植到根文件系统的/lib目录下。利用命令:cp/usr/local/arm/arm-2009q3/arm-none-linux-gnueabi/libc/lib/home/tong/x210_bsp/rootfs/rootfs/lib–rdf即可;然后在Ubuntu端用命令arm-none-linux-gnueabi-strip去除一些符号文件。步骤五:库文件移植成功后,在rcS文件本文档来自技高网...
一种基于ext2根文件系统的用户程序自启动方法

【技术保护点】
一种基于ext2根文件系统的用户程序自启动方法,其特征在于,包括以下步骤:1)、首先在官网下载源码并且使用gcc编译器进行编译、运用make install指令进行安装,然后在安装目录下生成linuxrc文件;2)、其次对rcS和inittab文件进行配置,其中rcS文件只要是负责用户文件的自启动,inittab主要是运行时的配置文件;3)、在完成rcS与inittab文件的配置的基础上移植一个交叉编译器库文件,并且修改rcS文件,实现在根文件rootfs启动的同时能够启动服务器端的动态交叉编译库文件;4)、若采用配置NFS网络文件系统的方式启动bootargs启动参数设置挂载rootfs,则NFS启动根文件系统,用户文件完成自启动,否则就通过制作ext2格式的镜像文件烧录启动。

【技术特征摘要】
1.一种基于ext2根文件系统的用户程序自启动方法,其特征在于,包括以下步骤:1)、首先在官网下载源码并且使用gcc编译器进行编译、运用makeinstall指令进行安装,然后在安装目录下生成linuxrc文件;2)、其次对rcS和inittab文件进行配置,其中rcS文件只要是负责用户文件的自启动,inittab主要是运行时的配置文件;3)、在完成rcS与inittab文件的配置的基础上移植一个交叉编译器库文件,并且修改rcS文件,实现在根文件rootfs启动的同时能够启动服务器端的动态交叉编译库文件;4)、若采用配置NFS网络文件系统的方式启动bootargs启动参数设置挂载rootfs,则NFS启动根文件系统,用户文件完成自启动,否则就通过制作ext2格式的镜像文件烧录启动。2.根据权利要求1所述的基于ext2根文件系统的用户程序自启动方法,其特征在于,所述步骤1)下载的源码为busybox源码,busybox是linuxrc文件的源码,并将busybox源码下载到到Ubuntu上,利用命令tar–jxvfbusybox1.24.1.tar.g解压,用命令makemenuconfig进行配置,然后make进行编译,最后makeinstall进行安装。3.根据权利要求2所述的基于ext2根文件系统的用户程序自启动方法,其特征在于,所述步骤3)还包括步骤:将Ubuntu中/etc/s...

【专利技术属性】
技术研发人员:王华华童庆张德民王丹陈发堂李小文
申请(专利权)人:重庆邮电大学
类型:发明
国别省市:重庆,50

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1