91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

利用Yocto/OpenEmbedded進(jìn)行嵌入式軟件部署

星星科技指導(dǎo)員 ? 來(lái)源:嵌入式計(jì)算設(shè)計(jì) ? 作者:Max Krummenacher ? 2022-08-12 10:39 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

開(kāi)發(fā)應(yīng)用程序并將其存儲(chǔ)在設(shè)備的 ROM 上不再是當(dāng)前嵌入式設(shè)備上的簡(jiǎn)單部署過(guò)程。

一旦你的應(yīng)用程序?yàn)橄乱粋€(gè)測(cè)試/發(fā)布周期做好了準(zhǔn)備,你仍然需要將它與你的操作系統(tǒng)重新集成,調(diào)整配置文件,啟用你的東西的自動(dòng)啟動(dòng),等等,并將它打包成一個(gè)允許更新的表單設(shè)備。

本文概述了如何在 Yocto/OpenEmbedded 的幫助下為基于嵌入式 Linux 的設(shè)備自動(dòng)化這種集成,從而使該過(guò)程更不容易出錯(cuò)、更可重復(fù),并使用您使用的每個(gè)組件的定義明確的版本。

您的硬件供應(yīng)商很有可能已經(jīng)將 Yocto/OpenEmbedded 用于其 Linux BSP。無(wú)需按原樣使用該通用 BSP,只需將您的應(yīng)用程序集成到 Yocto/OpenEmbedded 構(gòu)建過(guò)程中,并完全自動(dòng)構(gòu)建您完成的可交付成果。

Yocto/OpenEmbedded

Yocto和OpenEmbedded共同構(gòu)成了一個(gè)構(gòu)建框架,它可以從源代碼創(chuàng)建內(nèi)核映像、根文件系統(tǒng)映像和可安裝包。

該框架使用元信息(稱(chēng)為配方)在目標(biāo)設(shè)備的 x86/x86_64 Linux 構(gòu)建主機(jī)上下載/編譯/部署軟件包。

食譜被分成幾層。層聚合用于分發(fā)的配方、不同 CPU/SBC/模塊供應(yīng)商的 BSP 功能、基礎(chǔ)系統(tǒng)、特定領(lǐng)域的軟件等。許多可用的層和配方可以通過(guò)這個(gè)網(wǎng)絡(luò)界面找到。

要充分利用本文,需要對(duì) Yocto/OpenEmbedded 有基本的了解。該項(xiàng)目帶有出色的文檔,請(qǐng)參閱上面的鏈接或直接進(jìn)入手冊(cè)。

最重要的是,我可以推薦Otavio Salvador 和 Daiana Anolini 的書(shū)來(lái)幫助你快速入門(mén)。

設(shè)置 Yocto/Openembedded

在本文中,我們將使用Toradex Colibri T30 計(jì)算機(jī)模塊。按照設(shè)置說(shuō)明進(jìn)行操作。

查找并執(zhí)行 SoC 或模塊供應(yīng)商提供的說(shuō)明以進(jìn)行初始設(shè)置。

然后通過(guò)構(gòu)建已經(jīng)提供的目標(biāo)之一來(lái)測(cè)試您的安裝,以確保在我們開(kāi)始擺弄之前安裝工作正常。

為了節(jié)省一些時(shí)間,構(gòu)建一個(gè)簡(jiǎn)單的圖像。不要忘記,在進(jìn)行任何 bitbake 操作之前,您必須獲取一個(gè)腳本來(lái)設(shè)置環(huán)境。在我們的例子中:

oe-core》 。 export

build》 bitbake -k core-image-base

構(gòu)建將需要一些時(shí)間,然后您希望收到一條最終消息:“注意:任務(wù)摘要:嘗試了 1806 個(gè)任務(wù),其中 23 個(gè)不需要重新運(yùn)行并且全部成功?!?/p>

現(xiàn)在我們準(zhǔn)備好為我們的產(chǎn)品需求定制構(gòu)建。

創(chuàng)建包含應(yīng)用程序和圖像配方的層

這在此處進(jìn)行了詳細(xì)解釋。請(qǐng)注意,下面描述的層也可以在這里下載。

我們?cè)?stuff/ 中添加一個(gè)新層,它將保存我們應(yīng)用程序的配方和對(duì)圖像配方的修改。讓我們調(diào)用新層元產(chǎn)品:

stuff》 git init meta-product

stuff》 mkdir -p meta-product/conf

meta-product》 cat conf/layer.conf

BBPATH 。= “:null{systemd_unitdir}/system/ null{sysconfdir}/systemd/system/

+ install -m 0644 ${WORKDIR}/fb-draw.service null{systemd_unitdir}/system

+ ln -s /dev/null null{sysconfdir}/systemd/system/getty@tty1.service

}

+

+NATIVE_SYSTEMD_SUPPORT = ”1“

+SYSTEMD_PACKAGES = ”${PN}“

+SYSTEMD_SERVICE_${PN} = ”fb-draw.service“

修改圖像

現(xiàn)在我們有了構(gòu)建應(yīng)用程序的配方,我們必須將其添加到映像中已部署包的列表中。還添加了一些其他東西以使生成的圖像更可用,SSH 服務(wù)器和 connman 網(wǎng)絡(luò)管理器添加了一些網(wǎng)絡(luò)功能。

默認(rèn)情況下,映像會(huì)構(gòu)建根文件系統(tǒng)以及引導(dǎo)加載程序和內(nèi)核的二進(jìn)制文件。一些 BSP 提供了額外的邏輯來(lái)簡(jiǎn)化對(duì)目標(biāo)硬件的部署。例如,基于飛思卡爾的 SoC 的 meta-fsl-arm BSP 構(gòu)建了一個(gè) SD 卡映像文件,目標(biāo)可以從該文件直接啟動(dòng)。使用 Toradex BSP,您可以構(gòu)建一個(gè) tarball,其中包含將鏡像部署到模塊上的所有工具和數(shù)據(jù)。

meta-fsl-arm 部署助手通過(guò) classes/image_types_fsl.bbclass 實(shí)現(xiàn),并包含在機(jī)器配置文件中。無(wú)需在映像中執(zhí)行任何操作即可使該功能到位。

為了使用 Toradex BSP 的部署功能,鏡像配方必須定義變量 IMAGE_NAME 并包含 recipes/images/trdx-image-fstype.inc:

meta-product》 cat recipes-core/images/product-image.bb:

SUMMARY = ”A console-image for our fb-test product.“

IMAGE_FEATURES += ”ssh-server-openssh“

IMAGE_INSTALL += ”fb-draw“

IMAGE_INSTALL += ”connman connman-systemd connman-plugin-loopback connman-plugin-ethernet

LICENSE = ”MIT“

#create the deployment directory-tree

PV = ”V1.0“

IMAGE_NAME = ”${MACHINE}_product“

require recipes/images/trdx-image-fstype.inc

inherit core-image

調(diào)整 U-Boot 和 Linux 內(nèi)核

當(dāng)我們直接在應(yīng)用程序中使用幀緩沖區(qū)時(shí),我們需要從內(nèi)核配置中刪除幀緩沖區(qū)控制臺(tái),否則內(nèi)核將繼續(xù)在屏幕區(qū)域顯示光標(biāo)。

