Building the Unify Matter Bridge for Debian Bullseye (Or similar Ubunutu) x86_64
Note: In the following subsections the commands should either be run on your local development machine or inside a running Docker container, as distinguished by the structure of the example.
some-command should be executed on your local machine.
dev-machine:~$ some-command
some-other-command should be executed inside the Docker container.
root@docker:/<dir>$ some-other-command
Set Up the Matter Build Environment
Once you have all the necessary submodules, source the Matter environment with the following command. This loads a number of build tools and makes sure the correct toolchains and compilers are used for compiling the Unify Matter Bridge.
Check Out Submodules
Check out the necessary submodules with the following command.
dev-machine:~/matter$ ./scripts/checkout_submodules.py --platform linux
Clone and Stage the Unify SDK Repository
🔴 Assuming you have cloned the matter repo in
~/matter
dev-machine:~/matter$ git clone --depth 1 https://github.com/SiliconLabs/UnifySDK.git --recursive ../uic-matter
Build the docker container (host compilation)
dev-machine:~/matter$ docker build -t unify-matter-host --build-arg ARCH=amd64 silabs_examples/unify-matter-bridge/docker/
Run the docker container (host compilation)
🔴 Make sure the directory structure is like follows where Unify repo
uic-matter/
and matter repomatter/
are at same directory level. ├── matter └── uic-matter
Starting the docker from matter/
directory where you cloned the matter repo: Here we asuume matter/
is in ~
dev-machine:~$ cd matter
dev-machine:~/matter$ docker run -it -v $PWD:/matter -v $PWD/../uic-matter:/uic unify-matter-host
Compile and install libunify for host.
root@docker:/uic$ cmake -DCMAKE_INSTALL_PREFIX=$PWD/stage -GNinja -B build_unify_amd64/ -S components
root@docker:/uic$ cmake --build build_unify_amd64
root@docker:/uic$ cmake --install build_unify_amd64 --prefix $PWD/stage
root@docker:/uic$ export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$PWD/stage/share/pkgconfig
Activate Matter development environment.
root@docker:/matter$ source ./scripts/activate.sh
Compile the Unify Matter Bridge
root@docker:/matter$ cd silabs_examples/unify-matter-bridge/linux/
root@docker:/matter/silabs_examples/unify-matter-bridge/linux$ gn gen out/host
root@docker:/matter/silabs_examples/unify-matter-bridge/linux$ ninja -C out/host
🔴 After building, the
unify-matter-bridge
binary is located at/matter/silabs_examples/unify-matter-bridge/linux/out/host/obj/bin/unify-matter-bridge
.
Compile the chip-tool
The chip-tool
is a CLI tool that can be used to commission the bridge and to control end devices.
root@docker:/matter$ cd examples/chip-tool
root@docker:/matter/examples/chip-tool$ gn gen out/amd64
root@docker:/matter/examples/chip-tool$ ninja -C out/amd64
🔴 After building, the chip-tool binary is located at
/matter/examples/chip-tool/out/amd64/obj/bin/chip-tool
.
Troubleshooting
Refer to Troubleshooting section in readme_building.md