以下是U-Boot中 最常用的核心命令 分类整理,涵盖硬件操作、启动配置、网络调试等场景:
一、基础命令
命令 | 功能说明 | 示例 |
---|
help 或 ? | 列出所有可用命令 | help |
version | 显示U-Boot版本和编译信息 | version |
reset | 重启设备 | reset |
ping | 测试网络连通性 | ping 192.168.1.1 |
二、环境变量操作
命令 | 功能说明 | 示例 |
---|
printenv | 打印所有环境变量 | printenv |
printenv <name> | 打印指定变量值 | printenv bootdelay |
setenv <name> <value> | 设置环境变量 | setenv bootcmd 'run myboot' |
saveenv | 保存环境变量到存储介质(如Flash) | saveenv |
三、存储设备操作
1. MMC/SD卡
命令 | 功能说明 | 示例 |
---|
mmc dev <num> | 切换MMC设备(如SD卡、eMMC) | mmc dev 0 |
mmc list | 列出所有MMC设备 | mmc list |
ext4load <interface> <dev>:<part> <addr> <file> | 从EXT4分区加载文件到内存 | ext4load mmc 0:1 0x40000000 /boot/Image |
2. USB
命令 | 功能说明 | 示例 |
---|
usb start | 初始化USB控制器 | usb start |
usb info | 显示USB设备信息 | usb info |
fatload usb <dev>:<part> <addr> <file> | 从USB的FAT分区加载文件 | fatload usb 0:1 0x40000000 /uImage |
3. NAND
命令 | 功能说明 | 示例 |
---|
nand info | 显示NAND闪存信息 | nand info |
nand read <addr> <chip_offset> <size> | 从NAND读取数据到内存 | nand read 0x40000000 0x0 0x100000 |
四、网络操作
命令 | 功能说明 | 示例 |
---|
tftpboot <addr> <file> | 通过TFTP从服务器加载文件到内存 | tftpboot 0x40000000 Image |
nfs <addr> <host_path> | 通过NFS挂载远程目录到内存地址 | nfs 0x40000000 192.168.1.100:/export/rootfs |
dhcp | 通过DHCP获取IP地址 | dhcp |
五、内存操作
命令 | 功能说明 | 示例 |
---|
md <addr> | 显示内存内容(十六进制) | md 0x40000000 |
mw <addr> <value> | 向内存写入数据 | mw 0x40000000 0x12345678 |
cmp <addr1> <addr2> <len> | 比较两块内存内容 | cmp 0x40000000 0x50000000 0x100 |
六、内核启动相关
命令 | 功能说明 | 示例 |
---|
bootm <addr> | 启动传统ARM内核(zImage) | bootm 0x40000000 |
booti <addr> | 启动ARM64内核(Image) | booti 0x40000000 |
bootz <addr> | 启动zImage(带设备树) | bootz 0x40000000 - 0x50000000 |
fdt addr <addr> | 指定设备树地址 | fdt addr 0x50000000 |
七、调试与测试
命令 | 功能说明 | 示例 |
---|
dcache | 启用/禁用数据缓存 | dcache on |
icache | 启用/禁用指令缓存 | icache off |
mmc test | 测试MMC设备读写 | mmc test 0 |
loop <n> | 无限循环(用于调试) | loop 1000000 |
八、安全相关
命令 | 功能说明 | 示例 |
---|
sign | 生成或验证镜像签名 | sign image.bin key.pem |
auth | 验证镜像签名 | auth image.bin |
使用技巧
- 命令缩写:大部分命令支持缩写(如
printenv
→ print
)。 - 自动补全:按 Tab键 补全命令或文件名。
- 历史记录:按 上下箭头 回溯历史命令。
- 脚本支持:通过
source <script>
执行命令脚本。
注意事项
- 权限:部分命令(如
saveenv
)需管理员权限。 - 版本差异:不同U-Boot版本支持的命令可能不同,建议通过
help
确认。 - 硬件依赖:如
mmc
命令需硬件支持SD/MMC控制器。
通过掌握这些命令,您可以高效调试U-Boot启动流程、修改启动配置或修复系统故障。