文件系统制作

本文详细介绍了如何使用Busybox进行交叉编译,包括设置BuildBusyboxasastaticbinary、配置交叉编译器、裁剪库文件、制作启动文件及内核配置等步骤。重点在于简化文件系统并为嵌入式设备定制最小化环境。
摘要由CSDN通过智能技术生成

使用busybox 下载地址:http://busybox.net/downloads/

make menuconfig
1.配置交叉编译器
Busybox Settings
General Configuration
Build Options
*Build Busybox as a static binary
(arm-linux-)Cross Compiler prefix //交叉编译器前缀 arm-linux-
2.make
3.make install
4.在_install/ 文件夹下有文件系统的 bin linuxrc sbin usr 将它们拷贝过去
5.mkdir dev etc mnt proc var tmp sys root
此时现在没有C库,接下来需要完成文件夹
6.将gcc下面的lib文件拷贝到文件系统中
需要是下面的库文件

debug              libatomic.so.1       libgfortran.a         libgomp.spec        libssp.so                   libsupc++.a
ldscripts          libatomic.so.1.2.0   libgfortran.so        libitm.a            libssp.so.0                 libubsan.a
libasan.a          libcilkrts.a         libgfortran.so.4      libitm.so           libssp.so.0.0.0             libubsan.so
libasan_preinit.o  libcilkrts.so        libgfortran.so.4.0.0  libitm.so.1         libstdc++.a                 libubsan.so.0
libasan.so         libcilkrts.so.5      libgfortran.spec      libitm.so.1.0.0     libstdc++fs.a               libubsan.so.0.0.0
libasan.so.4       libcilkrts.so.5.0.0  libgomp.a             libitm.spec         libstdc++.so
libasan.so.4.0.0   libcilkrts.spec      libgomp.so            libsanitizer.spec   libstdc++.so.6
libatomic.a        libgcc_s.so          libgomp.so.1          libssp.a            libstdc++.so.6.0.24
libatomic.so       libgcc_s.so.1        libgomp.so.1.0.0      libssp_nonshared.a  libstdc++.so.6.0.24-gdb.py

7.rm lib/*.a //删除静态库

8.arm-linx-strip lib/* //删除不必要的调式符号
这两步动作就是为了缩小文件系统lib的体积

9.添加系统启动文件
在etc下添加文件 inittab 文件内容如下

#this is run first except when booting in single-user mode.
::sysinit:/etc/init.d/rcS

# /bin/sh invocations on selected ttys

# start an "askfirst" shell on the console (whatever that may be)

::askfirst:-/bin/sh

# stuff to do when restarting the init process

::restart:/sbin/init

# stuff to do before rebooting

::ctrlaltdel:/sbin/reboot

10.在etc下添加文件fstab,文件内容如下:

#device mount-point type options dump fsck order
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0

这里我们挂载的文件系统有三个proc、sysfs和tmpfs。在内核中proc和sysfs默认都支持,而tmpfs
是没有支持的,我们需要添加tmpfs的支持
修改内核配置:
$ make menuconfig

File systems --->
	Pseudo filesystems --->
		[*] Virtual memory file system support (former shm fs)
		[*] Tmpfs POSIX Access Control Lists

重新编译内核
在etc下创建init.d目录,并在init.d下创建rcS文件,rcS文件内容为:

#!/bin/sh

# This is the first script called by init process

/bin/mount -a
echo /sbin/mdev > /proc/sys/kernel/hotplug
/sbin/mdev -s

为rcS添加可执行权限:
$ chmod +x init.d/rcS
在etc下添加profile文件,文件内容为:

#!/bin/sh
export HOSTNAME=coco
export USER=root
export HOME=root
export PS1="[$USER@$HOSTNAME \W]\# "
PATH=/bin:/sbin:/usr/bin:/usr/sbin
LD_LIBRARY_PATH=/lib:/usr/lib:$LD_LIBRARY_PATH
export PATH LD_LIBRARY_PATH
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值