移植NXP官方uboot 4.1.15_2.1.0到ALIENTEK-ALPHA开发板(四) -----uboot启动Linux内核测试

1. 从EMMC启动Linux内核

从EMMC中启动Linux内核的前提是EMMC中烧写了系统,使用mfgtool工具烧写ALIENTEK-ALPHA开发板提供的系统,由于ALIENTEK-ALPHA(EMMC版本)开发板出厂已经将zImage和设备树文件保存在EMMC中,因此可以直接读取测试。

1.1. 查看EMMC中是否存在系统

1. 查看EMMC中是否存在系统,首先需要知道系统放在在EMMC中哪个分区里面,EMMC分了3个分区:第一个分区存放uboot(mmcb1k1p1)第二个分区被格式化为fat文件系统存放zImage和设备树文件(mmcb1k1p2);第三个分区存放根文件系统(mmcb1k1p3)。使用命令mmc dev 1先将设备切换到EMMC,结果如下图所示:
在这里插入图片描述
2. 使用命令fatls mmc 1:1查看EMMC分区1里面的文件,结果如下图所示:
在这里插入图片描述
从上图可以看出EMMC分区1中存放zImage和设备树这两个文件,因此我们可以测试新移植的uboot能否启动Linux内核。

1.2. 下载zImage镜像文件和设备树文件到DDR中

1.使用fatload mmc 1:1 0x80800000 zimage将zimage镜像文件下载到DDR的0x80800000处,结果如下图所示:
在这里插入图片描述
2.使用fatload mmc 1:1 0x83000000命令将设备树文件下载到DDR的0x83000000处,结果如下图所示:
在这里插入图片描述

1.3. 启动Linux内核

使用bootz 0x80800000 - 0x83000000命令启动Linux内核,结果如下图所示:
在这里插入图片描述
Linux kernel启动成功。

2. 从网络启动Linux内核

2.1. 拷贝Linux镜像和设备树文件到tftpboot目录

可以设置从网络启动Linux内核,就是将Linux镜像文件、设备树和根文件系统放到Ubuntu下某个指定的文件夹中,这样每次重新编译Linux内核或这某个Linux驱动,只需要使用cp命令将其拷贝到这个指定的文件夹中即可,这样就不用频繁的烧写EMMC加快开发速度。可以通过nfs或者tftp从Ubuntu中下载zImage镜像文件和设备树文件,根文件系统也可以通过nfs挂载。从网络启动Linux内核是使用tftp从Ubuntu中下载zImage和设备树文件,将zImage和设备树文件存放到Ubuntu下的tftp目录中。tftp目录中存放的zImage和设备树文件如下图所示:
在这里插入图片描述

2.2. 下载Linux镜像和设备树文件到DDR中

1.将ALIENTEK-ALPHA开发板ENET2网络接口连接和Ubuntu主机连接到同一个路由器,打开SecureCRT软件,测试ENET2网络,测试过程如下图所示:
在这里插入图片描述
2.使用tftp 80800000 zImage命令将Linux镜像文件下载到DDR中,测试结果如下图所示:
在这里插入图片描述
使用tftp命令从Ubuntu中下载文件的时候会出现如上图所示的错误提示“TFTP error: ‘Permission denied’ (0)”这样的错误提示,提示没有权限,出现这个错误一般有两个原因:
①、在Ubuntu中创建 tftpboot目录的时候没有给予tftboot相应的权限。
②、tftpboot目录中要下载的文件没有给予相应的权限。
针对上述两个问题,使用命令“chmod 777 xxx”来给予权限,其中“xxx”就是要给予权限的文件或文件夹。 更改tftpboot目录即目录下文件的权限操作如下图所示:

在这里插入图片描述
设置完tftpuboot目录及目录下文件权限后,重新使用tftp 80800000 zImage命令下载Linux镜像文件到DDR中,结果如下图所示:
在这里插入图片描述
3.使用tftp 83000000 imxull-14x14-emmc-4.3-800x400-c.dtb命令将设备树文件下载到DDR中,测试结果如下图所示:
在这里插入图片描述

2.3. 启动Linux内核

使用bootz 0x80800000 - 0x83000000命令启动Linux内核,启动过程如下图所示:
在这里插入图片描述
内核启动完成后,观察ALIENTEK-ALPHA开发板4.3寸LCD显示屏显示正点原子Log,如下图所示:
在这里插入图片描述

3. 从网络启动Linux内核

四篇博文介绍了将uboot移植到ALIENTEK-ALPHA开发板的过程,总结下uboot的移植过程:做Linux开发板的厂商基本上都是参考半导体厂商的demo板,半导体厂商会在他们官方的开发板上移植好uboot、Linux kernel和rootfs等,最终制作成BSP包提供给用户,而且此BSP包也在不断更新,因此我们移植uboot时通常都是基于官方的demo板子进行改动添加自己的板子,一般uboot移植需要解决串口、NAND、EMMC、SD卡、网络、USB和LCD驱动,uboot主要作用就是启动Linux内核,因此不需要考虑太多的外设驱动。在uboot中添加自己的板子信息,对照半导体厂商的demo板子根据自己的实际情况修改uboot中的驱动适配自己的板子。
总结下移植uboot时都需要修改那些文件,修改的文件如下图所示(图中灰色部分为NXP官方mx6ullevk开发板的相关文件,黄色部分为复制官方灰色文件在此文件上修改适配ALIENTEK-ALPHA开发板):

在这里插入图片描述

  • 16
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值