project-chip / connectedhomeip

Matter (formerly Project CHIP) creates more connections between more objects, simplifying development for manufacturers and increasing compatibility for consumers, guided by the Connectivity Standards Alliance.
https://buildwithmatter.com
Apache License 2.0
7.42k stars 1.99k forks source link

CHIP device controller is able to see only 1 BLE Adaptor inside the Docker container after creating 2 virtual BLE interfaces using Bluez emulator module #5045

Closed SaileeG closed 3 years ago

SaileeG commented 3 years ago

Chip Device Controller sees only 1 of the virtual interfaces at a time hci1 or hci2 in 'ble-adapter-print'. Same applies to Linux Lighting App which can be run inside the container using same the BLE interface that is seen by ble-adapter-print in chip device controller.

root@ubuntu:/connectedhomeip# hciconfig
hci2:   Type: Primary  Bus: Virtual
    BD Address: 00:AA:01:01:00:24  ACL MTU: 192:1  SCO MTU: 0:0
    UP RUNNING 
    RX bytes:0 acl:0 sco:0 events:79 errors:0
    TX bytes:693 acl:0 sco:0 commands:79 errors:0

hci1:   Type: Primary  Bus: Virtual
    BD Address: 00:AA:01:00:00:23  ACL MTU: 192:1  SCO MTU: 0:0
    UP RUNNING 
    RX bytes:0 acl:0 sco:0 events:56 errors:0
    TX bytes:487 acl:0 sco:0 commands:56 errors:0

hci0:   Type: Primary  Bus: UART
    BD Address: B8:27:EB:C4:E2:93  ACL MTU: 1021:8  SCO MTU: 64:1
    UP RUNNING PSCAN ISCAN 
    RX bytes:920 acl:0 sco:0 events:70 errors:0
    TX bytes:5034 acl:0 sco:0 commands:70 errors:0

Chip Device Controller in Docker container seeing only hci2 interface:

root@ubuntu:/connectedhomeip/examples/lighting-app/linux# chip-device-ctrl 
CHIP:IN: TransportMgr initialized
CHIP:IN: local node id is 112233

Chip Device Controller Shell

chip-device-ctrl > ble-adapter-print
2021-02-25 07:48:13,420 ChipBLEMgr   INFO     adapter 0 = 00:AA:01:01:00:24
chip-device-ctrl > 

Linux Lighting App runs in docker container only when run with hci2

root@ubuntu:/connectedhomeip/examples/lighting-app/linux# out/debug/chip-tool-server --ble-device 2
SetupPINCode: [12345678]
SetupQRCode:  [CH:I34DV*700 0C9SS0]
CHIP:ZCL: Using ZAP configuration...
CHIP:ZCL: deactivate report event
CHIP:IN: TransportMgr initialized
CHIP:IN: local node id is 12344321

CHIP:DL: wpa_supplicant: _IsWiFiStationProvisioned: interface not connected
CHIP:BLE: Waiting for PBKDF param request
CHIP:DIS: CHIP minimal mDNS configured as 'Commisioning device'.
CHIP:DIS: CHIP minimal mDNS started advertising.
CHIP:SVR: Server Listening...
CHIP:DL: TRACE: Bus acquired for name CHIP-3840
CHIP:DL: CREATE service object at /chipoble/2f67/service
CHIP:DL: Create characteristic object at /chipoble/2f67/service/c1
CHIP:DL: Create characteristic object at /chipoble/2f67/service/c2
CHIP:DL: CHIP BTP C1 /chipoble/2f67/service
CHIP:DL: CHIP BTP C2 /chipoble/2f67/service
CHIP:DL: CHIP_ENABLE_ADDITIONAL_DATA_ADVERTISING is TRUE
CHIP:DL: Create characteristic object at /chipoble/2f67/service/c3
CHIP:DL: CHIP BTP C3 /chipoble/2f67/service
CHIP:DL: TRACE: Bluez mainloop starting BluezMainLoop
CHIP:DL: PlatformBlueZInit init success
CHIP:DL: Long dispatch time: 1000 ms
CHIP:DL: BluezPeripheralRegisterAppDone done
CHIP:DL: HandlePlatformSpecificBLEEvent 16391
CHIP:DL: Create adv object at /chipoble/2f67/advertising
CHIP:DL: SET service data to {'0xFEAF': <[byte 0x00, 0x00, 0x0f, 0x5a, 0x23, 0xff, 0xfe]>}
CHIP:DL: HandlePlatformSpecificBLEEvent 16392
CHIP:DL: CHIPoBLE advertising config complete
CHIP:DL: RegisterAdvertisement complete
CHIP:DL: HandlePlatformSpecificBLEEvent 16393
CHIP:DIS: MinMdns received a query.
CHIP:DIS: QUERY IN/PTR: _AAF8F49E._sub._googlecast._tcp.local.
CHIP:DIS: QUERY IN/PTR: _googlecast._tcp.local.
CHIP:DIS: MinMdns received a query.
CHIP:DIS: QUERY IN/PTR: _AAF8F49E._sub._googlecast._tcp.local.
CHIP:DIS: QUERY IN/PTR: _googlecast._tcp.local.
CHIP:DIS: MinMdns received a query.

