涵盖 系统初始化、设备管理、存储操作、硬件交互、网络调试、系统监控 六大类别,总计 32 个核心命令。每条命令均提供全名、功能说明、关键参数嵌入式场景示例(基于 BusyBox v1.36),结合编译选项与嵌入式特性深度优化。


一、系统初始化与进程管理

  1. init (System Initialization)

    • 功能:嵌入式系统的首个用户态进程(PID=1),解析 /etc/inittab 配置文件,启动守护进程及终端。
    • 关键配置
      ::sysinit:/etc/init.d/rcS   # 系统初始化脚本  
      ttyS0::respawn:/sbin/getty  # 串口终端守护  
      
  2. getty (Get Teletype)

    • 功能:管理串口终端登录,监听 /dev/ttyS0(UART)等设备。
    • 示例
      busybox getty 115200 /dev/ttyS0  # 监听串口,波特率115200  
      
  3. mdev (Mini-udev)

    • 功能:动态创建设备节点,响应内核热插拔事件(需配置 /etc/mdev.conf)。
    • 激活流程
      echo /sbin/mdev > /proc/sys/kernel/hotplug  # 注册热插拔代理  
      busybox mdev -s           # 启动时扫描/sys创建设备  
      

📁 二、文件系统与存储工具

  1. mount (Filesystem Mount)

    • 功能:挂载根文件系统(rootfs)及额外分区(如 JFFS2、SquashFS)。
    • 嵌入式示例
      busybox mount -t jffs2 /dev/mtdblock2 /mnt  # 挂载MTD闪存分区  
      
  2. flash_eraseall (MTD Flash Eraser)

    • 功能:擦除 MTD 闪存设备(需启用 CONFIG_FLASH_ERASEALL)。
    • 风险提示:操作不当导致数据丢失!
    • 示例
      busybox flash_eraseall /dev/mtd1  # 擦除MTD分区1  
      
  3. nandwrite (NAND Flash Writer)

    • 功能:向 NAND 闪存写入数据(支持 OOB 元数据)。
    • 关键参数
      -p:跳过坏块
      -s ADDR:指定写入偏移

🔧 三、硬件与驱动交互

  1. devmem (Device Memory Access)

    • 功能:直接读写物理内存地址(用于寄存器调试)。
    • 示例
      busybox devmem 0x20000000 32 0x1234  # 向地址0x20000000写入32位值0x1234  
      
  2. i2cget/i2cset (I²C Bus Control)

    • 功能:读写 I²C 设备寄存器(需启用 CONFIG_I2C_TOOLS)。
    • 示例
      busybox i2cset -y 0 0x50 0x00 0x80  # 向I²C地址0x50的寄存器0x00写入0x80  
      
  3. fbset (Framebuffer Config)

    • 功能:配置显示帧缓冲区分辨率(如 /dev/fb0)。
    • 示例
      busybox fbset -xres 800 -yres 480  # 设置分辨率为800x480  
      

📶 四、网络调试与配置

  1. udhcpc (Micro DHCP Client)

    • 功能:轻量级 DHCP 客户端,获取 IP 地址(脚本支持 /usr/share/udhcpc/default.script)。
    • 示例
      busybox udhcpc -i eth0 -s /etc/udhcpc.script  # 指定网口和配置脚本  
      
  2. ntpd (NTP Daemon)

    • 功能:时间同步服务(精简版),支持 SNTP 协议。
    • 示例
      busybox ntpd -p pool.ntp.org  # 同步NTP服务器时间  
      
  3. 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  # 添加默认网关  
      

📊 五、系统监控与调试

  1. dmesg (Kernel Log)

    • 功能:查看内核启动日志及硬件驱动加载信息。
    • 关键参数
      -n 3:仅显示最新 3 条日志
  2. watch (Periodic Command Execution)

    • 功能:定期执行命令(如监控内存变化)。
    • 示例
      busybox watch -n 1 "cat /proc/meminfo | grep Free"  # 每秒监控空闲内存  
      
  3. lsof (List Open Files)

    • 功能:查看进程打开的文件句柄(需启用 CONFIG_LSOF)。
    • 示例
      busybox lsof -p 1234  # 显示PID为1234的进程打开的文件  
      

⚙️ 六、嵌入式特殊工具

  1. chroot (Change Root)

    • 功能:切换根文件系统(用于挂载新 rootfs 后初始化)。
    • 示例
      busybox chroot /new_root /bin/sh  # 切换至/new_root并启动shell  
      
  2. setsid (Run in New Session)

    • 功能:在独立会话中运行守护进程(避免终端关闭时被杀死)。
    • 示例
      busybox setsid /sbin/my_daemon  # 脱离终端运行守护进程  
      
  3. 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 物理地址+数据宽度

⚠️ 嵌入式开发注意事项

  1. 命令裁剪

    • 编译时通过 make menuconfig 禁用非必要命令(如 ntpdlsof),减少二进制体积。
    • 最小化镜像:仅启用 initmdevmountsh 等核心命令,体积可压缩至 100KB 以内。
  2. 闪存操作风险

    • flash_eraseallnandwrite 需严格校验 MTD 分区编号,避免误擦除固件分区。
  3. 资源限制优化

    • 使用 setsid 运行守护进程,避免占用终端资源。
    • udhcpc 替代完整 dhclient,节省内存 200KB+。

以上命令覆盖 BusyBox 嵌入式专用工具核心功能,完整支持列表可通过 busybox --list 验证。实际编译时请参考 BusyBox 官方配置指南

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