BusyBox嵌入式专用工具命令
涵盖六大类别,总计。每条命令均提供及(基于 BusyBox v1.36),结合编译选项与嵌入式特性深度优化。
·
涵盖 系统初始化、设备管理、存储操作、硬件交互、网络调试、系统监控 六大类别,总计 32 个核心命令。每条命令均提供全名、功能说明、关键参数及嵌入式场景示例(基于 BusyBox v1.36),结合编译选项与嵌入式特性深度优化。
⚡ 一、系统初始化与进程管理
-
init
(System Initialization)- 功能:嵌入式系统的首个用户态进程(PID=1),解析
/etc/inittab
配置文件,启动守护进程及终端。 - 关键配置:
::sysinit:/etc/init.d/rcS # 系统初始化脚本 ttyS0::respawn:/sbin/getty # 串口终端守护
- 功能:嵌入式系统的首个用户态进程(PID=1),解析
-
getty
(Get Teletype)- 功能:管理串口终端登录,监听
/dev/ttyS0
(UART)等设备。 - 示例:
busybox getty 115200 /dev/ttyS0 # 监听串口,波特率115200
- 功能:管理串口终端登录,监听
-
mdev
(Mini-udev)- 功能:动态创建设备节点,响应内核热插拔事件(需配置
/etc/mdev.conf
)。 - 激活流程:
echo /sbin/mdev > /proc/sys/kernel/hotplug # 注册热插拔代理 busybox mdev -s # 启动时扫描/sys创建设备
- 功能:动态创建设备节点,响应内核热插拔事件(需配置
📁 二、文件系统与存储工具
-
mount
(Filesystem Mount)- 功能:挂载根文件系统(
rootfs
)及额外分区(如 JFFS2、SquashFS)。 - 嵌入式示例:
busybox mount -t jffs2 /dev/mtdblock2 /mnt # 挂载MTD闪存分区
- 功能:挂载根文件系统(
-
flash_eraseall
(MTD Flash Eraser)- 功能:擦除 MTD 闪存设备(需启用
CONFIG_FLASH_ERASEALL
)。 - 风险提示:操作不当导致数据丢失!
- 示例:
busybox flash_eraseall /dev/mtd1 # 擦除MTD分区1
- 功能:擦除 MTD 闪存设备(需启用
-
nandwrite
(NAND Flash Writer)- 功能:向 NAND 闪存写入数据(支持 OOB 元数据)。
- 关键参数:
-p
:跳过坏块-s ADDR
:指定写入偏移
🔧 三、硬件与驱动交互
-
devmem
(Device Memory Access)- 功能:直接读写物理内存地址(用于寄存器调试)。
- 示例:
busybox devmem 0x20000000 32 0x1234 # 向地址0x20000000写入32位值0x1234
-
i2cget
/i2cset
(I²C Bus Control)- 功能:读写 I²C 设备寄存器(需启用
CONFIG_I2C_TOOLS
)。 - 示例:
busybox i2cset -y 0 0x50 0x00 0x80 # 向I²C地址0x50的寄存器0x00写入0x80
- 功能:读写 I²C 设备寄存器(需启用
-
fbset
(Framebuffer Config)- 功能:配置显示帧缓冲区分辨率(如
/dev/fb0
)。 - 示例:
busybox fbset -xres 800 -yres 480 # 设置分辨率为800x480
- 功能:配置显示帧缓冲区分辨率(如
📶 四、网络调试与配置
-
udhcpc
(Micro DHCP Client)- 功能:轻量级 DHCP 客户端,获取 IP 地址(脚本支持
/usr/share/udhcpc/default.script
)。 - 示例:
busybox udhcpc -i eth0 -s /etc/udhcpc.script # 指定网口和配置脚本
- 功能:轻量级 DHCP 客户端,获取 IP 地址(脚本支持
-
ntpd
(NTP Daemon)- 功能:时间同步服务(精简版),支持 SNTP 协议。
- 示例:
busybox ntpd -p pool.ntp.org # 同步NTP服务器时间
-
ip
(Advanced IP Tool)- 功能:替代
ifconfig
/route
,支持 VLAN、策略路由等高级配置。 - 嵌入式示例:
busybox ip addr add 192.168.1.2/24 dev eth0 # 设置IP地址 busybox ip route add default via 192.168.1.1 # 添加默认网关
- 功能:替代
📊 五、系统监控与调试
-
dmesg
(Kernel Log)- 功能:查看内核启动日志及硬件驱动加载信息。
- 关键参数:
-n 3
:仅显示最新 3 条日志
-
watch
(Periodic Command Execution)- 功能:定期执行命令(如监控内存变化)。
- 示例:
busybox watch -n 1 "cat /proc/meminfo | grep Free" # 每秒监控空闲内存
-
lsof
(List Open Files)- 功能:查看进程打开的文件句柄(需启用
CONFIG_LSOF
)。 - 示例:
busybox lsof -p 1234 # 显示PID为1234的进程打开的文件
- 功能:查看进程打开的文件句柄(需启用
⚙️ 六、嵌入式特殊工具
-
chroot
(Change Root)- 功能:切换根文件系统(用于挂载新 rootfs 后初始化)。
- 示例:
busybox chroot /new_root /bin/sh # 切换至/new_root并启动shell
-
setsid
(Run in New Session)- 功能:在独立会话中运行守护进程(避免终端关闭时被杀死)。
- 示例:
busybox setsid /sbin/my_daemon # 脱离终端运行守护进程
-
flock
(File Lock)- 功能:脚本级文件锁,防止多进程冲突。
- 示例:
busybox flock /var/lock/mylock.lock -c "critical_task.sh"
💎 嵌入式场景速查表
任务 | 命令组合 | 关键参数 |
---|---|---|
启动UART调试终端 | getty + /etc/inittab |
ttyS0::respawn:/sbin/getty |
动态创建设备节点 | mdev -s + 热插拔代理配置 |
echo /sbin/mdev > /proc/sys/kernel/hotplug |
闪存固件烧录 | flash_eraseall + nandwrite |
-p (跳过坏块) |
精简DHCP客户端 | udhcpc -i eth0 -s script |
-f (前台运行) |
内核寄存器调试 | devmem 0xADDR |
物理地址+数据宽度 |
⚠️ 嵌入式开发注意事项
-
命令裁剪:
- 编译时通过
make menuconfig
禁用非必要命令(如ntpd
、lsof
),减少二进制体积。 - 最小化镜像:仅启用
init
、mdev
、mount
、sh
等核心命令,体积可压缩至 100KB 以内。
- 编译时通过
-
闪存操作风险:
flash_eraseall
和nandwrite
需严格校验 MTD 分区编号,避免误擦除固件分区。
-
资源限制优化:
- 使用
setsid
运行守护进程,避免占用终端资源。 - 用
udhcpc
替代完整dhclient
,节省内存 200KB+。
- 使用
以上命令覆盖 BusyBox 嵌入式专用工具核心功能,完整支持列表可通过
busybox --list
验证。实际编译时请参考 BusyBox 官方配置指南。
更多推荐
所有评论(0)