关闭

linux最小根文件系统制作简介

标签: linux根文件系统
1789人阅读 评论(0) 收藏 举报
分类:
从上篇我们知道最小的根文件系统需要的项包括:
1./dev/console
/dev/null
2.init=>busybox;
3./etc/inittab;
4.配置文件中指定的程序;
5.C库;
那么我们一一创建上面各项,并将其制作成一种文件系统的格式,就构建成了一个根文件系统。

构建根文件系统

我们首先来配置、编译好busybox,并安装在指定目录下,上节中所说的最小根文件系统的第二项init也就做好了。注意,如果我们是在linux操作系统下编译busybox,用于其它系统安装,那么在配置(make menuconfig)、编译(make)完之后,千万不要直接make install,否则会影响本机系统,应该make CONFIG_PREFIX=/path/from/root install,即指定路径安装,/path/from/root即为自己指定的安装目录。这一点busybox的INSTALL中有说明。下面来做其他几项并且将该文件夹做成某种格式。

先来创建两个设备文件/dev/console和/dev/null:
从主机上查看这两个文件可以看到,/dev/console是主设备号为5,次设备号为1的设备节点,/dev/null是主设备号为1,次设备号为3的设备节点;
那么我们到busybox的安装文件中创建dev,在其中创建设备节点console和null,指定其相应设备节点,与上面查看的一致,这样上节提到的最小根文件系统中的第一项就完成了;

接着来创建第三项,用户程序配置文件/etc/inittab(第二项在busybox的安装中完成了):
直接在busybox安装目录下创建etc目录下创建inittab配置文件,并按照该配置文件的格式,添加启动项即可,例如console::askfirst:-/bin/sh,此项完成;

第四项应用程序暂时不需要,先做最小根文件系统,不运行应用程序;

第五项C库
busybox安装路径下最小文件系统目录下创建lib,将glibc下的lib中.so文件全部拷贝到的该lib中即可,如:
$ cd ~/gcc-3.4.5-glibc-2.3.6/arm-linux/lib
$ cp *.so* /path/from/root/fs_mini/lib -d
完成C库创建,其中-d表示如果该库文件问连接文件,则让它保持链接文件属性,否则会把所有源文件都考过去,那样会很大。

那么这个最下的根文件系统怎么烧到开发板中去?
我们需要用相应的工具做一个映像文件。如使用yaff2的工具转成*.yaff2的影响文件等。生成后,得到的即为可烧写到开发板的映像文件。
1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:306984次
    • 积分:3509
    • 等级:
    • 排名:第9444名
    • 原创:83篇
    • 转载:65篇
    • 译文:7篇
    • 评论:38条
    个人简介

    围补,IT从业者。

    工作方向:图像处理,计算机视觉和模式识别,增强现实(AR)

    1.关注图像处理、计算机视觉、人机交互、AR等领域最新进展;
    2.关注OpenCV及其他开源平台的研究及学习;
    3.关注移动互联网创业。

    机器人视觉主站
    www.robovs.com
    ,欢迎投稿及分享,共同学习!

    机器视觉群:454254462 ,欢迎加入,进行算法研究!

    AR/VR群:244751474 ,欢迎加入,进行项目讨论!

    邮箱:lx_work@126.com
    Q Q:1426948683
    最新评论