chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

RK平臺上不會移植第三方系統(tǒng)?讀懂這個腳本,輕松掌握嵌入式系統(tǒng)構(gòu)建

jf_44130326 ? 來源:Linux1024 ? 2026-02-04 16:15 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

嵌入式開發(fā)領(lǐng)域,我們常遇到這樣的場景:花了三天編譯的系統(tǒng)鏡像,啟動后卻發(fā)現(xiàn)攝像頭無法工作;明明配置了SSH服務(wù),卻始終連不上設(shè)備;甚至有時候,一句"構(gòu)建失敗"的報錯能讓整個團(tuán)隊卡殼半天。

如果你也曾被這些問題困擾,那今天這篇文章值得深讀。我們將通過分析一個真實的嵌入式系統(tǒng)構(gòu)建腳本,帶你看清系統(tǒng)從01的誕生過程,更重要的是——學(xué)會在調(diào)試時抓住問題的"七寸"

一、這到底是個什么腳本?

先看腳本的核心定位:這是一個基于Debian嵌入式系統(tǒng)構(gòu)建腳本,負(fù)責(zé)將基礎(chǔ)鏡像、驅(qū)動模塊、應(yīng)用組件"縫合"成可直接燒錄的系統(tǒng)鏡像。簡單說,它是系統(tǒng)的"接生婆",從基礎(chǔ)鏡像到最終可用的系統(tǒng),全流程都由它掌控。

wKgZO2kamRqAVDVrAAFWLHaxB-Q124.png

我們可以把它的工作拆解5個關(guān)鍵階段:

1.環(huán)境初始化:定好"施工圖紙"

TARGET_ROOTFS_DIR="binary"# 目標(biāo)根文件系統(tǒng)目錄case"${ARCH:-$1}"in   # 處理架構(gòu)參數(shù),支持armhf和arm64  arm|arm32|armhf)    ARCH=armhf    ;;  *)    ARCH=arm64    ;;esacVERSION=${VERSION:-"release"}# 默認(rèn)為release版本,支持debug模式

這部分就像施工前的"圖紙設(shè)計":明確構(gòu)建目標(biāo)(根目錄位置)、硬件適配(架構(gòu)選擇)、功能模式(release/debug)。調(diào)試時第一個要檢查的就是這里——如果架構(gòu)選錯,后續(xù)所有驅(qū)動和軟件都會"水土不服"

2.基礎(chǔ)鏡像處理:打好"地基"

# 檢查基礎(chǔ)鏡像是否存在if[ ! -e linaro-bullseye-alip-*.tar.gz];then  echo"?33[36m Run mk-base-debian.sh first ?33[0m"  exit -1fi# 解壓基礎(chǔ)鏡像sudo tar -xpf linaro-bullseye-alip-*.tar.gz

