Buildroot 添加自定義模塊-內置文件到文件系統

目錄

    • 概述
    • 實現步驟
      • 1. 創建包目錄和文件結構
      • 2. 配置 Config.in
      • 3. 定義 cp_bin_files.mk
      • 4. 添加源文件
        • `install.sh`
        • `my.conf`
      • 5. 配置與編譯

在這里插入圖片描述

概述

Buildroot 是一個高度可定制和模塊化的嵌入式 Linux 構建系統,適用于從簡單到復雜的各種嵌入式項目. buildroot的源碼中buildroot/package下面放著應用軟件的配置文件,每個應用軟件的配置文件有Config.in和soft_name.mk,其中soft_name.mk(這種其實就Makefile腳本的自動構建腳本)文件可以去下載應用軟件的包。

package 目錄下可以存放源碼文件模塊也可以使用編譯好的二進制文件/圖片/腳本/配置/視頻等等. 以下步驟實現增加自定義模塊集成腳本和配置文件到目標主機.

實現步驟

1. 創建包目錄和文件結構

首先,在 Buildroot 的 package/ 目錄下創建 cp_bin_files 目錄,結構如下:

package/cp_bin_files/
├── Config.in
├── cp_bin_files.mk
├── install.sh
└── my.conf
  • Config.in:定義包的配置選項。
  • cp_bin_files.mk:定義構建和安裝邏輯。
  • install.sh:腳本文件
  • my.conf:配置文件

2. 配置 Config.in

package/cp_bin_files/Config.in 中添加以下內容:

config BR2_PACKAGE_CP_BIN_FILESbool "cp_bin_files"helpA package to copy binary files and configurations to target directories.

然后,在 package/Config.in 中引入這個包:

source "package/cp_bin_files/Config.in"

這會讓 cp_bin_files 出現在 make menuconfig 的配置菜單中。

3. 定義 cp_bin_files.mk

package/cp_bin_files/cp_bin_files.mk 中寫入構建規則:

CP_BIN_FILES_VERSION = 1.0
CP_BIN_FILES_SITE = $(TOPDIR)/package/cp_bin_files
CP_BIN_FILES_SITE_METHOD = local
#CP_BIN_FILES_INSTALL_STAGING = NO
#CP_BIN_FILES_INSTALL_TARGET = YESdefine CP_BIN_FILES_INSTALL_TARGET_CMDS$(INSTALL) -D -m 0755 $(@D)/install.sh $(TARGET_DIR)/usr/bin/install.sh$(INSTALL) -D -m 0644 $(@D)/my.conf $(TARGET_DIR)/usr/etc/my.conf
endef$(eval $(generic-package))

這里:

  • CP_BIN_FILES_SITE 指向本地 package/cp_bin_files/ 目錄。
  • CP_BIN_FILES_INSTALL_TARGET_CMDS 使用 $(INSTALL) 命令將文件拷貝到目標位置,并設置權限(0755 用于可執行文件,0644 用于配置文件)。

4. 添加源文件

在目錄下放入需要拷貝的文件。例如:

install.sh
#!/bin/sh
echo "This is the install script."
my.conf
# My configuration file
setting1=value1
setting2=value2

5. 配置與編譯

  1. 運行 make menuconfig,啟用 Target packages 中的 cp_bin_files
  2. 保存配置后,執行 make 構建整個系統。
  3. 檢查 output/target/,確認 /usr/bin/install.sh/usr/etc/my.conf 已正確安裝。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/71963.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/71963.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/71963.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

物聯網通信應用案例之《智慧農業》

案例概述 在智慧農業方面,一般的應用場景為可以自動檢測溫度濕度等一系列環境情況并且可以自動做出相應的處理措施如簡單的澆水和溫度控制等,且數據情況可遠程查看,以及用戶可以實現遠程控制。 基本實現原理 傳感器通過串口將數據傳遞到Wi…

設計模式| 觀察者模式 Observer Pattern詳解

