yaffs格式的根文件系统制作

linux内核启动后,它接下来要做的事就是启动应用程序,而应用程序在哪里呢,类比windows,启动时要读取c盘,所以linux的文件系统就类似于c盘,并且我们使用的ls、cp等一些类命令(本质是应用程序),也都在根文件系统上,这些程序都来源于busybox,所以根文件系统制作需要busybox。

制作步骤:

1.首先下载busybox,我用的1.36版本([https://busybox.net/downloads/]
在这里插入图片描述

2.解压后进入目录,修改Makefile的交叉工具编译链为自己pc的,我的交叉工具编译链如下
在这里插入图片描述
在这里插入图片描述

3.在目录下执行make menuconfig,进入菜单后直接退出,使用默认配置即可。
在这里插入图片描述

4.在目录下执行make
在这里插入图片描述
5.编译后报错
在这里插入图片描述

5.使用make编译,报错如下
在这里插入图片描述
6.解决方法是进入菜单项把Miscellaneous Utilities 下的 seedrng 取消掉,不让该模块编译。
在这里插入图片描述
7.再重新make就可以编译成功
在这里插入图片描述
8.使用make CONFIG_PREFIX=安装目录 install命令安装,注意这里一定要指定安装目录,否则会安装到当前,破坏系统。
在这里插入图片描述
9.进入安装目录查看,安装成功
在这里插入图片描述
10.接下来创建第一个init程序的设备文件(/dev/console),这个设备文件主要和应用程序绑定,输入和输出等打印和它有关,还要创建个/dev/null,没有设置id的程序会和它绑定。
先查看本机这两个文件信息
在这里插入图片描述

11.然后在安装目录下创建dev文件夹,并在dev下创建这两个设备文件。
在这里插入图片描述
12.在创建etc目录,并在该目录下创建inittab配置文件,文件内容为console::askfirst:-/bin/sh
console表示设备文件id,和上一步的设备文件名对应,askfirst表示执行时机,-/bin/sh是应用名
在这里插入图片描述
在这里插入图片描述
13,由于应用程序需要c库,所以文件系统也需要安装这个库,这个库就用交叉编译链lib目录下的动态文件,在文件系统根目录下创建lib目录,然后把编译链lib目录下的动态文件拷贝过去就行。
创建lib目录
在这里插入图片描述
进入到交叉编译链lib目录,这里以so结尾的就是动态库文件
在这里插入图片描述
拷贝文件
cp .so /home/book/work/busybox/nfs_root/second_fs/lib -d
注意这里拷贝命令一定要加-d,表示只拷贝链接,否则会拷贝真实文件,会很大
在这里插入图片描述
在这里插入图片描述
14.在linux系统下,使用ps命令可以查看当前有哪些应用程序,当然我们制作的文件系统也可以提供该命令,内核提供了一个虚拟目录/proc,我们只需要在根文件系统下创建一个proc目录,然后挂载到这虚拟目录下就可以使用ps命令了。
现在根目录创建proc文件夹
在这里插入图片描述
然后在etc/inittab这个文件里加入::sysinit:/etc/init.d/rcS,表示要去读取/etc/init.d/rcS这个文件
在这里插入图片描述
然后创建/etc/init.d/rcS,文件内容为 mount -a
在这里插入图片描述
在这里插入图片描述
授权
在这里插入图片描述
再在etc目录下创建fstab文件,这里面才是真正挂载操作
在这里插入图片描述
文件内容
在这里插入图片描述
这里挂载内核寻/proc就完成了,ps命令就可使用。

15.还有一个问题,应用程序可能有多个,不可能每一个都去手动创建设备文件,因此需要配置为自动创建(udev机制),具体操作如下

首先在根文件目录下创建sys目录

在这里插入图片描述
然后修改rcS文件,框起来的是新加的
在这里插入图片描述
再修改fstab文件,框起来的是新加的
在这里插入图片描述
ok,至此,文件系统全部配置完成

16.到根文件目录上层目录使用yaffs文件制作工具制作yaffs文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值