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

查看所有磁盘的状态
在这里插入图片描述

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的启动方式。在这里插入图片描述
执行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中读取内核,修改成功。
联系方式:839089604@qq.com

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

网布

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值