在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

利用Yocto/OpenEmbedded進行嵌入式軟件部署

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:Max Krummenacher ? 2022-06-22 14:05 ? 次閱讀

開發應用程序并將其存儲在設備的 ROM 上不再是當前嵌入式設備上的簡單部署過程。

一旦你的應用程序為下一個測試/發布周期做好了準備,你仍然需要將它與你的操作系統重新集成,調整配置文件,啟用你的東西的自動啟動等等,并將它打包成一個允許更新的表單設備。

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

您的硬件供應商很有可能已經將 Yocto/OpenEmbedded 用于其 Linux BSP。無需按原樣使用該通用 BSP,只需將您的應用程序集成到 Yocto/OpenEmbedded 構建過程中,并完全自動構建您完成的可交付成果。

Yocto/OpenEmbedded

Yocto和OpenEmbedded共同構成了一個構建框架,它可以從源代碼創建內核映像、根文件系統映像和可安裝包。

該框架使用元信息(稱為配方)在目標設備的 x86/x86_64 Linux 構建主機上下載/編譯/部署軟件包。

食譜被分成幾層。層聚合用于分發的配方、不同 CPU/SBC/模塊供應商的 BSP 功能、基礎系統、特定領域的軟件等。許多可用的層和配方可以通過這個網絡界面找到。

要充分利用本文,需要對 Yocto/OpenEmbedded 有基本的了解。該項目帶有出色的文檔,請參閱上面的鏈接或直接進入手冊。

最重要的是,我可以推薦Otavio Salvador 和 Daiana Anolini 的書來幫助你快速入門。

設置 Yocto/Openembedded

在本文中,我們將使用Toradex Colibri T30 計算機模塊。按照設置說明進行操作。

查找并執行 SoC 或模塊供應商提供的說明以進行初始設置。

然后通過構建已經提供的目標之一來測試您的安裝,以確保在我們開始擺弄之前安裝工作正常。

為了節省一些時間,構建一個簡單的圖像。不要忘記,在進行任何 bitbake 操作之前,您必須獲取一個腳本來設置環境。在我們的例子中:

oe-core》 。 export

build》 bitbake -k core-image-base

構建將需要一些時間,然后您希望收到一條最終消息:“注意:任務摘要:嘗試了 1806 個任務,其中 23 個不需要重新運行并且全部成功。”

現在我們準備好為我們的產品需求定制構建。

創建包含應用程序和圖像配方的層

這在此處進行了詳細解釋。請注意,下面描述的層也可以在這里下載

我們在 stuff/ 中添加一個新層,它將保存我們應用程序的配方和對圖像配方的修改。讓我們調用新層元產品:

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“

修改圖像

現在我們有了構建應用程序的配方,我們必須將其添加到映像中已部署包的列表中。還添加了一些其他東西以使生成的圖像更可用,SSH 服務器和 connman 網絡管理器添加了一些網絡功能。

默認情況下,映像會構建根文件系統以及引導加載程序和內核的二進制文件。一些 BSP 提供了額外的邏輯來簡化對目標硬件的部署。例如,基于飛思卡爾的 SoC 的 meta-fsl-arm BSP 構建了一個 SD 卡映像文件,目標可以從該文件直接啟動。使用 Toradex BSP,您可以構建一個 tarball,其中包含將鏡像部署到模塊上的所有工具和數據。

meta-fsl-arm 部署助手通過 classes/image_types_fsl.bbclass 實現,并包含在機器配置文件中。無需在映像中執行任何操作即可使該功能到位。

為了使用 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

調整 U-Boot 和 Linux 內核

當我們直接在應用程序中使用幀緩沖區時,我們需要從內核配置中刪除幀緩沖區控制臺,否則內核將繼續在屏幕區域顯示光標。

