Unable to start border router: backbone.cpp:58: Failure

67 views
Skip to first unread message

je back

unread,
Nov 8, 2021, 9:41:41 PM11/8/21
to openthread-users
I'm trying to run the border router on Linux (Debian 11.1). It works with the most recent docker image but not when building from source. One possible clue is that my wireless interface is not name wlan0 but wlp0s20f3. However, whether I run INFRA_IF_NAME=wlp0s20f3 ./script/setup or INFRA_IF_NAME=wlan0 ./script/setup
I get the same failure at  backbone.cpp:58.  Curiously, [INFO]-UTILS calls it wlan0 either way.  


● otbr-agent.service - Border Router Agent
     Loaded: loaded (/lib/systemd/system/otbr-agent.service; enabled; vendor preset: enabled)
     Active: inactive (dead)

Nov 08 21:23:08 alba otbr-agent[9538]: [INFO]-UTILS---: Thread interface: wpan0
Nov 08 21:23:08 alba otbr-agent[9538]: [INFO]-UTILS---: Backbone interface: wlan0
Nov 08 21:23:08 alba otbr-agent[9538]: [INFO]-UTILS---: Radio URL: spinel+hdlc+uart:///dev/ttyACM0
Nov 08 21:23:08 alba otbr-agent[9538]: [INFO]-UTILS---: Radio URL: trel://wlan0
Nov 08 21:23:08 alba otbr-agent[9538]: 49d.18:06:44.173 [INFO]-PLAT----: RCP reset: RESET_POWER_ON
Nov 08 21:23:08 alba otbr-agent[9538]: 49d.18:06:44.178 [NOTE]-PLAT----: RCP API Version: 4
Nov 08 21:23:08 alba otbr-agent[9538]: 49d.18:06:44.184 [CRIT]-PLAT----: platformBackboneInit() at src/ot-br-posix/third_party/openthread/repo/src/posix/platform/backbone.cpp:58: Failure
Nov 08 21:23:08 alba systemd[1]: otbr-agent.service: Main process exited, code=exited, status=1/FAILURE
Nov 08 21:23:08 alba systemd[1]: otbr-agent.service: Failed with result 'exit-code'.
Nov 08 21:23:10 alba systemd[1]: Stopped Border Router Agent.

je back

unread,
Nov 9, 2021, 2:19:18 PM11/9/21
to openthread-users
The interface name was indeed the problem. I found a kludge to re-name the wifi interface from the name defined by the system on installation (wlp0s20f3) to wlan0 and am now able to run the otbr. 

According to the Debian wiki, they've adopted  "THE "PREDICTABLE NAMES" SCHEME   The new scheme uses names usually derived from the location of the interface in terms of hardware buses etc: eno1, wlp1s3. The idea was that this provides "Predictable Names" "  

I imagine that there will be other scenarios in which the wifi interface is not named wlan0.

As I noted earlier, just specifying the interface name in the call run INFRA_IF_NAME=wlp0s20f3 ./script/setup was not enough, wlan0 appears to be hard-wired somewhere else in the scripting.

Jan Erik

Jonathan Hui

unread,
Nov 9, 2021, 5:01:23 PM11/9/21
to je back, openthread-users
Setting INFRA_IF_NAME should configure the interface name appropriately.

There is a CMake option for OTBR_INFRA_IF_NAME - see CMakeLists.txt#L35.

The CMake option is set based on INFRA_IF_NAME - see script/_otbr#L71.

I tested on Raspberry Pi OS and the command `INFRA_IF_NAME=wlp0s20f3 ./script/setup` appropriately configures the interface name to wlp0s20f3.

I'm not sure why it is not working for you.

--
Jonathan Hui



--
You received this message because you are subscribed to the Google Groups "openthread-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openthread-use...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openthread-users/44094b77-31a8-4ab1-9729-98ddacf3d905n%40googlegroups.com.

je back

unread,
Nov 10, 2021, 1:15:21 PM11/10/21
to Jonathan Hui, openthread-users
Thanks for looking into it. No doubt something on my end. When I first ran the build, I specified wlan0 not realizing that the interface name was different on my machine. I then tried again with the working interface name. Maybe I had a stale executable? I'll investigate to see if I can recreate the sequence.

Jan Erik

je back

unread,
Nov 16, 2021, 12:17:36 PM11/16/21
to openthread-users
Solution: restart the otbr-agent after running NFRA_IF_NAME=<interface> ./script/setup with a different interface.

So my mistake was that I didn't realize that I needed to restart the otbr-agent service after changing the name of the interface for the changes to take effect.

Here's a summary of the steps to reproduce:
- clone the repository
- ./script/bootstrap
- INFRA_IF_NAME=<non-existant interface> ./script/setup : I originally used the non-existent wlan0 interface, on my computer it was named wlp0s20f3
- sudo service otbr-agent status :  otbr-agent failed; [INFO]-UTILS---: Backbone interface: wlan0
- INFRA_IF_NAME=<valid interface> ./script/setup : re-run with wlp0s20f3
- sudo service otbr-agent status : otbr-agent failed; still reports [INFO]-UTILS---: Backbone interface: wlan0
- sudo service otbr-agent restart
- sudo service otbr-agent status:  Active; has a valid interface

Jan Erik

Jonathan Hui

unread,
Nov 16, 2021, 3:52:03 PM11/16/21
to je back, openthread-users
Great that you found the root cause. Thanks for reporting back!

--
Jonathan Hui



Reply all
Reply to author
Forward
0 new messages