Loading

树莓派4B Ubuntu22.04编译chip-tool

克隆代码

  1. 克隆Matter仓库代码

克隆深度为1,可以减少硬盘空间的使用,另外也可以加快进度。

git clone --depth=1 https://github.com/project-chip/connectedhomeip.git
  1. 针对Linux平台检出第三方平台仓库代码

由于第三方那个平台仓库较多,需要花费较多时间,至少30分钟(实际取决于网络速度)。

cd connectedhomeip
git submodule update --init --depth 1

前置环境

安装必要的软件工具和库

sudo apt-get update
sudo apt-get install git gcc g++ pkg-config cmake libssl-dev libdbus-1-dev \
     libglib2.0-dev libavahi-client-dev ninja-build python3-venv python3-dev \
     python3-pip unzip libgirepository1.0-dev libcairo2-dev libreadline-dev \
     default-jre

检查环境

这一步需要检查环境,并安装必要的环境工具和库,需要花费较长时间(至少30分钟)。

cd connectedhomeip
source scripts/activate.sh

编译项目

由于TF卡IO性能瓶颈,内存搬运到TF卡太慢了,内存就会爆满,导致编译过程中会卡死,报错:INFO:task xxxx:634 blocked for more than 120 seconds

  • 查看内存:
ubuntu@ubuntu:~$ free -h
               total        used        free      shared  buff/cache   available
Mem:           3.7Gi       157Mi       3.2Gi       3.0Mi       313Mi       3.4Gi
Swap:             0B          0B          0B

此时,发现交换内存没有使用,这就是导致编译卡死的原因。
启用交换内存,执行如下步骤:

# 创建 4GB 交换文件(建议大小)
sudo fallocate -l 4G /swapfile

# 设置正确权限
sudo chmod 600 /swapfile

# 设置为交换文件
sudo mkswap /swapfile

# 立即启用交换文件
sudo swapon /swapfile

查看是否启用成功:

# 验证
free -h

现在应该能看到 Swap 显示约 4GB。

设置永久有效:

# 备份 fstab
sudo cp /etc/fstab /etc/fstab.bak

# 添加交换文件到 fstab
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

由于树莓派性能不够,这一步编译时间较长(预计需要2小时)。

cd connectedhomeip
gn gen out/host
ninja -C out/host
posted @ 2025-10-17 16:29  eiSouthBoy  阅读(9)  评论(0)    收藏  举报