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

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

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

esp-matter開發(fā)環(huán)境搭建步驟

冬至配餃子 ? 來源:kurisaW ? 作者:kurisaW ? 2023-09-18 17:30 ? 次閱讀

前提準(zhǔn)備

1.Ubuntu22.04(磁盤容量不小于80G)
2.科學(xué)上網(wǎng)環(huán)境
由于后面的 esp-matter 測試的時候需要使用到科學(xué)上網(wǎng)環(huán)境,所以我們需要提前確保 linux 環(huán)境能夠使用科學(xué)上網(wǎng)。

esp-idf 開發(fā)環(huán)境搭建

1.ESP-IDF 依賴環(huán)境安裝

sudo apt-get install git wget flex bison gperf python3 python3-pip python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0

由于在克隆官方esp-idf倉庫的時候一般會發(fā)生如下兩個錯誤:

Problem1:執(zhí)行 git submodule 速度慢
Problem2:執(zhí)行install.sh 速度慢

所以我們這里特別著重講解,注意,這里解決問題的順序與esp-idf環(huán)境搭建是一起進(jìn)行的,讀者可以順著流程走。

2.Problem1 solution

首先使用遞歸克隆命令克隆整個倉庫到文件夾下

mkdir /home/kurisaw/Desktop/esp
git clone --recursive
git submodule update --init --recursive

由于 esp-idf 倉庫下有很多遞歸的下游倉庫,一般使用 GitHub 下載的話也會導(dǎo)致遞歸下載失敗,所以樂鑫官方提供了兩種解決方案,包括鏡像倉庫使用、submodule 更新、開發(fā)工具安裝等,可加速環(huán)境的搭建。解決方案如下:

jihu-mirror 使用(推薦
submodule-update 使用(不推薦)
2.1 jihu-mirror 使用(推薦)
Step 1:
git clone
cd esp-gitee-tools
Step 2:
// 使用如下命令將倉庫的 URL 進(jìn)行替換

Step 3:
// 啟用鏡像URL
./jihu-mirror.sh set
使用命令 ./jihu-mirror.sh unset 恢復(fù),不使用鏡像的 URL。

Step 4:當(dāng)使用鏡像 URL 之后,再遞歸克隆 esp-idf 倉庫
git clone --recursive https://github.com/espressif/esp-idf.git
當(dāng)然如果不想使用鏡像的URL可以使用如下命令進(jìn)行恢復(fù):

./jihu-mirror.sh unset
2.2 submodule-update 使用(不推薦)

Step 2:

// 僅克隆 esp-idf,不包含子模塊

Step 3:
可以有兩種方式來更新 submodules。

方式一

進(jìn)入 esp-gitee-tools 目錄,export submodule-update.sh 所在路徑,方便后期使用,如:

cd esp-gitee-tools
export EGT_PATH=$(pwd)
進(jìn)入 esp-idf 目錄執(zhí)行 submodule-update.sh 腳本:

cd esp-idf
$EGT_PATH/submodule-update.sh

方式二

submodule-update.sh 腳本支持將待更新 submodules 的工程路徑作為參數(shù)傳入,例如:submodule-update.sh PATH_OF_PROJ。

假如 Step 2 中 clone 的 esp-idf 位于 ~/git/esp32-sdk/esp-idf 目錄,可使用以下方式來更新:

cd esp-gitee-tools
./submodule-update.sh ~/git/esp32-sdk/esp-idf
如果要更新其他工程,可以同樣方式。

值得吐槽的是, submodule-update 這種方法還需要保持上游代碼分支的提交歷史一致,如果官方未及時更新則會導(dǎo)致該腳本暫時失效,不推薦使用,避坑!!

3.Problem2 solution
下面說第二個問題:執(zhí)行./install.sh速度慢的問題

在 Espressif Systems 的 esp-idf 開發(fā)框架中,某些組件的構(gòu)建過程需要從 GitHub 的 release 頁面下載預(yù)編譯的二進(jìn)制文件。然而,在中國大陸訪問 GitHub 的速度往往較慢并且不穩(wěn)定,為了改善這個問題,Espressif Systems 將這些預(yù)編譯的二進(jìn)制文件托管在國內(nèi)的服務(wù)器上,并提供了一個名為 IDF_GITHUB_ASSETS 的環(huán)境變量來指定這個地址。在設(shè)置了 IDF_GITHUB_ASSETS 變量之后,構(gòu)建過程將會從這個指定的地址下載預(yù)編譯的二進(jìn)制文件

export IDF_GITHUB_ASSETS="dl.espressif.com/github_assets"
然后再執(zhí)行安裝命令

./install.sh
在這還報了一個錯誤

我們根據(jù)提示安裝python3.10-venv,并再次執(zhí)行安裝命令:

apt install python3.10-venv
./install.sh

至此,esp-idf 的安裝工具就告一段落了。

esp-matter開發(fā)環(huán)境搭建

git clone --recursive
注意:如果上面的 esp-idf 開發(fā)環(huán)境的搭建使用的是 jihu-mirror 方式,那么你需要取消esp鏡像,按理說這部分錯誤不應(yīng)該發(fā)生,但實際上確實存在這部分問題,請執(zhí)行命令:./jihu-mirror.sh unset取消esp鏡像?。?/p>

若過程有報錯,請執(zhí)行下面命令在Git 倉庫中獲取到所有子模塊,并將所有子模塊及其下層子模塊更新至最新版本。

git submodule update --init --recursive
執(zhí)行安裝命令:

./install.sh
本以為到這就結(jié)束了,但不出意外的話意外發(fā)生了,在安裝過程中發(fā)生了報錯…

Building wheel for pycryptodome (setup.py): started
error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> See above for output.
note: This error originates from a subprocess, and is likely not a problem with pip.
Building wheel for pycryptodome (setup.py): finished with status 'error'
ERROR: Failed building wheel for pycryptodome
Running setup.py clean for pycryptodome
Building wheel for gevent (pyproject.toml): started
......
我們查看install.sh文件

#!/usr/bin/env bash
set -e
basedir=$(dirname "$0")
ESP_MATTER_PATH=(cd "{basedir}"; pwd)
MATTER_PATH=${ESP_MATTER_PATH}/connectedhomeip/connectedhomeip
export ESP_MATTER_PATH
echo ""
echo "Running Matter Setup"
echo ""
source ${MATTER_PATH}/scripts/bootstrap.sh
echo ""
echo "Installing zap-cli"
echo ""

Run the zap_download.py and extract the path of installed binary

eg output before cut: "export ZAP_INSTALL_PATH=zap/zap-v2023.03.06-nightly"

output after cut: zap/zap-v2023.03.06-nightly

TODO: Remove the zap-version after https://github.com/project-chip/connectedhomeip/pull/25727 merged

zap_path=python3 ${ESP_MATTER_PATH}/connectedhomeip/connectedhomeip/scripts/tools/zap/zap_download.py --sdk-root ${ESP_MATTER_PATH}/connectedhomeip/connectedhomeip --zap RELEASE --zap-version v2023.03.27-nightly --extract-root .zap 2>/dev/null | cut -d= -f2

Check whether the download is successful.

if [ -z $zap_path ]; then
echo "Failed to install zap-cli"
deactivate
exit 1
fi

Move files to one directory up, so that binaries will be in $ESP_MATTER_PATH/.zap/ directory and export.sh can leverage the fixed path

if [ -d "${ESP_MATTER_PATH}/.zap" ]; then
rm -r ${ESP_MATTER_PATH}/.zap
fi
mkdir ${ESP_MATTER_PATH}/.zap
mv *zap_path/{ESP_MATTER_PATH}/.zap/
rm -r $zap_path
chmod +x ${ESP_MATTER_PATH}/.zap/zap-cli
echo ""
echo "Building host tools"
echo ""
gn --root="
{MATTER_PATH}" gen **{MATTER_PATH}/out/host
ninja -C ${MATTER_PATH}/out/host
echo ""
echo "Host tools built at: ${MATTER_PATH}/out/host"
echo ""
echo ""
echo "Exit Matter environment"
echo ""
deactivate
echo ""
echo "Installing python dependencies for mfg_tool"
echo ""
python3 -m pip install -r ${ESP_MATTER_PATH}/tools/mfg_tool/requirements.txt
echo ""
echo "Installing python dependencies for Matter"
echo ""
python3 -m pip install -r ${ESP_MATTER_PATH}/requirements.txt
echo "All done! You can now run:"
echo ""
echo " . ${basedir}/export.sh"
echo ""

發(fā)現(xiàn)問題出在第10到13行,我嘗試安裝系統(tǒng)必要的依賴項來解決這個問題,成功解決!命令如下:

sudo apt install build-essential python3-dev
sudo apt-get install pkg-config
sudo apt-get install libglib2.0-dev libglib2.0-dev-bin libgio2.0-cil-dev

接著在安裝zap-cli的時候再次發(fā)生報錯,需要安裝以下依賴庫,并再次運行安裝腳本命令,等待編譯

sudo apt-get install libssl-dev
sudo apt-get install pip
./install.sh

最后看到All done!即代表環(huán)境安裝成功!

至此,esp-matter開發(fā)環(huán)境搭建成功!

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

    關(guān)注

    2

    文章

    786

    瀏覽量

    41564
  • Linux系統(tǒng)
    +關(guān)注

    關(guān)注

    4

    文章

    590

    瀏覽量

    27317
  • URL
    URL
    +關(guān)注

    關(guān)注

    0

    文章

    139

    瀏覽量

    15298
  • ESP模塊
    +關(guān)注

    關(guān)注

    1

    文章

    3

    瀏覽量

    6787
收藏 人收藏

    評論

    相關(guān)推薦

    esp-matter在安裝時一直卡在Setting up CIPD package manager.的原因?

    在按照文檔上操作 git clone --depth 1 https://github.com/espressif/esp-matter.git cd esp-matter git
    發(fā)表于 06-05 08:15

    使用esp32c3開發(fā)matter時,開發(fā)好的產(chǎn)品還需要走matter官方認(rèn)證流程獲得認(rèn)證嗎?

    使用esp32c3開發(fā)matter時,(SDK使用esp-matter),使用這個芯片開發(fā)matter
    發(fā)表于 06-11 07:46

    esp-matter執(zhí)行install.sh失敗的原因?

    manager...Traceback (most recent call last): File \"/home/rck/esp2/esp-matter/connectedhomeip
    發(fā)表于 06-11 08:39

    esp-matter使用idf.py編譯light sample報錯怎么解決?

    搭建esp-matter后,編譯light sample的時候報錯 rck@ubuntu:~/ESP/esp-matter/examples/light$ idf.py buil
    發(fā)表于 06-11 07:04

    esp-matter light示例配對過程中出錯的原因?

    開發(fā)環(huán)境為Ubuntu22.04 ,ESP-IDF版本為: v5.2-dev-503-g17451f1fb3,使用的開發(fā)板為esp32s3
    發(fā)表于 06-11 07:19

    esp-Matter執(zhí)行install.sh失敗的原因?

    manager...Traceback (most recent call last): File \"/home/edu118/work/matter/esp-matter/esp-matter
    發(fā)表于 06-12 07:18

    MacOS按照文檔的步驟進(jìn)行環(huán)境的配置, esp-matter執(zhí)行./install.sh的時候報錯怎么解決?

    MacOS 按照文檔的步驟進(jìn)行環(huán)境的配置, esp-matter執(zhí)行./install.sh的時候報錯: Downloading and installing packages into local
    發(fā)表于 07-19 07:41

    基于matter協(xié)議開發(fā),搭建環(huán)境時報錯要如何解決?

    你們好 我想問一下 我想基于matter協(xié)議開發(fā)ESP-32參考:https://docs.espressif.com/projects/esp ... oping.html按照上面的
    發(fā)表于 02-10 08:34

    esp-matter如何為按鈕配置GPIO?

    我只是在嘗試 esp-matter 的按鈕示例。我想檢查連接了哪個 PIN,但不幸的是我無法從源代碼中弄清楚。下面提到的 app_driver_switch_init() 函數(shù)應(yīng)該初始化按鈕,將通過
    發(fā)表于 04-13 07:53

    Android 開發(fā)環(huán)境搭建步驟詳細(xì)圖解

    Android 開發(fā)環(huán)境搭建步驟詳細(xì)圖解
    發(fā)表于 10-24 08:49 ?11次下載
    Android <b class='flag-5'>開發(fā)</b><b class='flag-5'>環(huán)境</b><b class='flag-5'>搭建</b><b class='flag-5'>步驟</b>詳細(xì)圖解

    ESP8266 SDK開發(fā)環(huán)境搭建初級教程

    ESP8266 SDK 開發(fā)環(huán)境 本章主要從開發(fā)環(huán)境搭建、工程模板建立、
    發(fā)表于 12-07 14:42 ?15次下載
    <b class='flag-5'>ESP</b>8266 SDK<b class='flag-5'>開發(fā)</b><b class='flag-5'>環(huán)境</b><b class='flag-5'>搭建</b>初級教程

    ESP32教程——Windows開發(fā)環(huán)境搭建.pdf下載

    ESP32教程——Windows開發(fā)環(huán)境搭建.pdf
    發(fā)表于 04-14 10:41 ?47次下載
    <b class='flag-5'>ESP</b>32教程——Windows<b class='flag-5'>開發(fā)</b><b class='flag-5'>環(huán)境</b><b class='flag-5'>搭建</b>.pdf下載

    搭建Matter編譯環(huán)境步驟

    Matter應(yīng)用是基于Zephyr實時操作系統(tǒng)實現(xiàn)的,因此在配置Matter項目前,需要提前配置Zephyr工程以及Telink的工具鏈,但是手動配置Zephyr環(huán)境以及配置Telink工具鏈所需要執(zhí)行的
    的頭像 發(fā)表于 08-24 15:02 ?3360次閱讀

    ESP-Matter燒錄體驗例程

    ESP-MatterESP32系列SoC的官方Matter開發(fā)框架。它建立在開源的Matter SDK之上,提供了簡化的API、常用的外圍
    的頭像 發(fā)表于 07-07 10:39 ?635次閱讀
    <b class='flag-5'>ESP-Matter</b>燒錄體驗例程

    經(jīng)驗分享 | ESP-Matter 燒錄體驗

    ESP-MatterESP32系列SoC的官方Matter開發(fā)框架。它建立在開源的MatterSDK之上,提供了簡化的API、常用的外圍設(shè)備、用于安全、制造和生產(chǎn)的工具和實用程序,并
    的頭像 發(fā)表于 07-07 10:04 ?966次閱讀
    經(jīng)驗分享 | <b class='flag-5'>ESP-Matter</b> 燒錄體驗