On the Raspi host chip-device-ctlr: 'ble-adapter-print' shows the other Virtual BLE interface and the physical BLE adapter. Is there a way to give the chip-device-ctlr and the Linux Lighting App access to both the virtual BLE interfaces?

SaileeG commented 3 years ago

If I kill all the bluetoothd process on Host and run blueetoothd as follows inside the container all the apps and tools running in that 1 container get access to all 2 Virtual BLE interfaces(hci1 and hci2) along with the physical ble interface hci0

On Host: ubuntu@ubuntu:~$ sudo killall bluetoothd

In Container 1:

root@ubuntu:/connectedhomeip# bluetoothd --experimental --debug -n &
[1] 69
root@ubuntu:/connectedhomeip# bluetoothd[69]: Bluetooth daemon 5.53
bluetoothd[69]: src/main.c:parse_config() parsing /etc/bluetooth/main.conf
bluetoothd[69]: src/main.c:parse_config() Key file does not have key “DiscoverableTimeout” in group “General”
bluetoothd[69]: src/main.c:parse_config() Key file does not have key “AlwaysPairable” in group “General”
bluetoothd[69]: src/main.c:parse_config() Key file does not have key “PairableTimeout” in group “General”
bluetoothd[69]: src/main.c:parse_config() Key file does not have key “Privacy” in group “General”
bluetoothd[69]: src/main.c:parse_config() Key file does not have key “Name” in group “General”
bluetoothd[69]: src/main.c:parse_config() Key file does not have key “Class” in group “General”
bluetoothd[69]: src/main.c:parse_config() Key file does not have key “DeviceID” in group “General”
bluetoothd[69]: src/main.c:parse_config() Key file does not have key “ReverseServiceDiscovery” in group “General”
bluetoothd[69]: src/main.c:parse_config() Key file does not have group “GATT”
bluetoothd[69]: src/main.c:parse_config() Key file does not have group “GATT”
bluetoothd[69]: src/main.c:parse_config() Key file does not have group “GATT”
bluetoothd[69]: src/adapter.c:adapter_init() sending read version command
bluetoothd[69]: Starting SDP server
bluetoothd[69]: src/sdpd-service.c:register_device_id() Adding device id record for 0002:1d6b:0246:0535
bluetoothd[69]: src/plugin.c:plugin_init() Loading builtin plugins
bluetoothd[69]: src/plugin.c:add_plugin() Loading hostname plugin
bluetoothd[69]: src/plugin.c:add_plugin() Loading wiimote plugin
bluetoothd[69]: src/plugin.c:add_plugin() Loading autopair plugin
bluetoothd[69]: src/plugin.c:add_plugin() Loading policy plugin
bluetoothd[69]: src/plugin.c:add_plugin() Loading a2dp plugin
bluetoothd[69]: src/plugin.c:add_plugin() Loading avrcp plugin
bluetoothd[69]: src/plugin.c:add_plugin() Loading network plugin
bluetoothd[69]: src/plugin.c:add_plugin() Loading input plugin
bluetoothd[69]: src/plugin.c:add_plugin() Loading hog plugin
bluetoothd[69]: src/plugin.c:add_plugin() Loading gap plugin
bluetoothd[69]: src/plugin.c:add_plugin() Loading scanparam plugin
bluetoothd[69]: src/plugin.c:add_plugin() Loading deviceinfo plugin
bluetoothd[69]: src/plugin.c:add_plugin() Loading battery plugin
bluetoothd[69]: src/plugin.c:plugin_init() Loading plugins /usr/lib/aarch64-linux-gnu/bluetooth/plugins
bluetoothd[69]: profiles/input/suspend-none.c:suspend_init() 
bluetoothd[69]: profiles/network/manager.c:read_config() /etc/bluetooth/network.conf: Key file does not have key “DisableSecurity” in group “General”
bluetoothd[69]: profiles/network/manager.c:read_config() Config options: Security=true
bluetoothd[69]: src/main.c:main() Entering main loop
bluetoothd[69]: src/rfkill.c:rfkill_event() RFKILL event idx 0 type 1 op 0 soft 0 hard 0
bluetoothd[69]: Bluetooth management interface 1.14 initialized
bluetoothd[69]: src/adapter.c:read_version_complete() sending read supported commands command
bluetoothd[69]: src/adapter.c:read_version_complete() sending read index list command
bluetoothd[69]: src/rfkill.c:rfkill_event() RFKILL event idx 1 type 2 op 0 soft 0 hard 0
bluetoothd[69]: src/rfkill.c:rfkill_event() RFKILL event idx 12 type 2 op 0 soft 0 hard 0
bluetoothd[69]: src/adapter.c:read_commands_complete() Number of commands: 65
bluetoothd[69]: src/adapter.c:read_commands_complete() Number of events: 35
bluetoothd[69]: src/adapter.c:read_commands_complete() enabling kernel-side connection control
bluetoothd[69]: src/rfkill.c:rfkill_event() RFKILL event idx 13 type 2 op 0 soft 0 hard 0
bluetoothd[69]: src/adapter.c:read_index_list_complete() Number of controllers: 3
bluetoothd[69]: src/adapter.c:read_index_list_complete() Found index 2
bluetoothd[69]: src/adapter.c:index_added() index 2
bluetoothd[69]: src/adapter.c:btd_adapter_new() System name: BlueZ 5.53
bluetoothd[69]: src/adapter.c:btd_adapter_new() Major class: 0
bluetoothd[69]: src/adapter.c:btd_adapter_new() Minor class: 0
bluetoothd[69]: src/adapter.c:btd_adapter_new() Modalias: usb:v1D6Bp0246d0535
bluetoothd[69]: src/adapter.c:btd_adapter_new() Discoverable timeout: 180 seconds
bluetoothd[69]: src/adapter.c:btd_adapter_new() Pairable timeout: 0 seconds
bluetoothd[69]: src/adapter.c:index_added() sending read info command for index 2
bluetoothd[69]: src/adapter.c:read_index_list_complete() Found index 1
bluetoothd[69]: src/adapter.c:index_added() index 1
bluetoothd[69]: src/adapter.c:btd_adapter_new() System name: BlueZ 5.53
bluetoothd[69]: src/adapter.c:btd_adapter_new() Major class: 0
bluetoothd[69]: src/adapter.c:btd_adapter_new() Minor class: 0
bluetoothd[69]: src/adapter.c:btd_adapter_new() Modalias: usb:v1D6Bp0246d0535
bluetoothd[69]: src/adapter.c:btd_adapter_new() Discoverable timeout: 180 seconds
bluetoothd[69]: src/adapter.c:btd_adapter_new() Pairable timeout: 0 seconds
bluetoothd[69]: src/adapter.c:index_added() sending read info command for index 1
bluetoothd[69]: src/adapter.c:read_index_list_complete() Found index 0
bluetoothd[69]: src/adapter.c:index_added() index 0
bluetoothd[69]: src/adapter.c:btd_adapter_new() System name: BlueZ 5.53
bluetoothd[69]: src/adapter.c:btd_adapter_new() Major class: 0
bluetoothd[69]: src/adapter.c:btd_adapter_new() Minor class: 0
bluetoothd[69]: src/adapter.c:btd_adapter_new() Modalias: usb:v1D6Bp0246d0535
bluetoothd[69]: src/adapter.c:btd_adapter_new() Discoverable timeout: 180 seconds
bluetoothd[69]: src/adapter.c:btd_adapter_new() Pairable timeout: 0 seconds
bluetoothd[69]: src/adapter.c:index_added() sending read info command for index 0
bluetoothd[69]: src/adapter.c:read_info_complete() index 2 status 0x00
bluetoothd[69]: src/adapter.c:clear_uuids() sending clear uuids command for index 2
bluetoothd[69]: src/adapter.c:clear_devices() sending clear devices command for index 2
bluetoothd[69]: src/adapter.c:set_privacy() sending set privacy command for index 2
bluetoothd[69]: src/adapter.c:set_privacy() setting privacy mode 0x00 for index 2
bluetoothd[69]: src/gatt-database.c:btd_gatt_database_new() GATT Manager registered for adapter: /org/bluez/hci2
bluetoothd[69]: src/adapter.c:adapter_service_add() /org/bluez/hci2
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Adding record with handle 0x10001
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000007-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000100-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001002-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001800-0000-1000-8000-00805f9
bluetoothd[69]: src/adapter.c:adapter_service_insert() /org/bluez/hci2
bluetoothd[69]: src/adapter.c:add_uuid() sending add uuid command for index 2
bluetoothd[69]: src/adapter.c:adapter_service_add() /org/bluez/hci2
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Adding record with handle 0x10002
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000007-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000100-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001002-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001801-0000-1000-8000-00805f9
bluetoothd[69]: src/adapter.c:adapter_service_insert() /org/bluez/hci2
bluetoothd[69]: src/adapter.c:add_uuid() sending add uuid command for index 2
bluetoothd[69]: src/advertising.c:btd_adv_manager_new() LE Advertising Manager created for adapter: /org/bluez/hci2
bluetoothd[69]: profiles/audio/a2dp.c:media_server_probe() path /org/bluez/hci2
bluetoothd[69]: plugins/policy.c:policy_adapter_probe() 
bluetoothd[69]: src/adapter.c:set_mode() sending set mode command for index 2
bluetoothd[69]: plugins/hostname.c:hostname_probe() 
bluetoothd[69]: profiles/network/manager.c:panu_server_probe() path /org/bluez/hci2
bluetoothd[69]: profiles/network/server.c:server_register() Registered interface org.bluez.NetworkServer1 on path /org/bluez/hci2
bluetoothd[69]: profiles/network/manager.c:gn_server_probe() path /org/bluez/hci2
bluetoothd[69]: profiles/network/manager.c:nap_server_probe() path /org/bluez/hci2
bluetoothd[69]: profiles/audio/avrcp.c:avrcp_controller_server_probe() path /org/bluez/hci2
bluetoothd[69]: src/adapter.c:adapter_service_add() /org/bluez/hci2
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Adding record with handle 0x10003
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000017-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000100-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001002-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 0000110e-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 0000110f-0000-1000-8000-00805f9
bluetoothd[69]: src/adapter.c:adapter_service_insert() /org/bluez/hci2
bluetoothd[69]: src/adapter.c:add_uuid() sending add uuid command for index 2
bluetoothd[69]: profiles/audio/avrcp.c:avrcp_target_server_probe() path /org/bluez/hci2
bluetoothd[69]: src/adapter.c:adapter_service_add() /org/bluez/hci2
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Adding record with handle 0x10004
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000017-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000100-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001002-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 0000110c-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 0000110e-0000-1000-8000-00805f9
bluetoothd[69]: src/adapter.c:adapter_service_insert() /org/bluez/hci2
bluetoothd[69]: src/adapter.c:add_uuid() sending add uuid command for index 2
bluetoothd[69]: profiles/audio/a2dp.c:a2dp_sink_server_probe() path /org/bluez/hci2
bluetoothd[69]: profiles/audio/a2dp.c:a2dp_source_server_probe() path /org/bluez/hci2
bluetoothd[69]: src/adapter.c:btd_adapter_unblock_address() hci2 00:00:00:00:00:00
bluetoothd[69]: src/adapter.c:load_ltks() hci2 keys 0
bluetoothd[69]: src/adapter.c:load_irks() hci2 irks 0
bluetoothd[69]: src/adapter.c:load_conn_params() hci2 conn params 0
bluetoothd[69]: src/adapter.c:adapter_service_insert() /org/bluez/hci2
bluetoothd[69]: src/adapter.c:add_uuid() sending add uuid command for index 2
bluetoothd[69]: src/adapter.c:set_did() hci2 source 2 vendor 1d6b product 246 version 535
bluetoothd[69]: src/adapter.c:adapter_register() Adapter /org/bluez/hci2 registered
bluetoothd[69]: src/adapter.c:set_name() sending set local name command for index 2
bluetoothd[69]: src/adapter.c:read_info_complete() index 1 status 0x00
bluetoothd[69]: src/adapter.c:clear_uuids() sending clear uuids command for index 1
bluetoothd[69]: src/adapter.c:clear_devices() sending clear devices command for index 1
bluetoothd[69]: src/adapter.c:set_privacy() sending set privacy command for index 1
bluetoothd[69]: src/adapter.c:set_privacy() setting privacy mode 0x00 for index 1
bluetoothd[69]: src/gatt-database.c:btd_gatt_database_new() GATT Manager registered for adapter: /org/bluez/hci1
bluetoothd[69]: src/adapter.c:adapter_service_add() /org/bluez/hci1
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Adding record with handle 0x10005
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000007-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000100-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001002-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001800-0000-1000-8000-00805f9
bluetoothd[69]: src/adapter.c:adapter_service_insert() /org/bluez/hci1
bluetoothd[69]: src/adapter.c:add_uuid() sending add uuid command for index 1
bluetoothd[69]: src/adapter.c:adapter_service_add() /org/bluez/hci1
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Adding record with handle 0x10006
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000007-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000100-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001002-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001801-0000-1000-8000-00805f9
bluetoothd[69]: src/adapter.c:adapter_service_insert() /org/bluez/hci1
bluetoothd[69]: src/adapter.c:add_uuid() sending add uuid command for index 1
bluetoothd[69]: src/advertising.c:btd_adv_manager_new() LE Advertising Manager created for adapter: /org/bluez/hci1
bluetoothd[69]: profiles/audio/a2dp.c:media_server_probe() path /org/bluez/hci1
bluetoothd[69]: plugins/policy.c:policy_adapter_probe() 
bluetoothd[69]: src/adapter.c:set_mode() sending set mode command for index 1
bluetoothd[69]: plugins/hostname.c:hostname_probe() 
bluetoothd[69]: profiles/network/manager.c:panu_server_probe() path /org/bluez/hci1
bluetoothd[69]: profiles/network/server.c:server_register() Registered interface org.bluez.NetworkServer1 on path /org/bluez/hci1
bluetoothd[69]: profiles/network/manager.c:gn_server_probe() path /org/bluez/hci1
bluetoothd[69]: profiles/network/manager.c:nap_server_probe() path /org/bluez/hci1
bluetoothd[69]: profiles/audio/avrcp.c:avrcp_controller_server_probe() path /org/bluez/hci1
bluetoothd[69]: src/adapter.c:adapter_service_add() /org/bluez/hci1
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Adding record with handle 0x10007
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000017-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000100-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001002-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 0000110e-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 0000110f-0000-1000-8000-00805f9
bluetoothd[69]: src/adapter.c:adapter_service_insert() /org/bluez/hci1
bluetoothd[69]: src/adapter.c:add_uuid() sending add uuid command for index 1
bluetoothd[69]: profiles/audio/avrcp.c:avrcp_target_server_probe() path /org/bluez/hci1
bluetoothd[69]: src/adapter.c:adapter_service_add() /org/bluez/hci1
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Adding record with handle 0x10008
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000017-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000100-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001002-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 0000110c-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 0000110e-0000-1000-8000-00805f9
bluetoothd[69]: src/adapter.c:adapter_service_insert() /org/bluez/hci1
bluetoothd[69]: src/adapter.c:add_uuid() sending add uuid command for index 1
bluetoothd[69]: profiles/audio/a2dp.c:a2dp_sink_server_probe() path /org/bluez/hci1
bluetoothd[69]: profiles/audio/a2dp.c:a2dp_source_server_probe() path /org/bluez/hci1
bluetoothd[69]: src/adapter.c:btd_adapter_unblock_address() hci1 00:00:00:00:00:00
bluetoothd[69]: src/adapter.c:load_ltks() hci1 keys 0
bluetoothd[69]: src/adapter.c:load_irks() hci1 irks 0
bluetoothd[69]: src/adapter.c:load_conn_params() hci1 conn params 0
bluetoothd[69]: src/adapter.c:adapter_service_insert() /org/bluez/hci1
bluetoothd[69]: src/adapter.c:add_uuid() sending add uuid command for index 1
bluetoothd[69]: src/adapter.c:set_did() hci1 source 2 vendor 1d6b product 246 version 535
bluetoothd[69]: src/adapter.c:adapter_register() Adapter /org/bluez/hci1 registered
bluetoothd[69]: src/adapter.c:set_name() sending set local name command for index 1
bluetoothd[69]: src/adapter.c:read_info_complete() index 0 status 0x00
bluetoothd[69]: src/adapter.c:clear_uuids() sending clear uuids command for index 0
bluetoothd[69]: src/adapter.c:clear_devices() sending clear devices command for index 0
bluetoothd[69]: src/adapter.c:set_privacy() sending set privacy command for index 0
bluetoothd[69]: src/adapter.c:set_privacy() setting privacy mode 0x00 for index 0
bluetoothd[69]: src/gatt-database.c:btd_gatt_database_new() GATT Manager registered for adapter: /org/bluez/hci0
bluetoothd[69]: src/adapter.c:adapter_service_add() /org/bluez/hci0
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Adding record with handle 0x10009
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000007-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000100-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001002-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001800-0000-1000-8000-00805f9
bluetoothd[69]: src/adapter.c:adapter_service_insert() /org/bluez/hci0
bluetoothd[69]: src/adapter.c:add_uuid() sending add uuid command for index 0
bluetoothd[69]: src/adapter.c:adapter_service_add() /org/bluez/hci0
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Adding record with handle 0x1000a
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000007-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000100-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001002-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001801-0000-1000-8000-00805f9
bluetoothd[69]: src/adapter.c:adapter_service_insert() /org/bluez/hci0
bluetoothd[69]: src/adapter.c:add_uuid() sending add uuid command for index 0
bluetoothd[69]: src/advertising.c:btd_adv_manager_new() LE Advertising Manager created for adapter: /org/bluez/hci0
bluetoothd[69]: profiles/audio/a2dp.c:media_server_probe() path /org/bluez/hci0
bluetoothd[69]: plugins/policy.c:policy_adapter_probe() 
bluetoothd[69]: src/adapter.c:set_mode() sending set mode command for index 0
bluetoothd[69]: plugins/hostname.c:hostname_probe() 
bluetoothd[69]: profiles/network/manager.c:panu_server_probe() path /org/bluez/hci0
bluetoothd[69]: profiles/network/server.c:server_register() Registered interface org.bluez.NetworkServer1 on path /org/bluez/hci0
bluetoothd[69]: profiles/network/manager.c:gn_server_probe() path /org/bluez/hci0
bluetoothd[69]: profiles/network/manager.c:nap_server_probe() path /org/bluez/hci0
bluetoothd[69]: profiles/audio/avrcp.c:avrcp_controller_server_probe() path /org/bluez/hci0
bluetoothd[69]: src/adapter.c:adapter_service_add() /org/bluez/hci0
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Adding record with handle 0x1000b
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000017-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000100-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001002-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 0000110e-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 0000110f-0000-1000-8000-00805f9
bluetoothd[69]: src/adapter.c:adapter_service_insert() /org/bluez/hci0
bluetoothd[69]: src/adapter.c:add_uuid() sending add uuid command for index 0
bluetoothd[69]: profiles/audio/avrcp.c:avrcp_target_server_probe() path /org/bluez/hci0
bluetoothd[69]: src/adapter.c:adapter_service_add() /org/bluez/hci0
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Adding record with handle 0x1000c
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000017-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000100-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001002-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 0000110c-0000-1000-8000-00805f9
bluetoothd[69]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 0000110e-0000-1000-8000-00805f9
bluetoothd[69]: src/adapter.c:adapter_service_insert() /org/bluez/hci0
bluetoothd[69]: src/adapter.c:add_uuid() sending add uuid command for index 0
bluetoothd[69]: profiles/audio/a2dp.c:a2dp_sink_server_probe() path /org/bluez/hci0
bluetoothd[69]: profiles/audio/a2dp.c:a2dp_source_server_probe() path /org/bluez/hci0
bluetoothd[69]: src/adapter.c:btd_adapter_unblock_address() hci0 00:00:00:00:00:00
bluetoothd[69]: src/adapter.c:load_link_keys() hci0 keys 0 debug_keys 0
bluetoothd[69]: src/adapter.c:load_ltks() hci0 keys 0
bluetoothd[69]: src/adapter.c:load_irks() hci0 irks 0
bluetoothd[69]: src/adapter.c:load_conn_params() hci0 conn params 0
bluetoothd[69]: src/adapter.c:adapter_service_insert() /org/bluez/hci0
bluetoothd[69]: src/adapter.c:add_uuid() sending add uuid command for index 0
bluetoothd[69]: src/adapter.c:set_did() hci0 source 2 vendor 1d6b product 246 version 535
bluetoothd[69]: src/adapter.c:adapter_register() Adapter /org/bluez/hci0 registered
bluetoothd[69]: src/adapter.c:set_dev_class() sending set device class command for index 0
bluetoothd[69]: src/adapter.c:set_name() sending set local name command for index 0
bluetoothd[69]: src/adapter.c:set_privacy_complete() Successfuly set privacy for index 2
bluetoothd[69]: src/adapter.c:new_settings_callback() Settings: 0x00000a01
bluetoothd[69]: src/adapter.c:settings_changed() Changed settings: 0x00000001
bluetoothd[69]: src/adapter.c:settings_changed() Pending settings: 0x00000000
bluetoothd[69]: src/adapter.c:adapter_start() adapter /org/bluez/hci2 has been enabled
bluetoothd[69]: src/adapter.c:trigger_passive_scanning() 
bluetoothd[69]: src/adapter.c:load_ltks_complete() LTKs loaded for hci2
bluetoothd[69]: src/adapter.c:load_irks_complete() IRKs loaded for hci2
bluetoothd[69]: src/adapter.c:load_conn_params_complete() Connection Parameters loaded for hci2
bluetoothd[69]: src/adapter.c:set_privacy_complete() Successfuly set privacy for index 1
bluetoothd[69]: src/adapter.c:new_settings_callback() Settings: 0x00000a01
bluetoothd[69]: src/adapter.c:settings_changed() Changed settings: 0x00000001
bluetoothd[69]: src/adapter.c:settings_changed() Pending settings: 0x00000000
bluetoothd[69]: src/adapter.c:adapter_start() adapter /org/bluez/hci1 has been enabled
bluetoothd[69]: src/adapter.c:trigger_passive_scanning() 
bluetoothd[69]: src/adapter.c:load_ltks_complete() LTKs loaded for hci1
bluetoothd[69]: src/adapter.c:load_irks_complete() IRKs loaded for hci1
bluetoothd[69]: src/adapter.c:load_conn_params_complete() Connection Parameters loaded for hci1
bluetoothd[69]: src/adapter.c:set_privacy_complete() Successfuly set privacy for index 0
bluetoothd[69]: src/adapter.c:new_settings_callback() Settings: 0x00000ac1
bluetoothd[69]: src/adapter.c:settings_changed() Changed settings: 0x00000001
bluetoothd[69]: src/adapter.c:settings_changed() Pending settings: 0x00000000
bluetoothd[69]: src/adapter.c:adapter_start() adapter /org/bluez/hci0 has been enabled
bluetoothd[69]: src/adapter.c:trigger_passive_scanning() 
bluetoothd[69]: src/adapter.c:load_link_keys_complete() link keys loaded for hci0
bluetoothd[69]: src/adapter.c:load_ltks_complete() LTKs loaded for hci0
bluetoothd[69]: src/adapter.c:load_irks_complete() IRKs loaded for hci0
bluetoothd[69]: src/adapter.c:load_conn_params_complete() Connection Parameters loaded for hci0
root@ubuntu:/connectedhomeip# chip-device-ctrl --bluetooth-adapter=hci2
CHIP:IN: TransportMgr initialized
CHIP:IN: local node id is 112233

