Uboot命令
U-boot指令
help:查看命令帮助
? xxx或者help xxx查看命令的帮助
信息查询
bdinfo:查看板子信息
printenv:打印环境变量信息
version:查看uboot版本号
对环境变量操作
修改环境变量
setenv <环境变量名> <环境变量内容>:设置环境变量(没有则是新建,内容为空则是删除)
saveenv:保存环境变量
内存操作命令
- md[.b, .w, .l] <要查看的首地址> <要查看的长度>:.b/w/l代表要以byte/word/long word为单位查看,首地址和长度均以16进制为准,但是不必写“0x”
- nm [.b, .w, .l] <要修改的地址>
- 回车后显示<要修改的地址> : <当前地址的数据> ?
- 在?后输入修改后的数据回车即可 输入q回车退出
- 与mm类似,使用mm的时候地址会自增 可以连续修改 而nm不自增
- mw [.b, .w, .l] <要修改的地址> <要填充的数据> <填充个数>:批量修改数据
- cp [.b, .w, .l] <要拷贝的源地址> <要拷贝的目的地址> <要拷贝的个数> :从源地址向目的地址拷贝对应个数的数据
- cmp [.b, .w, .l] <要比较的源地址> <要比较的目的地址> <要比较的个数> : 对比源地址和目的地址对应个数的数据,返回相同的个数
网络操作命令
-
setenv ipaddr 192.168.1.188
setenv ethaddr 00:04:9f:04:d2:35
setenv gatewayip 192.168.1.1
setenv netmask 255.255.255.0
setenv serverip 192.168.1.119
saveenv -
ping 192.168.1.119
注意!只能在 uboot 中 ping 其他的机器,其他机器不能 ping uboot,因为 uboot 没有对 ping命令做处理,如果用其他的机器 ping uboot 的话会失败!
- dhcp [loadAddress] [[hostIPaddr:]bootfilename]
DHCP 不单单是获取 IP 地址,其还会通过 TFTP 来启动 linux 内核
-
nfs(Network File System)网络文件系统
nfs [loadAddress] [[hostIPaddr:]bootfilename]
板子的nfs可能和Ubuntu的nfs版本不匹配 详见:https://blog.csdn.net/polaris_zgx/article/details/103571725
同时要关闭防火墙!!!!!!sudo ufw disable然后重启
-
tftp 命令 tftpboot [loadAddress] [[hostIPaddr:]bootfilename]
tftp文件夹和下属文件都要赋予777权限 不然不能使用
EMMC和SD卡操作命令
mmc info | 输出 MMC 设备信息 |
---|---|
mmc read | 读取 MMC 中的数据。 |
mmc wirte | 向 MMC 设备写入数据。 |
mmc rescan | 扫描 MMC 设备。 |
mmc part | 列出 MMC 设备的分区 |
mmc dev | 切换 MMC 设备。 |
mmc list | 列出当前有效的所有 MMC 设备。 |
mmc hwpartition | 设置 MMC 设备的分区。 |
mmc bootbus…… | 设置指定 MMC 设备的 BOOT_BUS_WIDTH 域的值。 |
mmc bootpart…… | 设置指定 MMC 设备的 boot 和 RPMB 分区的大小。 |
mmc partconf…… | 设置指定 MMC 设备的 PARTITION_CONFG 域的值 |
mmc rst | 复位 MMC 设备 |
mmc setdsr | 设置 DSR 寄存器的值。 |
FAT格式文件系统操作命令
- fatinfo
[<dev[:part]>] 用于查询指定 MMC 设置指定分区的文件系统信息 - interface 表示接口,比如 mmc, dev 是查询的设备号, part 是要查询的分区。比如我们要查询 EMMC 分区 1 的文件系统信息
- fatls
[<dev[:part]>] [directory] 用于查询 FAT 格式设备的目录和文件信息 - interface 是要查询的接口,比如 mmc,dev 是要查询的设备号,part 是要查询的分区,directory
是要查询的目录
- interface 是要查询的接口,比如 mmc,dev 是要查询的设备号,part 是要查询的分区,directory
- fstype
: 用于查看 MMC 设备某个分区的文件系统格式 - fatload
[<dev[:part]> [ [ [bytes [pos]]]]] 用于将指定的文件读取到 DRAM 中 - interface 为接口,比如 mmc, dev 是设备号, part 是分区, addr 是保存在 DRAM 中的起始地址, filename 是要读取的文件名字。
- fatwrite
<dev[:part]> 用于将 DRAM 中的数据写入到 MMC 设备中 - interface 为接口,比如 mmc, dev 是设备号, part 是分区, addr 是要写入的数据在 DRAM
中的起始地址, filename 是写入的数据文件名字, bytes 表示要写入多少字节的数据
- interface 为接口,比如 mmc, dev 是设备号, part 是分区, addr 是要写入的数据在 DRAM
EXT格式文件系统操作命令
ext2load、 ext2ls、 ext4load、 ext4ls 和 ext4write。这些命令的含义和使用与 fatload、 fatls 和 fatwrit一样,只是 ext2 和 ext4 都是针对 ext 文件系统的。
BOOT操作命令
-
bootz
- bootz 命令用于自动 zImage 镜像文件, bootz 命令格式如下
- bootz [addr [initrd[:size]] [fdt]]
- addr 是 Linux 镜像文件在 DRAM 中的位置, initrd 是 initrd 文件在DRAM 中的地址,如果不使用 initrd 的话使用‘-’代替即可, fdt 就是设备树文件在 DRAM 中的地址
- bootz 命令用于自动 zImage 镜像文件, bootz 命令格式如下
-
bootm
- bootm 和 bootz 功能类似,但是 bootm 用于启动 uImage 镜像文件
- bootm addr addr 是 uImage 镜像在 DRAM 中的首地址
- 如果要使用设备树,那么 bootm 命令和 bootz 一样
- bootm 和 bootz 功能类似,但是 bootm 用于启动 uImage 镜像文件
-
boot
-
boot 命令也是用来启动 Linux 系统的,只是 boot 会读取环境变量 bootcmd 来启动 Linux 系统, bootcmd 是一个很重要的环境变量!
-
比如我们要想使用 tftp 命令从网络启动 Linux 那么就可以设置 bootcmd 为
-
setenv bootcmd 'tftp 80800000 zImage; tftp 83000000 imx6ull-alientek-emmc.dtb; bootz 80800000 - 83000000' saveenv boot
-
-
如果想从 EMMC 启动那就设置 bootcmd 为
-
setenv bootcmd 'fatload mmc 1:1 80800000 zImage; fatload mmc 1:1 83000000 imx6ullalientek_emmc.dtb; bootz 80800000 - 83000000' savenev boot
-
-
其他常用命令
- reset:复位重启
- go addr [arg ...] :用于跳到指定的地址处执行应用
- run 命令用于运行环境变量中定义的命令,比如可以通过“run bootcmd”来运行 bootcmd 中的启动命令,但是 run 命令最大的作用在于运行我们自定义的环境变量。
- mtest [start [end [pattern [iterations]]]] 是一个简单的内存读写测试命令,可以用来测试自己开发板上的 DDR
- start是要测试的 DRAM 开始地址,end 是结束地址,比如我们测试 0X80000000~0X80001000这段内存,输入“mtest 80000000 80001000”