(或者只定義 vt.global_cursor_default=0 內(nèi)核啟動(dòng)參數(shù),參見(jiàn)http://developer.toradex.com/knowledge-base/splash-screen-linux)

此外,為了練習(xí),我們將更改 U-Boot 環(huán)境以刪除內(nèi)核控制臺(tái)輸出到幀緩沖區(qū)控制臺(tái)以及更改顯示分辨率。

可以通過(guò)提供與配方具有相同基本名稱(chēng)但擴(kuò)展名為 bbappend 的文件來(lái)更改配方。原始文件的內(nèi)容將附加在 bbappend 文件中的內(nèi)容。通過(guò)這種機(jī)制,我們可以注入一個(gè)用于更改內(nèi)核和 U-Boot 源的補(bǔ)丁文件:

meta-product》 cat recipes-kernel/linux/linux-toradex_git.bbappend

FILESEXTRAPATHS_prepend := ”${THISDIR}/${PN}:“

SRC_URI += ”file://defconfig-product.patch“

meta-product》 cat recipes-kernel/linux/linux-toradex/defconfig-product.patch

diff --git a/arch/arm/configs/colibri_t30_defconfig b/arch/arm/configs/colibri_t30_defconfig

index 050351d..e1ef222 100644

--- a/arch/arm/configs/colibri_t30_defconfig

+++ b/arch/arm/configs/colibri_t30_defconfig

@@ -253,7 +253,6 @@ CONFIG_BACKLIGHT_CLASS_DEVICE=y

# CONFIG_BACKLIGHT_GENERIC is not set

CONFIG_BACKLIGHT_PWM=y

CONFIG_BACKLIGHT_TEGRA_PWM=y

-CONFIG_FRAMEBUFFER_CONSOLE=y

CONFIG_LOGO=y

CONFIG_SOUND=y

CONFIG_SND=y

meta-product》 cat recipes-bsp/u-boot/u-boot-toradex_git.bbappend

FILESEXTRAPATHS_prepend := ”${THISDIR}/${PN}:“

SRC_URI_T30 += ”file://u-boot-product.patch“

meta-product》 cat recipes-bsp/u-boot/u-boot-toradex/u-boot-product.patch

diff --git a/include/configs/colibri_t30.h b/include/configs/colibri_t30.h

index ffcf88f..b5d889e 100644

--- a/include/configs/colibri_t30.h

+++ b/include/configs/colibri_t30.h

@@ -185,12 +185,12 @@

NFS_BOOTCMD \

SD_BOOTCMD \

”setup=setenv setupargs asix_mac=${ethaddr} “ \

- ”consoleblank=0 no_console_suspend=1 console=tty1 “ \

+ ”consoleblank=0 no_console_suspend=1 “ \

”console=${console},${baudrate}n8 debug_uartport=lsport,0 “ \

”${memargs}\0“ \

”setupdate=load mmc 1:1 ${kernel_addr_r} flash_mmc.img “ \

”&& source ${kernel_addr_r}\0“ \

USB_BOOTCMD \

- ”vidargs=video=tegrafb0:640x480-16@60\0“

+ ”vidargs=video=tegrafb0:800x600-16@60\0“

#endif /* __CONFIG_H */

現(xiàn)在我們準(zhǔn)備好構(gòu)建我們的圖像:

oe-core》 。 export

build》 bitbake product-image

該圖像可以在 build/out-eglibc/deploy/images/colibri-t30/colibri-t30_productV1.0_20141128.tar.bz2 中找到。

下一步

只需稍加努力,我們就可以利用供應(yīng)商提供的 Yocto/OpenEmbedded 元數(shù)據(jù)來(lái)創(chuàng)建定制的 Linux 映像,其中包含部署產(chǎn)品軟件所需的所有組件。

該過(guò)程確保使用明確定義的第三方版本以及我們自己的組件自動(dòng)創(chuàng)建我們的圖像,并簡(jiǎn)化了通過(guò)部署清單手動(dòng)將圖像從幾個(gè)不同來(lái)源抓取的點(diǎn)點(diǎn)滴滴組合在一起的容易出錯(cuò)的過(guò)程。

更進(jìn)一步,可以將元產(chǎn)品層合并到初始的 Yocto/OpenEmbedded 設(shè)置過(guò)程中,例如在我們的案例中將其添加到 repo 清單中。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • soc
    soc
    +關(guān)注

    關(guān)注

    40

    文章

    4578

    瀏覽量

    229303
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11772

    瀏覽量

    219129
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    14

    文章

    10272

    瀏覽量

    91554
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    什么是嵌入式應(yīng)用開(kāi)發(fā)?

    設(shè)計(jì)、實(shí)現(xiàn)和部署,還包括硬件選擇、軟件設(shè)計(jì)、測(cè)試、集成和維護(hù)等流程?。 定義和背景 嵌入式應(yīng)用開(kāi)發(fā)是指將軟件部署嵌入式系統(tǒng)中,這些系統(tǒng)
    發(fā)表于 01-12 16:13

    CW32嵌入式軟件開(kāi)發(fā)的必備知識(shí)

    設(shè)計(jì)的原則和方法,能夠設(shè)計(jì)出高效、可維護(hù)的軟件系統(tǒng)。 了解嵌入式系統(tǒng)的實(shí)時(shí)性要求,能夠設(shè)計(jì)出滿(mǎn)足實(shí)時(shí)性要求的軟件系統(tǒng)。 8、 測(cè)試與驗(yàn)證 掌握單元測(cè)試、集成測(cè)試和系統(tǒng)測(cè)試的方法和技術(shù),能夠?qū)?b class='flag-5'>軟
    發(fā)表于 11-28 07:48

    深入探討AMD嵌入式開(kāi)發(fā)框架的三大基石

    隨著嵌入式系統(tǒng)復(fù)雜性日趨提升,嵌入式開(kāi)發(fā)已不再只是編寫(xiě)軟件/固件,更是關(guān)乎對(duì)軟硬件生態(tài)系統(tǒng)進(jìn)行協(xié)調(diào)。硬件與軟件的相互依賴(lài)性與系統(tǒng)復(fù)雜性,實(shí)際
    的頭像 發(fā)表于 11-24 09:52 ?548次閱讀
    深入探討AMD<b class='flag-5'>嵌入式</b>開(kāi)發(fā)框架的三大基石

    嵌入式軟件測(cè)試與專(zhuān)業(yè)測(cè)試工具的必要性深度解析

    嵌入式系統(tǒng)作為控制、監(jiān)視或輔助裝置運(yùn)行的專(zhuān)用計(jì)算機(jī)系統(tǒng),其軟件測(cè)試面臨著獨(dú)特的挑戰(zhàn)和嚴(yán)格的要求。專(zhuān)業(yè)測(cè)試工具在嵌入式軟件開(kāi)發(fā)過(guò)程中發(fā)揮著不可替代的作用,是確保系統(tǒng)可靠性和安全性的關(guān)鍵保
    發(fā)表于 09-28 17:42

    RT-Thread 2025嵌入式軟件大賽重磅來(lái)襲

    為激發(fā)開(kāi)發(fā)者潛能、促進(jìn)技術(shù)交流,RT-Thread 正式啟動(dòng)2025年度嵌入式軟件大賽! 本賽道為嵌入式軟件大賽,聚焦嵌入式
    的頭像 發(fā)表于 09-22 16:40 ?3539次閱讀
    RT-Thread 2025<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>大賽重磅來(lái)襲

    RT-Thread 2025嵌入式軟件大賽重磅來(lái)襲

    為激發(fā)開(kāi)發(fā)者潛能、促進(jìn)技術(shù)交流,RT-Thread正式啟動(dòng)2025年度嵌入式軟件大賽!本賽道為嵌入式軟件大賽,聚焦嵌入式
    的頭像 發(fā)表于 09-20 10:06 ?1773次閱讀
    RT-Thread 2025<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>大賽重磅來(lái)襲

    新一代嵌入式開(kāi)發(fā)平臺(tái) AMD嵌入式軟件和工具2025.1版現(xiàn)已推出

    AMD 2025.1 版嵌入式軟件和工具是面向新一代嵌入式系統(tǒng)開(kāi)發(fā)而打造的綜合平臺(tái),全面加速概念構(gòu)想到部署落地。 2025.1 版嵌入式
    的頭像 發(fā)表于 08-20 09:15 ?4007次閱讀

    AMD 2025.1版嵌入式軟件和工具的新增功能

    AMD 2025.1 版嵌入式軟件和工具是面向新一代嵌入式系統(tǒng)開(kāi)發(fā)而打造的綜合平臺(tái),全面加速概念構(gòu)想到部署落地。
    的頭像 發(fā)表于 08-15 15:32 ?1291次閱讀

    【「Yocto項(xiàng)目實(shí)戰(zhàn)教程:高效定制嵌入式Linux系統(tǒng)」閱讀體驗(yàn)】+基礎(chǔ)概念學(xué)習(xí)理解

    軟件包的依賴(lài)關(guān)系、編譯選項(xiàng)、配置參數(shù)等。掌握元數(shù)據(jù)的使用方法對(duì)于定制和優(yōu)化嵌入式 Linux 系統(tǒng)至關(guān)重要。 BitBake BitBake 是 Yocto 項(xiàng)目的構(gòu)建工具。通過(guò)學(xué)習(xí)這部分內(nèi)容,我深入
    發(fā)表于 08-04 22:29

    嵌入式軟件開(kāi)發(fā)常用的軟件有哪些?

    軟件功能。 2. Visual Studio 簡(jiǎn)稱(chēng)VS: 它是一個(gè)IDE,集成開(kāi)發(fā)環(huán)境。驗(yàn)證C程序或是進(jìn)行c#程序開(kāi)發(fā),可以用它。一些與嵌入式相關(guān)的模擬器也是基于VS的。幫助開(kāi)發(fā)人員更穩(wěn)定,更有
    發(fā)表于 07-03 17:06

    【新書(shū)速遞】Yocto項(xiàng)目實(shí)戰(zhàn)教程:高效定制嵌入式Linux系統(tǒng)

    論壇>>社區(qū)活動(dòng)專(zhuān)版標(biāo)題名稱(chēng)必須包含【「Yocto項(xiàng)目實(shí)戰(zhàn)教程:高效定制嵌入式Linux系統(tǒng)」閱讀體驗(yàn)】+自擬標(biāo)題立即掃碼參與活動(dòng)注意事項(xiàng)
    的頭像 發(fā)表于 05-27 08:05 ?1802次閱讀
    【新書(shū)速遞】<b class='flag-5'>Yocto</b>項(xiàng)目實(shí)戰(zhàn)教程:高效定制<b class='flag-5'>嵌入式</b>Linux系統(tǒng)

    飛凌嵌入式ElfBoard ELF 1板卡-Uboot

    上節(jié)中講到U-Boot是BootLoader的一種,U-Boot全稱(chēng)為Universal Boot Loader,即通用的BootLoader,所謂通用就是指它適用于多種嵌入式平臺(tái),包括不同CPU
    發(fā)表于 05-22 10:44

    【書(shū)籍評(píng)測(cè)活動(dòng)NO.61】Yocto項(xiàng)目實(shí)戰(zhàn)教程:高效定制嵌入式Linux系統(tǒng)

    擴(kuò)展、自動(dòng)化的構(gòu)建工具集 。它采用模塊化架構(gòu)、分層構(gòu)建體系和軟件棧管理機(jī)制,使開(kāi)發(fā)者能夠高效定制、優(yōu)化和維護(hù)嵌入式 Linux 系統(tǒng),可提高開(kāi)發(fā)效率并降低適配成本。 Yocto 項(xiàng)目已成為定制
    發(fā)表于 05-21 10:00

    嵌入式軟件行業(yè)增長(zhǎng)驅(qū)動(dòng)因素

    嵌入式軟件在物聯(lián)網(wǎng)應(yīng)用中至關(guān)重要,因?yàn)樗芾碓O(shè)備操作、控制傳感器、支持連接并確保數(shù)據(jù)安全。例如,在智能家居中,恒溫器、安全攝像頭和燈光等設(shè)備使用嵌入式系統(tǒng)獨(dú)立運(yùn)行,并通過(guò)云平臺(tái)或本地網(wǎng)絡(luò)與其他智能
    的頭像 發(fā)表于 05-09 11:26 ?834次閱讀

    嵌入式軟件單元測(cè)試的必要性、核心方法及工具深度解析

    一、為什么嵌入式軟件必須重視單元測(cè)試? ?嵌入式系統(tǒng)的特殊性? 在汽車(chē) ECU、醫(yī)療設(shè)備控制器等場(chǎng)景中,軟件直接操控硬件,?單比特錯(cuò)誤可能導(dǎo)致剎車(chē)失靈或呼吸機(jī)故障?。不同于 PC?
    的頭像 發(fā)表于 03-21 14:53 ?1457次閱讀