Re: btvirt with two virtual controllers: Cannot connect to GATT server

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux