OTBR on Raspberry

Hi people,

I am trying to build the OTBR on Raspberry 4. A lot of discussions done here  to see if it is running on Raspberry 4 or not. I do not have a Raspberry 3.

I am confused after reading for 2 days trying to solve this out. Some posts are  old and I do not know if there is latest info on this

Here what I have done and found a brick wall so far

1 - I tried with  Raspberry 64 bit OS Bookworm.  No way installation frozen

3 - I tried 32 bit OS Bullseye .  OTBR installed with no errors but when trying to build the  RCP firmware onto an nRF52840 Dongle I ended up with errors:

<Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: arm-none-eabi-gcc
Build flags:
Id flags:  

The output was:
No such file or directory>

Is anyone did it on Raspberry 4 and how?

Can I do it other way and forget Raspberry Pi at all?

Load Ubuntu on Raspberry ? What version?

Forget Raspberry and run it on a known Ubuntu version in a PC?

And final question.

Do I need at all the OTBR (I know its role) to start developing Matter applications?

I have to move fast on a custom project that uses matter on the nRF5340 chip.
I have also nRF7002 DK, Thingy:91, nRF52840 dongle and Thingy:53 is on the road

Anybody can help to unstuck me?

Thank you

Vasilis

Parents
  • I did some more tests . I moved on. Nearly in the end but not finished

    A - With  Raspberry 32 bit OS Bookworm. (Raspberry CM4)

    OTBR software installed OK

    Problem in number 6 when trying to install nRF Util executing:

    $ python3 -m pip install -U nrfutil

    Then error:

    error: externally-managed-environment
    This environment is externally managed
    To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.

    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.

    For more information visit http://rptl.io/venv

    note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
    hint: See PEP 668 for the detailed specification.

    B - With Ubuntu 22 LTS

    It came nearly to the end but when executing # 7 Generate the RCP firmware package:

    $ nrfutil pkg generate --hw-version 52 --sd-req=0x00 \
        --application build/bin/ot-rcp.hex \
        --application-version 1 build/bin/ot-rcp.zip

    output reports something bad is happening

    vorrias@HP-EliteBook-8570p:~/ot-nrf528xx$ nrfutil pkg generate --hw-version 52 --sd-req=0x00 \
        --application build/bin/ot-rcp.hex \
        --application-version 1 build/bin/ot-rcp.zip

    FileNotFoundError: [Errno 2] No such file or directory: 'build/bin/ot-rcp.hex'

    Edited:

    Finlay in Ubuntu 22 LTS I uninstall nrfutil and reinstall the new version witch is binary and is not python dependent using this URL:

    https://www.nordicsemi.com/Products/Development-tools/nrf-util

    Then following final steps I managed to download Open Thread Radio Co-processor on nRF52840 Dongle

    Nordic documentation is huge and I think the new lifting is on the right direction.

    Sometimes a small info is missing and  drives you in the dark.

    Anyway I have an OTBR install on Ubuntu 22 LTS. Tomorrow I will see how (and if) this setup is working.

    Problem remains on building OTBR on Raspberry 4 (if that is possible at all)

    May be a script that install everything on the Raspberry 4  will be grate

    If anyone made any progress on that please make a note here.

    Then I will try to make some step by step notes on that

    Vasilis

  • Hi Vasilis,

    Thanks a lot for keeping us updated with your progress, and for sharing your feedback. I'm glad you got unstuck. I don't see any mention of Docker in your description - if you haven't used that already then I think it might make things easier next time.

    Regarding the script for a RPi4, I could pass that on as feedback. But I didn't get what the issue you experienced on the RPi 4 was exactly. Could you repeat or clarify what you experienced? If not, I'll try to reproduce it once I get my hands on a Raspberry Pi 4 myself.

    Best regards,

    Raoul

  • Hi Raoul,

    Thanks for your answer.

    The last 2 days I was doing a lot:

    For the OTBR I decided NOT to install it on Raspberry 4. Waste of time.

    I had only Raspberry Pi V4 with 4GB RAM and CM4 with 1GB RAM was available.

    Any Raspbian OS or Ubuntu Desktop (64 bits) 22 LTS was leading to problems. I couldn't  find UBUNTU Desktop 20 LTS 64 bits so I installed it on an UBUNTU 64Bit Desktop 20.04.6 LTS on a laptop.

    On the same computer (UBUNTU 20 LTS 64bits) running all the SDK tools + VS code because on an Ubuntu 22 LTS I have problems inside VS code with the Kconfig.

    I don't mind since I am able now to program  the nRF7002DK / nRF9160DK  modules with nRF Connect SDK + VS code + Ubuntu 20 LTS

    Following your suggestion I will try the Docker approach. This approach is suggested (with examples) by a participant in the MAKE IT MATER contest

    Finally I think that is my correct decision:

    1 - UBUNTU 20 LTS 64 bits for the programming tools.(works file now)

    2 - Docker for the OTBR (install it tomorrow)

    3 - I must forget the Raspberry Pi solution (and that is my advice to anyone else) until someone makes it work out of the box some time in the future (In Raspberry 4 or Raspberry 5).

    It bring only problems now.

    Hopefully in the weekend I will move on writing some Mater code because I am running of time.

    Consider this ticket answered (with the wish to see OTBR running on Raspberry 4 later) and both move on

    Thank you very much

    Regards

    Vasilis

