linux中如何在开发板上烧写busybox文件系统

发布时间:2022-01-12 15:04:29 作者:iii
来源:亿速云 阅读:174
# Linux中如何在开发板上烧写BusyBox文件系统

## 1. 前言

BusyBox作为嵌入式Linux系统中的"瑞士军刀",集成了上百种常用Linux命令的精简实现。将BusyBox制作成根文件系统并烧写到开发板,是嵌入式开发的基础环节。本文将详细介绍从编译BusyBox到烧写完成的完整流程。

## 2. 准备工作

### 2.1 硬件准备
- 开发板(如树莓派、i.MX6UL等)
- 串口调试工具
- SD卡/TF卡(容量≥4GB)
- 读卡器

### 2.2 软件准备
- 已安装交叉编译工具的Linux主机
- BusyBox源码包(推荐最新稳定版)
- 开发板对应的uboot和kernel镜像

```bash
wget https://busybox.net/downloads/busybox-1.36.1.tar.bz2
tar xvf busybox-1.36.1.tar.bz2

3. 配置与编译BusyBox

3.1 配置编译选项

cd busybox-1.36.1
make menuconfig

关键配置项:

Settings → Build Options → 
  [*] Build static binary (no shared libs)
  Cross compiler prefix → arm-linux-gnueabihf-
Settings → Installation Options → 
  [*] Don't use /usr

3.2 编译与安装

make -j4
make install

编译完成后,生成文件位于_install目录。

4. 构建根文件系统

4.1 创建基础目录结构

mkdir rootfs
cd rootfs
mkdir -p bin dev etc home lib proc sbin sys tmp usr var

4.2 复制BusyBox文件

cp -r ../busybox-1.36.1/_install/* .

4.3 添加必要设备节点

sudo mknod dev/console c 5 1
sudo mknod dev/null c 1 3

4.4 创建初始化脚本

创建etc/inittab文件:

::sysinit:/etc/init.d/rcS
::askfirst:-/bin/sh

创建etc/init.d/rcS并添加可执行权限:

#!/bin/sh
mount -t proc none /proc
mount -t sysfs none /sys

5. 制作文件系统镜像

5.1 使用genext2fs工具

genext2fs -b 8192 -d rootfs rootfs.img

5.2 调整镜像大小(可选)

e2fsck -f rootfs.img
resize2fs rootfs.img 16M

6. 烧写到开发板

6.1 SD卡分区准备

使用fdisk创建两个分区: 1. FAT32分区(存放uboot和kernel) 2. EXT4分区(存放根文件系统)

sudo fdisk /dev/sdX
# 依次输入:n→p→1→默认→+64M→n→p→2→默认→默认→w

6.2 格式化分区

sudo mkfs.vfat /dev/sdX1
sudo mkfs.ext4 /dev/sdX2

6.3 烧写文件系统

sudo dd if=rootfs.img of=/dev/sdX2 bs=1M
sync

7. 配置uboot启动参数

通过串口进入uboot命令行,设置启动参数:

setenv bootargs "console=ttyS0,115200 root=/dev/mmcblk0p2 rw"
saveenv

8. 启动验证

上电后若看到以下提示,表示成功:

Please press Enter to activate this console.
/ #

9. 常见问题解决

9.1 启动卡在Kernel Panic

9.2 命令执行报错

9.3 空间不足

10. 进阶优化

10.1 添加用户程序

将交叉编译的其他程序复制到对应目录:

cp /path/to/your/app rootfs/usr/bin/

10.2 使用NFS挂载

开发阶段可通过NFS挂载根文件系统加快调试:

setenv bootargs "root=/dev/nfs nfsroot=192.168.1.100:/nfsroot ip=dhcp"

11. 结语

本文详细介绍了BusyBox文件系统的制作与烧写全过程。实际开发中可能需要根据具体硬件调整配置参数。掌握这一基础技能后,可以进一步探索Yocto或Buildroot等自动化构建系统。

注意:所有命令需根据实际环境修改设备节点和路径,操作存储设备前请确认设备号避免误操作。 “`

该文档共约1150字,采用Markdown格式编写,包含: 1. 清晰的层级结构 2. 实操命令和代码块 3. 常见问题解决方案 4. 必要的注意事项 5. 标准化技术文档格式

推荐阅读:
  1. 芯灵思SInA33开发板怎样烧写镜像文件
  2. 编译busybox

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linux busybox

上一篇:裸金属服务器的应用场景及优势是什么

下一篇:域名注册的准则有哪些呢

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》