作者:Alex He,Xilinx 嵌入式技术专家
Xilinx 嵌入式技术专家 Alex He 与大家分享在Docker里玩转PetaLinux的上手教程~
PetaLinux
PetaLinux是Xilinx推出的针对Zynq Soc, Zynq MPSOC嵌入式开发板的基于Yocto二次封装的Linux BSP构建工具,支持Ubuntu/CentOS/RedHat等多个版本。通常,我们都是将其直接安装在所支持的Linux OS中。
Docker
Docker 利用Linux核心中的资源分离机制来创建独立的软件容器,具有轻量级的、可移植的、自包含等特点。
关于Docker的原理和基本应用方法网上已经有很多文章,相信很多读者也或多或少有些使用经验。官方网站 https://www.docker.com/ 提供了第一手的信息,相信你很快就能上手。
Combined Advantages
高效部署
通常,我们都是将PetaLinux其直接安装在所支持的Linux OS中。但对于某些客户基于云端服务器的安装部署需求,我们可以利用Docker实现单服务器上运行多个相同或者不同版本的Linux发行版,并构建相应的petalinux开发环境。
相互隔离
Docker带来的另一个好处是各个容器之间及HOST端都是相互隔离。此外,目前docker也已经获得Windows和Mac的支持,这进一步丰富了在不同OS上构建petalinux开发环境的可能性。
Getting Started
这里我将介绍在Ubuntu 16.04上通过Docker安装基于Ubuntu 16.04 Docker image的petalinux v2018.2的开发环境。通俗说就是大娃套小娃的意思。
下面,我们将借助Dockerfile来build一个ubuntu 16.04 docker image并基于将petalinux v2018.2安装完成。为了方便大家操作,我创建了一个github项目来作为范本来帮助大家实践。
Github项目: https://github.com/alexhegit/petalinux-v2018.2-docker
注意: 这里约定你的工作目录为
1. 准备工作
1、安装docker
$sudo apt-get install docker-ce
2.、下载Github项目
$cd
$git clone https://github.com/alexhegit/
petalinux- v2018.2-docker
$cd
你将看到clone好的项目目录结构是这样的。
── docker_run_plnx_182.sh
//运行container的范例脚本
── petalinux-182-docker-ubuntu
│ ── build_docker.s
//构建docker image的范例脚本
│ ── default.env
//放置container的初始环境变量
│ ── Dockerfile
//Docker image的构建文件
│ ── File-Tail-1.3.tar.gz
//plnx_installer.pl的运行支持文件
│ ── petalinux-v2018.2
//放置petalinux安装文件目录
│ ── petalinux-v2018.2_bsps
//放置BSP的目录
│ └── plnx_installer.pl
//自动安装petalinux的perf脚本
└── README.md
3、下载petalinux安装文件官方下载页面
请将其放置在
4、下载petalinux BSP v2018.2 file(e.g. xilinx-zcu102-v2018.2-final.bsp)官方下载页面。 https://www.xilinx.com/support/download/index.html/content/xilinx/en/dow...
2. 基于Dockerfile构建Docker image
1、切换到包含Dockerfile的子目录(./petalinux-182-docker-ubuntu)
2、构建Docker image
*注意* Dockerfile范本中设置了网络代理(proxy), 这个需要读者根据具体环境要求自行修改。
$sudo docker build ./ --network=host --build-arg version=2018.2 --build-arg date_created=1110 -t petalinux-182-ubuntu:test
Docker会依据Dockerfile的步骤定义完成基于ubuntu 16.04的image整个petalinux v2018.2的开发环境。此外,还创建了一个用户plnx_user用于用户登录运行petalinux。
build_docker.sh 是一个脚本范例。
3. 运行容器
$sudo docker run --name petalinux-2018.2 --user=plnx_user --entrypoint=/bin/bash -it -v /home/ahe/PLNX_WS/:/home/plnx_user/PLNX_WS petalinux-182-ubuntu:test
示例命令将Host端的目录/home/ahe/PLNX_WS/ 映射到容器中的/home/plnx_user/PLNX_WS/目录,并以plnx_user用户名登录进入容器。
4. 在容器中创建一个petalinux项目
登录到容器后,构建petalinux项目的方法和Host上无异,具体可以参考petalinux用户手册UG1144和UG1157.
个人建议将你的项目创建在/home/plnx_user/PLNX_WS/目录下,这样在Host端也可以访问到项目文件。
点击访问本工程Github页面: https://github.com/alexhegit/petalinux-v2018.2-docker
文章转载自:Xilinx学术合作