CHIP:DL: CHIP task running
bluetoothd[69]: src/adapter.c:property_set_mode() sending Set Powered command for index 2
bluetoothd[69]: src/adapter.c:property_set_mode_complete() Success (0x00)
bluetoothd[69]: src/adapter.c:new_settings_callback() Settings: 0x00000a00
bluetoothd[69]: src/adapter.c:settings_changed() Changed settings: 0x00000001
bluetoothd[69]: src/adapter.c:settings_changed() Pending settings: 0x00000000
bluetoothd[69]: src/adapter.c:cancel_passive_scanning() 
bluetoothd[69]: src/adapter.c:adapter_stop() adapter /org/bluez/hci2 has been disabled
bluetoothd[69]: src/adapter.c:property_set_mode() sending Set Powered command for index 2
bluetoothd[69]: src/adapter.c:property_set_mode_complete() Success (0x00)
bluetoothd[69]: src/adapter.c:new_settings_callback() Settings: 0x00000a01
bluetoothd[69]: src/adapter.c:settings_changed() Changed settings: 0x00000001
bluetoothd[69]: src/adapter.c:settings_changed() Pending settings: 0x00000000
bluetoothd[69]: src/adapter.c:adapter_start() adapter /org/bluez/hci2 has been enabled
bluetoothd[69]: src/adapter.c:trigger_passive_scanning() 
Chip Device Controller Shell
Bluetooth adapter set to hci2

