This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Raspberry pi as mesh provisioner

Hello,
I am trying to use a PI3 as a provisioner for a bluetooth mesh network.

From my understanding,if I use interactive PyACI,  I would need to plug a dev board to interact with my network. Is that assertion correct?

As I am in evaluation process, I have very few node available and I would like to use the built-in raspberrypi bluetooth on my network.

Therefore I could only use the meshctl utility.

But, I meet the following error:

Code: Select all

pi@raspberrypi:~/bluez-5.49$ meshctl
Waiting to connect to bluetoothd...Failed to parse local node configuration file local_node.json
pi@raspberrypi:~/bluez-5.49$

I started from a fresh raspbian image and did the following:
In order to enable the crypto configuration (see here: https://code4food.net/2017/11/25/enable ... -raspbian/), I recompiled the kernel following this tutorial : https://www.raspberrypi.org/documentati ... uilding.md

I installed Bluez utility version 5.49 using

Code: Select all

cd PATH_TO_BLUEZ
./configure --enable-mesh --enable-debug
make
sudo make install

as well as Json-c

Code: Select all

git clone github.com/.../json-c.git
cd PATH_TO_JSON_C
sh autogen.sh
./configure
make
sudo make install

Any idea of what I'm doing wrong?

Best regards,

Mickael

Parents
  • Hi Mickael,

    Try moving into the bluez-5.49/mesh directory and then invoke the meshctl tool. It seems it’s looking for the provisioning database JSON file. Alternatively, use the --config option and specify a path to the database. As David Edwin says, you might want to take a look at the Interactive PyACI, it is a lot more powerful than the BlueZ tool.

    Hope this helps,
    Thomas

  • I have built the BlueZ from the source(v 5.50) and installed it on raspberryPI W Zero using the sudo make install.
    But the version of the bluetoothd returns the same 5.43(initial one - even on restart) (on issuing bluetoothd -v)
    Command "systemctl status bluetooth" gives Bluetooth service v 5.50 (below is the log)

    systemctl status bluetooth

     bluetooth.service - Bluetooth service

       Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset

       Active: active (running) since Sat 2018-06-30 23:17:16 UTC; 17h ago

         Docs: man:bluetoothd(8)

     Main PID: 407 (bluetoothd)

       Status: "Running"

       CGroup: /system.slice/bluetooth.service

               └─407 /usr/local/libexec/bluetooth/bluetoothd

    Jun 30 23:17:16 raspberrypi systemd[1]: Starting Bluetooth service...

    Jun 30 23:17:16 raspberrypi bluetoothd[407]: Bluetooth daemon 5.50

    Jun 30 23:17:16 raspberrypi systemd[1]: Started Bluetooth service.

    Jun 30 23:17:16 raspberrypi bluetoothd[407]: Starting SDP server

    Jun 30 23:17:16 raspberrypi bluetoothd[407]: Bluetooth management interface 1.14

    Jun 30 23:17:16 raspberrypi bluetoothd[407]: Endpoint registered: sender=:1.5 pa

    Jun 30 23:17:16 raspberrypi bluetoothd[407]: Endpoint registered: sender=:1.5 pa

    lines 1-16/16

    When i run the meshctl tool it gives the error :  

    Illegal instruction

    Kernel running on Rpi is 4.14,below is the output of uname -a

    Linux raspberrypi 4.14.34+ #1110 Mon Apr 16 14:51:42 BST 2018 armv6l GNU/Linux

    kindly suggest !
    Sorry for being too linuxyy here ! but this will help me to interact with the other Mesh boards.
    Do you see any other dependency on the linux kernel or any crypto modules to eb enabled in the Linux kernel? or something else?
    thanks in advance !
    Rgds,
    Rp
Reply
  • I have built the BlueZ from the source(v 5.50) and installed it on raspberryPI W Zero using the sudo make install.
    But the version of the bluetoothd returns the same 5.43(initial one - even on restart) (on issuing bluetoothd -v)
    Command "systemctl status bluetooth" gives Bluetooth service v 5.50 (below is the log)

    systemctl status bluetooth

     bluetooth.service - Bluetooth service

       Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset

       Active: active (running) since Sat 2018-06-30 23:17:16 UTC; 17h ago

         Docs: man:bluetoothd(8)

     Main PID: 407 (bluetoothd)

       Status: "Running"

       CGroup: /system.slice/bluetooth.service

               └─407 /usr/local/libexec/bluetooth/bluetoothd

    Jun 30 23:17:16 raspberrypi systemd[1]: Starting Bluetooth service...

    Jun 30 23:17:16 raspberrypi bluetoothd[407]: Bluetooth daemon 5.50

    Jun 30 23:17:16 raspberrypi systemd[1]: Started Bluetooth service.

    Jun 30 23:17:16 raspberrypi bluetoothd[407]: Starting SDP server

    Jun 30 23:17:16 raspberrypi bluetoothd[407]: Bluetooth management interface 1.14

    Jun 30 23:17:16 raspberrypi bluetoothd[407]: Endpoint registered: sender=:1.5 pa

    Jun 30 23:17:16 raspberrypi bluetoothd[407]: Endpoint registered: sender=:1.5 pa

    lines 1-16/16

    When i run the meshctl tool it gives the error :  

    Illegal instruction

    Kernel running on Rpi is 4.14,below is the output of uname -a

    Linux raspberrypi 4.14.34+ #1110 Mon Apr 16 14:51:42 BST 2018 armv6l GNU/Linux

    kindly suggest !
    Sorry for being too linuxyy here ! but this will help me to interact with the other Mesh boards.
    Do you see any other dependency on the linux kernel or any crypto modules to eb enabled in the Linux kernel? or something else?
    thanks in advance !
    Rgds,
    Rp
Children
Related