Running Host Applications with Pre-Built Packages#
Running Host Applications with Debian-Bookworm Packages#
As mentioned before, users can install pre-built host applications. The packages can be acquired from Silicon Labs Github Page: https://github.com/SiliconLabs/simplicity_sdk/releases in the debain-bookworm.zip folder.
Install the packages with the following command:
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 Z3Gateway Host Applications#
Follow instructions in Building Zigbee Host Applications.
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
.