上一部分已经配置好了网络环境,我们要修改环境变量以保证开发板可以正常启动,uboot 环境变量中比较重要的环境变量就是 bootcmd 和 bootargs
目录
4、可能会产生的错误 Kernel panic - not syncing: VFS: xxx
1、修改自启动命令 — bootcmd
自启动命令就是开发板一上电就会运行的命令,开发板一上电会先获取 uboot,然后uboot引导开发板读取 linux 镜像文件、设备树文件、根文件系统rootfs。因此,bootcmd 的作用其实就是在自启动环节告诉 uboot 去哪找到上述文件。
从SD卡加载内核镜像、设备树文件
=> setenv bootcmd \
> mmc dev 0; \
> fatload mmc 0:1 80800000 zImage; \
> fatload mmc 0:1 83000000; \
> bootz 80800000 - 83000000;
| 命令 | 解析 |
| mmc dev 0 | mmc dev表示切换设备,0 表示 SD卡,1 表示 EMMC |
| fatload mmc 0:1 80800000 zImage | - fatload 用于加载 vfat 文件系统的文件 - mmc 表示外部存储器(说明要从外部存储器加载) - 0:1 表示SD卡上的第1分区(前者的 0 是设备编号,后者的 1 代表分区) - 80800000:表示要加载到DDR的哪个位置 - zImage:表示要加载分区中的哪个文件(文件名必须和SD卡中保存的文件名一致) |
| fatload mmc 0:1 83000000 imx6null.dtb | 加载SD卡中第一分区的 imx6null.dtb 文件,保存到DDR的0x83000000位置 |
| bootz 80800000 - 83000000 | bootz 与 bootm: · bootz 表示运行 zImage 内核文件, · bootm 表示运行 uImage 文件 原本的格式是“bootz 内核 根文件系统 设备树”,但是根文件系统以其他方式加载,所以使用“-” 填充 |

文章详细介绍了如何修改uboot的自启动命令bootcmd和参数bootargs,包括从SD卡和通过TFTP网络加载内核镜像和设备树文件。同时,讨论了bootargs中关于NFS根文件系统、IP地址设置及可能出现的错误和解决办法,强调了NFS协议版本匹配的重要性。
最低0.47元/天 解锁文章
9025

被折叠的 条评论
为什么被折叠?



