介紹
在 DesignLinx 硬件解決方案公司,我們使用 PetaLinux 構(gòu)建定制 Linux 鏡像,為客戶(hù)的定制產(chǎn)品提供支持。不得不承認(rèn),初一聽(tīng)聞 PetaLinux 時(shí)我是心存質(zhì)疑的。我的職業(yè)背景是嵌入式 Linux,曾從事過(guò)大量項(xiàng)目,包括純 Yocto/Bitbake/OE,以及在不同的 SoC 平臺(tái)上集成 Linux。Yocto 是構(gòu)建定制化嵌入式 Linux 發(fā)行版的實(shí)用方式。從可由源文件構(gòu)建任意內(nèi)容的特性到極富擴(kuò)展性的接口,Yocto 允許用戶(hù)針對(duì)自身產(chǎn)品構(gòu)建定制化 Linux 發(fā)行版。
問(wèn)題在于,Yocto 的使用難度較大。由于學(xué)習(xí)難度較高,采用 Yocto 開(kāi)發(fā)將是一個(gè)艱深甚至是痛苦的過(guò)程。此外,如果沒(méi)有快速構(gòu)建設(shè)備,構(gòu)建一個(gè)完整的鏡像可能需要花費(fèi)數(shù)個(gè)小時(shí)(取決于封裝包的數(shù)量)。而當(dāng)我終于首次開(kāi)始嘗試使用 PetaLinux 的時(shí)候,我感到十分驚訝:
因?yàn)?PetaLinux 擁有許多堪與 Yocto 媲美的優(yōu)勢(shì),但學(xué)習(xí)過(guò)程卻簡(jiǎn)單方便,且構(gòu)建時(shí)間更短。
轉(zhuǎn)粉 PetaLinux 的三大理由
PetaLinux 是一套直接構(gòu)建在 Yocto 項(xiàng)目頂層的定制工具,用于實(shí)現(xiàn)與賽靈思平臺(tái)的集成。因此,在某種意義上 PetaLinux 仍屬于 Yocto。但賽靈思更進(jìn)一步,通過(guò)提供一套額外的工具,簡(jiǎn)化了開(kāi)發(fā)流程,使新手使用起來(lái)及其方便,在這方面網(wǎng)上已有大量的指南,本文我將不再深入復(fù)述一些具體細(xì)節(jié),而是想借此機(jī)會(huì),跟大家分享一下使用這款賽靈思工具為我?guī)?lái)三大關(guān)鍵優(yōu)勢(shì)。
01
便于入門(mén)
正如前文所說(shuō),使用 PetaLinux 構(gòu)建鏡像非常方便。只需安裝 PetaLinux 工具,您就可能在一小時(shí)之內(nèi)完成鏡像構(gòu)建并啟動(dòng)鏡像。在后臺(tái),它仍然使用 Yocto,所以在定制開(kāi)發(fā)方面我們?nèi)匀挥泻艽蟮撵`活性,例如在項(xiàng)目創(chuàng)建過(guò)程中,PetaLinux 實(shí)際上是使用 Bitbake“配方”為您創(chuàng)建了一個(gè) Yocto 層。雖然 PetaLinux 提供了創(chuàng)建簡(jiǎn)單“配方”的機(jī)制,但對(duì)于較高級(jí)的用戶(hù)來(lái)說(shuō),還可以手動(dòng)定制“配方”來(lái)實(shí)現(xiàn)非標(biāo)配功能。
02
加快構(gòu)建時(shí)間
當(dāng)我構(gòu)建首個(gè) PetaLinux 鏡像時(shí),我驚訝地發(fā)現(xiàn)根本不需要幾個(gè)小時(shí),而是只要幾分鐘。構(gòu)建時(shí)間可能會(huì)隨機(jī)器性能和互聯(lián)網(wǎng)連接性能而有所改變,對(duì)此我將進(jìn)行比較。我們公司有一臺(tái)非常高端的構(gòu)建服務(wù)器,我們將它用于 FPGA 綜合、仿真等用途以及軟件搭建。“Poky”鏡像“core-image-minimal”的純 Yocto 構(gòu)建用時(shí)大約為 30 分鐘(含下載),用于 ZCU104 板的 PetaLinxu 鏡像僅用時(shí) 10 分鐘。雖然這種比較不能算是直觀(guān)準(zhǔn)確的比較,core-image-minimal 也算一種相當(dāng)緊湊的鏡像,但它的用時(shí)顯然更長(zhǎng)。
我不禁在想:“他們是如何做到的?肯定是用了緩存 SSTATE 和下載。”顯而易見(jiàn),這正是他們采取的方法。如果您不知道 SSTATE 緩存,這是它的介紹:SSTATE 緩存是一種 Yocto 已構(gòu)建“配方”的緩存,可以用在未來(lái)的構(gòu)建工作中,幫助加快構(gòu)建速度。此外,如果外部源頭的“配方”下載也建立了緩存,構(gòu)建時(shí)就無(wú)需重新下載。賽靈思就是這樣做的,其在 PetaLinux 工具安裝包中同時(shí)提供了這兩項(xiàng)功能,這樣用戶(hù)就能重復(fù)使用通用組件,只需要重新構(gòu)建真正不同的組件,從而顯著加快了構(gòu)建速度。
PetaLinux 安裝包中的部分緩存下載
PetaLinux 安裝包中的 SSTATE 緩存目錄
PetaLinux 安裝包中用于 aarch64 的 Yocto 層
03
自持性以及可輕松實(shí)現(xiàn) Git 集成
賽靈思預(yù)先添加了 Git 集成功能。使用 .gitignore 文件能夠自動(dòng)完成新項(xiàng)目的設(shè)置工作,以忽略不應(yīng)屬于版本控制的任何內(nèi)容(構(gòu)建工件等)。另外,由于PetaLinux 安裝所需的大多數(shù)外部 Yocto 層都留存在 PetaLinux 安裝包內(nèi)部,這些項(xiàng)目都具有自持性,而您的整個(gè)項(xiàng)目的應(yīng)用、驅(qū)動(dòng)程序、器件樹(shù)定制等都能夠保留在單個(gè)項(xiàng)目/庫(kù)內(nèi)。
結(jié) 論
總之,使用 PetaLinux 的理由眾多,我就不一一盡述了。所以,我不得不說(shuō),即使是 Yocto 的資深用戶(hù),我也鼓勵(lì)您更深入地去了解 PetaLinux 工具。因?yàn)?PetaLinux 最終將為您節(jié)省大量時(shí)間,讓您能夠騰出更多時(shí)間用來(lái)編寫(xiě)軟件,而不是學(xué)習(xí) Yocto 的使用方法。
-
賽靈思
+關(guān)注
關(guān)注
32文章
1794瀏覽量
131410 -
互聯(lián)網(wǎng)
+關(guān)注
關(guān)注
54文章
11181瀏覽量
103597
原文標(biāo)題:真香!Yocto 鐵桿用戶(hù)轉(zhuǎn)粉 PetaLinux 的三大理由
文章出處:【微信號(hào):FPGA-EETrend,微信公眾號(hào):FPGA開(kāi)發(fā)圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論