Reply
  • Hi Raoul,

    Thanks for your answer.

    The last 2 days I was doing a lot:

    For the OTBR I decided NOT to install it on Raspberry 4. Waste of time.

    I had only Raspberry Pi V4 with 4GB RAM and CM4 with 1GB RAM was available.

    Any Raspbian OS or Ubuntu Desktop (64 bits) 22 LTS was leading to problems. I couldn't  find UBUNTU Desktop 20 LTS 64 bits so I installed it on an UBUNTU 64Bit Desktop 20.04.6 LTS on a laptop.

    On the same computer (UBUNTU 20 LTS 64bits) running all the SDK tools + VS code because on an Ubuntu 22 LTS I have problems inside VS code with the Kconfig.

    I don't mind since I am able now to program  the nRF7002DK / nRF9160DK  modules with nRF Connect SDK + VS code + Ubuntu 20 LTS

    Following your suggestion I will try the Docker approach. This approach is suggested (with examples) by a participant in the MAKE IT MATER contest

    Finally I think that is my correct decision:

    1 - UBUNTU 20 LTS 64 bits for the programming tools.(works file now)

    2 - Docker for the OTBR (install it tomorrow)

    3 - I must forget the Raspberry Pi solution (and that is my advice to anyone else) until someone makes it work out of the box some time in the future (In Raspberry 4 or Raspberry 5).

    It bring only problems now.

    Hopefully in the weekend I will move on writing some Mater code because I am running of time.

    Consider this ticket answered (with the wish to see OTBR running on Raspberry 4 later) and both move on

    Thank you very much

    Regards

    Vasilis

