0
点赞
收藏
分享

微信扫一扫

【迅为iMX6Q】开发板:擦灰后再次开箱上电

炽凤亮尧 2022-02-27 阅读 56
linux

引言

  • 如今Linux技术算是高级嵌入式开发的标杆了,之前零零散散的学习,总感觉学的不够深入,加上工作的开发任务,目前主要是RTOS。
  • 技不压身,还是想继续打磨一下自己的软实力

Linux开发

  • 手头有几款Linux开发板,TQ2440、AT91SAM9261、全志A83T、iMX6Q,工作中主要接触过AT91SAM9x35与海思Hi3516的Linux开发,这款【迅为iMX6Q】开发板比较新,上次开箱两年前了,就跳过uboot,后来因为工作中没有Linux与Android,所以一直放在箱子里
  • 有时候觉得,干,直接干,会好很多,想太多,自己都会麻木,搞技术,就一句话:【干就完了】。

搜集资料

  • 通过之前购买开发板时进的群,找到开发板光盘的网盘地址,由于【百度】网盘手动限速,只好花钱节省下载时间,下载的主要是开发板的硬件、下载与编译工具、镜像文件、开发板手册等,源码,基本就是Android,后面再下载,先研究uboot、Linux,跑个根文件系统
  • 之前怎么下载的,印象不够深了,下载部分,还是需要看官方的开发板手册:
  • iTOP-i.MX6开发板之全能版使用手册_V2.6.pdf
  • 【北京迅为】iTOP-i.MX6开发板使用手册_v1.4.pdf
  • 再就是,通过之前【淘宝】的购买记录,查看开发板的内存大小:
1、迅为iMX6Q开发板飞思卡尔linux工业级ARM恩智浦安卓i.MX6DL核心板
2、显示屏:5寸电容屏核心板:四核商业级2G/16G底板类型:基本型
3、迅为开发板专用摄像头模块500万高清自动对焦摄像头模块
  • 注意1G与2G的内存,烧错镜像会引起开机异常

下载

  • 手头没有TF SD卡,就使用EMMC的方式下载,这部分参考开发板手册
  • 准备工作:
  • 开发板上有跳线,这里选择USB 下载模式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

怪现象

  • 下载Android镜像、Linux镜像,过程都挺正常,但是,烧写后,发现开发板没工作一样,串口没有任何的打印信息,即使跳线调到EMMC启动上,依旧不可以。
  • 但是在烧写过程中,串口是有打印信息的,所以,怀疑烧写的镜像可能有问题。

搭建开发环境

  • 首先搭建uboot的环境,让uboot先跑起来,至少串口有信息出来
  • 之前的虚拟机,因为占硬盘太大删掉了,所以这次使用上次买的【阿里云主机】的ubuntu系统开发
  • 需要使用开发板推荐的【交叉编译】:arm-2009q3.tar.bz2
解压交叉编译工具链到 /opt目录下
tar -xvjf arm-2009q3.tar.bz2 -C /opt/

设置环境变量:让 arm-none-linux-gnueabi-  系列生效
# vim ~/.bashrc 

在 bashrc 文件尾部,增加:
export PATH=$PATH:/opt/arm-2009q3/bin

让环境变量生效
# source ~/.bashrc 
  • 配置好arm的编译环境:
    在这里插入图片描述
  • 下载NXP的uboot,默认开发板没直接提供uboot、kernel等,给的是android整个源码,当然包含uboot与改过的内核,但是庞大的android,不利于快速的开发与研究
  • git clone https://source.codeaurora.org/external/imx/uboot-imx
  • 分支有新的,也有老的,这里我先切换到老点的分支,毕竟整个开发板,两年前的了
    git checkout -b imx_v2009.08_3.0.35_4.1.0 origin/nxp/imx_v2009.08_3.0.35_4.1.0

编译uboot

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-  distclean
make ARCH=arm mx6q_sabresd_config
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
  • 如果出现下面的错误,如开始使用ubuntu 默认的交叉编译器编译失败后,再使用:arm-none-linux-gnueabi-,会报下面的错误,
    arm-none-linux-gnueabi-ld: cannot find common/env_embedded.o

  • 解决方法:
    需要使用:make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- distclean 清理,再重新编译

默认编译的产物不好用

  • 烧写后,串口无打印,所以,接下来,需要先把串口调通,再把内存2G的配置好

小结

  • 再次开箱,还是遇到了一点点小麻烦,如无法开机(串口无打印),不过这正好激励去认真的研究与解决问题
  • 环境搭建与熟悉开发板,占用了较多的时间,但是,为了学习Linux,这都不算什么
举报

相关推荐

0 条评论