busybox制作跟文件系统

时间:2021-03-11 16:31:03

参照里Linux目录建立文件系统目录。

解压源码进入目录配置编译器和编译架构:

CROSS_COMPILE ?= arm-linux-

ARCH = arm。


执行make menuconfig 进行配置

busybox制作跟文件系统

选择静态编译,

busybox制作跟文件系统

在Installation Options中选择安装路径(可以直接选择刚才建立到目录)。保存退出。

make

make install 生成文件。

进入建立好目录到etc目录执行:cp -rf ../../busybox-1.13.0/examples/bootfloppy/etc/* ./
复制部分配置文件,同时可以复制本机到passwd group shadow到当前目录。

修改inittab文件为:

::sysinit:/etc/init.d/rcS
::respawn:-/bin/sh
hang_serial0::askfirst:-/bin/sh
::once:/usr/sbin/telnetd -l /bin/login
::ctrlaltdel:/bin/umount -a -r

在dev目录下手工创建连个设备文件:
root@Jarvis dev]# mknod console c 5 1
[root@Jarvis dev]# ls
console
[root@Jarvis dev]# mknod null c 1 3
[root@Jarvis dev]# ll
total 0
crw-r--r--. 1 root root 5, 1 May  5 19:51 console
crw-r--r--. 1 root root 1, 3 May  5 19:51 null

修改etc/init.d/rc.S文件

#! /bin/sh
PATH=/bin/:/sbin/:/usr/bin:/usr/sbin
runlevel=S
prevlevel=N
umask 022
export PATH runlevel prevlevel
/bin/mount -a
mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
mkdir -p /var/lock
/bin/hostname -F /etc/sysconfig/HOSTNAME

在etc目录下创建目录sysconfig进入目录添加文件HOSTNAME,内容为显示的名字。

修改profile文件内容为:

#Ash profile
#vim:syntas=sh

#No core files by default
#ulimit -S -c 0 > /dev/null 2>&1

USER="`id -un`"
LOGNAME=$USER
PS1='[\u@\h \W]# '
PATH=$PATH

HOSTNAM=`/bin/hostname`
echo "Welcome home Sir"
echo "Jarvis is OK!"
export USER LOGNAME PS1 PATH

从交叉编译器中复制库文件:
[root@Jarvis lib]# cp -f /opt/EmbedSky/4.3.3/arm-none-linux-gnueabi/libc/armv4t/usr/lib/*.so* ./ -a

制作bin文件:

[root@Jarvis hakits]# mkyaffs2image my_root/  my_root.bin

//来自网络
[\u@\h \W]\# 怎么不能显示我想要的[root@6410 /etc]

原来是busybox不行,版本才是1.13,官网都1.20了。编译了最新的BUSYBOX,把所有的功能都加上,把可执行权限加上,然后拷贝到根文件系统中,重建新yaffs2,搞定!