搭建 MTK G350 開發環境全指南
全面掌握 Yocto Linux 和 Android 平台,成功運行 Matter SDK 示例應用
關鍵要點
- 環境準備:確保硬體和軟體資源齊備,包括 MediaTek Genio 350 EVK、Yocto 和 Android 開發工具。
- Yocto Linux 設置:配置 Yocto 開發環境,構建和燒錄自定義 Linux 映像。
- Matter SDK 集成:配置並運行 Matter SDK 示例應用,驗證開發環境的功能性。
一、環境準備
1. 硬體需求
搭建 MTK G350 開發環境需要以下硬體設備:
- MediaTek Genio 350 EVK (Evaluation Kit):這是核心開發板,包含必要的接口和擴展能力,適合各類開發和測試。
- 開發主機:建議使用配置較高的電腦,推薦配置至少:
- 處理器:Intel i5 或更高性能處理器
- 內存:16GB 以上
- 硬盤:500GB 以上 SSD
- 操作系統:Ubuntu 20.04 或更新版本
2. 軟體需求
軟體工具和依賴項的安裝是成功搭建開發環境的關鍵步驟:
- Yocto Project:用於構建定制化的嵌入式 Linux 系統。
- Android 開發工具:包括 Android Studio、Android SDK 和 NDK,支持 Android 平台應用的開發。
- Matter SDK:Matter 是一個開放的物聯網協議,提供跨平台的設備連接能力。
- 其他必要工具:如 Git、CMake、GCC 編譯器、Python3 等。
3. 系統依賴安裝
在 Ubuntu 系統上安裝所需的依賴包:
sudo apt-get update
sudo apt-get install -y git gnupg flex bison gperf libsdl1.2-dev libesd-java libwxgtk3.0-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev pngcrush schedtool libc6-dev schedtool g++-multilib lib32z1-dev lib32ncurses5-dev ninja-build rpm2cpio cpio lib32readline-dev gcc-multilib libswitch-perl libssl-dev unzip device-tree-compiler vim liblz4-tool python-pyelftools python3-pyelftools
二、Yocto Linux 開發環境設置
1. 下載 Yocto Project 組件
從 MediaTek 的官方 GitLab 下載 Yocto 源碼:
git clone https://mediatek.gitlab.io/aiot/doc/aiot-dev-guide/master/
進入源碼目錄並初始化 Yocto 環境:
cd aiot-dev-guide/master/
source oe-init-build-env
2. 配置 Yocto 環境
編輯 local.conf 和 bblayers.conf 以適配 Genio 350 的配置:
nano conf/local.conf
nano conf/bblayers.conf
根據 MediaTek 提供的文檔添加必要的層和配置信息。
3. 構建 Yocto 映像
使用 Bitbake 構建自定義的 Yocto 映像:
bitbake core-image-minimal
構建過程可能需要一段時間,請耐心等待直至完成。
4. 燒錄 Yocto 映像到開發板
將生成的映像燒錄到 SD 卡上,然後將 SD 卡插入 Genio 350 開發板:
sudo dd if=path/to/yocto-image.bin of=/dev/sdX bs=4M status=progress && sync
拔插開發板的電源以啟動並運行自定義的 Yocto Linux 系統。
5. 驗證 Yocto 系統運行
通過串口或 SSH 登錄到開發板,確認系統正常啟動並運行:
ssh root@<開發板IP地址>
執行基本命令如 uname -a 確認內核版本和系統狀態。
三、Android 開發環境設置
1. 安裝 Android Studio
下載並安裝最新版本的 Android Studio。可以從官方網站獲取安裝包:
https://developer.android.com/studio
安裝完成後,啟動 Android Studio,並按照引導步驟配置 Android SDK。
2. 配置 Android 開發工具鏈
安裝必要的 SDK 和 NDK 工具,以支持跨平台開發:
SDK Manager 中安裝最新的 Android SDK Platform 和 NDK
設置環境變量以指向 Android SDK 和 NDK 的安裝路徑:
export ANDROID_HOME=/path/to/android/sdk
export ANDROID_NDK_HOME=/path/to/android/ndk
3. 下載並配置 G350 Android BSP
從 MediaTek 下載適用於 Genio 350 的 Android BSP (Board Support Package):
git clone https://git.mediatek.com/aiot/g350-android-bsp.git
進入 BSP 目錄,並運行初始化腳本:
cd g350-android-bsp
source build/envsetup.sh
lunch full_aiot8365p6_64_bsp_userdebug
4. 編譯 Android 映像
使用 make 命令編譯 Android 系統映像:
make -j$(nproc)
編譯完成後,生成的映像文件將位於 out/target/product/g350 目錄下。
5. 燒錄 Android 映像到開發板
使用 fastboot 將生成的 Android 映像燒錄到 Genio 350 開發板:
fastboot flashall
fastboot reboot
等待開發板自動重啟並進入 Android 系統。
6. 驗證 Android 系統運行
通過 ADB 連接到開發板,確認 Android 系統正常運行:
adb devices
adb shell
運行基本命令如 adb shell getprop 確認系統屬性和狀態。
四、Matter SDK 開發與集成
1. 下載 Matter SDK
Matter 是一個開放的物聯網協議,提供跨平台的智能設備連接能力。從官方 GitHub 倉庫克隆 Matter SDK:
git clone https://github.com/project-chip/connectedhomeip.git
進入 Matter SDK 目錄:
cd connectedhomeip
2. 安裝依賴項
安裝必要的依賴項以支持 Matter SDK 的構建和運行:
sudo apt-get install -y gcc g++ git curl wget python3 python3-pip
pip3 install -r requirements.txt
3. 構建 Matter SDK
初始化 Matter SDK 的構建環境並生成編譯配置:
source scripts/bootstrap.sh
gn gen out/debug --args='chip_enable_shared_library=false target_os="linux" target_cpu="x64"'
ninja -C out/debug
4. 配置 Matter SDK 與 Yocto 集成
確保 Matter SDK 支持 Genio 350 的 Yocto 環境,編輯相關的 layer 和配置信息:
# 根據需求添加或修改 Yocto 層和配置文件
5. 部署並運行 Matter 示例應用
將編譯好的 Matter 應用部署到 Genio 350 開發板:
scp out/debug/chip-lighting-app root@<開發板IP地址>:/usr/bin/
在開發板上運行應用:
ssh root@<開發板IP地址>
chmod +x /usr/bin/chip-lighting-app
/usr/bin/chip-lighting-app
6. 驗證 Matter 應用功能
確保應用正常運行,並能夠與其他 Matter 設備進行通信。可以通過以下方式驗證:
- 檢查應用日誌以確認無錯誤信息。
- 使用 Matter 診斷工具測試設備連接和功能。
- 通過 Android 應用連接並控制 Matter 設備,驗證連接的穩定性和功能性。
7. 調試與優化
在開發和測試過程中,可能需要進行調試和性能優化:
- 使用 GDB 進行調試:啟動 GDB 來調試應用的運行狀態。
- 查看系統日誌:使用
dmesg或journalctl查看系統和應用的日誌信息。 - 監控網絡通信:確保網絡連接穩定,並使用 Wireshark 等工具監控通信數據包。
8. 開發最佳實踐
- 保持代碼版本控制,使用 Git 來管理源碼。
- 定期更新 Yocto 和 Matter SDK 以獲取最新的功能和安全修復。
- 撰寫和執行自動化測試用例,確保應用的穩定性和功能完整性。
- 參考官方文檔和社區資源,積極參與相關論壇和討論以獲取支持。
五、常見問題與解決方案
1. 構建 Yocto 映像失敗
如果在執行 bitbake core-image-minimal 時出現錯誤,請檢查以下幾點:
- 確保所有必要的依賴包已正確安裝。
- 檢查
local.conf及bblayers.conf文件中的配置是否正確。 - 查看錯誤日誌,定位具體的錯誤信息並進行針對性修復。
2. Android 映像無法啟動
如果開發板無法正常啟動 Android 系統,請確認以下事項:
- 映像文件是否正確燒錄,並且未被損壞。
- 開發板的硬體連接是否穩定,尤其是電源和存儲設備。
- 檢查 Android 系統的日誌,識別啟動過程中的問題。
3. Matter 應用無法連接設備
如果 Matter 應用無法連接到其他設備,請檢查:
- 網絡設置是否正確,確保開發板和目標設備在同一網絡中。
- 防火牆設置是否阻止了相關的通信端口。
- 確認與其他 Matter 設備的兼容性問題,確保協議版本一致。
4. 調試工具無法連接
如果調試工具如 GDB 無法連接到應用,請確保:
-
應用已在調試模式下運行。
-
開發板和主機之間的連接穩定,無網絡延遲或丟包問題。
-
防火牆設置允許調試工具的通信。
六、參考資源
七、結論
搭建 MTK G350 開發環境涉及多個步驟,包括硬體準備、Yocto Linux 和 Android 開發環境的搭建,以及 Matter SDK 的集成與測試。通過本文的詳細指南,您可以系統地完成環境設置,掌握相關平台的開發基礎,並成功運行 Matter SDK 的示例應用。建議在每個階段仔細檢查配置和依賴,並參考官方文檔和社區資源以解決遇到的問題。
Last updated January 23, 2025