制作嵌入式busybox rootfs系统

本文详细介绍了如何下载和编译BusyBox1.31.1版本,设置了针对aarch64架构的交叉编译环境变量,并在Makefile中配置了相关参数。建议选择动态库编译以减小占用空间。编译完成后,通过makeinstall将BusyBox安装到指定目录,并展示了生成的根文件系统结构,包括fstab、inittab、profile等关键配置文件的内容。
摘要由CSDN通过智能技术生成

1、busybox下载

BusyBox

此篇使用版本BusyBox 1.31.1 (stable)

2、设置交叉编译环境变量

source environment-setup-aarch64-poky-linux或者其他架构的编译链工具

3、busybox编译设置

cd busybox-1.31.1

修改根目录Makefile中的CROSS_COMPILE和ARCH参数

比如ARCH ?= arm64 

也可以在make menuconfig中的选项进行配置:

对如下进行配置:

Path to sysroot--->/home/rd/xxx_test/tool/sysroots/aarch64-poky-linux

Additional CFLAGS--->--sysroot=/home/rd/xxx_test/tool/sysroots/aarch64-poky-linux)

Additional LDFLAGS进行配置--->--sysroot=/home/rd/xxx_test/tool/sysroots/aarch64-poky-linux)

另外建议选择动态库编译,静态会导致占用空间大

4、编译

make ARCH=arm64 CROSS_COMPILE=arm-linux-gnueabihf-

5、安装

make CONFIG_PREFIX=./installed install //安装到指定目录 或者选择其他目录

6、生成产物

ls

bin  dev  etc  home  lib  linuxrc  mnt  opt  proc  root  sbin  sys  tmp  usr  var

注意: 在rootfs 上添加目录 dev etc home mnt opt proc root sys tmp var

fstab内容:

proc                 /proc                proc       defaults              0  0
devpts               /dev/pts             devpts     mode=0620,gid=5       0  0
tmpfs                /tmp                 tmpfs      defaults              0  0
sysfs                /sys                 sysfs      defaults              0  0
inittab内容:

::sysinit:/etc/init.d/rcS

ttySTM0::respawn:-/bin/ash

::restart:/sbin/init

::shutdown:/bin/umount -a -r

或者

::sysinit:/etc/init.d/rcS
tty2::respawn:/bin/getty -L tty2 115200 vt100
console::askfirst:/bin/sh

profile内容:

export PS1="[\u@\h \W]# " if [ ! -z ${SSH_TTY} ]; then export PATH=/sbin:/usr/sbin:/bin:/usr/bin fi

group内容:

root:x:0:

passwd内容:

root:x:0:0:root:/root:/bin/sh

rcS内容:

echo "Starting rcS..."

echo "++ Mounting filesystem"
echo /sbin/mdev > /proc/sys/kernel/hotplug

也可参考如下:

#! /bin/sh
#
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:
runlevel=S
prevlevel=N
umask 022
export PATH runlevel prevlevel
#Charactor modules
/bin/mknod /dev/pts/0 c 136 0
/bin/ln -s /dev/v4l/video0 /dev/video0
/bin/ln -s /dev/fb/0 /dev/fb0
/bin/ln -s /dev/vc/0 /dev/tty1
/bin/ln -s /dev/scsi/host0/bus0/target0/lun0/part1 /dev/sda1
/bin/mount -t proc none /proc
/bin/mount -t tmpfs none /tmp
/bin/mount -t tmpfs none /var
/bin/mkdir -p /var/lib
/bin/mkdir -p /var/run
/bin/mkdir -p /var/log
/sbin/ifconfig lo 127.0.0.1
/sbin/ifconfig eth0 192.168.0.111 up
/bin/hostname -F /etc/hostname

注:

一些情况需要先创建节点“console”、“null”。否则在系统启动时内容会提示以下错误:
Warning: unable to open an initial console.
Kernel panic - not syncing: Attempted to kill init!
创建节点的命令如下:
# mknod dev/console c 5 1
# mknod dev/null c 1 3

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

a2591748032-随心所记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值