uboot环境下更新系统镜像和设备树

一、uboot的烧写

1、直接将uboot烧写到SD卡中

有点在于SD卡使用比较方便,体积小。前期学习使用比较方便。

2、直接将uboot烧写到EMMC中

优点在于不用使用SD卡当中间介质,使用USB直连直接往EMMC里烧写uboot。

二、uboot环境下更新系统镜像和设备树

搭建了服务器和客户端的连接之后,可以利用NFS或者TFTP将ubuntu上的文件下载到DRAM中。通过其他命令可以实现在线更新uboot和系统镜像以及设备树文件。

1、网络更新镜像和设备树

(1)将文件从服务器下载到本地DRAM中(使用TFTP)

TFTP命令格式:tftpboot [loadAddress] [[hostIPaddr:]bootfilename]

tftp 80800000 zImage
tftp 83000000 imx6ull-14x14-emmc-7-800x480-c.dtb

将服务器zImage镜像文件下载得到DRAM中地址80800000处。
这样启动系统时候就将启动下载的zImage系统镜像和设备树文件,可以理解成一个在线更改系统的操作。但是由于是下载到DRAM中,所以重启的时候镜像文件会继续从SD卡里复制镜像过去而不会对板子上原有系统造成影响。

(2)启动系统:

bootz 命令:bootz [addr [initrd[:size]] [fdt]]

bootz 80800000 - 83000000

2、EMMC更新镜像和设备树

(1)确认所需文件存在EMMC中

先使用命令 fatls 查看要下 EMMC的分区1中有没有Linux镜像文件和设备树文件,如果没有的话可以使用fatwrite命令将 从tftpboot 中下载到DRAM的 zImage 和 imx6ull-alientek-emmc.dtb 文件烧写到 EMMC 的分区 1 中。
切换到EMMC分区1:mmc dev 1:1
查看分区中有无所需文件:fatls mmc 1:1
从服务器下载镜像和设备树:

tftp 80800000 zImage
tftp 83000000 imx6ull-14x14-emmc-7-800x480-c.dtb

烧写文件到EMMC分区1:
zImage 文件大小:Bytes transferred = 6786368 (678d40 hex)
设备树文件大小:Bytes transferred = 38823 (97a7 hex)

fatwrite mmc 1:1 80800000 zImage 0x678d40 
fatwrite mmc 1:1 83000000 imx6ull-14x14-emmc-7-800x480-c.dtb 0x97a7 

(2)下载镜像和设备树到DRAM

首先看一下两个函数:

//两个命令的参数说明
 fatload <interface> [<dev[:part]> [<addr> [<filename> [bytes [pos]]]]]
 fatwrite <interface> <dev[:part]> <addr> <filename> <bytes>

如果我们要从 EMMC 中启动 Linux 系统的话只需要使用命令 fatload 将 zImage 和 imx6ull-alientek-emmc.dtb 从 EMMC 的分区 1 中拷贝到 DRAM 中,然后使用命令 bootz 启动即可。

fatload mmc 1:1 80800000 zImage
fatload mmc 1:1 83000000 imx6ull-14x14-emmc-7-800x480-c.dtb

(3)启动系统

bootz 80800000 - 83000000

总结

确认在启动介质里烧写了uboot后,根据需要选择通过网络或者EMMC、SD卡等本地存储介质下载设备树文件和系统镜像到DRAM相应地址最终,文件系统也可以通过一样的流程进行下载。

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
下面是在QEMU中模拟ARM开发板并使用U-Boot引导系统镜像进行系统移植的详细步骤: 1. 安装QEMU:首先,你需要安装QEMU模拟器。根据你的操作系统选择适合的版本,并按照官方文档的指导进行安装。 2. 获取ARM开发板固件:你需要获取一个ARM开发板的固件镜像,这包括U-Boot引导加载器和操作系统映像文件。通常可以从开发板供应商或开源社区获取这些镜像。 3. 创建虚拟机:打开终端或命令提示符窗口,运行以下命令来创建一个虚拟机实例,其中`path_to_uboot_image`是指向U-Boot镜像文件的路径,`path_to_kernel_image`是指向内核映像文件的路径,`path_to_rootfs_image`是指向根文件系统映像文件的路径: ``` qemu-system-arm -M <machine> -m <memory> -kernel <path_to_uboot_image> -dtb <path_to_dtb_file> -append "console=ttyAMA0" -sd <path_to_rootfs_image> ``` 其中,`machine`是指定要模拟的ARM开发板型号(例如`versatilepb`),`memory`是指定虚拟机的内存大小(例如`256M`),`path_to_dtb_file`是指向设备树二进制文件(DTB)的路径。 4. 启动虚拟机:运行上述命令后,QEMU将启动虚拟机,并加载U-Boot引导加载器。你将在终端或命令提示符窗口中看到U-Boot的输出信息。 5. 进行系统移植:一旦虚拟机启动成功,你可以在U-Boot的命令行界面中输入命令来配置和加载操作系统。你可能需要设置环境变量、加载内核映像和设备树,以及设置启动参数等。 6. 测试和调试:完成系统移植后,你可以在虚拟机中进行测试和调试。你可以运行应用程序,测试系统的功能和性能。 需要注意的是,U-Boot的配置和使用可能因不同的开发板和需求而有所不同。确保阅读U-Boot的文档以了解更多配置和使用细节。 希望这些详细步骤能够帮助你在QEMU中模拟ARM开发板,并使用U-Boot引导系统镜像进行系统移植。如果你有任何进一步的问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值