目錄 一、概述1.1 動機1.2 核心思想1.3 別名 二、角色與實現原理2.1 角色2.2 實現原理2.3 類圖 三、經典接口實現3.1 示例3.1.1 觀察者接口3.1.2 目標接口3.1.3 具體被觀察者3.1.4 具體觀察者3.1.5 Client3.1.6 UML時序圖 3.2 特點 四、其他實現方式4.1 委托與事件(…

kotlin 知識點一 變量和函數

在Kotlin中定義變量的方式和Java 區別很大,在Java 中如果想要定義一個變 量,需要在變量前面聲明這個變量的類型,比如說int a表示a是一個整型變量,String b表 示b是一個字符串變量。而Kotlin中定義一個變量,只允許在變量…

基于數據可視化學習的卡路里消耗預測分析

數據分析實操集合: 1、關于房間傳感器監測數據集的探索 2、EEMD-LSTM模型擇時策略 — 1.EEMD分解與LSTM模型搭建 3、EEMD-LSTM模型擇時策略 — 2. 量化回測 4、國際超市電商銷售數據分析 5、基于問卷調查數據的多元統計數據分析與預測(因子分析、對應分…

記錄Liunx安裝Jenkins時的Package ‘jenkins‘ has no installation candidate

1、確保是否安裝了Java,如果沒有,可通過以下命令進行安裝: sudo apt update sudo apt install openjdk-21-jre2、安裝Jenkins sudo apt update sudo apt install jenkins執行sudo apt install jenkins時,可能會出現 意思是&…

kiln微調大模型-使用deepseek R1去訓練一個你的具備推理能力的chatGPT 4o

前言 隨著deepseek的爆火,對于LLM的各種內容也逐漸步入我的視野,我個人認為,可能未來很長一段時間,AI將持續爆火,進入一段時間的井噴期,AI也會慢慢的走入我們每個家庭之中,為我們的生活提供便利…

用AI玩游戲1——狼人殺六人局

狼人殺六人局1 狼人殺六人局1,好人陣營有兩個平民,一個預言家,一個守衛,壞人陣營有兩個狼人。狼人每晚可以選擇殺死一個人但第一天晚上不能殺人,狼人晚上可以睜眼識別到同伴和其他好人玩家但不知道他們的身份。預言家…

sqli-labs

Less-8 單引號報錯,雙引號顯示正常 又是You are in......看來還是用盲注 布爾盲注: 如下語句是用來判斷當前數據庫名的第一個字母是不是s,后面的以此類推,比較復雜和麻煩 ?id1 and substr(database(),1,1)s -- 比如這個我們通…

自定義ToolbarView實戰指南(Kotlin版)

一、為什么我們需要造輪子? 看到標題你可能會問:系統自帶Toolbar不香嗎?確實香,但遇到這些場景就抓瞎了: 設計稿要求標題欄帶漸變背景動態波浪線產品經理非要搞個不對稱的返回按鈕布局UI設計師堅持標題和副標題要45度…

微軟推出Office免費版,限制諸多,只能編輯不能保存到本地

易采游戲網2月25日獨家消息:微軟宣布推出一款免費的Office版本,允許用戶進行基礎文檔編輯操作,但限制頗多,其中最引人關注的是用戶無法將文件保存到本地。這一舉措引發了廣泛討論,業界人士對其背后的商業策略和用戶體驗…

PyTorch-基礎(CUDA、Dataset、transforms、卷積神經網絡、VGG16)

PyTorch-基礎 環境準備 CUDA Toolkit安裝(核顯跳過此步驟) CUDA Toolkit是NVIDIA的開發工具,里面提供了各種工具、如編譯器、調試器和庫 首先通過NVIDIA控制面板查看本機顯卡驅動對應的CUDA版本,如何去下載對應版本的Toolkit工…

Vue2+Element實現Excel文件上傳下載預覽【超詳細圖解】

目錄 一、需求背景 二、落地實現 1.文件上傳 圖片示例 HTML代碼 業務代碼 2.文件下載 圖片示例 方式一:代碼 方式二:代碼 3.文件預覽 圖片示例 方式一:代碼 方式二:代碼 一、需求背景 在一個愉快的年后&#xff…

【Bug】natten:安裝報錯(臨近注意力機制的高效cuda內核實現)

正常安裝natten報錯 pip install natten 報錯 可以嘗試使用以下網站進行安裝 https://shi-labs.com/natten/ 可以根據自己的cuda與pytorch版本進行安裝 之間復制命令即可,不需要進行任何修改

win10把c盤docker虛擬硬盤映射遷移到別的磁盤

c盤空間本身就比較小、如果安裝了docker服務后,安裝的時候沒選擇其他硬盤,虛擬磁盤也在c盤會占用很大的空間,像我的就三十多個G,把它遷移到其他磁盤一下子節約幾十G 1、先輸入下面命令查看 docker 狀態 wsl -l -v 2、如果沒有停止…

動態內容加載的解決方案:Selenium與Playwright對比故障排查實錄

方案進程 2024-09-01 09:00 | 接到亞航航班數據采集需求 2024-09-01 11:30 | 首次嘗試使用Selenium遭遇Cloudflare驗證 2024-09-01 14:00 | 切換Playwright方案仍觸發反爬機制 2024-09-01 16:30 | 引入爬蟲代理IPUA輪換策略 2024-09-02 10:00 | 雙方案完整實現并通過壓力測試故…

MaxKB上架至阿里云輕量應用服務器鏡像市場

近日,MaxKB開源知識庫問答系統已上架至阿里云輕量應用服務器鏡像市場,目前是阿里云此類鏡像市場中唯一推薦的AI應用鏡像。 ▲圖1 MaxKB已經上架至阿里云輕量應用服務器鏡像市場 MaxKB是飛致云旗下開源項目,是一款基于大語言模型和RAG&…

藍橋杯 2013 省 B 翻硬幣

題目背景 小明正在玩一個“翻硬幣”的游戲。 題目描述 桌上放著排成一排的若干硬幣。我們用 * 表示正面,用 o 表示反面(是小寫字母,不是零),比如可能情形是 **oo***oooo,如果同時翻轉左邊的兩個硬幣&…

分享---rpc運維事故處理

事故案例03 - Qserver RPC調用大量失敗 一、事故背景 Queryserver是內部的核心服務,負責處理數據查詢請求并支持分布式緩存功能。為優化緩存一致性,新增了分布式鎖邏輯:在查詢請求命中緩存時需先獲取分布式鎖(基于Tair實現&…

string類詳解(下)

文章目錄 4. string類的模擬實現4.1 構造 析構4.2 c_str4.3 下標遍歷4.4 迭代器4.5 插入4.6 刪除4.7 查找4.8 賦值4.9 交換4.10 提取子串4.11 比較大小4.12 流插入 && 流提取 5. 現代版寫法的String類5.1 完整代碼 6. 寫時拷貝(了解) 4. string…

win11本地部署deepseek大模型(安裝ollama+docker+open-webui)最終實現自己的項目可通過API調用投喂數據后的模型

硬件配置:筆記本win11,內存32G,CPU銳龍7 ,無獨顯;只能考慮deepseek-r1:1.5b模型。 第一步:安裝Ollama 此處不過多累贅了,https://ollama.com/官網選擇對應的系統版本下載即可。 需要注意的是…