weiqi7777

进击吧,linux(五)- 嵌入式根文件系统

0
阅读(2006)

 

         Linux内核启动后,需要挂载根文件系统后,才能正常的运行linux。因此需要构建根文件系统。因为是在嵌入式中使用,所以构建的是嵌入式根文件系统。

         构建嵌入式文件系统,有以下两步:

1、  建立根文件系统和目录

2、  挂载根文件系统到内核

一、建立根文件系统和目录

1、创建目录

在使用的linux下,在\下是有一些目录的,因此,我们也要去建立这些目录,有些目录是必须的。

clip_image002

clip_image004

首先创建一个目录,rootfs作为根目录,然后在该目录下,创建必须的文件以及子文件。这里,我多创建了weiqi7777文件夹。

clip_image006

2、  创建设备文件

clip_image008

到根目录下的dev文件下,创建两个设备文件。

3、  加入配置文件

配置文件都是放在etc目录下的,所以需要将所需的配置文件放在etc目录下。

clip_image010

将准备好的etc压缩包解压,放到etc目录下去。

4、  添加内核模块

clip_image012

OK6410的编译linux目录里,编译内核模块,将内核模块安装到我们设置的根目录下。注意,该目录只要设置根目录,软件会自动的找到目录下的lib/modules目录,将内核模块放进去。

5、  编译/安装busybox

clip_image014

clip_image016

这个工具是用来生成二进制执行文件的。在linux系统中,lib目录下,有很多二进制执行文件,用来执行我们输入的命令。在嵌入式中,也要支持这些命令,所以也需要命令对应的二进制执行文件,用busybox,可以生成命令的二进制执行文件。

将准备好的easybox解压后,到其目录下,执行make menuconfig

clip_image018

busybox settings->build options下,将第一个选项选中。

clip_image020

然后在将第四个选项设置为arm-linux-,表示使用arm-linux的编译器。

clip_image022

进入busybox settings->installation options

clip_image024

将第一个选中选上,表示编译出来的二进制执行文件不要放在/usr目录下,在第二个选项,填入我们创建的根文件的目录,这样,编译出来的二进制执行文件就在我们创建的根文件下的了。

clip_image026

最后执行makemake install命令。

在我们创建的根目录的bin目录下,就有二进制执行文件了。

clip_image028

二、挂载根文件系统

使用initramfs挂载

clip_image030

首先在根目录下,创建一个软连接。然后在到linux内核配置的地方,更改设置。

clip_image032

general setup中,将红色框部分选中,并设置根文件的目录。

最后在编译内核。

clip_image034

生成的uImage就是带有文件系统的linux内核。将该文件下到开发板中,linux内核启动后,就会挂载文件系统,就可以看到我们刚刚创建的那些目录了。


busybox和etc的压缩包已上传,都打包成一个压缩包了。

                                                                  busybox_etc.rar