前段时间手头事情比较多,下班抽出点时间来研究研究MYD-C7Z010/20开发板,每次尝试都所收获。在此贴中,我将本人在使用Linux环境编译上遇到的问题与大家共同分享,希望能够对后续开发体验人员有所借鉴。关于搭建Linux环境我耗费了好长时间,可能是因为个人电脑比较老旧的原因,之前开发过海思的安防类产品,是基于Linux平台的,然而后面没有再继续从事基于Linux平台的项目开发,因此就将电脑里搭建好的Linux环境给卸载掉了。现在重新搭建,感觉走了不少坎坷之路。
首先第一次尝试,采用米尔官方提供的光盘中“03-Tools”文件夹下的VirtualBox工具与Ubuntu10.04系统文件来搭建Linux环境,虽然安装了VirtualBox增强工具,结果还是没法共享windows 7中的文件,只能强行地将文件夹Toolchain下的“Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux.tar.bz2”拖拽到Ubuntu10.04虚拟桌面上,结果再去执行tar命令,结果解压出来的文件没有gcc,导致后续设置交叉编译工具后,编译Uboot报未找到gcc编译器。以上总结是因为没有共享win7中的原始文件,生拉强拽会损坏.tar.bz2文件。
其次第二次尝试使用“VMware-workstation-full-10.0.7”与“ubuntu-16.04.3-desktop-amd64”搭建虚拟机开发环境,结果一开始就报"The Msi Failed",网上搜索解决良策,原来是因为之前的VMware没有卸载干净,正如附件中《VMware安装异常解决》中所述,然后根据网友的提示,删除注册表中含有VMware10软件的信息。结果很快顺利的装上了VMware10,但安装完ubuntu-16.04.3-desktop-amd64系统镜像后,仍然提示没法共享Win7系统文件,然后在网上下载了60M大小的linux.iso镜像,使用VMware10加载,VMware工具增强了,可以实现文件自由挂载、共享。但是编译Uboot时会报原始文件与当前的64位ubuntu不匹配,因此还得换成32位的ubuntu系统。
接着第三次搭建Linux环境,查阅网上相关资料,选择采用VMware Workstation 12 Pro的工具,搭配官方光盘中的Ubuntu10.04系统镜像,这才顺利的实现了与Win7文件共享,完美支持从windows中拷贝指令到Terminal终端中执行,这样工作的效率大大调高了。然后根据基于Linux开发手册指南,按部就班的操作,但是遇到了连不上相对应的远程服务器的问题,原来采用ubuntu-16.04.3-desktop-amd64系统镜像可以更新,但是采用官方光盘中的Ubuntu10.04系统镜像就不能更新,老是报error,超时,原本以为是VMware的网络适配器选择错了,但都是选择的桥接模式。后面在百度上搜索了相关问题,得知是因为Ubuntu10.04系统比较旧的原因,软件更新源过期无法再链接到官方指定的远程服务地址上,然后我在网上找到了解决办法的帖子,更换了source.list文件,其原始目录在“/etc/apt/”目录下,很快就能执行“sudo apt-get update”。source.list源码文件如下:
- #deb cdrom:[Ubuntu 10.04 LTS _Lucid Lynx_ - Release i386 (20100429)]/ lucid main restricted
- # See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
- # newer versions of the distribution.
- deb http://us.archive.ubuntu.com/ubuntu/ lucid main restricted
- deb-src http://us.archive.ubuntu.com/ubuntu/ lucid main restricted
- ## Major bug fix updates produced after the final release of the
- ## distribution.
- deb http://us.archive.ubuntu.com/ubuntu/ lucid-updates main restricted
- deb-src http://us.archive.ubuntu.com/ubuntu/ lucid-updates main restricted
- ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
- ## team. Also, please note that software in universe WILL NOT receive any
- ## review or updates from the Ubuntu security team.
- deb http://us.archive.ubuntu.com/ubuntu/ lucid universe
- deb-src http://us.archive.ubuntu.com/ubuntu/ lucid universe
- deb http://us.archive.ubuntu.com/ubuntu/ lucid-updates universe
- deb-src http://us.archive.ubuntu.com/ubuntu/ lucid-updates universe
- ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
- ## team, and may not be under a free licence. Please satisfy yourself as to
- ## your rights to use the software. Also, please note that software in
- ## multiverse WILL NOT receive any review or updates from the Ubuntu
- ## security team.
- deb http://us.archive.ubuntu.com/ubuntu/ lucid multiverse
- deb-src http://us.archive.ubuntu.com/ubuntu/ lucid multiverse
- deb http://us.archive.ubuntu.com/ubuntu/ lucid-updates multiverse
- deb-src http://us.archive.ubuntu.com/ubuntu/ lucid-updates multiverse
- ## Uncomment the following two lines to add software from the 'backports'
- ## repository.
- ## N.B. software from this repository may not have been tested as
- ## extensively as that contained in the main release, although it includes
- ## newer versions of some applications which may provide useful features.
- ## Also, please note that software in backports WILL NOT receive any review
- ## or updates from the Ubuntu security team.
- deb http://us.archive.ubuntu.com/ubuntu/ lucid-backports main restricted universe multiverse
- deb-src http://us.archive.ubuntu.com/ubuntu/ lucid-backports main restricted universe multiverse
- ## Uncomment the following two lines to add software from Canonical's
- ## 'partner' repository.
- ## This software is not part of Ubuntu, but is offered by Canonical and the
- ## respective vendors as a service to Ubuntu users.
- deb http://archive.canonical.com/ubuntu lucid partner
- deb-src http://archive.canonical.com/ubuntu lucid partner
- deb http://security.ubuntu.com/ubuntu lucid-security main restricted
- deb-src http://security.ubuntu.com/ubuntu lucid-security main restricted
- deb http://security.ubuntu.com/ubuntu lucid-security universe
- deb-src http://security.ubuntu.com/ubuntu lucid-security universe
- deb http://security.ubuntu.com/ubuntu lucid-security multiverse
- deb-src http://security.ubuntu.com/ubuntu lucid-security multiverse
- deb http://old-releases.ubuntu.com/ubuntu lucid main restricted universe multiverse
- deb http://old-releases.ubuntu.com/ubuntu lucid-security main restricted universe multiverse
- deb http://old-releases.ubuntu.com/ubuntu lucid-updates main restricted universe multiverse
- deb http://old-releases.ubuntu.com/ubuntu lucid-proposed main restricted universe multiverse
- deb http://old-releases.ubuntu.com/ubuntu lucid-backports main restricted universe multiverse
- deb-src http://old-releases.ubuntu.com/ubuntu lucid main restricted universe multiverse
- deb-src http://old-releases.ubuntu.com/ubuntu lucid-security main restricted universe multiverse
- deb-src http://old-releases.ubuntu.com/ubuntu lucid-updates main restricted universe multiverse
- deb-src http://old-releases.ubuntu.com/ubuntu lucid-proposed main restricted universe multiverse
- deb-src http://old-releases.ubuntu.com/ubuntu lucid-backports main restricted universe multiverse
- # deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted
- #deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
- #deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
- #deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
- #deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
- #deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
- #deb http://mirrors.aliyun.com/ubuntu/ xenial universe
- #deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
- #deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
- #deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
- #deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
- #deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
- #deb http://archive.canonical.com/ubuntu xenial partner
- #deb-src http://archive.canonical.com/ubuntu xenial partner
- #deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
- #deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
- #deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
- #deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
当然如果碰到“动态MMap没有空间了”提示,可以参考如下图所示的解决办法。更新完毕后再执行手册中提到的安装必要的工具指令,才能进行Uboot的编译,否则会报错。
必须更换软件更新源的链接说明如下:
只要更新问题解决,共享文件没有问题,后面就是一路凯歌,如下图所示,编译Uboot成功,编译内核成功
生成Uboot二进制文件,然后将它拷贝到“02-Images”文件夹目录下
编译内核信息如下
内核编译可能需要花点时间,我的电脑可能有点老旧,花了大约16分钟。最后内核编译成功,生成的二进制文件uImage以及dtb文件
然后将生成的可执行二进制文件,按照操作手册指南,拷贝到内存卡的根目录下,然后启动板卡,通过串口可以看到烧写的具体信息
当然如果我们将官方提供的Uboot二进制文件直接扔到内存卡的根目录下,板卡启动后就相当于执行了一段裸板程序,串口打印Hello world信息
https://v.youku.com/v_show/id_XNDQzNDE2MjAxNg==.html?spm=a2h3j.8428770.3416059.1
综上所述,MYD-C7Z010是一块工业级开发板,既能使用Vivado工具开发FPGA程序,又能使用Linux开发环境编译内核源码,不愧为FPGA+ARM的嵌入式开发板,板载资源非常丰富,如果配有触摸屏那就更好了,将有更多的功能,更好的UI界面可以体验。开发板配有相关的视频教程那更完美了,不过文档也介绍的比较详细。好了,此次评测就与大家分享到这里,后续再对MYD-C7Z010的外设存储进行深入了解,欢迎指点迷津,谢谢!