ZYNQ-Linux学习笔记(4)-修改使用emmc加载内核 Petalinux 2018.2

前言

板子上使用的是8G的emmc连接到sd1,首先要对emmc格式化,然后在修改petalinux kernel的保存位置,之后在生成boot.bin然后修改环境变量就可以了。

Step1: 格式化emmc

查看是否识别到当前的emmc,可以看到mmcblk1说明识别到了emmc

ls /dev

格式化emmc

mkdosfs -F 32 /dev/mmcblk1

查看所有磁盘的状态

df -h

查看所有磁盘的状态
ZYNQ-Linux学习笔记(4)-修改使用emmc加载内核 Petalinux 2018.2_第1张图片

Step2:导入内核

将在petalinux工程中生成的image.ub拷贝到U盘中
将USB插入到USB口,之后看到加载U盘,将image.ub拷贝到emmc中:

cp /run/media/sda1/image.ub /run/media/mmcblk1

注:如果在media中没有挂载sda1或者mmcblk1,就执行手动挂载

Step3:修改boot环境变量

重启,在执行到U-BOOT倒计时的时候按任意键暂停

reboot

查看当前的环境变量

printenv

如下所示,在bootcmd的命令中我们使用的默认的default_bootcmd,接下来我们修改这个默认的启动方式,修改成我们需要的emmc的启动方式。ZYNQ-Linux学习笔记(4)-修改使用emmc加载内核 Petalinux 2018.2_第2张图片
执行mmc dev 0:如果显示没有设备在0的接口上,就执行mmc dev 1,显示如下:

mmc dev 0

在这里插入图片描述
在mmc的1(part0)的端口上有device,确定了在哪个端口上有emmc之后,就可以修改环境变量了。

setenv my_emmc_boot "mmc dev 1:0 && load mmc 1:0 0x10000000 /image.ub && bootm 0x10000000"

再执行printenv,查看时候多了我们设置的这个my_emmc_boot这一条
在这里插入图片描述
这里注意几点,首先mmc dev 这个值是之前确定的那个端口,如果是0就应该是0,如果是1就应该是1。后面的load mmc 1:0 0x10000000 /image.ub这个语句表示从mmc设备1的0分区中将image.ub拷贝到ddr空间的0x10000000的位置。最后的bootm 0x10000000就是在这个位置启动内核。
修改完成后将bootcmd的命令修改成my_emmc_boot

setenv bootcmd "run my_emmc_boot" 

保存环境变量

saveenv

然后重启机器就可以通过emmc中的image.ub运行内核程序了。
重启之后看到打印:
在这里插入图片描述
说明正在从emmc中读取内核,修改成功。
联系方式:[email protected]

你可能感兴趣的:(ZYNQ-Linux学习笔记(4)-修改使用emmc加载内核 Petalinux 2018.2)