【专家分享 】在Docker里玩转PetaLinux

作者: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

注意: 这里约定你的工作目录为n

1. 准备工作

1、安装docker

$sudo apt-get install docker-ce

2.、下载Github项目

$cd

$git clone https://github.com/alexhegit/

petalinux- v2018.2-docker

$cd /petalinux-v2018.2-docker

你将看到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安装文件官方下载页面

请将其放置在 /petalinux-182-docker-ubuntu/petalinux-v2018.2/目录下 https://www.xilinx.com/support/download/index.html/content/xilinx/en/dow...

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学术合作

最新文章