Hi Yury, On Tue, 2019-12-17 at 16:19 +0000, Yury Galustov wrote: > Hi Michał, > Thanks for the quick response. > > > On 12/17, Yury Galustov wrote: > > > pi@raspberrypi:~/bluez-master $ ./tools/mesh-cfgclient > > > Warning: config file "/home/pi/.config/meshcfg/config_db.json" not found > > > > > > [mesh-cfgclient]# create > > > Segmentation fault > > > > > > Happy to debug the code if somebody would explain how ) > > > > You might try running it under a debugger: > > $ gdb ./tools/mesh-cfgclient -ex run > > and capture the backtrace via "bt" command. > > > > Although honestly, I'd recommend playing with D-Bus API directly, e.g. > > in Python. > > > > The command line is a bit alpha. > > > > -- > > Michał Lowas-Rzechonek <michal.lowas-rzechonek@xxxxxxxxxxx> > > Silvair http://silvair.com > > Jasnogórska 44, 31-358 Krakow, POLAND > > Warning: config file "/home/pi/.config/meshcfg/config_db.json" not found > [mesh-cfgclient]# create > > Program received signal SIGSEGV, Segmentation fault. > l_dbus_proxy_method_call (proxy=0x0, method=method@entry=0x342c0 "CreateNetwork", setup=setup@entry=0x14fa0 > <create_net_setup>, This failure occurs (with proxy=NULL) when the bluetooth-meshd daemon is running, but it was unable to find an LE capable BT controller. This is a lnown issue, that we should probably put in the bluez/tools/mesh/README file... But for now there are a few ways to address it: 1. Make sure that the bluetoothd daemon is not claiming all the BT controllers. If you have multiple BT controllers in your system, change the following value in your /etc/bluetooth/main.conf file: [Policy] AutoEnable=false With AutoEnable true, bluetoothd claims all controllers. (bluetoothd must be restarted for change to take effect). 2. If you have only one BT controller in your system, you *must* disable bluetooth daemon to use mesh- bluetooth... To disable bluetoothd entirely (leaving the controller(s) to bluetooth-meshd) disable and stop the main bluetooth daemon: # systemctl disable bluetooth # systemctl stop bluetooth We hope to get the two daemons to co-exist at some point, but that will require kernel changes, so for now these are your two choices. > reply=reply@entry=0x14e04 <create_net_reply>, user_data=0x0, destroy=0x0) at ell/dbus-client.c:304 > 304 req = l_new(struct method_call_request, 1); > (gdb) bt > #0 l_dbus_proxy_method_call (proxy=0x0, method=method@entry=0x342c0 "CreateNetwork", setup=setup@entry=0x14f > a0 <create_net_setup>, > reply=reply@entry=0x14e04 <create_net_reply>, user_data=0x0, destroy=0x0) at ell/dbus-client.c:304 > #1 0x00015b00 in cmd_create_network (argc=<optimized out>, argv=<optimized out>) at tools/mesh- > cfgclient.c:711 > #2 0x0001e398 in cmd_exec (argv=0x69308, argc=1, entry=0x33210 <main_menu+8>) at src/shared/shell.c:441 > #3 menu_exec (entry=0x33210 <main_menu+8>, argc=argc@entry=1, argv=argv@entry=0x69308) at > src/shared/shell.c:468 > #4 0x0001e730 in shell_exec (argc=1, argv=0x69308) at src/shared/shell.c:511 > #5 0x0001f684 in rl_handler (input=0x69068 "create") at src/shared/shell.c:713 > #6 0xb6f7cdc0 in rl_callback_read_char () from /lib/arm-linux-gnueabihf/libreadline.so.7 > #7 0x0001e608 in input_read (io=<optimized out>, user_data=<optimized out>) at src/shared/shell.c:1256 > #8 0x00022f9c in io_callback (fd=<optimized out>, events=1, user_data=0x69280) at ell/io.c:126 > #9 0x00023e28 in l_main_iterate (timeout=<optimized out>) at ell/main.c:470 > #10 0x00023ef0 in l_main_run () at ell/main.c:520 > #11 l_main_run () at ell/main.c:502 > #12 0x00024150 in l_main_run_with_signal (callback=<optimized out>, user_data=user_data@entry=0x0) at > ell/main.c:642 > #13 0x000202d0 in mainloop_run_with_signal (func=<optimized out>, user_data=user_data@entry=0x0) at > src/shared/mainloop-ell.c:87 > #14 0x0001f90c in bt_shell_run () at src/shared/shell.c:1174 > #15 0x00012980 in main (argc=<optimized out>, argv=<optimized out>) at tools/mesh-cfgclient.c:1982 > >