Running Host Applications with Pre-Built Packages#
Running Host Applications with Debian-Bookworm Packages#
As mentioned before, you can install pre-built host applications. The packages can be acquired from the Silicon Labs Github Page: https://github.com/SiliconLabs/simplicity_sdk/releases in the debian-bookworm.zip folder.
Install all packages, making sure to match the right version to your system architecture.
First, install the cpc packages.
apt-get install -y ./debian-bookworm/deb/libcpc3_<version>.deb
apt-get install -y ./debian-bookworm/deb/libcpc-dev_<version>.deb
apt-get install -y ./debian-bookworm/deb/cpcd_<version>.deb
Then, install the ot-br-posix and zigbeed packages.
Note: When installing the ot-br-posix .deb file on 32-bit bookworm systems such as armhf (arm32v7), make sure the dhcpcd package on your target system is higher than the recommended bookworm version of 9.4.1-24, which has a known startup issue. The bookworm-backports apt source provides version 10.1.0 which is highly recommended. If not, Silicon Labs recommends updating your dhcpcd package version to at least 9.5.1. To use the backports source, you can create the following two files and then run
sudo apt update
.
/etc/apt/sources.list.d/bookworm-backports.list:
deb [trusted=yes] http://deb.debian.org/debian bookworm-backports main
/etc/apt/preferences.d/bookworm-backports:
Package: dhcpcd
Pin: release n=bookworm-backports
Pin-Priority: 1001
Package: dhcpcd-base
Pin: release n=bookworm-backports
Pin-Priority: 1001
apt-get install -y ./debian-bookworm/deb/ot-br-posix_<version>.deb
apt-get install -y ./debian-bookworm/deb/zigbeed_<version>.deb
Running Host Applications with OpenWRT Packages#
Silicon Labs provides evaluation multiprotocol host application packages for OpenWRT. These packages are pre-built for Raspberry Pi 4 – bcm2711 devices running OpenWRT version 23.05.3.
Installation#
To use these packages, download the release tar file containing the ipk packages from https://github.com/SiliconLabs/simplicity_sdk/releases.
The openwrt.tar.gz should contain:
openthread-br_<version>.ipk
cpcd_<version>.ipk
libcpc_<version>.ipk
zigbeed_<version>.ipk
Install the packages with opkg install silabs/\*.ipk
.
To register a uart device with a /dev/ttyACM
device filepath, it is recommended to download the kmod-usb-acm package.
opkg update
opkg install kmod-usb-acm
As described in Running Local Processes Concurrently: Running Zigbeed, the socat utility is needed for zigbeed. Make sure it is also installed on the system.
opkg install socat
Install CPCD#
opkg update
opkg install libcpc_<version>.ipk
opkg install cpcd_<version>.ipk
Install OTBR#
opkg update
opkg install openthread-br_<version>.ipk
Install Zigbeed#
opkg update
opkg install zigbeed_<version>.ipk
Build Bluetooth and Zigbee Host Applications#
Both the Bluetooth host and Z3Gateway host applications can be built for OpenWRT. Instructions to build applications for OpenWRT can be found on the OpenWRT.org website.
The cpcd.conf
and zigbeed.conf
files (described in section Configuring CPCD) are both populated during installation.
There are two setup instructions recommended for the openthread-br
package, updating the firewall options, and updating the radio-url in the otbr-agent
configuration file.
OpenWRT has a firewall that is independent of the Silicon Labs multiprotocol host apps. However, the firewall can interfere with the host apps as far as the generic processing of IP traffic is concerned, such as with the openthread border router application. One simple way to ensure that all IP traffic can be processed is by setting the policy for each firewall chain to ‘ACCEPT’; other alternatives can be configured on a case by case basis using the OpenWRT Firewall configuration user guide: https://openwrt.org/docs/guide-user/start#firewall_configuration.
The firewall service can be updated through the OpenWRT Unified Configuration Interface (UCI) with the following commands:
uci set firewall.@defaults[0].input=’ACCEPT’
uci set firewall.@defaults[0].output=’ACCEPT’
uci set firewall.@defaults[0].forward=’ACCEPT’
uci commit
service firewall restart
The other recommended setup step needed for the openthread-br package is to update the radio-url in the otbr-agent configuration file, /etc/init.d/otbr-agent with the radio-url specified in OpenThread Host Applications in order to use the multiprotocol supported spinel interface using cpc-daemon.
Startup#
To start up the installed and configured multiprotocol host applications, perform the following sequence:
Run the cpc-daemon with
/usr/bin/cpcd
.Bind to the RCP if not previously done with
cpcd –bind ecdh
.Launch the
cpcd
program in the background or in a separate terminal withcpcd&
.
For
openthread-br
:Launch the otbr-firewall service with
service otbr-firewall start
.Launch the otbr-agent service with
service otbr-agent start
.Launch the
ot-ctl
program to connect to the OpenThread cli through the agent socket.
For Zigbee Host applications:
Run zigbeed with
/usr/bin/zigbeed
.Run Z3Gateway as in any other native configuration ie.
{Z3Gateway_build_path}/zigbee_z3_gateway -p ttyZigbeeNCP
.