作者:Alex He,Xilinx 嵌入式技術(shù)專家
Xilinx 嵌入式技術(shù)專家 Alex He 與大家分享在Docker里玩轉(zhuǎn)PetaLinux的上手教程~
PetaLinux
PetaLinux是Xilinx推出的針對(duì)Zynq Soc, Zynq MPSOC嵌入式開發(fā)板的基于Yocto二次封裝的Linux BSP構(gòu)建工具,支持Ubuntu/CentOS/RedHat等多個(gè)版本。通常,我們都是將其直接安裝在所支持的Linux OS中。
Docker
Docker 利用Linux核心中的資源分離機(jī)制來(lái)創(chuàng)建獨(dú)立的軟件容器,具有輕量級(jí)的、可移植的、自包含等特點(diǎn)。
關(guān)于Docker的原理和基本應(yīng)用方法網(wǎng)上已經(jīng)有很多文章,相信很多讀者也或多或少有些使用經(jīng)驗(yàn)。官方網(wǎng)站 https://www.docker.com/ 提供了第一手的信息,相信你很快就能上手。
Combined Advantages
高效部署
通常,我們都是將PetaLinux其直接安裝在所支持的Linux OS中。但對(duì)于某些客戶基于云端服務(wù)器的安裝部署需求,我們可以利用Docker實(shí)現(xiàn)單服務(wù)器上運(yùn)行多個(gè)相同或者不同版本的Linux發(fā)行版,并構(gòu)建相應(yīng)的petalinux開發(fā)環(huán)境。
相互隔離
Docker帶來(lái)的另一個(gè)好處是各個(gè)容器之間及HOST端都是相互隔離。此外,目前docker也已經(jīng)獲得Windows和Mac的支持,這進(jìn)一步豐富了在不同OS上構(gòu)建petalinux開發(fā)環(huán)境的可能性。
Getting Started
這里我將介紹在Ubuntu 16.04上通過(guò)Docker安裝基于Ubuntu 16.04 Docker image的petalinux v2018.2的開發(fā)環(huán)境。通俗說(shuō)就是大娃套小娃的意思。
下面,我們將借助Dockerfile來(lái)build一個(gè)ubuntu 16.04 docker image并基于將petalinux v2018.2安裝完成。為了方便大家操作,我創(chuàng)建了一個(gè)github項(xiàng)目來(lái)作為范本來(lái)幫助大家實(shí)踐。
Github項(xiàng)目: https://github.com/alexhegit/petalinux-v2018.2-docker
注意: 這里約定你的工作目錄為n
1. 準(zhǔn)備工作
1、安裝docker
$sudo apt-get install docker-ce
2.、下載Github項(xiàng)目
$cd
$git clone https://github.com/alexhegit/
petalinux- v2018.2-docker
$cd /petalinux-v2018.2-docker
你將看到clone好的項(xiàng)目目錄結(jié)構(gòu)是這樣的。
── docker_run_plnx_182.sh
//運(yùn)行container的范例腳本
── petalinux-182-docker-ubuntu
│ ── build_docker.s
//構(gòu)建docker image的范例腳本
│ ── default.env
//放置container的初始環(huán)境變量
│ ── Dockerfile
//Docker image的構(gòu)建文件
│ ── File-Tail-1.3.tar.gz
//plnx_installer.pl的運(yùn)行支持文件
│ ── petalinux-v2018.2
//放置petalinux安裝文件目錄
│ ── petalinux-v2018.2_bsps
//放置BSP的目錄
│ └── plnx_installer.pl
//自動(dòng)安裝petalinux的perf腳本
└── README.md
3、下載petalinux安裝文件官方下載頁(yè)面
請(qǐng)將其放置在 /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)官方下載頁(yè)面。 https://www.xilinx.com/support/download/index.html/content/xilinx/en/dow...
2. 基于Dockerfile構(gòu)建Docker image
1、切換到包含Dockerfile的子目錄(./petalinux-182-docker-ubuntu)
2、構(gòu)建Docker image
*注意* Dockerfile范本中設(shè)置了網(wǎng)絡(luò)代理(proxy), 這個(gè)需要讀者根據(jù)具體環(huán)境要求自行修改。
$sudo docker build ./ --network=host --build-arg version=2018.2 --build-arg date_created=1110 -t petalinux-182-ubuntu:test
Docker會(huì)依據(jù)Dockerfile的步驟定義完成基于ubuntu 16.04的image整個(gè)petalinux v2018.2的開發(fā)環(huán)境。此外,還創(chuàng)建了一個(gè)用戶plnx_user用于用戶登錄運(yùn)行petalinux。
build_docker.sh 是一個(gè)腳本范例。
3. 運(yùn)行容器
$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用戶名登錄進(jìn)入容器。
4. 在容器中創(chuàng)建一個(gè)petalinux項(xiàng)目
登錄到容器后,構(gòu)建petalinux項(xiàng)目的方法和Host上無(wú)異,具體可以參考petalinux用戶手冊(cè)UG1144和UG1157.
個(gè)人建議將你的項(xiàng)目創(chuàng)建在/home/plnx_user/PLNX_WS/目錄下,這樣在Host端也可以訪問(wèn)到項(xiàng)目文件。
點(diǎn)擊訪問(wèn)本工程Github頁(yè)面: https://github.com/alexhegit/petalinux-v2018.2-docker
編輯:hfy
-
Linux
+關(guān)注
關(guān)注
87文章
11304瀏覽量
209476 -
Xilinx
+關(guān)注
關(guān)注
71文章
2167瀏覽量
121398 -
嵌入式開發(fā)板
+關(guān)注
關(guān)注
5文章
82瀏覽量
18748 -
Docker
+關(guān)注
關(guān)注
0文章
458瀏覽量
11854
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論