(或者只定義 vt.global_cursor_default=0 內核啟動參數,參見http://developer.toradex.com/knowledge-base/splash-screen-linux)

此外,為了練習,我們將更改 U-Boot 環境以刪除內核控制臺輸出到幀緩沖區控制臺以及更改顯示分辨率。

可以通過提供與配方具有相同基本名稱但擴展名為 bbappend 的文件來更改配方。原始文件的內容將附加在 bbappend 文件中的內容。通過這種機制,我們可以注入一個用于更改內核和 U-Boot 源的補丁文件:

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 */

現在我們準備好構建我們的圖像:

oe-core》 。 export

build》 bitbake product-image

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

下一步

只需稍加努力,我們就可以利用供應商提供的 Yocto/OpenEmbedded 元數據來創建定制的 Linux 映像,其中包含部署產品軟件所需的所有組件。

該過程確保使用定義良好的第三方版本以及我們自己的組件自動創建我們的圖像,并簡化了通過部署清單手動將圖像從幾個不同來源抓取的點點滴滴組合在一起的容易出錯的過程。

更進一步,可以將元產品層合并到初始的 Yocto/OpenEmbedded 設置過程中,例如在我們的案例中將其添加到 repo 清單中。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5091

    文章

    19176

    瀏覽量

    307194
  • 源代碼
    +關注

    關注

    96

    文章

    2946

    瀏覽量

    66894
收藏 人收藏

    評論

    相關推薦

    嵌入式機器學習的應用特性與軟件開發環境

    作者:DigiKey Editor 在許多嵌入式系統中,必須采用嵌入式機器學習(Embedded Machine Learning)技術,這是指將機器學習模型部署在資源受限的設備(如微控制器、物聯網
    的頭像 發表于 01-25 17:05 ?139次閱讀
    <b class='flag-5'>嵌入式</b>機器學習的應用特性與<b class='flag-5'>軟件</b>開發環境

    如何提高嵌入式代碼質量?

    的錯誤和改進點,提高代碼的可讀性和健壯性。 4. 版本控制:使用版本控制系統如Git,可以追蹤代碼變更并輕松進行團隊協作,確保每個版本都是可控和可重現的。 優化性能和資源利用率 在嵌入式系統中
    發表于 01-15 10:48

    嵌入式系統開發與硬件的關系 嵌入式系統開發常見問題解決

    系統開發與硬件關系的幾個關鍵點: 硬件依賴性 :嵌入式系統的軟件必須能夠在特定的硬件上運行,這包括處理器、內存、輸入/輸出接口等。軟件必須能夠充分利用硬件的特性,同時繞過其限制。 資源
    的頭像 發表于 12-09 09:38 ?402次閱讀

    什么是嵌入式?一文讀懂嵌入式主板

    在現代科技浪潮中,嵌入式技術已成為支撐各種智能設備和系統運行的核心力量。那么,究竟什么是嵌入式嵌入式系統,顧名思義,是將計算機的硬件和軟件嵌入
    的頭像 發表于 10-16 10:14 ?1436次閱讀

    EsDA,一站嵌入式軟件

    ,旨在提高嵌入式軟件開發的效率、性能和可擴展性。EsDA全稱是嵌入式系統設計自動化,它是一個由AWorksLP、AWStudio、AXPI、AWTK、ZWS等多種軟件
    的頭像 發表于 09-15 08:10 ?337次閱讀
    EsDA,一站<b class='flag-5'>式</b><b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>

    嵌入式系統是什么?

    嵌入式系統是是一個功能完備、幾乎不依賴其他外部裝置就可以獨立運行的系統。該系統包含軟件和硬件,以應用為中心,以計算機為基礎,能夠根據需求靈活選取軟硬件模塊的專業計算機系統。 其中系統的軟件部
    的頭像 發表于 08-29 16:26 ?471次閱讀

    嵌入式系統中的實時操作系統

    嵌入式RTOS是嵌入式應用程序運行、相互交互和與外界通信的底層軟件機制。在本節中,您將了解嵌入式軟件開發人員使用哪些流行RTOS以及它們運行
    的頭像 發表于 08-20 11:28 ?537次閱讀

    嵌入式QT常見開發方式有哪些?

    嵌入式QT常見開發方式有哪些? 嵌入式工程師在學習和使用Qt進行開發時,常見的幾種開發方式包括: 1.Qt Widgets編程: 通過C++代碼直接編寫GUI應用程序,利用QtWi
    發表于 08-12 10:05

    嵌入式軟件開發與AI整合

    嵌入式軟件開發與AI整合是當前技術發展的重要趨勢之一。隨著人工智能技術的快速發展,嵌入式系統越來越多地集成了AI算法,以實現更復雜的智能功能。以下是關于嵌入式
    的頭像 發表于 07-31 09:25 ?805次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>開發與AI整合

    深度學習算法在嵌入式平臺上的部署

    隨著人工智能技術的飛速發展,深度學習算法在各個領域的應用日益廣泛。然而,將深度學習算法部署到資源受限的嵌入式平臺上,仍然是一個具有挑戰性的任務。本文將從嵌入式平臺的特點、深度學習算法的優化、
    的頭像 發表于 07-15 10:03 ?1660次閱讀

    嵌入式軟件工程師和硬件工程師的區別?

    、調試和測試嵌入式軟件,以確保其功能正常,性能優良。 * 文檔編寫:包括編寫用戶手冊、維護文檔等。 * 維護和更新:對現有的嵌入式軟件進行
    發表于 05-16 11:00

    米爾瑞米派Remi Pi Ubuntu系統移植指南

    1.概述Linux系統平臺上有許多開源的系統構建框架,這些框架方便了開發者進行嵌入式系統的構建和定制化開發,目前比較常見的有Buildroot,Yocto,OpenEmbedded等等
    的頭像 發表于 04-29 08:01 ?978次閱讀
    米爾瑞米派Remi Pi Ubuntu系統移植指南

    嵌入式軟件設計的原則分享

    嵌入式軟件開發如果具有更好的閱讀性、擴展性以及維護性,就需要考慮很多因素。今天給大家分享幾個嵌入式軟件設計的原則。
    發表于 02-25 10:54 ?745次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>設計的原則分享

    嵌入式軟件開發應該掌握哪些知識?

    知識點學習 熟悉 Linux 的基本使用對于嵌入式軟件開發至關重要。包括文件系統的管理、用戶權限的控制、軟件包管理等。嵌入式開發人員需要能夠在 Linux 環境下
    發表于 02-19 11:23

    嵌入式學習步驟

    硬件組件。 (4).開發固件:編寫嵌入式系統的固件,這是嵌入式系統的軟件部分。固件負責控制硬件并執行特定任務。 (5).調試和測試:在將嵌入式系統
    發表于 02-02 15:24
    主站蜘蛛池模板: 日本免费大黄 | 快播久久| 黑人黑粗硬视频 | 18欧美乱大交 | 99色在线播放 | 成年人激情视频 | 日本一区不卡在线观看 | 日本色片视频 | 午夜三级影院 | xxxx人成高清免费图片 | 日本黄色一级大片 | 日本不卡视频在线播放 | 国产欧美日韩在线人成aaaa | h视频免费高清在线观看 | 欧美一卡2卡三卡4卡5卡免费观看 | 天堂ww| 天天色成人 | 亚洲第一页视频 | 国产一级aaa全黄毛片 | 公妇乱淫日本免费观看 | 欧美性xx18一19 | 最新天堂 | ts人妖另类国产 | 在线观看亚洲一区 | 欧美人与动性行为网站免费 | 免费网站看av片 | 东京毛片 | 欧美性狂猛bbbbbbxxxx | 特级aaa片毛片免费观看 | 国产精品久久女同磨豆腐 | 黄色录像大全 | 女人特黄大aaaaaa大片 | 成人欧美一区二区三区小说 | 爱爱小视频免费 | 伊人久久亚洲综合 | 精品免费视在线视频观看 | 人人做人人爽久久久精品 | 免费观看视频在线 | 香蕉久久久久久狠狠色 | 久久久久久久国产 | 一道精品视频一区二区三区男同 |