Docker 构建 PetaLinux 开发环境应用教程_第1页
Docker 构建 PetaLinux 开发环境应用教程_第2页
Docker 构建 PetaLinux 开发环境应用教程_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Docker构建PetaLinux开发环境应用教程0.背景0.1PetaLinux是什么PetaLinux是Xilinx推出的用于在其自家SoC上构建嵌入式Linux的一套工具集,集成了编译、调试、仿真等众多工具。0.2原有的搭建PetaLinux开发环境的方式有什么问题实验室的项目基于Xilinx的Zynq系列SoC开发,需要使用PetaLinux构建嵌入式Linux系统,第一步就是搭建开发环境。团队成员平时的主力系统是Windows,使用虚拟机的方式搭建Linux开发环境。搭建开发环境出现困难,或为节省时间的目的时会从其他成员那里复制搭建好环境的虚拟机。这些方式已产生或可能产生的问题可以总结如下:1.安装开发环境的依赖稍显复杂,且根据操作系统不同而异,新手不易搞定。安装过程没有被很好的文档化,团队成员重复劳动明显。2.统一操作系统版本困难。开发人员(现有成员、未来加入成员、项目其他团队的成员)可能使用着不同的Linux发行版和版本,因为他们可能有不同的喜好,版本上喜欢尝鲜或守旧,在既有系统上已经有顺手的开发工具和设置等等。而当大家希望统一开发环境或自行搭建失败时,往往选择复制整个虚拟机镜像。3.使用复制整个虚拟机的方式传递开发环境不够灵活。表现为:使用了一段时间后的虚拟机大小可能动辄四五十个GB,拷贝时间长,难以通过网络共享。为保留可回退的环境,可能为虚拟机添加快照,但这会进一步显著增加虚拟机的体积。传递虚拟机不仅传递了需要的开发环境,还传递了大量无用的软件和个人设置,难以兼顾不同开发者之间的习惯差异。对于不同项目、用途可能存在多个虚拟机,资源冗余很大。4.使用虚拟机性能表现差。主机配置不高时,使用虚拟机(可能会再虚拟机内运行IDE等其他开发工具)会经常卡顿,降低了开发效率。5.使用为某一开发环境而复制来的虚拟机,迁就其环境不愿再安装合适的开发工具(如IDE等)。0.3基于Docker的解决方案Docker作为在很多场景下虚拟机的替代方案备受瞩目,其资源消耗小、为单一应用配置环境、易于通过网络共享等特点很好的解决了上面提到的诸多问题。通过Docker来构建PetaLinux开发环境,我们可以获得以下优势:经过压缩的镜像体积只有1GB左右,方便网络传输。很容易再团队中统一开发环境,包括操作系统和各种库。Docker镜像的只读特性保证了有一个可回退的一致环境。开发环境中的依赖被Dockerfile清晰、明确的记录下来,具有很好的文档效应,方便团队长期共享和维护。Docker可以运行在之前的虚拟机的操作系统上,也可以运行在一个“精简”的操作系统上(如DockerforWindows的方式),还可以放到服务器上,运行多个容器供团队成员使用。这使得使用Linux环境的方式更加多样、灵活,且能减少虚拟机性能原因带来的影响现在理想很丰满,但现实中还需要经过一番探究和试验,下面就让我们开始。1.构建Docker镜像Docker的优势就在于我们可以使用“代码”来表示需要的环境,它既能描述环境,也能直接指导生成环境,这份“代码”就是Dockerfile。下面详细的记述了这份Dockerfile的每一部分,过程中遇到的问题、解决办法、注意事项等。关于Dockerfile,可以参考官方的Dockerfilereference1,以及BestpracticesforwritingDockerfiles2。1.1设置构建参数Dockerfile中允许使用ARG指令设置构建时参数,这些参数在Dockerfile中具有默认值,在构建时可以通过--build-arg参数指定新的值来覆盖默认值。这些参数可以在Dockerfile中被引用(引用方式与在shell中引用变量一样),但不会出现在最终的镜像里。注意一条ARG指令只能指定一个参数,这一点和ENV指令是不同的。这里我设置了两个参数如下:

ARGinstall_dir=/opt

ARGinstaller_url=:8000其中install_dir用来指定PetaLinux的安装路径,installer_url用来指定PetaLinux安装包的网络地址。如果安装包在互联网上,则这里是一个访问链接,如果安装包在本地,则这里被指定为Docker的默认网桥,通过它联通本地网络服务器和构建时的临时容器。关于这一部分,我会在后面详述。1.2设置环境变量通常情况下,PetaLinux使用一个设置脚本来添加自身的各项工具到环境变量中,在使用相关工具前需要通过source/settings.sh来执行脚本。但现在我要制作一个专属于PetaLinux的环境,完全可以把环境变量设置好来免去这个步骤。在Dockerfile中使用ENV指令来设置环境变量:

ENVPETALINUX_VER=2014.4\

PETALINUX=${install_dir}/petalinux-v2014.4-final

ENVPATH="${PETALINUX}/tools/linux-i386/arm-xilinx-gnueabi/bin:\

${PETALINUX}/tools/linux-i386/arm-xilinx-linux-gnueabi/bin:\

${PETALINUX}/tools/linux-i386/microblaze-xilinx-elf/bin:\

${PETALINUX}/tools/linux-i386/microb

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论