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:

  1. Run the cpc-daemon with /usr/bin/cpcd.

    1. Bind to the RCP if not previously done with cpcd –bind ecdh.

    2. Launch the cpcd program in the background or in a separate terminal with cpcd&.

  2. For openthread-br:

    1. Launch the otbr-firewall service with service otbr-firewall start.

    2. Launch the otbr-agent service with service otbr-agent start.

    3. Launch the ot-ctl program to connect to the OpenThread cli through the agent socket.

  3. For Zigbee Host applications:

    1. Run zigbeed with /usr/bin/zigbeed.

    2. Run Z3Gateway as in any other native configuration ie. {Z3Gateway_build_path}/zigbee_z3_gateway -p ttyZigbeeNCP.