Children
  • As last chance to install OTBR on Raspberry 4.

    1 - Install Ubuntu LTS 20 server (64 bits) + Ubuntu Desktop

    2 - OTBR installed OK and running!.

    3 - Install all the tools and ot-rcp.hex file created successful

    4 - Now the problem arises when trying to install nrfutil (two methods)

    A - Install nRF Util: $ python3 -m pip install -U nrfutil

    python3 -m pip install -U nrfutil

    Collecting nrfutil

    Downloading nrfutil-6.1.7.tar.gz (845 kB)

    |████████████████████████████████| 845 kB 2.8 MB/s

    Requirement already satisfied, skipping upgrade: click in /usr/lib/python3/dist-packages (from nrfutil) (7.0)

    Collecting crcmod

    Downloading crcmod-1.7.tar.gz (89 kB)

    |████████████████████████████████| 89 kB 1.9 MB/s

    Collecting ecdsa

    Downloading ecdsa-0.18.0-py2.py3-none-any.whl (142 kB)

    |████████████████████████████████| 142 kB 6.4 MB/s

    Collecting intelhex

    Downloading intelhex-2.3.0-py2.py3-none-any.whl (50 kB)

    |████████████████████████████████| 50 kB 1.7 MB/s

    Collecting libusb1==1.9.3

    Downloading libusb1-1.9.3-py3-none-any.whl (60 kB)

    |████████████████████████████████| 60 kB 1.8 MB/s

    ERROR: Could not find a version that satisfies the requirement pc_ble_driver_py>=0.16.4 (from nrfutil) (from versions: 0.1.0, 0.2.0, 0.3.0, 0.4.0, 0.5.0, 0.6.0, 0.6.1, 0.6.2, 0.8.0, 0.8.1, 0.9.0, 0.9.1, 0.10.0, 0.11.0, 0.11.1, 0.11.2, 0.11.3, 0.11.4)

    ERROR: No matching distribution found for pc_ble_driver_py>=0.16.4 (from nrfutil)

    nrfutil is not installed. How can I fix that?

    B - Install nRFUtil v7 binary: https://www.nordicsemi.com/Products/Development-tools/nrf-util

    Put is on /usr/local/bin and make it executable

    Then run the nrfutil and got Error

    bash: /usr/local/bin/nrfutil: cannot execute binary file: Exec format error+-

    My question : Is nrfutil binary compiled for ARM?

    Having said that is any way to make nrfutil run on Raspberry 4 running Ubuntu 20 LTS?

    If yes problem solved on Raspberry 4. If not I have to abandon the idea and move on

    Thanks a lot

    Best regards

    Vasilis

  • Hi Vasilis.

    Thank you again for sharing your findings here for the others, I appreciate it!

    vorrias said:

    Then run the nrfutil and got Error

    bash: /usr/local/bin/nrfutil: cannot execute binary file: Exec format error+-

    My question : Is nrfutil binary compiled for ARM?

    nrfutil has undergone major changes with version 7:  One tool to rule them all: nRF Util becomes a unified command line utility

    Sadly, the new nrfutil does not support ARM architectures yet, and is only distributed in binary form.

    However based on the details you described I think you only need nrfutil version 6, which you can still find here: https://github.com/NordicSemiconductor/pc-nrfutil

    I don't have a Raspberry Pi available here, but hopefully you are able to compile this.

    Best regards,

    Raoul

  • Hi Raoul,

    I understand binary for ARM is out of the question now.
    That brings me in the first scenario. That is to use nrfutil 6.

    So I did:

    $ Install nRF Util: $ python3 -m pip install -U nrfutil

    That is producing the errors:

    ERROR: Could not find a version that satisfies the requirement pc_ble_driver_py>=0.16.4 (from nrfutil) (from versions: 0.1.0, 0.2.0, 0.3.0, 0.4.0, 0.5.0, 0.6.0, 0.6.1, 0.6.2, 0.8.0, 0.8.1, 0.9.0, 0.9.1, 0.10.0, 0.11.0, 0.11.1, 0.11.2, 0.11.3, 0.11.4)

    ERROR: No matching distribution found for pc_ble_driver_py>=0.16.4 (from nrfutil)

    Is the correct way I am installing it or is it wrong?

    If that can be corrected somehow that will solve the problem or I will forget it l

    Regards

    Vasilis

  • Hi again,

    Sorry, I didn't really use my brain earlier. Are you following this guide? https://developer.nordicsemi.com/nRF_Connect_SDK/doc/2.5.0/nrf/protocols/thread/tools.html#thread-border-router

    Because the only reason to have nrfutil is to flash the 52 dongle/DK to use as a coprocessor. You could do this on any machine really, through our Programmer app or nrfutil, or nrfjprog.exe.

    So it's not really a dependency for setting up OTBR. If you're having trouble, I would recommend you just use your other development PC to create the coprocessor.

    Good luck!

    Best regards,

    Raoul

  • Oh yes my friend Raoul.

    I do not need the Raspberry to program the dongle/DK

    I didn't use my brain also but following the instantiation instructions you noted to program it in the OTBR.

    So do not bother any more. I will do it with nrfutil binary into my UBUNTU LTS running on my laptop.

    OTBR solved on Raspberry 4. That is loading UBUNTU 20 LTS and Then Install OTBR.

    One last Thing I will do is to program another SD using UBUNTU LTS 22 64 Bit on Raspberry 4.

    It is better if it will. Then I will put results here for other people to know.

    Regards

    Vasilis

Related