构建根文件系统

read  INSTALL  rirst.

 

 

 

 

总结:应用程序所需要的文件

 

1./dev/console /dev/null

2.配置文件/etc/inittab

3.配置文件里面指定的应用程序

4.库文件

5.init本身,即busybox

以上就是最小根文件系统所需要的项

 

 

编译busybox

先阅读install文件可知道如何编译它

 

make menuconfig

make

make install(这里安装要注意)

安装到我们指定的某个文件里面

使用make CONFIG_PREFIX=/path/from/root install

 

编译需要在makefile里面加上cross_compiler里面加上arm-linux-

 

 

一、创建console

 

 

现在上面编译后busybox目录是work/FL_fs/first_fs

在此目录下:ls /dev/console /dev/null -l

crw------- 1 root root 5, 1 2015-01-05 20:57 /dev/console

crw-rw-rw- 1 root root 1, 3 2015-01-05 20:30 /dev/null

那么根据它来创建console null等设备

 

#mkdir dev

#cd dev

#mknod console c 5 1

#mknod null c 1 3

#ls -l

显示:

 crw-r--r-- 1 root root 5, 1 2015-05-06 20:39 console

crw-r--r-- 1 root root 1, 3 2015-05-06 20:40 null

表示创建成功

二、配置项

#cd work/FL_fs/first_fs

#mkdir etc

#vim  etc/inittab

 

输入:

console::askfirst:-/bin/sh

 

 

三、安装c库

#cd lib

#cp /work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib *.so* /work/FL_fs/first_fs/lib -d

end

 

 最小根文件系统已经完成。

 

 此时需要制作镜像文件以烧写到硬件。

 yaffs2和jffs文件系统

 

 1.制作yaffs2

 #cd work/system

 yaffs_source_util_large_smmall_page_nand.tar.bz2

 

 #tar xjf  yaffs_source_util_large_small_page_nand.tar.bz2

 #cd Developement_util_ok

 #cd yaffs2

 #cd utils

 #make

 #cp mkyaffs2image /usr/local/bin

 #chmod +x /usr/local/bin/mkyaffs2image

#cd /work/FL_fs

 #mkyaffs2image first_fs first_fs.yaffs2

 

 此后烧写到开发板里面。

 可以启动,并能使用ls,cd等命令。

 

 

 

 如何改进?

 

 #cd ../first_fs

 #mkdir proc

 

 

 单板上有虚拟系统

 #mkdir proc

 #mount -t proc none /proc

 #ps

 可以看到哪些程序及其内容

   PID TTY          TIME CMD

383 pts/2    00:00:00 ps

30564 pts/2    00:00:00 su

30573 pts/2    00:00:00 bash

383 进程号

#cd 383

如果不想 手动挂载 #mount -t proc none /proc

也可以写到配置文件里面

 

#vim inittab

++ ::sysinit:/etc/init.d/rcS  需要脚本

#mkdir etc/init.d

#vim rcS

##mount -t proc none /proc

#chmod +x /etc/init.d/rcS

就可以了

 

上面#mount -t proc none /proc

也可以使用#mount -a

 

#mount -a是什么意思?

读出/etc/fstab内容来挂载

怎么使用呢?

#mount -a会依赖fstab文件

fstab文件内容有哪些呢?

#device         mount-point    type     options     dump   fsck

proc        /proc        proc defaults    0       0

 

那么,在/etc/fstab里面输入:

proc   /proc    default 0 0

然后在脚本rcS里面使用#mount -a

 

 

然后再制作yaffs镜像文件就和第一种方法是一样的。

可以使用#cat /proc/mounts查看挂载了哪些文件系统

继续

 

 

上面的dev是手工创建

那么怎么自动创建dev下面的设备节点呢

方法:使用mdev

 

怎么使用mdev?  在/

可以查看mdev.txt

 

[1] mount -t sysfs sysfs /sys

[2] echo /bin/mdev > /proc/sys/kernel/hotplug

[3] mdev -s

[4] mount -t tmpfs mdev /dev

[5] mkdir /dev/pts

[6] mount -t devpts devpts /dev/pts

这6步就可以了。

所以:

1、#cd ../first_fs

#mkdir sys

[1] mount -t sysfs sysfs /sys

[4] mount -t tmpfs mdev /dev

应该怎么做?

#vim /etc/fstab

#device         mount-point    type     options     dump   fsck

proc        /proc        proc defaults    0        0

sysfs           /sys           sysfs    default     0      0

tmpfs           /dev           tmpfs    default     0      0

 

 

[2] echo /bin/mdev > /proc/sys/kernel/hotplug

[3] mdev -s

[5] mkdir /dev/pts

[6] mount -t devpts devpts /dev/pts

怎么做呢?

#cd /etc/init.d/rcS

mount -a

mkdir /dev/pts/

mount -t devpts devpts /dev/pts

echo /sbin/mdev > /proc/sys/kernel/hotplug

mdev -s

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
buildroot是一种用于构建文件系统的工具。它可以帮助我们处理根文件系统的各种细节,使得根文件系统更加合理和有效。相比于使用busybox构建文件系统,buildroot可以更好地满足产品开发的需求,因为它处理了很多不完善和容易忽略的细节。因此,在做产品时,推荐使用buildroot来构建文件系统。当然,还有其他类似的软件,比如yocto,也可以用来构建文件系统。\[1\] 使用buildroot构建文件系统相比于使用busybox,它更加完整,不需要我们自行添加很多东西,比如库文件。在驱动开发中,很多第三方软件也需要我们自己进行移植,而这些软件往往依赖其他的库文件,导致移植过程非常繁琐。因此,使用buildroot可以简化这个过程。\[2\] 需要注意的是,使用buildroot构建的根文件系统可能是最简单的,没有配置任何第三方的库和软件。但是,我们可以通过配置buildroot来使能一些常见的第三方软件,从而满足我们的需求。\[3\] #### 引用[.reference_title] - *1* *2* *3* [Buildroot根文件系统构建](https://blog.csdn.net/lengyuefeng212/article/details/119848347)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值