You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 36 Next »

Scope

Goal is to understand and bringup required platform for supporting thread & Bluetooth in RDK-B Bananapi R4 with silabs module

Banana Pi R4 release used

  • Beta engineering release of 05 Feb 2025

Hardware used

  •  Silabs xG24 Explorer Kit (brd2703a)

Where to purchase hardware

Highlevel block diagram of Thread & Bluetooth

  • otbr

Kernel side changes for Thread

  • Minimal kernel changes

    • CONFIG_USB_ACM=y

      • drivers/usb/class/Makefile

      • Description - ACM support for UART communication
    • CONFIG_TUN=y

      • drivers/net/tap.c

      • Description - TUN generic  support 
    • CONFIG_IEEE802154=y

      • net/ieee802154

      • Description - Generic IEEE802154
    • CONFIG_MAC802154=y

      • net/mac802154

      • Description - Generic MAC layer for IEEE802154
    • kcmf

User space code changes for Thread in meta-cmf-broadband/recipes-connectivity

Yocto changes for Thread

  • Image install changes in BPI for thread

    • otbrinstall11

Runtime changes for Thread

  • cpcd.conf

    • set disable_encryption to true
  • cpcd.service

    • Remove ExecStartPre=/usr/bin/init-iot-radio.sh
  • Directory creation

    • mkdir /nvram/icontrol/etc/thread
  • systemctl enable otbr-agent

  • otbr-agent.service

    • update debug level to 7 from 5 

Testing of thread

  • cpcd service should be up and running
  • otbr-agent service should be up and running
  • ot-ctl shoule be accessible and get state
    • W:~# ot-ctl 
      > state
      disabled
      Done
      > 


Firmware upgrade of BRD module

Documentation for thread

Key check points when we land in issues for thread

  • Make sure we have wpan0 interface up
  • brlan0 should be up and running
  • wpan0 - who creates it ? - otbr-agent
    • More technical explanation on user space

      • Initial OTBR-agent startup:
        • OTBR-agent process starts
        • At this point, no wpan0 interface exists yet
        • No socket exists yet at /run/openthread-wpan0.sock
      • OTBR-agent creates socket:
        • Creates Unix domain socket at /run/openthread-wpan0.sock
        • This socket will be used for IPC/control operations
      • OTBR-agent creates network interface:
        • Creates the wpan0 network interface
        • Takes ownership of managing this interface
      • Runtime dependencies:
        • The wpan0 interface is ONLY available while OTBR-agent is running
        • If OTBR-agent stops, the wpan0 interface goes away
        • Other services/processes should not expect wpan0 to exist without OTBR-agent running
      • Communication flow:
        • Other processes can communicate with OTBR-agent through the socket at /run/openthread-wpan0.sock
        • Network traffic goes through the wpan0 interface managed by OTBR-agent
    • Can i assume that the above mentioned kernel config to be enabled,if so why , kernel side explanation

        1. CONFIG_TUN=y
          • Required since OTBR-agent creates the wpan0 network interface
          • The TUN/TAP driver support enables creation of virtual network interfaces
          • Without this, OTBR-agent wouldn't be able to create the wpan0 interface
        2. CONFIG_IEEE802154=y
          • Required as the base IEEE 802.15.4 protocol support
          • Provides the fundamental IEEE 802.15.4 networking stack
          • OTBR-agent uses this for Thread networking which runs on 802.15.4
        3. CONFIG_MAC802154=y
          • Required for MAC layer operations of IEEE 802.15.4
          • Handles MAC layer functionality like addressing and frame formatting
          • OTBR-agent relies on this for proper 802.15.4 packet handling

        Without these kernel configurations:

        • The wpan0 interface creation would fail
        • The IEEE 802.15.4 networking stack wouldn't be available
        • The MAC layer operations for Thread networking wouldn't work

Code changes to support Bluetooth 

Testing bluetooth

  • process state

    • psatet
  • hciconfig

    • hciconfigefr
  • Device connection using bluetoothctl

    • btefrtest
    • Module test - TAPO Matter smart plug
  • systemctl status

    • sysbt









  • No labels