Hi Olivier, On Mon, Apr 6, 2020 at 4:06 PM Olivier MARTIN <olivier@xxxxxxxxxxxx> wrote: > > Hi all, > > I am trying to test BLE connection between two virtual controllers > (created with 'btvirt'). But when trying to connect to the GATT server > running on the first virtual controller, I have the error > "src/device.c:att_connect_cb() connect error: Transport endpoint is not > connected (107)" > > > To test my test case, I am using the head of Bluez (2a7df9323e, Sunday > 5th April). > > Here is the test case: > > 1. Start btvirt for BLE: sudo ./emulator/btvirt -L -U2 (you will need my > patch to fix command line parsing I sent a couple of minutes ago) > > 2. Start bluetoothctl to initialize the Virtual Controller that would > play the role of GATT Server: > > $ bluetoothctl > [NEW] Controller DB:E3:2A:E8:90:C4 olivier-ThinkPad-T480 #2 [default] > [NEW] Device E3:01:36:88:4C:DE TestAdvertisement > [NEW] Controller E3:01:36:88:4C:DE olivier-ThinkPad-T480 > [NEW] Device DB:E3:2A:E8:90:C4 TestAdvertisement > > [bluetooth]# list > Controller DB:E3:2A:E8:90:C4 olivier-ThinkPad-T480 #2 [default] > Controller E3:01:36:88:4C:DE olivier-ThinkPad-T480 > > [bluetooth]# power on > Changing power on succeeded > [CHG] Controller DB:E3:2A:E8:90:C4 Powered: yes > > [bluetooth]# discoverable on > Changing discoverable on succeeded > [CHG] Controller DB:E3:2A:E8:90:C4 Discoverable: yes Try with advertise.discoverable on, advertise instances actually have their discoverable flag. > [bluetooth]# advertise on > [CHG] Controller DB:E3:2A:E8:90:C4 SupportedInstances: 0x04 > [CHG] Controller DB:E3:2A:E8:90:C4 ActiveInstances: 0x01 > Advertising object registered > > > 3. Use './test/example-gatt-server' to simulate GATT server. I confirm > the server is started on DB:E3:2A:E8:90:C4 (first virtual controller) > > 4. Return to bluetoothctl to switch to second virtual controller and > connect to the first one > > [bluetooth]# select E3:01:36:88:4C:DE > Controller E3:01:36:88:4C:DE olivier-ThinkPad-T480 [default] > > [bluetooth]# power on > Changing power on succeeded > [CHG] Controller E3:01:36:88:4C:DE Powered: yes > > [bluetooth]# scan on > Discovery started > [CHG] Controller E3:01:36:88:4C:DE Discovering: yes > [NEW] Device DB:E3:2A:E8:90:C4 > [bluetooth]# scan off > Discovery stopped > [CHG] Controller E3:01:36:88:4C:DE Discovering: no > > [bluetooth]# connect DB:E3:2A:E8:90:C4 > Attempting to connect to DB:E3:2A:E8:90:C4 > Failed to connect: org.bluez.Error.Failed > [CHG] Controller DB:E3:2A:E8:90:C4 Discoverable: no > > > And in the bluetoothd log: > > bluetoothd[15175]: src/adapter.c:start_discovery() sender :1.6483 > bluetoothd[15175]: src/adapter.c:update_discovery_filter() > bluetoothd[15175]: src/adapter.c:discovery_filter_to_mgmt_cp() > bluetoothd[15175]: src/adapter.c:trigger_start_discovery() > bluetoothd[15175]: src/adapter.c:cancel_passive_scanning() > bluetoothd[15175]: src/adapter.c:start_discovery_timeout() > bluetoothd[15175]: src/adapter.c:start_discovery_timeout() adapter->current_discovery_filter == 0 > bluetoothd[15175]: src/adapter.c:start_discovery_complete() status 0x00 > bluetoothd[15175]: src/adapter.c:discovering_callback() hci0 type 6 discovering 1 method 0 > bluetoothd[15175]: src/adapter.c:device_found_callback() hci0 addr DB:E3:2A:E8:90:C4, rssi 0 flags 0x0000 eir_len 3 > bluetoothd[15175]: src/device.c:device_set_legacy() legacy 0 > bluetoothd[15175]: src/device.c:device_set_flags() flags 6 > bluetoothd[15175]: src/adapter.c:stop_discovery() sender :1.6483 > bluetoothd[15175]: src/adapter.c:stop_discovery_complete() status 0x00 > bluetoothd[15175]: src/adapter.c:trigger_passive_scanning() > bluetoothd[15175]: src/adapter.c:discovery_remove() owner :1.6483 > bluetoothd[15175]: src/adapter.c:discovering_callback() hci0 type 6 discovering 0 method 0 > bluetoothd[15175]: src/device.c:device_connect_le() Connection attempt to: DB:E3:2A:E8:90:C4 > bluetoothd[15175]: src/device.c:att_connect_cb() connect error: Transport endpoint is not connected (107) > -- Luiz Augusto von Dentz