帮助
help或? 查看支持的命令
uboot也支持Tab自动补全
查询
bdinfo 查看板子信息
printenv 输出环境变量信息
version 查看uboot版本
环境变量
设置环境变量
setenv 环境变量 value 设置某个环境变量的值为value
saveenv 保存设置好的环境变量
tip:
setenv boottargs 'console=ttymxc0,115200 root=/dev/mmcblklp2 rootwait rw'
saveenv
当要修改的环境变量中有多组值时,值与值之间用逗号分开,且被单引号括住
环境变量都是字符串变量
新建环境变量
setenv author wangxi
saveenv
删除环境变量
setenv author
saveenv
内存操作
显示内存值
md[.b/.w/.l] address [#of objects]
.b : byte 1字节
.w : word 2字节
.l : long 4字节
address : 查看的内存起始位置
[#of objects]要查看的数据个数(16进制)
修改内存值
nm[.b/.w/.l] address
然后在返回信息中的问号后面写入想要保存的数值
q退出
mm[.b/.w/.l] address
连续修改一片地址,修改时address会自增
q退出
mw[.b/.w/.l] address value [count]
使用一个指定的数据填充一段内存
cp[.b/.w/.l] source_address target_address count
数据拷贝
cmp[.b/.w/.l] addr1 addr2 count
比较两段内存的数据是否相等
网络操作
【正点原子】I.MX6U网络环境TFTP&NFS搭建手册V1.0.pdf
https://blog.csdn.net/polaris_zgx/article/details/103571725
http://www.openedv.com/thread-318739-1-1.html
网络设置
https://www.bilibili.com/video/BV1k5411p7LB/
- 设置WLAN分享至以太网接口
- 设置虚拟机Vm0接口为桥连模式连接以太网网卡Real….
- 设置虚拟机网络适配器为自定义模式接Vm0
- 设置开发板ip地址同以太网为一个段内
- 设置开发板网关为以太网ip
- 设置开发板连接主机地址为Ubuntu的ip地址
设置变量
需要将开发板的网口与电脑或路由器连接
相关的环境变量
ipaddr | 开发板ip地址,可以不设置,使用dhcp命令从路由器获取IP地址 |
---|---|
ethaddr | 开发板的MAC地址,一定要设置 |
gatawayip | 网关地址 |
netmask | 子网掩码 |
serverip | 服务器IP地址,也就是Ubuntu主机地址,用于调试代码 |
设置举例:
setenv ipaddr 192.168.1.50
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.250
saveenv
接通验证
ping 服务器IP地址
注意!只能在 uboot 中 ping 其他的机器,其他机器不能 ping uboot,因为 uboot 没有对 ping 命令做处理
获取地址
dhcp
如果选择路由器连接,从路由器获取IP地址,如果与电脑连接,此命令无效
直接读取到IP地址
还会出现Warning等字样
是因为dhcp不仅获取IP地址,还会通过TFTP启动内核
分享资源
nfs
nfs网络文件系统
用途:通过nfs在计算机之间通过网络分享资源
比如将linux镜像和设备树文件存放到Ubuntu
在U-boot中使用nfs命令将Ubuntu的两个文件下载到开发板的DRAM中,方便调试
网络调试速度更快
使用前需要Ubantu开启NFS服务,并新建一个NFS目录
nfs [loadAddress] [[hostIPaddr]bootfilename]
loadAddress : 要保存的DRAM地址
[[hostIPaddr]bootfilename] : 要下载的主机地址、文件地址
tip:
nfs 80800000 192.168.1.250:/home/XI/linux/nfs/zImage
tftp
或者
也可以使用tftp命令
功能相同,只不过使用的是TFTP协议
需要在Ubuntu上搭建TFTP服务器,需要安装 tftp-hpa 和 tftpd-hpa
sudo apt-get install tftp-hpa tftpd-hpa
sudo apt-get install xinetd
也需要一个文件夹存放文件
mkdir /home/XI/linux/tftpboot
chmod 777 /home/zuozhongkai/linux/tftpboot
这里需要给tftpboot文件夹权限
配置tftp
新建文件 /etc/xinetd.d/tftp
如果没有路径,可以自行创建
输入内容
server tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /home/zuozhongkai/linux/tftpboot/
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
启动tftp服务
sudo service tftpd-hpa start
打开 /etc/default/tftpd-hpa 文件,修改为以下内容
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/XI/linux/tftpboot"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="-l -c -s"
重启tftp服务器
sudo service tftpd-hpa restart
tftp服务器搭建完成
传输文件
将zImage镜像文件拷贝到tftpboot文件夹中,并给予文件权限
cp zImage /home/zuozhongkai/linux/tftpboot/
cd /home/zuozhongkai/linux/tftpboot/
chmod 777 zImage
uboot中的tftp命令格式
tftpboot [loadAddress] [[hostIPaddr:]bootfilename]
tftp 80800000 zImage
如果出现错误,一般是未给予文件相应的权限
EMMC/SD卡
两者可以认为是一个东西
uboot认定为MMC设备
mmc info 输出MMC设备信息
mmc read 读取MMC中的数据到DRAM
mmc read addr blk# cnt addr为DRAM的地址,blk从EMMC的第几块开始,cnt读取块数
mmc write 从DRAM向MMC中写数据
mmc write addr blk# cnt 可以用来升级U-boot,通过nfs下载u-boot.bin到DRAM,然后写到MMC
mmc rescan 扫描MMC设备
mmc part 列出MMC设备的分区
mmc dev 切换MMC设备
mmc dev 0 0 切换到 SD 卡(0为SD卡,1为eMMC)分区 0
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
在uboot中对SD卡或EMMC中存储的文件操作
fatinfo <interface> [<dev[:part]>]
查询指定MMC设置指定分区的文件系统信息
interface 表示接口,比如mmc
dev 是查询的设备号
part 是要查询的分区
exp: fatinfo mmc 1:1
fatls <interface> [<dev[:part]>] [directory]
查询FAT格式设备的目录和文件信息
fstype <interface> <dev>:<part>
用于查看MMC设备某个分区的文件系统格式
fatload <interface> [<dev[:part]> [<addr> [<filename> [bytes [pos]]]]]
用于将指定的文件读取到DRAM中
exp: fatload mmc 1:1 80800000 zImage
fatwrite <interface> <dev[:part]> <addr> <filename> <bytes>
用于将 DRAM 的数据写入到 MMC 设备中