chip-device-ctrl > ble-adapter-print
2021-03-17 23:20:25,422 ChipBLEMgr   INFO     AdapterName: hci0   AdapterAddress: B8:27:EB:C4:E2:93
2021-03-17 23:20:25,425 ChipBLEMgr   INFO     AdapterName: hci1   AdapterAddress: 00:AA:01:00:00:23
2021-03-17 23:20:25,426 ChipBLEMgr   INFO     AdapterName: hci2   AdapterAddress: 00:AA:01:01:00:24
chip-device-ctrl > exit

root@ubuntu:/connectedhomeip# chip-device-ctrl --bluetooth-adapter=hci1
CHIP:IN: TransportMgr initialized
CHIP:IN: local node id is 112233

CHIP:DL: CHIP task running
bluetoothd[69]: src/adapter.c:property_set_mode() sending Set Powered command for index 1
bluetoothd[69]: src/adapter.c:property_set_mode_complete() Success (0x00)
bluetoothd[69]: src/adapter.c:new_settings_callback() Settings: 0x00000a00
bluetoothd[69]: src/adapter.c:settings_changed() Changed settings: 0x00000001
bluetoothd[69]: src/adapter.c:settings_changed() Pending settings: 0x00000000
bluetoothd[69]: src/adapter.c:cancel_passive_scanning() 
bluetoothd[69]: src/adapter.c:adapter_stop() adapter /org/bluez/hci1 has been disabled
bluetoothd[69]: src/adapter.c:property_set_mode() sending Set Powered command for index 1
bluetoothd[69]: src/adapter.c:property_set_mode_complete() Success (0x00)
bluetoothd[69]: src/adapter.c:new_settings_callback() Settings: 0x00000a01
bluetoothd[69]: src/adapter.c:settings_changed() Changed settings: 0x00000001
bluetoothd[69]: src/adapter.c:settings_changed() Pending settings: 0x00000000
bluetoothd[69]: src/adapter.c:adapter_start() adapter /org/bluez/hci1 has been enabled
bluetoothd[69]: src/adapter.c:trigger_passive_scanning() 
Chip Device Controller Shell
Bluetooth adapter set to hci1

chip-device-ctrl > ble-adapter-print
2021-03-17 23:31:52,476 ChipBLEMgr   INFO     AdapterName: hci0   AdapterAddress: B8:27:EB:C4:E2:93
2021-03-17 23:31:52,479 ChipBLEMgr   INFO     AdapterName: hci1   AdapterAddress: 00:AA:01:00:00:23
2021-03-17 23:31:52,480 ChipBLEMgr   INFO     AdapterName: hci2   AdapterAddress: 00:AA:01:01:00:24
chip-device-ctrl >

Note The host raspi and any other container running on the raspi are unable to access the BLE interfaces

SaileeG commented 3 years ago

This is resolved by running bluetoothd and btvirt on the raspi host and running the docker container on the raspi with host dbus: docker run --name docker-chip-2 -v /var/run/dbus:/var/run/dbus --privileged --device /dev/ttyACM0 -it chip-1

https://docs.google.com/document/d/1GAfkvswaNamBoP2YcQnYb4k0AF84J4cuq1-wc6_QK9Y/edit?usp=sharing&resourcekey=0-dKH4qXRjyIqMet8rCl1N9A