基礎(chǔ)鏡像是系統(tǒng)的"地基",如果這一步出錯(比如鏡像缺失、解壓失?。?,后續(xù)所有操作都是空談。調(diào)試時若遇到"文件不存在"的報錯,先檢查基礎(chǔ)鏡像是否正確生成(腳本提示要先運行mk-base-debian.sh)。

3.組件集成:搭建"主體結(jié)構(gòu)"

這部分是腳本的核心,像搭積木一樣往基礎(chǔ)系統(tǒng)里填充內(nèi)容:

# 復(fù)制架構(gòu)相關(guān)的軟件包sudocp-rpf packages/$ARCH/*$TARGET_ROOTFS_DIR/packages# 復(fù)制系統(tǒng)配置文件(overlay層)sudocp-rpf overlay/*$TARGET_ROOTFS_DIR/# 復(fù)制網(wǎng)卡驅(qū)動模塊sudocp../kernel/drivers/net/ethernet/realtek/r8125.ko$TARGET_ROOTFS_DIR/usr/lib/modules/
wKgZO2kamRqAAUPZAABGizoDswk857.png

這里藏著很多調(diào)試關(guān)鍵點:

?如果某個硬件(比如網(wǎng)卡)無法工作,先檢查驅(qū)動文件(r8125.ko)是否正確復(fù)制

?如果系統(tǒng)配置異常(比如啟動腳本丟失),大概率是overlay目錄的文件沒復(fù)制完整

?不同架構(gòu)(armhf/arm64)的軟件包存在差異,若混用會導(dǎo)致"無法安裝"的報錯

4.系統(tǒng)配置:"精裝修"階段

通過chroot進(jìn)入目標(biāo)根文件系統(tǒng)后,腳本開始執(zhí)行一系列"精裝修"操作:

# 設(shè)置DNS,解決聯(lián)網(wǎng)問題echo"nameserver 8.8.8.8">> /etc/resolv.conf# 安裝核心工具(SSH、性能測試工具等)apt-get install -y openssh-server iperf3 stress-ng# 配置串口登錄sed -i"s~(^ExecStart=.*)~# 1nExecStart=-/bin/sh -c '/bin/bash -l /dev/%I 2>&1'~"/usr/lib/systemd/system/serial-getty@.service# 安裝硬件相關(guān)組件(視頻、相機(jī)、顯示服務(wù)等)${APT_INSTALL}gstreamer1.0-plugins-bad # 視頻處理${APT_INSTALL}cheese v4l-utils     # 相機(jī)支持${APT_INSTALL}/packages/xserver/*.deb # 顯示服務(wù)

這部分是調(diào)試的重災(zāi)區(qū),常見問題包括:

?網(wǎng)絡(luò)不通:檢查resolv.conf是否正確配置,軟件源是否可用

?SSH連不上:查看openssh-server是否安裝,服務(wù)是否啟用

?硬件功能失效(如相機(jī)打不開):檢查對應(yīng)的包(cheesev4l-utils)是否安裝成功

?啟動后黑屏:可能是xserverweston顯示服務(wù)配置有誤

5.清理與打包:"竣工交房"

# 清理緩存和臨時文件rm-rf /var/lib/apt/lists/*rm-rf /var/cache/# 打包成最終鏡像sudo tar zcf RN01-debian-base-$(date+%Y-%m-%d).tar.gz$TARGET_ROOTFS_DIR

清理步驟能減小鏡像體積,如果不清除,鏡像會比較大,但如果清理過度(比如誤刪必要文件),會導(dǎo)致系統(tǒng)啟動失敗。如果鏡像能生成但無法啟動,要檢查這里是否誤刪了關(guān)鍵組件

二、調(diào)試時盯著這個腳本,到底能解決什么問題?

很多開發(fā)者調(diào)試時習(xí)慣"頭痛醫(yī)頭":攝像頭不行就只查攝像頭驅(qū)動,網(wǎng)絡(luò)不通就只看網(wǎng)卡配置。但實際上,嵌入式系統(tǒng)的問題往往是"牽一發(fā)而動全身",而這個構(gòu)建腳本就是串聯(lián)所有環(huán)節(jié)的"主線"

關(guān)注它的3個核心價值:

1.快速定位"失敗環(huán)節(jié)"

腳本的每一步都有明確輸出(比如echo -e "?33[36m Install camera... ?33[0m"),構(gòu)建失敗時,最后出現(xiàn)的提示信息就是"案發(fā)現(xiàn)場"。

比如看到"Install camera..."后報錯,說明相機(jī)相關(guān)的包安裝失敗,此時應(yīng)檢查:

?packages目錄下的相機(jī)相關(guān)deb包是否存在

?包的架構(gòu)是否與目標(biāo)系統(tǒng)匹配(armhf/arm64不能混)

?依賴是否滿足(可以在chroot環(huán)境手動執(zhí)行apt安裝命令排查)

2.理解系統(tǒng)"依賴關(guān)系"

嵌入式系統(tǒng)的組件依賴極其復(fù)雜:比如相機(jī)工作不僅需要相機(jī)驅(qū)動,還依賴視頻框架(gstreamer)、顯示服務(wù)(xserver)、硬件加速庫(mpp)。

這個腳本清晰展示了依賴鏈條:先安裝基礎(chǔ)系統(tǒng)再裝視頻框架然后裝相機(jī)應(yīng)用最后配置顯示服務(wù)。當(dāng)某個功能失效時,順著腳本的安裝順序倒推,能快速找到缺失的依賴

wKgZO2kamRqAFuJ3AABOJQnOk1A900.png

3.排查"環(huán)境配置"問題

很多時候,相同的代碼在A電腦能構(gòu)建成功,在B電腦卻失敗,問題往往出在環(huán)境差異。這個腳本將所有構(gòu)建步驟"代碼化",讓環(huán)境配置變得可追溯:

?是不是忘了復(fù)制某個overlay配置文件?

?內(nèi)核驅(qū)動的路徑是否正確(腳本中是../kernel/drivers/...)?

?debug版本需要的額外包(如glmark2)是否在VERSION=debug時才安裝?

三、給開發(fā)者的3個調(diào)試技巧

1.善用echo輸出中間變量

在關(guān)鍵步驟前增加輸出,比如在復(fù)制驅(qū)動前加echo "Copying r8125.ko from $(pwd)/../kernel/...",確認(rèn)路徑是否正確。

2.保留chroot環(huán)境

腳本最后會退出chroot環(huán)境,調(diào)試時可以注釋掉清理和打包步驟,手動進(jìn)入chroot $TARGET_ROOTFS_DIR,逐條執(zhí)行命令排查問題。

3.對比成功與失敗的構(gòu)建日志

保存一次成功構(gòu)建的完整日志,當(dāng)后續(xù)構(gòu)建失敗時,用diff命令對比日志,快速定位差異點。

寫在最后

嵌入式系統(tǒng)構(gòu)建就像搭積木,而這個腳本就是積木的"組裝說明書"。讀懂它,你不僅能快速解決眼前的調(diào)試問題,更能理解整個系統(tǒng)的"骨骼架構(gòu)"——這才是從"解決問題""看透本質(zhì)"的關(guān)鍵一躍。

下次遇到系統(tǒng)構(gòu)建問題時,不妨先打開這個腳本,順著它的步驟一步步排查。很多時候,答案就藏在那些看似平凡的cpapt-getsed命令里。

(如果覺得有用,歡迎轉(zhuǎn)發(fā)給你的開發(fā)伙伴~)

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

    關(guān)注

    41

    文章

    3744

    瀏覽量

    133611
  • 移植
    +關(guān)注

    關(guān)注

    1

    文章

    414

    瀏覽量

    29386
  • 腳本
    +關(guān)注

    關(guān)注

    1

    文章

    408

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    如何在LabVIEW中嵌入第三方軟件界面

    如何把第三方軟件的界面嵌入到labview中,并且能夠在LabVIEW的前面板中對第三方軟件進(jìn)行操作。LabVIEW中有Active用于IE回調(diào)的例子,可以在LabVIEW前面板中操作IE。想把IE換成
    發(fā)表于 04-27 23:06

    嵌入式AI語音平臺已對第三方開放 你更支持誰家的“助手”?

    亞馬遜Alexa。星更是在今年底推出自家Bixby智能語音應(yīng)用。同時,科技巨頭們也紛紛針對智能語音推出第三方開發(fā)者,意圖在更多領(lǐng)域設(shè)備產(chǎn)品上獲得嵌入式語音集成。蘋果(Siri)從12年6月開始
    發(fā)表于 12-28 17:24

    國內(nèi)知名第三方檢測認(rèn)證機(jī)構(gòu)排名

    的商品檢驗活動。第三方檢測機(jī)構(gòu)企業(yè)的存在有著其自己特別的意義,能為產(chǎn)業(yè)轉(zhuǎn)型升級提供支持,為產(chǎn)業(yè)的發(fā)展提供強(qiáng)有力的服務(wù)平臺等。隨著人們生活水平的提高以及國際貿(mào)易壁壘的加劇,我國第三方檢測行業(yè)快速發(fā)展
    發(fā)表于 07-19 16:57

    如何利用第三方軟件快速實現(xiàn)FPGA嵌入式系統(tǒng)設(shè)計?

    這還是“新鮮事物”。學(xué)習(xí)并掌握一項新的技術(shù)或具備某種能力,比如學(xué)習(xí)FPGA開發(fā)技術(shù)并將其應(yīng)用到實際系統(tǒng)中,這是一項艱巨任務(wù)。AltiumDesigner 提供了一種簡單輕松的方法,可以幫助軟/硬件工程師共同應(yīng)對FPGA
    發(fā)表于 09-20 07:10

    嵌入式JavaPOS系統(tǒng)接口怎么測試?

    的規(guī)范、開發(fā)和調(diào)試平臺。系統(tǒng)升級和移植困難,尤其對于一體機(jī)等需要第三方開發(fā)軟件的應(yīng)用,造成開發(fā)上更大的難度。虛擬機(jī)VM的改進(jìn),Java應(yīng)用的速度已經(jīng)不是太大的問題。
    發(fā)表于 10-08 08:05

    請問第三方平臺授權(quán)如何實現(xiàn)?

    第三方平臺授權(quán)如何實現(xiàn)
    發(fā)表于 11-10 07:27

    buildroot如何添加支持第三方軟件?

    iMX6ULL終結(jié)者Buildoot文件系統(tǒng)構(gòu)建篇buildroot添加支持第三方軟件
    發(fā)表于 04-02 06:06

    嵌入式系統(tǒng)中動畫設(shè)計方法的適用度分析,不看肯定后悔

    不需安裝第三方軟件的動畫設(shè)計方法分析需要安裝第三方軟件的動畫設(shè)計方法分析可用于嵌入式系統(tǒng)開發(fā)的腳本語言
    發(fā)表于 04-28 06:38

    淺析嵌入式系統(tǒng)移植

    Linux 在嵌入式中應(yīng)用的條件與前景嵌入式系統(tǒng)越來越追求數(shù)字化、網(wǎng)絡(luò)化和智能化。這就要要求整個嵌入式系統(tǒng)必須是開放的、提供標(biāo)準(zhǔn)的API,并
    發(fā)表于 07-28 07:07

    鴻蒙開源第三方組件資料合集

    展示1、測試界面。 如圖1所示,這是一個為了測試Timber_ohos功能而簡單構(gòu)建的UI頁面。點擊“測試”按鈕即可輸出相應(yīng)的log。2、鴻蒙開源第三方組件
    發(fā)表于 03-23 09:53

    最受歡迎的第三方平臺——呼叫中心系統(tǒng)

    中小企業(yè)一定要選擇正規(guī)的呼叫中心供應(yīng)商,只有應(yīng)有強(qiáng)大的第三方合作平臺,才能擁有更專業(yè)的系統(tǒng)團(tuán)隊以及系統(tǒng)維護(hù)平臺,只有可信的團(tuán)隊才能為企業(yè)帶來
    發(fā)表于 09-20 17:54

    基于第三方信號無源探測系統(tǒng)研究

    文中主要討論了基于第三方信號檢測隱形目標(biāo)的無源探測系統(tǒng),并對偵察第三方信號作用距離和基于第三方信號無源探測系統(tǒng)的作用距離進(jìn)行仿真,證明基于
    發(fā)表于 03-01 15:35 ?29次下載
    基于<b class='flag-5'>第三方</b>信號無源探測<b class='flag-5'>系統(tǒng)</b>研究

    B/S模式下電子商務(wù)第三方物流體系的構(gòu)建

    特點與作業(yè)過程,應(yīng)該更加有效的利用B/S現(xiàn)代信息技術(shù),高效地實現(xiàn)對電商第三方物流企業(yè)的管理,在B/S模式下設(shè)計構(gòu)建出有效的電子商務(wù)第三方物流體系信息管理系統(tǒng)。結(jié)果證實,在B/S模式下
    發(fā)表于 10-30 14:49 ?2次下載
    B/S模式下電子商務(wù)<b class='flag-5'>第三方</b>物流體系的<b class='flag-5'>構(gòu)建</b>

    第三方腳本成為網(wǎng)絡(luò)攻擊“重災(zāi)區(qū)”,多管齊下防范第三方腳本安全隱患

      第三方腳本攻擊利用的是第一網(wǎng)站對第三方腳本的控制力不足和難以實現(xiàn)的全面監(jiān)測,造成較為嚴(yán)重的攻擊后果。除此之外,
    的頭像 發(fā)表于 09-04 14:51 ?4483次閱讀

    阿里云加入IBM Cloud Paks第三方生態(tài)系統(tǒng)

    為了構(gòu)建更大更開放的混合云生態(tài),IBM 近日還宣布計劃在未來年內(nèi)向混合云生態(tài)系統(tǒng)投資 10億美元,助力第三方軟件提供商和數(shù)字化 IT 提供商的行業(yè)解決方案遷移到 IBM 的混合云
    的頭像 發(fā)表于 09-27 11:30 ?3143次閱讀