All of lore.kernel.org
 help / color / mirror / Atom feed
* Can't connect a Xbox one controller
@ 2016-08-18 10:11 Anthony Bourguignon
  2016-08-18 13:56 ` Luiz Augusto von Dentz
  2016-08-19 18:02 ` Vinicius Costa Gomes
  0 siblings, 2 replies; 15+ messages in thread
From: Anthony Bourguignon @ 2016-08-18 10:11 UTC (permalink / raw)
  To: linux-bluetooth

[-- Attachment #1: Type: text/plain, Size: 556 bytes --]

Hi,

I've recently bought a new xbox one controller as the 2016 version has
bluetooth connectivity.

The controller is pairing and connecting well on a windows 10 computer
and an android 4.4 tablet. But I can"t make it connect under linux
(Debian unstable, kernel 4.6 and 4.7-rc7, bluez 5.40 from
experimental). The pairing is ok but when I try to connect to
controller, it stays connected for less than one second, then
disconnects, then connects again and so one until the controller goes
to sleep, because of the lack of a remote connection.

Any idea ?

[-- Attachment #2: hcitool-info.txt --]
[-- Type: text/plain, Size: 1267 bytes --]

# hcitool info C8:3F:26:0F:48:E2
Requesting information ...
	BD Address:  C8:3F:26:0F:48:E2
	OUI Company: Microsoft Corporation (C8-3F-26)
	Device Name: Xbox Wireless Controller
	LMP Version: 4.2 (0x8) LMP Subversion: 0x0
	Manufacturer: MediaTek, Inc. (70)
	Features page 0: 0xbf 0x3e 0x8d 0xfe 0xdb 0xfd 0x7b 0x87
		<3-slot packets> <5-slot packets> <encryption> <slot offset> 
		<timing accuracy> <role switch> <sniff mode> <RSSI> 
		<channel quality> <SCO link> <HV2 packets> <HV3 packets> 
		<CVSD> <power control> <transparent SCO> <broadcast encrypt> 
		<EDR ACL 2 Mbps> <EDR ACL 3 Mbps> <enhanced iscan> 
		<interlaced iscan> <interlaced pscan> <inquiry with RSSI> 
		<extended SCO> <EV4 packets> <EV5 packets> <AFH cap. slave> 
		<AFH class. slave> <LE support> <3-slot EDR ACL> 
		<5-slot EDR ACL> <pause encryption> <AFH cap. master> 
		<AFH class. master> <EDR eSCO 2 Mbps> <EDR eSCO 3 Mbps> 
		<3-slot EDR eSCO> <extended inquiry> <LE and BR/EDR> 
		<simple pairing> <encapsulated PDU> <err. data report> 
		<non-flush flag> <LSTO> <inquiry TX power> <EPC> 
		<extended features> 
	Features page 1: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
	Features page 2: 0x25 0x0b 0x00 0x00 0x00 0x00 0x00 0x00
	Features page 3: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00

[-- Attachment #3: hcidump.txt --]
[-- Type: text/plain, Size: 10239 bytes --]

# hcidump 
HCI sniffer - Bluetooth packet analyzer ver 5.40
device: hci0 snap_len: 1500 filter: 0xffffffffffffffff
< HCI Command: Disconnect (0x01|0x0006) plen 3
    handle 256 reason 0x13
    Reason: Remote User Terminated Connection
> HCI Event: Command Status (0x0f) plen 4
    Disconnect (0x01|0x0006) status 0x00 ncmd 1
> HCI Event: Disconn Complete (0x05) plen 4
    status 0x00 handle 256 reason 0x16
    Reason: Connection Terminated by Local Host
< HCI Command: Write Scan Enable (0x03|0x001a) plen 1
    enable 2
> HCI Event: Command Complete (0x0e) plen 4
    Write Scan Enable (0x03|0x001a) ncmd 2
    status 0x00
> HCI Event: Vendor (0xff) plen 2
> HCI Event: Vendor (0xff) plen 2
> HCI Event: Connect Request (0x04) plen 10
    bdaddr C8:3F:26:0F:48:E2 class 0x000508 type ACL
< HCI Command: Accept Connection Request (0x01|0x0009) plen 7
    bdaddr C8:3F:26:0F:48:E2 role 0x00
    Role: Master
> HCI Event: Command Status (0x0f) plen 4
    Accept Connection Request (0x01|0x0009) status 0x00 ncmd 1
> HCI Event: Role Change (0x12) plen 8
    status 0x00 bdaddr C8:3F:26:0F:48:E2 role 0x00
    Role: Master
> HCI Event: Vendor (0xff) plen 4
> HCI Event: Connect Complete (0x03) plen 11
    status 0x00 handle 256 bdaddr C8:3F:26:0F:48:E2 type ACL encrypt 0x00
< HCI Command: Read Remote Supported Features (0x01|0x001b) plen 2
    handle 256
> HCI Event: Command Status (0x0f) plen 4
    Read Remote Supported Features (0x01|0x001b) status 0x00 ncmd 1
< HCI Command: Write Scan Enable (0x03|0x001a) plen 1
    enable 0
> HCI Event: Command Complete (0x0e) plen 4
    Write Scan Enable (0x03|0x001a) ncmd 2
    status 0x00
> HCI Event: Max Slots Change (0x1b) plen 3
    handle 256 slots 5
> HCI Event: Read Remote Supported Features (0x0b) plen 11
    status 0x00 handle 256
    Features: 0xbf 0x3e 0x8d 0xfe 0xdb 0xfd 0x7b 0x87
< HCI Command: Read Remote Extended Features (0x01|0x001c) plen 3
    handle 256 page 1
> HCI Event: Command Status (0x0f) plen 4
    Read Remote Extended Features (0x01|0x001c) status 0x00 ncmd 1
> HCI Event: Link Key Request (0x17) plen 6
    bdaddr C8:3F:26:0F:48:E2
< HCI Command: Link Key Request Reply (0x01|0x000b) plen 22
    bdaddr C8:3F:26:0F:48:E2 key DC6AD6B5BD80110AE5016E3FE834F2CA
> HCI Event: Command Complete (0x0e) plen 10
    Link Key Request Reply (0x01|0x000b) ncmd 1
    status 0x00 bdaddr C8:3F:26:0F:48:E2
> HCI Event: Read Remote Extended Features (0x23) plen 13
    status 0x00 handle 256 page 1 max 3
    Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
< HCI Command: Remote Name Request (0x01|0x0019) plen 10
    bdaddr C8:3F:26:0F:48:E2 mode 2 clkoffset 0x0000
< ACL data: handle 256 flags 0x00 dlen 10
    L2CAP(s): Info req: type 2
> HCI Event: Command Status (0x0f) plen 4
    Remote Name Request (0x01|0x0019) status 0x00 ncmd 1
> HCI Event: Encrypt Change (0x08) plen 4
    status 0x00 handle 256 encrypt 0x01
< HCI Command: Read Encryption Key Size (0x05|0x0008) plen 2
> HCI Event: Command Complete (0x0e) plen 7
    Read Encryption Key Size (0x05|0x0008) ncmd 1
> ACL data: handle 256 flags 0x02 dlen 12
    L2CAP(s): Connect req: psm 17 scid 0x0040
< ACL data: handle 256 flags 0x00 dlen 16
    L2CAP(s): Connect rsp: dcid 0x0040 scid 0x0040 result 1 status 0
      Connection pending - No futher information available
< ACL data: handle 256 flags 0x00 dlen 10
    L2CAP(s): Info req: type 2
> ACL data: handle 256 flags 0x02 dlen 16
    L2CAP(s): Info rsp: type 2 result 0
      Extended feature mask 0x0010
        Streaming mode
> HCI Event: Remote Name Req Complete (0x07) plen 255
    status 0x00 bdaddr C8:3F:26:0F:48:E2 name 'Xbox Wireless Controller'
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 256 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 256 packets 1
> ACL data: handle 256 flags 0x02 dlen 16
    L2CAP(s): Info rsp: type 2 result 0
      Extended feature mask 0x0010
        Streaming mode
< ACL data: handle 256 flags 0x00 dlen 16
    L2CAP(s): Connect rsp: dcid 0x0040 scid 0x0040 result 0 status 0
      Connection successful
< ACL data: handle 256 flags 0x00 dlen 23
    L2CAP(s): Config req: dcid 0x0040 flags 0x00 clen 11
      RFC 0x00 (Basic) 
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 256 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 256 packets 1
> ACL data: handle 256 flags 0x02 dlen 16
    L2CAP(s): Config req: dcid 0x0040 flags 0x00 clen 4
      MTU 1480 
< ACL data: handle 256 flags 0x00 dlen 18
    L2CAP(s): Config rsp: scid 0x0040 flags 0x00 result 0 clen 4
      MTU 1480 
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 256 packets 1
> ACL data: handle 256 flags 0x02 dlen 15
    L2CAP(s): Config rsp: scid 0x0040 flags 0x00 result 3 clen 1
      Failure - unknown options
      RFC 
< ACL data: handle 256 flags 0x00 dlen 12
    L2CAP(s): Disconn req: dcid 0x0040 scid 0x0040
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 256 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 256 packets 1
> ACL data: handle 256 flags 0x02 dlen 12
    L2CAP(s): Disconn rsp: dcid 0x0040 scid 0x0040
< HCI Command: Disconnect (0x01|0x0006) plen 3
    handle 256 reason 0x13
    Reason: Remote User Terminated Connection
> HCI Event: Command Status (0x0f) plen 4
    Disconnect (0x01|0x0006) status 0x00 ncmd 1
> HCI Event: Disconn Complete (0x05) plen 4
    status 0x00 handle 256 reason 0x16
    Reason: Connection Terminated by Local Host
< HCI Command: Write Scan Enable (0x03|0x001a) plen 1
    enable 2
> HCI Event: Command Complete (0x0e) plen 4
    Write Scan Enable (0x03|0x001a) ncmd 2
    status 0x00
> HCI Event: Vendor (0xff) plen 2
> HCI Event: Vendor (0xff) plen 2
> HCI Event: Connect Request (0x04) plen 10
    bdaddr C8:3F:26:0F:48:E2 class 0x000508 type ACL
< HCI Command: Accept Connection Request (0x01|0x0009) plen 7
    bdaddr C8:3F:26:0F:48:E2 role 0x00
    Role: Master
> HCI Event: Command Status (0x0f) plen 4
    Accept Connection Request (0x01|0x0009) status 0x00 ncmd 1
> HCI Event: Role Change (0x12) plen 8
    status 0x00 bdaddr C8:3F:26:0F:48:E2 role 0x00
    Role: Master
> HCI Event: Vendor (0xff) plen 4
> HCI Event: Connect Complete (0x03) plen 11
    status 0x00 handle 256 bdaddr C8:3F:26:0F:48:E2 type ACL encrypt 0x00
< HCI Command: Read Remote Supported Features (0x01|0x001b) plen 2
    handle 256
> HCI Event: Command Status (0x0f) plen 4
    Read Remote Supported Features (0x01|0x001b) status 0x00 ncmd 1
< HCI Command: Write Scan Enable (0x03|0x001a) plen 1
    enable 0
> HCI Event: Command Complete (0x0e) plen 4
    Write Scan Enable (0x03|0x001a) ncmd 2
    status 0x00
> HCI Event: Max Slots Change (0x1b) plen 3
    handle 256 slots 5
> HCI Event: Read Remote Supported Features (0x0b) plen 11
    status 0x00 handle 256
    Features: 0xbf 0x3e 0x8d 0xfe 0xdb 0xfd 0x7b 0x87
< HCI Command: Read Remote Extended Features (0x01|0x001c) plen 3
    handle 256 page 1
> HCI Event: Command Status (0x0f) plen 4
    Read Remote Extended Features (0x01|0x001c) status 0x00 ncmd 1
> HCI Event: Link Key Request (0x17) plen 6
    bdaddr C8:3F:26:0F:48:E2
< HCI Command: Link Key Request Reply (0x01|0x000b) plen 22
    bdaddr C8:3F:26:0F:48:E2 key DC6AD6B5BD80110AE5016E3FE834F2CA
> HCI Event: Command Complete (0x0e) plen 10
    Link Key Request Reply (0x01|0x000b) ncmd 1
    status 0x00 bdaddr C8:3F:26:0F:48:E2
> HCI Event: Read Remote Extended Features (0x23) plen 13
    status 0x00 handle 256 page 1 max 3
    Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
< HCI Command: Remote Name Request (0x01|0x0019) plen 10
    bdaddr C8:3F:26:0F:48:E2 mode 2 clkoffset 0x0000
< ACL data: handle 256 flags 0x00 dlen 10
    L2CAP(s): Info req: type 2
> HCI Event: Command Status (0x0f) plen 4
    Remote Name Request (0x01|0x0019) status 0x00 ncmd 1
> HCI Event: Encrypt Change (0x08) plen 4
    status 0x00 handle 256 encrypt 0x01
< HCI Command: Read Encryption Key Size (0x05|0x0008) plen 2
> HCI Event: Command Complete (0x0e) plen 7
    Read Encryption Key Size (0x05|0x0008) ncmd 1
> ACL data: handle 256 flags 0x02 dlen 12
    L2CAP(s): Connect req: psm 17 scid 0x0040
< ACL data: handle 256 flags 0x00 dlen 16
    L2CAP(s): Connect rsp: dcid 0x0040 scid 0x0040 result 1 status 0
      Connection pending - No futher information available
< ACL data: handle 256 flags 0x00 dlen 10
    L2CAP(s): Info req: type 2
> ACL data: handle 256 flags 0x02 dlen 16
    L2CAP(s): Info rsp: type 2 result 0
      Extended feature mask 0x0010
        Streaming mode
> HCI Event: Remote Name Req Complete (0x07) plen 255
    status 0x00 bdaddr C8:3F:26:0F:48:E2 name 'Xbox Wireless Controller'
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 256 packets 1
> ACL data: handle 256 flags 0x02 dlen 16
    L2CAP(s): Info rsp: type 2 result 0
      Extended feature mask 0x0010
        Streaming mode
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 256 packets 1
< ACL data: handle 256 flags 0x00 dlen 16
    L2CAP(s): Connect rsp: dcid 0x0040 scid 0x0040 result 0 status 0
      Connection successful
< ACL data: handle 256 flags 0x00 dlen 23
    L2CAP(s): Config req: dcid 0x0040 flags 0x00 clen 11
      RFC 0x00 (Basic) 
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 256 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 256 packets 1
> ACL data: handle 256 flags 0x02 dlen 16
    L2CAP(s): Config req: dcid 0x0040 flags 0x00 clen 4
      MTU 1480 
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 256 packets 1
< ACL data: handle 256 flags 0x00 dlen 18
    L2CAP(s): Config rsp: scid 0x0040 flags 0x00 result 0 clen 4
      MTU 1480 
> ACL data: handle 256 flags 0x02 dlen 15
    L2CAP(s): Config rsp: scid 0x0040 flags 0x00 result 3 clen 1
      Failure - unknown options
      RFC 
< ACL data: handle 256 flags 0x00 dlen 12
    L2CAP(s): Disconn req: dcid 0x0040 scid 0x0040
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 256 packets 1
> HCI Event: Number of Completed Packets (0x13) plen 5
    handle 256 packets 1
> ACL data: handle 256 flags 0x02 dlen 12
    L2CAP(s): Disconn rsp: dcid 0x0040 scid 0x0040

[-- Attachment #4: bluetoothd.txt --]
[-- Type: text/plain, Size: 15929 bytes --]

# bluetoothd -d -n
bluetoothd[3715]: Bluetooth daemon 5.40
bluetoothd[3715]: src/main.c:parse_config() parsing main.conf
bluetoothd[3715]: src/main.c:parse_config() Key file does not have key 'DiscoverableTimeout' in group 'General'
bluetoothd[3715]: src/main.c:parse_config() Key file does not have key 'PairableTimeout' in group 'General'
bluetoothd[3715]: src/main.c:parse_config() Key file does not have key 'AutoConnectTimeout' in group 'General'
bluetoothd[3715]: src/main.c:parse_config() Key file does not have key 'Name' in group 'General'
bluetoothd[3715]: src/main.c:parse_config() Key file does not have key 'Class' in group 'General'
bluetoothd[3715]: src/main.c:parse_config() Key file does not have key 'DeviceID' in group 'General'
bluetoothd[3715]: src/main.c:parse_config() Key file does not have key 'ReverseServiceDiscovery' in group 'General'
bluetoothd[3715]: src/adapter.c:adapter_init() sending read version command
bluetoothd[3715]: Starting SDP server
bluetoothd[3715]: src/sdpd-service.c:register_device_id() Adding device id record for 0002:1d6b:0246:0528
bluetoothd[3715]: src/plugin.c:plugin_init() Loading builtin plugins
bluetoothd[3715]: src/plugin.c:add_plugin() Loading hostname plugin
bluetoothd[3715]: src/plugin.c:add_plugin() Loading wiimote plugin
bluetoothd[3715]: src/plugin.c:add_plugin() Loading autopair plugin
bluetoothd[3715]: src/plugin.c:add_plugin() Loading policy plugin
bluetoothd[3715]: src/plugin.c:add_plugin() Loading neard plugin
bluetoothd[3715]: src/plugin.c:add_plugin() Loading sap plugin
bluetoothd[3715]: src/plugin.c:add_plugin() Loading a2dp plugin
bluetoothd[3715]: src/plugin.c:add_plugin() Loading avrcp plugin
bluetoothd[3715]: src/plugin.c:add_plugin() Loading network plugin
bluetoothd[3715]: src/plugin.c:add_plugin() Loading input plugin
bluetoothd[3715]: src/plugin.c:add_plugin() Loading hog plugin
bluetoothd[3715]: src/plugin.c:add_plugin() Loading health plugin
bluetoothd[3715]: src/plugin.c:add_plugin() Loading gap plugin
bluetoothd[3715]: src/plugin.c:add_plugin() Loading scanparam plugin
bluetoothd[3715]: src/plugin.c:add_plugin() Loading deviceinfo plugin
bluetoothd[3715]: src/plugin.c:plugin_init() Loading plugins /usr/lib/x86_64-linux-gnu/bluetooth/plugins
bluetoothd[3715]: Version mismatch for sixaxis
bluetoothd[3715]: profiles/health/hdp.c:hdp_manager_start() Starting Health manager
bluetoothd[3715]: profiles/input/suspend-none.c:suspend_init() 
bluetoothd[3715]: profiles/network/manager.c:read_config() /etc/bluetooth/network.conf: Key file does not have key 'DisableSecurity' in group 'General'
bluetoothd[3715]: profiles/network/manager.c:read_config() Config options: Security=true
bluetoothd[3715]: plugins/neard.c:neard_init() Setup neard plugin
bluetoothd[3715]: plugins/hostname.c:read_dmi_fallback() chassis: desktop
bluetoothd[3715]: plugins/hostname.c:read_dmi_fallback() major: 0x01 minor: 0x01
bluetoothd[3715]: src/main.c:main() Entering main loop
bluetoothd[3715]: src/rfkill.c:rfkill_event() RFKILL event idx 0 type 2 op 0 soft 0 hard 0
bluetoothd[3715]: Bluetooth management interface 1.12 initialized
bluetoothd[3715]: src/adapter.c:read_version_complete() sending read supported commands command
bluetoothd[3715]: src/adapter.c:read_version_complete() sending read index list command
bluetoothd[3715]: src/adapter.c:read_commands_complete() Number of commands: 63
bluetoothd[3715]: src/adapter.c:read_commands_complete() Number of events: 34
bluetoothd[3715]: src/adapter.c:read_commands_complete() enabling kernel-side connection control
bluetoothd[3715]: src/adapter.c:read_index_list_complete() Number of controllers: 1
bluetoothd[3715]: src/adapter.c:read_index_list_complete() Found index 0
bluetoothd[3715]: src/adapter.c:index_added() index 0
bluetoothd[3715]: src/adapter.c:btd_adapter_new() System name: BlueZ 5.40
bluetoothd[3715]: src/adapter.c:btd_adapter_new() Major class: 0
bluetoothd[3715]: src/adapter.c:btd_adapter_new() Minor class: 0
bluetoothd[3715]: src/adapter.c:btd_adapter_new() Modalias: usb:v1D6Bp0246d0528
bluetoothd[3715]: src/adapter.c:btd_adapter_new() Discoverable timeout: 180 seconds
bluetoothd[3715]: src/adapter.c:btd_adapter_new() Pairable timeout: 0 seconds
bluetoothd[3715]: src/adapter.c:index_added() sending read info command for index 0
bluetoothd[3715]: src/adapter.c:read_info_complete() index 0 status 0x00
bluetoothd[3715]: src/adapter.c:clear_uuids() sending clear uuids command for index 0
bluetoothd[3715]: src/adapter.c:clear_devices() sending clear devices command for index 0
bluetoothd[3715]: src/adapter.c:adapter_service_add() /org/bluez/hci0
bluetoothd[3715]: src/sdpd-service.c:add_record_to_server() Adding record with handle 0x10001
bluetoothd[3715]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000007-0000-1000-8000-00805f9
bluetoothd[3715]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000100-0000-1000-8000-00805f9
bluetoothd[3715]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001002-0000-1000-8000-00805f9
bluetoothd[3715]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001800-0000-1000-8000-00805f9
bluetoothd[3715]: src/adapter.c:adapter_service_insert() /org/bluez/hci0
bluetoothd[3715]: src/adapter.c:add_uuid() sending add uuid command for index 0
bluetoothd[3715]: src/gatt-database.c:gatt_db_service_added() GATT Service added to local database
bluetoothd[3715]: Failed to obtain handles for "Service Changed" characteristic
bluetoothd[3715]: src/adapter.c:adapter_service_add() /org/bluez/hci0
bluetoothd[3715]: src/sdpd-service.c:add_record_to_server() Adding record with handle 0x10002
bluetoothd[3715]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000007-0000-1000-8000-00805f9
bluetoothd[3715]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000100-0000-1000-8000-00805f9
bluetoothd[3715]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001002-0000-1000-8000-00805f9
bluetoothd[3715]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001801-0000-1000-8000-00805f9
bluetoothd[3715]: src/adapter.c:adapter_service_insert() /org/bluez/hci0
bluetoothd[3715]: src/adapter.c:add_uuid() sending add uuid command for index 0
bluetoothd[3715]: src/gatt-database.c:gatt_db_service_added() GATT Service added to local database
bluetoothd[3715]: profiles/audio/a2dp.c:media_server_probe() path /org/bluez/hci0
bluetoothd[3715]: plugins/hostname.c:hostname_probe() 
bluetoothd[3715]: plugins/hostname.c:update_class() major: 0x01 minor: 0x01
bluetoothd[3715]: src/adapter.c:btd_adapter_set_class() class: major 1 minor 1
bluetoothd[3715]: src/adapter.c:set_dev_class() sending set device class command for index 0
bluetoothd[3715]: profiles/network/manager.c:panu_server_probe() path /org/bluez/hci0
bluetoothd[3715]: profiles/network/server.c:server_register() Registered interface org.bluez.NetworkServer1 on path /org/bluez/hci0
bluetoothd[3715]: profiles/network/manager.c:gn_server_probe() path /org/bluez/hci0
bluetoothd[3715]: profiles/network/manager.c:nap_server_probe() path /org/bluez/hci0
bluetoothd[3715]: profiles/audio/avrcp.c:avrcp_controller_server_probe() path /org/bluez/hci0
bluetoothd[3715]: src/adapter.c:adapter_service_add() /org/bluez/hci0
bluetoothd[3715]: src/sdpd-service.c:add_record_to_server() Adding record with handle 0x10003
bluetoothd[3715]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000017-0000-1000-8000-00805f9
bluetoothd[3715]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000100-0000-1000-8000-00805f9
bluetoothd[3715]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001002-0000-1000-8000-00805f9
bluetoothd[3715]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 0000110e-0000-1000-8000-00805f9
bluetoothd[3715]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 0000110f-0000-1000-8000-00805f9
bluetoothd[3715]: src/adapter.c:adapter_service_insert() /org/bluez/hci0
bluetoothd[3715]: src/adapter.c:add_uuid() sending add uuid command for index 0
bluetoothd[3715]: profiles/audio/avrcp.c:avrcp_target_server_probe() path /org/bluez/hci0
bluetoothd[3715]: src/adapter.c:adapter_service_add() /org/bluez/hci0
bluetoothd[3715]: src/sdpd-service.c:add_record_to_server() Adding record with handle 0x10004
bluetoothd[3715]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000017-0000-1000-8000-00805f9
bluetoothd[3715]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000100-0000-1000-8000-00805f9
bluetoothd[3715]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001002-0000-1000-8000-00805f9
bluetoothd[3715]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 0000110c-0000-1000-8000-00805f9
bluetoothd[3715]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 0000110e-0000-1000-8000-00805f9
bluetoothd[3715]: src/adapter.c:adapter_service_insert() /org/bluez/hci0
bluetoothd[3715]: src/adapter.c:add_uuid() sending add uuid command for index 0
bluetoothd[3715]: profiles/audio/a2dp.c:a2dp_sink_server_probe() path /org/bluez/hci0
bluetoothd[3715]: profiles/audio/a2dp.c:a2dp_source_server_probe() path /org/bluez/hci0
bluetoothd[3715]: profiles/sap/manager.c:sap_server_probe() path /org/bluez/hci0
bluetoothd[3715]: Sap driver initialization failed.
bluetoothd[3715]: sap-server: Operation not permitted (1)
bluetoothd[3715]: src/adapter.c:btd_adapter_unblock_address() hci0 00:00:00:00:00:00
bluetoothd[3715]: src/adapter.c:get_ltk_info() C8:3F:26:0F:48:E2
bluetoothd[3715]: src/device.c:device_create_from_storage() address C8:3F:26:0F:48:E2
bluetoothd[3715]: src/device.c:device_new() address C8:3F:26:0F:48:E2
bluetoothd[3715]: src/device.c:device_new() Creating device /org/bluez/hci0/dev_C8_3F_26_0F_48_E2
bluetoothd[3715]: src/device.c:btd_device_set_temporary() temporary 0
bluetoothd[3715]: src/device.c:device_set_bonded() 
bluetoothd[3715]: src/adapter.c:load_link_keys() hci0 keys 1 debug_keys 0
bluetoothd[3715]: src/adapter.c:load_ltks() hci0 keys 0
bluetoothd[3715]: src/adapter.c:load_irks() hci0 irks 0
bluetoothd[3715]: src/adapter.c:load_conn_params() hci0 conn params 0
bluetoothd[3715]: src/device.c:device_probe_profiles() Probing profiles for device C8:3F:26:0F:48:E2
bluetoothd[3715]: src/adapter.c:adapter_service_insert() /org/bluez/hci0
bluetoothd[3715]: src/adapter.c:add_uuid() sending add uuid command for index 0
bluetoothd[3715]: src/adapter.c:set_did() hci0 source 2 vendor 1d6b product 246 version 528
bluetoothd[3715]: src/adapter.c:adapter_register() Adapter /org/bluez/hci0 registered
bluetoothd[3715]: src/adapter.c:set_dev_class() sending set device class command for index 0
bluetoothd[3715]: src/adapter.c:set_name() sending set local name command for index 0
bluetoothd[3715]: src/adapter.c:add_whitelist_complete() C8:3F:26:0F:48:E2 added to kernel whitelist
bluetoothd[3715]: src/adapter.c:load_link_keys_complete() link keys loaded for hci0
bluetoothd[3715]: src/adapter.c:load_ltks_complete() LTKs loaded for hci0
bluetoothd[3715]: src/adapter.c:load_irks_complete() IRKs loaded for hci0
bluetoothd[3715]: src/adapter.c:load_conn_params_complete() Connection Parameters loaded for hci0
bluetoothd[3715]: src/adapter.c:local_name_changed_callback() Name: BlueZ 5.40
bluetoothd[3715]: src/adapter.c:local_name_changed_callback() Short name: 
bluetoothd[3715]: src/adapter.c:local_name_changed_callback() Current alias: BlueZ 5.40
bluetoothd[3715]: plugins/hostname.c:property_changed() static hostname: april
bluetoothd[3715]: plugins/hostname.c:property_changed() pretty hostname: 
bluetoothd[3715]: plugins/hostname.c:update_name() name: april
bluetoothd[3715]: src/adapter.c:adapter_set_name() name: april
bluetoothd[3715]: src/adapter.c:adapter_set_name() alias: april
bluetoothd[3715]: src/adapter.c:set_name() sending set local name command for index 0
bluetoothd[3715]: plugins/hostname.c:property_changed() chassis: desktop
bluetoothd[3715]: plugins/hostname.c:update_class() major: 0x01 minor: 0x01
bluetoothd[3715]: src/adapter.c:local_name_changed_callback() Name: april
bluetoothd[3715]: src/adapter.c:local_name_changed_callback() Short name: 
bluetoothd[3715]: src/adapter.c:local_name_changed_callback() Current alias: april
bluetoothd[3715]: src/adapter.c:property_set_mode() sending Set Powered command for index 0
bluetoothd[3715]: src/adapter.c:property_set_mode_complete() Success (0x00)
bluetoothd[3715]: src/adapter.c:new_settings_callback() Settings: 0x00000ad1
bluetoothd[3715]: src/adapter.c:settings_changed() Changed settings: 0x00000001
bluetoothd[3715]: src/adapter.c:adapter_start() adapter /org/bluez/hci0 has been enabled
bluetoothd[3715]: src/adapter.c:trigger_passive_scanning() 
bluetoothd[3715]: src/adapter.c:connected_callback() hci0 device C8:3F:26:0F:48:E2 connected eir_len 5
bluetoothd[3715]: src/adapter.c:dev_disconnected() Device C8:3F:26:0F:48:E2 disconnected, reason 2
bluetoothd[3715]: src/adapter.c:adapter_remove_connection() 
bluetoothd[3715]: plugins/policy.c:disconnect_cb() reason 2
bluetoothd[3715]: src/adapter.c:bonding_attempt_complete() hci0 bdaddr C8:3F:26:0F:48:E2 type 0 status 0xe
bluetoothd[3715]: src/device.c:device_bonding_complete() bonding (nil) status 0x0e
bluetoothd[3715]: src/device.c:device_bonding_failed() status 14
bluetoothd[3715]: src/adapter.c:resume_discovery() 
bluetoothd[3715]: src/adapter.c:connected_callback() hci0 device C8:3F:26:0F:48:E2 connected eir_len 5
bluetoothd[3715]: src/adapter.c:dev_disconnected() Device C8:3F:26:0F:48:E2 disconnected, reason 2
bluetoothd[3715]: src/adapter.c:adapter_remove_connection() 
bluetoothd[3715]: plugins/policy.c:disconnect_cb() reason 2
bluetoothd[3715]: src/adapter.c:bonding_attempt_complete() hci0 bdaddr C8:3F:26:0F:48:E2 type 0 status 0xe
bluetoothd[3715]: src/device.c:device_bonding_complete() bonding (nil) status 0x0e
bluetoothd[3715]: src/device.c:device_bonding_failed() status 14
bluetoothd[3715]: src/adapter.c:resume_discovery() 
bluetoothd[3715]: src/adapter.c:connected_callback() hci0 device C8:3F:26:0F:48:E2 connected eir_len 5
bluetoothd[3715]: src/adapter.c:dev_disconnected() Device C8:3F:26:0F:48:E2 disconnected, reason 2
bluetoothd[3715]: src/adapter.c:adapter_remove_connection() 
bluetoothd[3715]: plugins/policy.c:disconnect_cb() reason 2
bluetoothd[3715]: src/adapter.c:bonding_attempt_complete() hci0 bdaddr C8:3F:26:0F:48:E2 type 0 status 0xe
bluetoothd[3715]: src/device.c:device_bonding_complete() bonding (nil) status 0x0e
bluetoothd[3715]: src/device.c:device_bonding_failed() status 14
bluetoothd[3715]: src/adapter.c:resume_discovery() 
bluetoothd[3715]: src/adapter.c:connected_callback() hci0 device C8:3F:26:0F:48:E2 connected eir_len 5
bluetoothd[3715]: src/adapter.c:dev_disconnected() Device C8:3F:26:0F:48:E2 disconnected, reason 2
bluetoothd[3715]: src/adapter.c:adapter_remove_connection() 
bluetoothd[3715]: plugins/policy.c:disconnect_cb() reason 2
bluetoothd[3715]: src/adapter.c:bonding_attempt_complete() hci0 bdaddr C8:3F:26:0F:48:E2 type 0 status 0xe
bluetoothd[3715]: src/device.c:device_bonding_complete() bonding (nil) status 0x0e
bluetoothd[3715]: src/device.c:device_bonding_failed() status 14
bluetoothd[3715]: src/adapter.c:resume_discovery() 
bluetoothd[3715]: src/adapter.c:connected_callback() hci0 device C8:3F:26:0F:48:E2 connected eir_len 5
bluetoothd[3715]: src/adapter.c:dev_disconnected() Device C8:3F:26:0F:48:E2 disconnected, reason 2
bluetoothd[3715]: src/adapter.c:adapter_remove_connection() 
bluetoothd[3715]: plugins/policy.c:disconnect_cb() reason 2
bluetoothd[3715]: src/adapter.c:bonding_attempt_complete() hci0 bdaddr C8:3F:26:0F:48:E2 type 0 status 0xe
bluetoothd[3715]: src/device.c:device_bonding_complete() bonding (nil) status 0x0e
bluetoothd[3715]: src/device.c:device_bonding_failed() status 14
bluetoothd[3715]: src/adapter.c:resume_discovery() 


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Can't connect a Xbox one controller
  2016-08-18 10:11 Can't connect a Xbox one controller Anthony Bourguignon
@ 2016-08-18 13:56 ` Luiz Augusto von Dentz
  2016-08-18 14:52   ` Anthony Bourguignon
  2016-08-19 18:02 ` Vinicius Costa Gomes
  1 sibling, 1 reply; 15+ messages in thread
From: Luiz Augusto von Dentz @ 2016-08-18 13:56 UTC (permalink / raw)
  To: Anthony Bourguignon; +Cc: linux-bluetooth

Hi Anthony,

On Thu, Aug 18, 2016 at 1:11 PM, Anthony Bourguignon <contact@toniob.net> wrote:
> Hi,
>
> I've recently bought a new xbox one controller as the 2016 version has
> bluetooth connectivity.
>
> The controller is pairing and connecting well on a windows 10 computer
> and an android 4.4 tablet. But I can"t make it connect under linux
> (Debian unstable, kernel 4.6 and 4.7-rc7, bluez 5.40 from
> experimental). The pairing is ok but when I try to connect to
> controller, it stays connected for less than one second, then
> disconnects, then connects again and so one until the controller goes
> to sleep, because of the lack of a remote connection.
>
> Any idea ?

It seems there is some problem configuring the L2CAP connection
(probably for SDP):

> ACL data: handle 256 flags 0x02 dlen 15
    L2CAP(s): Config rsp: scid 0x0040 flags 0x00 result 3 clen 1
      Failure - unknown options
      RFC
< ACL data: handle 256 flags 0x00 dlen 12
    L2CAP(s): Disconn req: dcid 0x0040 scid 0x0040


-- 
Luiz Augusto von Dentz

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Can't connect a Xbox one controller
  2016-08-18 13:56 ` Luiz Augusto von Dentz
@ 2016-08-18 14:52   ` Anthony Bourguignon
  2016-08-18 16:20     ` Luiz Augusto von Dentz
  0 siblings, 1 reply; 15+ messages in thread
From: Anthony Bourguignon @ 2016-08-18 14:52 UTC (permalink / raw)
  To: Luiz Augusto von Dentz; +Cc: linux-bluetooth

Le jeudi 18 août 2016 à 16:56 +0300, Luiz Augusto von Dentz a écrit :
> Hi Anthony,
> 
> On Thu, Aug 18, 2016 at 1:11 PM, Anthony Bourguignon <contact@toniob.
> net> wrote:
> > 
> > Hi,
> > 
> > I've recently bought a new xbox one controller as the 2016 version
> > has
> > bluetooth connectivity.
> > 
> > The controller is pairing and connecting well on a windows 10
> > computer
> > and an android 4.4 tablet. But I can"t make it connect under linux
> > (Debian unstable, kernel 4.6 and 4.7-rc7, bluez 5.40 from
> > experimental). The pairing is ok but when I try to connect to
> > controller, it stays connected for less than one second, then
> > disconnects, then connects again and so one until the controller
> > goes
> > to sleep, because of the lack of a remote connection.
> > 
> > Any idea ?
> 
> It seems there is some problem configuring the L2CAP connection
> (probably for SDP):
> 
> > 
> > ACL data: handle 256 flags 0x02 dlen 15
>     L2CAP(s): Config rsp: scid 0x0040 flags 0x00 result 3 clen 1
>       Failure - unknown options
>       RFC
> < ACL data: handle 256 flags 0x00 dlen 12
>     L2CAP(s): Disconn req: dcid 0x0040 scid 0x0040

So, is it a bug of bluez or of the controller firmware ? Why is it
possible to make a connection with an android tablet ?

Is there something more I can do to help ?

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Can't connect a Xbox one controller
  2016-08-18 14:52   ` Anthony Bourguignon
@ 2016-08-18 16:20     ` Luiz Augusto von Dentz
  2016-08-18 17:46       ` Anthony Bourguignon
  0 siblings, 1 reply; 15+ messages in thread
From: Luiz Augusto von Dentz @ 2016-08-18 16:20 UTC (permalink / raw)
  To: Anthony Bourguignon; +Cc: linux-bluetooth

Hi Anthony,

On Thu, Aug 18, 2016 at 5:52 PM, Anthony Bourguignon <contact@toniob.net> w=
rote:
> Le jeudi 18 ao=C3=BBt 2016 =C3=A0 16:56 +0300, Luiz Augusto von Dentz a =
=C3=A9crit :
>> Hi Anthony,
>>
>> On Thu, Aug 18, 2016 at 1:11 PM, Anthony Bourguignon <contact@toniob.
>> net> wrote:
>> >
>> > Hi,
>> >
>> > I've recently bought a new xbox one controller as the 2016 version
>> > has
>> > bluetooth connectivity.
>> >
>> > The controller is pairing and connecting well on a windows 10
>> > computer
>> > and an android 4.4 tablet. But I can"t make it connect under linux
>> > (Debian unstable, kernel 4.6 and 4.7-rc7, bluez 5.40 from
>> > experimental). The pairing is ok but when I try to connect to
>> > controller, it stays connected for less than one second, then
>> > disconnects, then connects again and so one until the controller
>> > goes
>> > to sleep, because of the lack of a remote connection.
>> >
>> > Any idea ?
>>
>> It seems there is some problem configuring the L2CAP connection
>> (probably for SDP):
>>
>> >
>> > ACL data: handle 256 flags 0x02 dlen 15
>>     L2CAP(s): Config rsp: scid 0x0040 flags 0x00 result 3 clen 1
>>       Failure - unknown options
>>       RFC
>> < ACL data: handle 256 flags 0x00 dlen 12
>>     L2CAP(s): Disconn req: dcid 0x0040 scid 0x0040
>
> So, is it a bug of bluez or of the controller firmware ? Why is it
> possible to make a connection with an android tablet ?
>
> Is there something more I can do to help ?

Well perhaps we can compare to what other stacks are responding, but
this seem quite weird given L2CAP_Config request is an essential part
of setting up L2CAP connections so a response with unknown options
sounds kind broken, but perhaps other stacks are ignoring it.

--=20
Luiz Augusto von Dentz

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Can't connect a Xbox one controller
  2016-08-18 16:20     ` Luiz Augusto von Dentz
@ 2016-08-18 17:46       ` Anthony Bourguignon
  2016-08-19  8:43         ` Luiz Augusto von Dentz
  0 siblings, 1 reply; 15+ messages in thread
From: Anthony Bourguignon @ 2016-08-18 17:46 UTC (permalink / raw)
  To: Luiz Augusto von Dentz; +Cc: linux-bluetooth

[-- Attachment #1: Type: text/plain, Size: 2159 bytes --]

Le jeudi 18 août 2016 à 19:20 +0300, Luiz Augusto von Dentz a écrit :
> Hi Anthony,
> 
> On Thu, Aug 18, 2016 at 5:52 PM, Anthony Bourguignon <contact@toniob.
> net> wrote:
> > 
> > Le jeudi 18 août 2016 à 16:56 +0300, Luiz Augusto von Dentz a écrit
> > :
> > > 
> > > Hi Anthony,
> > > 
> > > On Thu, Aug 18, 2016 at 1:11 PM, Anthony Bourguignon <contact@ton
> > > iob.
> > > net> wrote:
> > > > 
> > > > 
> > > > Hi,
> > > > 
> > > > I've recently bought a new xbox one controller as the 2016
> > > > version
> > > > has
> > > > bluetooth connectivity.
> > > > 
> > > > The controller is pairing and connecting well on a windows 10
> > > > computer
> > > > and an android 4.4 tablet. But I can"t make it connect under
> > > > linux
> > > > (Debian unstable, kernel 4.6 and 4.7-rc7, bluez 5.40 from
> > > > experimental). The pairing is ok but when I try to connect to
> > > > controller, it stays connected for less than one second, then
> > > > disconnects, then connects again and so one until the
> > > > controller
> > > > goes
> > > > to sleep, because of the lack of a remote connection.
> > > > 
> > > > Any idea ?
> > > 
> > > It seems there is some problem configuring the L2CAP connection
> > > (probably for SDP):
> > > 
> > > > 
> > > > 
> > > > ACL data: handle 256 flags 0x02 dlen 15
> > >     L2CAP(s): Config rsp: scid 0x0040 flags 0x00 result 3 clen 1
> > >       Failure - unknown options
> > >       RFC
> > > < ACL data: handle 256 flags 0x00 dlen 12
> > >     L2CAP(s): Disconn req: dcid 0x0040 scid 0x0040
> > 
> > So, is it a bug of bluez or of the controller firmware ? Why is it
> > possible to make a connection with an android tablet ?
> > 
> > Is there something more I can do to help ?
> 
> Well perhaps we can compare to what other stacks are responding, but
> this seem quite weird given L2CAP_Config request is an essential part
> of setting up L2CAP connections so a response with unknown options
> sounds kind broken, but perhaps other stacks are ignoring it.

I've juste made a capture with my android tablet. Maybe it'll help.
Association failed two times and succeded on the third one.

Thanks

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: btsnoop_hci2.log --]
[-- Type: text/x-log; name="btsnoop_hci2.log"; charset="UTF-8", Size: 12051 bytes --]

btsnoop\0\0\0\0\x01\0\0\x03ê\0\0\0\v\0\0\0\v\0\0\0\x02\0\0\0\0\0â\x18\x0f\x05\x1cu)\x01\v \a\x01\x12\0\x12\0\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x0f\x05\x1c}q\x04\x0e\x04\x01\v \0\0\0\0\x06\0\0\0\x06\0\0\0\x02\0\0\0\0\0â\x18\x0f\x05\x1c€‚\x01\f \x02\x01\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x0f\x05\x1c\x05\x04\x0e\x04\x01\f \0\0\0\0\x06\0\0\0\x06\0\0\0\x02\0\0\0\0\0â\x18\x0f\x05\x1c’O\x01\x05\f\x02\x01\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x0f\x05\x1c”Ø\x04\x0e\x04\x01\x05\f\0\0\0\0	\0\0\0	\0\0\0\x02\0\0\0\0\0â\x18\x0f\x05\x1c˜½\x01\x01\x04\x053‹ž
\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x0f\x05\x1cn\x04\x0f\x04\0\x01\x01\x04\0\0\x01\x02\0\0\x01\x02\0\0\0\x03\0\0\0\0\0â\x18\x0f\x05"\Ú\x04/ÿ\x01A+l.\x04ø\x01\x02<\x04\b¨\x12Ä	\x10\x01\0è\x04€€\0\0\x10	[TV] UE40JU6400	\x03
\x11\f\x11\x0e\x11\0\x12\x01\x05\x01\a\x03=\aL\x06ÿ\x0f\0\0\x01L\x02
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x03\0\0\0\0\0â\x18\x0f\x05KÐ\b\x04/ÿ\x01á‹ï2ÛÐ\x01\x02\x04\x02ZšP¬
	Nokia 302\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x02\0\0\0\0\0â\x18\x0f\x05µ\x12D\x01\f \x02\0\x01\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x0f\x05µ\x1ai\x04\x0e\x04\x01\f \0\0\0\0\v\0\0\0\v\0\0\0\x02\0\0\0\0\0â\x18\x0f\x05µ-3\x01\v \a\x01\x12\0\x12\0\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x0f\x05µ5Ö\x04\x0e\x04\x01\v \0\0\0\0\x04\0\0\0\x04\0\0\0\x03\0\0\0\0\0â\x18\x0f\x05à:í\x04\x01\x01\0\0\0\0\v\0\0\0\v\0\0\0\x02\0\0\0\0\0â\x18\x0f\x05þ¢æ\x01\v \a\x01\x12\0\x12\0\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x0f\x05þª%\x04\x0e\x04\x01\v \0\0\0\0\x06\0\0\0\x06\0\0\0\x02\0\0\0\0\0â\x18\x0f\x05þ¬^\x01\f \x02\x01\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x0f\x05þ¸¾\x04\x0e\x04\x01\f \0\0\0\0\x06\0\0\0\x06\0\0\0\x02\0\0\0\0\0â\x18\x0f\x05þº®\x01\x05\f\x02\x01\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x0f\x05þ¼®\x04\x0e\x04\x01\x05\f\0\0\0\0	\0\0\0	\0\0\0\x02\0\0\0\0\0â\x18\x0f\x05þ¾¾\x01\x01\x04\x053‹ž
\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x0f\x05þÀ…\x04\x0f\x04\0\x01\x01\x04\0\0\x01\x02\0\0\x01\x02\0\0\0\x03\0\0\0\0\0â\x18\x0f\x06\x02å\v\x04/ÿ\x01A+l.\x04ø\x01\x02<\x04\b©\x12œ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x03\0\0\0\0\0â\x18\x0f\x06\v\x7f%\x04/ÿ\x01âH\x0f&?È\x01\x02\b\x05\0'%®\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x03\0\0\0\0\0â\x18\x0f\x06\rNî\x04/ÿ\x01A+l.\x04ø\x01\x02<\x04\b¨\x12¼	\x10\x01\0è\x04€€\0\0\x10	[TV] UE40JU6400	\x03
\x11\f\x11\x0e\x11\0\x12\x01\x05\x01\a\x03=\aL\x06ÿ\x0f\0\0\x01L\x02
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x04\0\0\0\x04\0\0\0\x02\0\0\0\0\0â\x18\x0f\x06(ry\x01\x02\x04\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x0f\x06(t»\x04\x0e\x04\x01\x02\x04\0\0\0\0\x06\0\0\0\x06\0\0\0\x02\0\0\0\0\0â\x18\x0f\x06(wb\x01\f \x02\0\x01\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x0f\x06(¢È\x04\x0e\x04\x01\f \0\0\0\0\v\0\0\0\v\0\0\0\x02\0\0\0\0\0â\x18\x0f\x06(¦\x19\x01\v \a\x01\x12\0\x12\0\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x0f\x06(¨¨\x04\x0e\x04\x01\v \0\0\0\0\v\0\0\0\v\0\0\0\x02\0\0\0\0\0â\x18\x0f\x06(«‰\x01\x12\f\aâH\x0f&?È\0\0\0\0	\0\0\0	\0\0\0\x03\0\0\0\0\0â\x18\x0f\x06(¯^[\x04\x0e\x06\x01\x12\f\0\0\0\0\0\0\x0e\0\0\0\x0e\0\0\0\x02\0\0\0\0\0â\x18\x0f\x06(±¼\x01\x19\x04
âH\x0f&?È\x01\0'¥\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x0f\x06(´™\x04\x0f\x04\0\x01\x19\x04\0\0\x01\x02\0\0\x01\x02\0\0\0\x03\0\0\0\0\0â\x18\x0f\x06zgŒ\x04\aÿ\x04âH\x0f&?È\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\v\0\0\0\v\0\0\0\x02\0\0\0\0\0â\x18\x0f\x06zv\\x01\x12\f\aâH\x0f&?È\0\0\0\0	\0\0\0	\0\0\0\x03\0\0\0\0\0â\x18\x0f\x06z\x7fp\x04\x0e\x06\x01\x12\f\0\0\0\0\0\0\v\0\0\0\v\0\0\0\x02\0\0\0\0\0â\x18\x0f\x06÷÷@\x01\x12\f\aâH\x0f&?È\0\0\0\0	\0\0\0	\0\0\0\x03\0\0\0\0\0â\x18\x0f\x06ø\0Ú\x04\x0e\x06\x01\x12\f\0\0\0\0\0\0\x0e\0\0\0\x0e\0\0\0\x02\0\0\0\0\0â\x18\x0f\x06ø\x039\x01\x19\x04
âH\x0f&?È\x01\0'¥\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x0f\x06ø	l\x04\x0f\x04\0\x01\x19\x04\0\0\0\x11\0\0\0\x11\0\0\0\x03\0\0\0\0\0â\x18\x0f\a	˜^\x04=\x0eâH\x0f&?È\x01\0\0\0\0\0\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x03\0\0\0\0\0â\x18\x0f\a	ÞE\x04\aÿ\0âH\x0f&?ÈXbox Wireless Controller\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x11\0\0\0\x11\0\0\0\x02\0\0\0\0\0â\x18\x0f\a	éh\x01\x05\x04\râH\x0f&?È\x18Ì\x01\0'¥\x01\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x0f\a	ø>\x04\x0f\x04\0\x01\x05\x04\0\0\0\x0e\0\0\0\x0e\0\0\0\x03\0\0\0\0\0â\x18\x0f\a[yM\x04\x03\v\x04\f\0âH\x0f&?È\x01\0\0\0\0\v\0\0\0\v\0\0\0\x02\0\0\0\0\0â\x18\x0f\a[‰Ð\x01\x12\f\aâH\x0f&?È\0\0\0\0	\0\0\0	\0\0\0\x03\0\0\0\0\0â\x18\x0f\a[”.\x04\x0e\x06\x01\x12\f\0\0\0\0\0\0\v\0\0\0\v\0\0\0\x02\0\0\0\0\0â\x18\x0f\a /s\x01\x12\f\aâH\x0f&?È\0\0\0\0	\0\0\0	\0\0\0\x03\0\0\0\0\0â\x18\x0f\a 7\x04\x0e\x06\x01\x12\f\0\0\0\0\0\0\x0e\0\0\0\x0e\0\0\0\x02\0\0\0\0\0â\x18\x0f\a :j\x01\x19\x04
âH\x0f&?È\x01\0'¥\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x0f\a CI\x04\x0f\x04\0\x01\x19\x04\0\0\0\x11\0\0\0\x11\0\0\0\x03\0\0\0\0\0â\x18\x0f\a¥”=\x04=\x0eâH\x0f&?È\x01\0\0\0\0\0\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x03\0\0\0\0\0â\x18\x0f\a¥Ð\x18\x04\aÿ\0âH\x0f&?ÈXbox Wireless Controller\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x11\0\0\0\x11\0\0\0\x02\0\0\0\0\0â\x18\x0f\a¥Ô«\x01\x05\x04\râH\x0f&?È\x18Ì\x01\0'¥\x01\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x0f\a¥×Z\x04\x0f\x04\0\x01\x05\x04\0\0\0\x0e\0\0\0\x0e\0\0\0\x03\0\0\0\0\0â\x18\x0f\a¹>K\x04\x03\v\0\r\0âH\x0f&?È\x01\0\0\0\0\x06\0\0\0\x06\0\0\0\x02\0\0\0\0\0â\x18\x0f\a¹A\v\x01\x1d\x04\x02\r\0\0\0\0\x0f\0\0\0\x0f\0\0\0\0\0\0\0\0\0â\x18\x0f\a¹CÖ\x02\r 
\0\x06\0\x01\0
\x02\x02\0\x02\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x0f\a¹Eì\x04\x0f\x04\0\x01\x1d\x04\0\0\0\b\0\0\0\b\0\0\0\x02\0\0\0\0\0â\x18\x0f\a¹HÓ\x01\r\b\x04\r\0\a\0\0\0\0	\0\0\0	\0\0\0\x03\0\0\0\0\0â\x18\x0f\a¹K^[\x04\x0e\x06\x01\r\b\0\r\0\0\0\0\b\0\0\0\b\0\0\0\x02\0\0\0\0\0â\x18\x0f\a¹Mâ\x017\f\x04\r\0@\x1f\0\0\0	\0\0\0	\0\0\0\x03\0\0\0\0\0â\x18\x0f\a¹OÝ\x04\x0e\x06\x017\f\0\r\0\0\0\0\v\0\0\0\v\0\0\0\x03\0\0\0\0\0â\x18\x0f\a¹w±\x04\f\b\0\r\0\bF\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x02\0\0\0\0\0â\x18\x0f\a¹yÿ\x01^[\x04\x02\r\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x0f\a¹|n\x04\x0f\x04\0\x01^[\x04\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0â\x18\x0f\a¹†M\x04^[\x03\r\0\x05\0\0\0\x0e\0\0\0\x0e\0\0\0\x03\0\0\0\0\0â\x18\x0f\aº\x0f:\x04\v\v\0\r\0¿>þÛý{‡\0\0\0\a\0\0\0\a\0\0\0\x02\0\0\0\0\0â\x18\x0f\aº\x11‚\x01\x1c\x04\x03\r\0\x01\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x0f\aº\x13ó\x04\x0f\x04\0\x01\x1c\x04\0\0\0\x10\0\0\0\x10\0\0\0\x03\0\0\0\0\0â\x18\x0f\aº\x1f\r\x04#\r\0\r\0\x01\x03\x01\0\0\0\0\0\0\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f\aº!·\x04\x13\x05\x01\r\0\x01\0\0\0\0\x15\0\0\0\x15\0\0\0\x01\0\0\0\0\0â\x18\x0f\aº$+\x02\r \x10\0\f\0\x01\0\v\x02\b\0\x02\0\0\0\x10\0\0\0\0\0\0\v\0\0\0\v\0\0\0\x02\0\0\0\0\0â\x18\x0f	û\x05Š\x01\x12\f\aâH\x0f&?È\0\0\0\0	\0\0\0	\0\0\0\x03\0\0\0\0\0â\x18\x0f	û\a:\x04\x0e\x06\x01\x12\f\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x02\0\0\0\0\0â\x18\x0f	û	ù\x01\x11\x04\x02\r\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x0f	û\re\x04\x0f\x04\0\x01\x11\x04\0\0\0	\0\0\0	\0\0\0\x03\0\0\0\0\0â\x18\x0f	û\x10\x0f\x04\x17\x06âH\x0f&?È\0\0\0
\0\0\0
\0\0\0\x02\0\0\0\0\0â\x18\x0f	û\x133\x01\f\x04\x06âH\x0f&?È\0\0\0\r\0\0\0\r\0\0\0\x03\0\0\0\0\0â\x18\x0f	û\x15Ð\x04\x0e
\x01\f\x04\0âH\x0f&?È\0\0\0	\0\0\0	\0\0\0\x03\0\0\0\0\0â\x18\x0f	û\x18|\x041\x06âH\x0f&?È\0\0\0\r\0\0\0\r\0\0\0\x02\0\0\0\0\0â\x18\x0f	û^[\x1e\x01+\x04	âH\x0f&?È\x01\0\x03\0\0\0\r\0\0\0\r\0\0\0\x03\0\0\0\0\0â\x18\x0f	û\x1e‚\x04\x0e
\x01+\x04\0âH\x0f&?È\0\0\0\f\0\0\0\f\0\0\0\x03\0\0\0\0\0â\x18\x0f	û[Ù\x042	âH\x0f&?È\x03\0\x04\0\0\0\r\0\0\0\r\0\0\0\x03\0\0\0\0\0â\x18\x0f	ýí¡\x043
âH\x0f&?È%™\x05\0\0\0\0
\0\0\0
\0\0\0\x02\0\0\0\0\0â\x18\x0f	ýý¢\x01,\x04\x06âH\x0f&?È\0\0\0\r\0\0\0\r\0\0\0\x03\0\0\0\0\0â\x18\x0f	ýÿÃ\x04\x0e
\x01,\x04\0âH\x0f&?È\0\0\0
\0\0\0
\0\0\0\x03\0\0\0\0\0â\x18\x0f	þûî\x046\a\0âH\x0f&?È\0\0\0\x1a\0\0\0\x1a\0\0\0\x03\0\0\0\0\0â\x18\x0f	ÿ'g\x04\x18\x17âH\x0f&?È\x0f\x10V\x16\x16\x112©\x0fu;L,'Äï\x04\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0â\x18\x0f	ÿ++\x04\x06\x03\0\r\0\0\0\0\x0e\0\0\0\x0e\0\0\0\x02\0\0\0\0\0â\x18\x0f	ÿ2Ö\x01\x19\x04
âH\x0f&?È\x01\0'¥\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x0f	ÿ5y\x04\x0f\x04\0\x01\x19\x04\0\0\x01\x02\0\0\x01\x02\0\0\0\x03\0\0\0\0\0â\x18\x0f	ÿS–\x04\aÿ\0âH\x0f&?ÈXbox Wireless Controller\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x11\0\0\0\x11\0\0\0\0\0\0\0\0\0â\x18\x0f	ÿX{\x02\r \f\0\b\0\x01\0\x02\x03\x04\0\x01\0G\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f	ÿd\x18\x04\x13\x05\x01\r\0\x01\0\0\0\0\x15\0\0\0\x15\0\0\0\x01\0\0\0\0\0â\x18\x0f	ÿg\x05\x02\r \x10\0\f\0\x01\0\x03\x03\b\0@\0G\0\0\0\0\0\0\0\0\x15\0\0\0\x15\0\0\0\0\0\0\0\0\0â\x18\x0f	ÿiú\x02\r \x10\0\f\0\x01\0\x04\x04\b\0@\0\0\0\x01\x02\0\x01\0\0\0\x15\0\0\0\x15\0\0\0\x01\0\0\0\0\0â\x18\x0f	ÿlk\x02\r \x10\0\f\0\x01\0\x04\x01\b\0G\0\0\0\x01\x02È\x05\0\0\0\x13\0\0\0\x13\0\0\0\0\0\0\0\0\0â\x18\x0f	ÿo\x17\x02\r \x0e\0
\0\x01\0\x05\x01\x06\0@\0\0\0\0\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f	ÿrh\x04\x13\x05\x01\r\0\x01\0\0\0\0\x13\0\0\0\x13\0\0\0\x01\0\0\0\0\0â\x18\x0f	ÿuM\x02\r \x0e\0
\0\x01\0\x05\x04\x06\0G\0\0\0\0\0\0\0\0\x1d\0\0\0\x1d\0\0\0\0\0\0\0\0\0â\x18\x0f	ÿxƒ\x02\r \x18\0\x14\0@\0\x06\0\0\0\x0f5\x03\x19\x12\0\0ð5\x05
\0\0ÿÿ\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f	ÿ|Ž\x04\x13\x05\x01\r\0\x01\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f	ÿb\x04\x13\x05\x01\r\0\x01\0\0\0\0‰\0\0\0‰\0\0\0\x01\0\0\0\0\0â\x18\x0f	ÿ~\x02\r „\0€\0G\0\a\0\0\0{\0w5„5‚	\0\0
\0\x01\0\0	\0\x015\x03\x19\x12\0	\0\x02
\0\0\x03\x04	\0\x045\r5\x06\x19\x01\0	\0\x015\x03\x19\0\x01	\0\x055\x03\x19\x10\x02	\0\x065		en	\0j	\x01\0	\0	5\b5\x06\x19\x12\0	\x01\0	\x01\0%\x01\0	\x01\x01%\x01\0	\x01\x02%\x01\0	\x02\0	\x01\x03	\x02\x01	\x04^	\x02\x02	\x02à	\x02\x01\x01\0\0\0\x1e\0\0\0\x1e\0\0\0\0\0\0\0\0\0â\x18\x0f	ÿ(\x02\r \x19\0\x15\0@\0\x06\0\x01\0\x105\x03\x19\x12\0\0ð5\x05
\0\0ÿÿ\x01\x01\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f	ÿšõ\x04\x13\x05\x01\r\0\x01\0\0\0\0 \0\0\0 \0\0\0\x01\0\0\0\0\0â\x18\x0f	ÿÅ\x02\r ^[\0\x17\0G\0\a\0\x01\0\x12\0\x0f\x03		\x03	\x02\x04(\x01	\x02\x05	\0\x02\0\0\0\0\x11\0\0\0\x11\0\0\0\0\0\0\0\0\0â\x18\x0f	ÿ¡V\x02\r \f\0\b\0\x01\0\x06\x05\x04\0@\0G\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f	ÿ­\x18\x04\x13\x05\x01\r\0\x01\0\0\0\0\x11\0\0\0\x11\0\0\0\x01\0\0\0\0\0â\x18\x0f	ÿ¯ù\x02\r \f\0\b\0\x01\0\a\x05\x04\0@\0G\0\0\0\0\x11\0\0\0\x11\0\0\0\0\0\0\0\0\0â\x18\x0f	ÿ²á\x02\r \f\0\b\0\x01\0\x02\x06\x04\0\x01\0H\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f	ÿ»·\x04\x13\x05\x01\r\0\x01\0\0\0\0\x15\0\0\0\x15\0\0\0\x01\0\0\0\0\0â\x18\x0f	ÿ¾Ë\x02\r \x10\0\f\0\x01\0\x03\x06\b\0@\0H\0\0\0\0\0\0\0\0\x15\0\0\0\x15\0\0\0\0\0\0\0\0\0â\x18\x0f	ÿÁ¥\x02\r \x10\0\f\0\x01\0\x04\a\b\0@\0\0\0\x01\x02\0\x01\0\0\0\x15\0\0\0\x15\0\0\0\x01\0\0\0\0\0â\x18\x0f	ÿÄ\x05\x02\r \x10\0\f\0\x01\0\x04\x02\b\0H\0\0\0\x01\x02È\x05\0\0\0\x13\0\0\0\x13\0\0\0\0\0\0\0\0\0â\x18\x0f	ÿÆ×\x02\r \x0e\0
\0\x01\0\x05\x02\x06\0@\0\0\0\0\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f	ÿÊ=\x04\x13\x05\x01\r\0\x01\0\0\0\0\x13\0\0\0\x13\0\0\0\x01\0\0\0\0\0â\x18\x0f	ÿÌü\x02\r \x0e\0
\0\x01\0\x05\a\x06\0H\0\0\0\0\0\0\0\0\x1d\0\0\0\x1d\0\0\0\0\0\0\0\0\0â\x18\x0f	ÿϐ\x02\r \x18\0\x14\0@\0\x06\0\0\0\x0f5\x03\x19\x01\0\0ð5\x05
\0\0ÿÿ\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f	ÿÔ\x05\x04\x13\x05\x01\r\0\x01\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f	ÿØÞ\x04\x13\x05\x01\r\0\x01\0\0\0\0‰\0\0\0‰\0\0\0\x01\0\0\0\0\0â\x18\x0f	ÿàF\x02\r „\0€\0H\0\a\0\0\0{\0w6\x02¾5‚	\0\0
\0\x01\0\0	\0\x015\x03\x19\x12\0	\0\x02
\0\0\x03\x04	\0\x045\r5\x06\x19\x01\0	\0\x015\x03\x19\0\x01	\0\x055\x03\x19\x10\x02	\0\x065		en	\0j	\x01\0	\0	5\b5\x06\x19\x12\0	\x01\0	\x01\0%\x01\0	\x01\x01%\x01\0	\x01\x02%\x01\0	\x02\0	\x01\x03	\x02\x01	\x04^	\x02\x02	\x02à	\x01\x02\0\0\0\x1e\0\0\0\x1e\0\0\0\0\0\0\0\0\0â\x18\x0f	ÿâÍ\x02\r \x19\0\x15\0@\0\x06\0\x01\0\x105\x03\x19\x01\0\0ð5\x05
\0\0ÿÿ\x01\x02\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f	ÿì†\x04\x13\x05\x01\r\0\x01\0\0\0\0‰\0\0\0‰\0\0\0\x01\0\0\0\0\0â\x18\x0f	ÿóÕ\x02\r „\0€\0H\0\a\0\x01\0{\0w\x02\x03		\x03	\x02\x04(\x01	\x02\x05	\0\x026\x027	\0\0
\0\x01\0\x01	\0\x015\x03\x19\x11$	\0\x02
\0\0\x03\x12	\0\x045\r5\x06\x19\x01\0	\0\x115\x03\x19\0\x11	\0\x055\x03\x19\x10\x02	\0\x065		en	\0j	\x01\0	\0	5\b5\x06\x19\x11$	\x01\0	\0\r5\x0f5\r5\x06\x19\x01\0	\0\x135\x03\x19\0\x11	\x01\0\x01\x03\0\0\0\x1e\0\0\0\x1e\0\0\0\0\0\0\0\0\0â\x18\x0f	ÿö`\x02\r \x19\0\x15\0@\0\x06\0\x02\0\x105\x03\x19\x01\0\0ð5\x05
\0\0ÿÿ\x01\x03\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f
\0\0\f\x04\x13\x05\x01\r\0\x01\0\0\0\0‰\0\0\0‰\0\0\0\x01\0\0\0\0\0â\x18\x0f
\0\aq\x02\r „\0€\0H\0\a\0\x02\0{\0w%\x17Xbox Bluetooth Gamepad\0	\x01\x01%\bGamepad\0	\x01\x02%\x16Microsoft Corporation\0	\x02\0	\x01\0	\x02\x01	\x01\x11	\x02\x02\b@	\x02\x03\b!	\x02\x04(\x01	\x02\x05(\x01	\x02\x066\x01:6\x017\b"&\x012\x05\x01	\x05¡\x01…\x01\x01\x04\0\0\0\x1e\0\0\0\x1e\0\0\0\0\0\0\0\0\0â\x18\x0f
\0
\f\x02\r \x19\0\x15\0@\0\x06\0\x03\0\x105\x03\x19\x01\0\0ð5\x05
\0\0ÿÿ\x01\x04\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f
\0E5\x04\x13\x05\x01\r\0\x01\0\0\0\0‰\0\0\0‰\0\0\0\x01\0\0\0\0\0â\x18\x0f
\x01J6\x02\r „\0€\0H\0\a\0\x03\0{\0w	\x01¡\0	0	1\x15\0'ÿÿ\0\0•\x02u\x10\x02À	\x01¡\0	3	4\x15\0'ÿÿ\0\0•\x02u\x10\x02À\x05\x01	2\x15\0&ÿ\x03•\x01u
\x02\x15\0%\0u\x06•\x01\x03\x05\x01	5\x15\0&ÿ\x03•\x01u
\x02\x15\0%\0u\x06•\x01\x03\x05\x01	9\x15\x01%\b5\0F;\x01f\x14\0u\x04•\x01Bu\x04•\x01\x05\0\0\0\x1e\0\0\0\x1e\0\0\0\0\0\0\0\0\0â\x18\x0f
\x01LÖ\x02\r \x19\0\x15\0@\0\x06\0\x04\0\x105\x03\x19\x01\0\0ð5\x05
\0\0ÿÿ\x01\x05\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f
\x01UÖ\x04\x13\x05\x01\r\0\x01\0\0\0\0‰\0\0\0‰\0\0\0\x01\0\0\0\0\0â\x18\x0f
\x01\þ\x02\r „\0€\0H\0\a\0\x04\0{\0w\x01\x15\0%\05\0E\0e\0\x03\x05	\x19\x01)
\x15\0%\x01u\x01•
\x02\x15\0%\0u\x06•\x01\x03\x05\x01	€…\x02¡\0	…\x15\0%\x01•\x01u\x01\x02\x15\0%\0u\a•\x01\x03À\x05\x0f	!…\x03¡\x02	—\x15\0%\x01u\x04•\x01‘\x02\x15\0%\0u\x04•\x01‘\x03	p\x15\0%du\b•\x04‘\x02	Pf\x01\x10U\x0e\x01\x06\0\0\0\x1e\0\0\0\x1e\0\0\0\0\0\0\0\0\0â\x18\x0f
\x01_Š\x02\r \x19\0\x15\0@\0\x06\0\x05\0\x105\x03\x19\x01\0\0ð5\x05
\0\0ÿÿ\x01\x06\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f
\x01i<\x04\x13\x05\x01\r\0\x01\0\0\0\0\x7f\0\0\0\x7f\0\0\0\x01\0\0\0\0\0â\x18\x0f
\x01p\x02\r z\0v\0H\0\a\0\x05\0q\0n\x15\0&ÿ\0u\b•\x01‘\x02	§\x15\0&ÿ\0u\b•\x01‘\x02e\0U\0	|\x15\0&ÿ\0u\b•\x01‘\x02À…\x04\x05\x06	 \x15\0&ÿ\0u\b•\x01\x02À	\x02\a5\b5\x06	\x04		\x01\0	\x02\b(\0	\x02	(\x01	\x02
(\0	\x02\v	\x01\0	\x02\f	\f€	\x02\r(\x01	\x02\x0e(\0\0\0\0\0\x11\0\0\0\x11\0\0\0\0\0\0\0\0\0â\x18\x0f
\x01sP\x02\r \f\0\b\0\x01\0\x06\b\x04\0@\0H\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f
\x01|­\x04\x13\x05\x01\r\0\x01\0\0\0\0\x11\0\0\0\x11\0\0\0\x01\0\0\0\0\0â\x18\x0f
\x01\x7f?\x02\r \f\0\b\0\x01\0\a\b\x04\0@\0H\0\0\0\0\x11\0\0\0\x11\0\0\0\0\0\0\0\0\0â\x18\x0f
\x02\x10/\x02\r \f\0\b\0\x01\0\x02	\x04\0\x01\0I\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f
\x02gë\x04\x13\x05\x01\r\0\x01\0\0\0\0\x15\0\0\0\x15\0\0\0\x01\0\0\0\0\0â\x18\x0f
\x02jÖ\x02\r \x10\0\f\0\x01\0\x03	\b\0@\0I\0\0\0\0\0\0\0\0\x15\0\0\0\x15\0\0\0\0\0\0\0\0\0â\x18\x0f
\x02mO\x02\r \x10\0\f\0\x01\0\x04
\b\0@\0\0\0\x01\x02\0\x01\0\0\0\x15\0\0\0\x15\0\0\0\x01\0\0\0\0\0â\x18\x0f
\x02xÒ\x02\r \x10\0\f\0\x01\0\x04\x03\b\0I\0\0\0\x01\x02È\x05\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f
\x02{å\x04\x13\x05\x01\r\0\x01\0\0\0\0\x13\0\0\0\x13\0\0\0\x01\0\0\0\0\0â\x18\x0f
\x02~a\x02\r \x0e\0
\0\x01\0\x05
\x06\0I\0\0\0\0\0\0\0\0\x13\0\0\0\x13\0\0\0\0\0\0\0\0\0â\x18\x0f
\x02ۉ\x02\r \x0e\0
\0\x01\0\x05\x03\x06\0@\0\0\0\0\0\0\0\0\x16\0\0\0\x16\0\0\0\0\0\0\0\0\0â\x18\x0f
\x02ƒ\x1a\x02\r \x11\0\r\0@\0\x02\0\0\0\b5\x03\x19\x12\0\0\x15\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f
\x02Ž—\x04\x13\x05\x01\r\0\x01\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f
\x02•ž\x04\x13\x05\x01\r\0\x01\0\0\0\0\x17\0\0\0\x17\0\0\0\x01\0\0\0\0\0â\x18\x0f
\x03ûW\x02\r \x12\0\x0e\0I\0\x03\0\0\0	\0\x01\0\x01\0\x01\0\0\0\0\0\0\x1c\0\0\0\x1c\0\0\0\0\0\0\0\0\0â\x18\x0f
\x03ýÄ\x02\r \x17\0\x13\0@\0\x04\0\x01\0\x0e\0\x01\0\0\0ð5\x05
\0\0ÿÿ\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f
\x04\vI\x04\x13\x05\x01\r\0\x01\0\0\0\0‰\0\0\0‰\0\0\0\x01\0\0\0\0\0â\x18\x0f
\x04\x12¶\x02\r „\0€\0I\0\x05\0\x01\0{\0w5‚	\0\0
\0\x01\0\0	\0\x015\x03\x19\x12\0	\0\x02
\0\0\x03\x04	\0\x045\r5\x06\x19\x01\0	\0\x015\x03\x19\0\x01	\0\x055\x03\x19\x10\x02	\0\x065		en	\0j	\x01\0	\0	5\b5\x06\x19\x12\0	\x01\0	\x01\0%\x01\0	\x01\x01%\x01\0	\x01\x02%\x01\0	\x02\0	\x01\x03	\x02\x01	\x04^	\x02\x02	\x02à	\x02\x03	\x01\a\0\0\0\x1d\0\0\0\x1d\0\0\0\0\0\0\0\0\0â\x18\x0f
\x04\x15\x1d\x02\r \x18\0\x14\0@\0\x04\0\x02\0\x0f\0\x01\0\0\0ð5\x05
\0\0ÿÿ\x01\a\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f
\x04\x1e‹\x04\x13\x05\x01\r\0\x01\0\0\0\0\x1e\0\0\0\x1e\0\0\0\x01\0\0\0\0\0â\x18\x0f
\x04ôO\x02\r \x19\0\x15\0I\0\x05\0\x02\0\x10\0\r	\x03	\x02\x04(\x01	\x02\x05	\0\x02\0\0\0\0\x11\0\0\0\x11\0\0\0\0\0\0\0\0\0â\x18\x0f
\x04÷m\x02\r \f\0\b\0\x01\0\x06\v\x04\0@\0I\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f
\x05\x04\v\x04\x13\x05\x01\r\0\x01\0\0\0\0\x11\0\0\0\x11\0\0\0\x01\0\0\0\0\0â\x18\x0f
\x05\x06U\x02\r \f\0\b\0\x01\0\a\v\x04\0@\0I\0\0\0\0\x11\0\0\0\x11\0\0\0\0\0\0\0\0\0â\x18\x0f
\x05\b‚\x02\r \f\0\b\0\x01\0\x02\f\x04\0\x01\0J\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f
\x05\x12`\x04\x13\x05\x01\r\0\x01\0\0\0\0\x15\0\0\0\x15\0\0\0\x01\0\0\0\0\0â\x18\x0f
\x05\x14¾\x02\r \x10\0\f\0\x01\0\x03\f\b\0@\0J\0\0\0\0\0\0\0\0\x15\0\0\0\x15\0\0\0\0\0\0\0\0\0â\x18\x0f
\x05\x16À\x02\r \x10\0\f\0\x01\0\x04\r\b\0@\0\0\0\x01\x02\0\x01\0\0\0\x15\0\0\0\x15\0\0\0\x01\0\0\0\0\0â\x18\x0f
\x05\x19Ñ\x02\r \x10\0\f\0\x01\0\x04\x04\b\0J\0\0\0\x01\x02È\x05\0\0\0\x13\0\0\0\x13\0\0\0\0\0\0\0\0\0â\x18\x0f
\x05^[È\x02\r \x0e\0
\0\x01\0\x05\x04\x06\0@\0\0\0\0\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f
\x05!	\x04\x13\x05\x01\r\0\x01\0\0\0\0\x13\0\0\0\x13\0\0\0\x01\0\0\0\0\0â\x18\x0f
\x05#r\x02\r \x0e\0
\0\x01\0\x05\r\x06\0J\0\0\0\0\0\0\0\0\x16\0\0\0\x16\0\0\0\0\0\0\0\0\0â\x18\x0f
\x05%ž\x02\r \x11\0\r\0@\0\x02\0\0\0\b5\x03\x19\x11$\0\x15\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f
\x05'P\x04\x13\x05\x01\r\0\x01\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f
\x05/ð\x04\x13\x05\x01\r\0\x01\0\0\0\0\x17\0\0\0\x17\0\0\0\x01\0\0\0\0\0â\x18\x0f
\x052c\x02\r \x12\0\x0e\0J\0\x03\0\0\0	\0\x01\0\x01\0\x01\0\x01\0\0\0\0\x1c\0\0\0\x1c\0\0\0\0\0\0\0\0\0â\x18\x0f
\x054‡\x02\r \x17\0\x13\0@\0\x04\0\x01\0\x0e\0\x01\0\x01\0ð5\x05
\0\0ÿÿ\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f
\x05>p\x04\x13\x05\x01\r\0\x01\0\0\0\0‰\0\0\0‰\0\0\0\x01\0\0\0\0\0â\x18\x0f
\x05E²\x02\r „\0€\0J\0\x05\0\x01\0{\0w6\x027	\0\0
\0\x01\0\x01	\0\x015\x03\x19\x11$	\0\x02
\0\0\x03\x12	\0\x045\r5\x06\x19\x01\0	\0\x115\x03\x19\0\x11	\0\x055\x03\x19\x10\x02	\0\x065		en	\0j	\x01\0	\0	5\b5\x06\x19\x11$	\x01\0	\0\r5\x0f5\r5\x06\x19\x01\0	\0\x135\x03\x19\0\x11	\x01\0%\x17Xbox Bluetooth\x01\b\0\0\0\x1d\0\0\0\x1d\0\0\0\0\0\0\0\0\0â\x18\x0f
\x05Gª\x02\r \x18\0\x14\0@\0\x04\0\x02\0\x0f\0\x01\0\x01\0ð5\x05
\0\0ÿÿ\x01\b\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f
\x05QÌ\x04\x13\x05\x01\r\0\x01\0\0\0\0‰\0\0\0‰\0\0\0\x01\0\0\0\0\0â\x18\x0f
\x05Y\x02\r „\0€\0J\0\x05\0\x02\0{\0w Gamepad\0	\x01\x01%\bGamepad\0	\x01\x02%\x16Microsoft Corporation\0	\x02\0	\x01\0	\x02\x01	\x01\x11	\x02\x02\b@	\x02\x03\b!	\x02\x04(\x01	\x02\x05(\x01	\x02\x066\x01:6\x017\b"&\x012\x05\x01	\x05¡\x01…\x01	\x01¡\0	0	1\x15\0'ÿÿ\0\0•\x01	\0\0\0\x1d\0\0\0\x1d\0\0\0\0\0\0\0\0\0â\x18\x0f
\x05[“\x02\r \x18\0\x14\0@\0\x04\0\x03\0\x0f\0\x01\0\x01\0ð5\x05
\0\0ÿÿ\x01	\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f
\x05Ûj\x04\x13\x05\x01\r\0\x01\0\0\0\0‰\0\0\0‰\0\0\0\x01\0\0\0\0\0â\x18\x0f
\x05âh\x02\r „\0€\0J\0\x05\0\x03\0{\0w\x02u\x10\x02À	\x01¡\0	3	4\x15\0'ÿÿ\0\0•\x02u\x10\x02À\x05\x01	2\x15\0&ÿ\x03•\x01u
\x02\x15\0%\0u\x06•\x01\x03\x05\x01	5\x15\0&ÿ\x03•\x01u
\x02\x15\0%\0u\x06•\x01\x03\x05\x01	9\x15\x01%\b5\0F;\x01f\x14\0u\x04•\x01Bu\x04•\x01\x15\0%\05\0E\0e\0\x03\x05	\x19\x01
\0\0\0\x1d\0\0\0\x1d\0\0\0\0\0\0\0\0\0â\x18\x0f
\x05å\x10\x02\r \x18\0\x14\0@\0\x04\0\x04\0\x0f\0\x01\0\x01\0ð5\x05
\0\0ÿÿ\x01
\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f
\x05ît\x04\x13\x05\x01\r\0\x01\0\0\0\0‰\0\0\0‰\0\0\0\x01\0\0\0\0\0â\x18\x0f
\x05õà\x02\r „\0€\0J\0\x05\0\x04\0{\0w\x01)
\x15\0%\x01u\x01•
\x02\x15\0%\0u\x06•\x01\x03\x05\x01	€…\x02¡\0	…\x15\0%\x01•\x01u\x01\x02\x15\0%\0u\a•\x01\x03À\x05\x0f	!…\x03¡\x02	—\x15\0%\x01u\x04•\x01‘\x02\x15\0%\0u\x04•\x01‘\x03	p\x15\0%du\b•\x04‘\x02	Pf\x01\x10U\x0e\x15\0&ÿ\0u\b•\x01‘\x02	§\x15\0&\x01\v\0\0\0\x1d\0\0\0\x1d\0\0\0\0\0\0\0\0\0â\x18\x0f
\x05ø\x7f\x02\r \x18\0\x14\0@\0\x04\0\x05\0\x0f\0\x01\0\x01\0ð5\x05
\0\0ÿÿ\x01\v\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f
\x06\x01ú\x04\x13\x05\x01\r\0\x01\0\0\0\0o\0\0\0o\0\0\0\x01\0\0\0\0\0â\x18\x0f
\x06	V\x02\r j\0f\0J\0\x05\0\x05\0a\0^ÿ\0u\b•\x01‘\x02e\0U\0	|\x15\0&ÿ\0u\b•\x01‘\x02À…\x04\x05\x06	 \x15\0&ÿ\0u\b•\x01\x02À	\x02\a5\b5\x06	\x04		\x01\0	\x02\b(\0	\x02	(\x01	\x02
(\0	\x02\v	\x01\0	\x02\f	\f€	\x02\r(\x01	\x02\x0e(\0\0\0\0\0\x11\0\0\0\x11\0\0\0\0\0\0\0\0\0â\x18\x0f
\x06\f\v\x02\r \f\0\b\0\x01\0\x06\x0e\x04\0@\0J\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f
\x06\x15|\x04\x13\x05\x01\r\0\x01\0\0\0\0\x11\0\0\0\x11\0\0\0\x01\0\0\0\0\0â\x18\x0f
\x06\x18^\x02\r \f\0\b\0\x01\0\a\x0e\x04\0@\0J\0\0\0\0\a\0\0\0\a\0\0\0\x02\0\0\0\0\0â\x18\x0f
\x06^[,\x01\x13\x04\x03\r\0\x01\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x0f
\x06\x1d¢\x04\x0f\x04\0\x01\x13\x04\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x0f
\x06pž\x04\b\x04\0\r\0\x01\0\0\0\x11\0\0\0\x11\0\0\0\0\0\0\0\0\0â\x18\x0f
\x06sa\x02\r \f\0\b\0\x01\0\x02\x0f\x04\0\x11\0K\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f
\x06|>\x04\x13\x05\x01\r\0\x01\0\0\0\0\x15\0\0\0\x15\0\0\0\x01\0\0\0\0\0â\x18\x0f
\x06ƒ~\x02\r \x10\0\f\0\x01\0\x03\x0f\b\0@\0K\0\x01\0\0\0\0\0\0\x15\0\0\0\x15\0\0\0\x01\0\0\0\0\0â\x18\x0f
\x06ˆX\x02\r \x10\0\f\0\x01\0\x03\x0f\b\0@\0K\0\0\0\0\0\0\0\0\x15\0\0\0\x15\0\0\0\0\0\0\0\0\0â\x18\x0f
\x06Šú\x02\r \x10\0\f\0\x01\0\x04\x10\b\0@\0\0\0\x01\x02€\x02\0\0\0\x15\0\0\0\x15\0\0\0\x01\0\0\0\0\0â\x18\x0f
\x06“\x02\r \x10\0\f\0\x01\0\x04\x05\b\0K\0\0\0\x01\x02È\x05\0\0\0\x13\0\0\0\x13\0\0\0\0\0\0\0\0\0â\x18\x0f
\x06@\x02\r \x0e\0
\0\x01\0\x05\x05\x06\0@\0\0\0\0\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f
\x06”|\x04\x13\x05\x01\r\0\x01\0\0\0\0\x13\0\0\0\x13\0\0\0\x01\0\0\0\0\0â\x18\x0f
\x06—I\x02\r \x0e\0
\0\x01\0\x05\x10\x06\0K\0\0\0\0\0\0\0\0\x11\0\0\0\x11\0\0\0\0\0\0\0\0\0â\x18\x0f
\x06š!\x02\r \f\0\b\0\x01\0\x02\x11\x04\0\x13\0L\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f
\x06œ|\x04\x13\x05\x01\r\0\x01\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f
\x06£\x1a\x04\x13\x05\x01\r\0\x01\0\0\0\0\x15\0\0\0\x15\0\0\0\x01\0\0\0\0\0â\x18\x0f
\x06¦9\x02\r \x10\0\f\0\x01\0\x03\x11\b\0A\0L\0\x01\0\0\0\0\0\0\x15\0\0\0\x15\0\0\0\x01\0\0\0\0\0â\x18\x0f
\x06ª\x02\r \x10\0\f\0\x01\0\x03\x11\b\0A\0L\0\0\0\0\0\0\0\0\x15\0\0\0\x15\0\0\0\0\0\0\0\0\0â\x18\x0f
\x06­\x16\x02\r \x10\0\f\0\x01\0\x04\x12\b\0A\0\0\0\x01\x02€\x02\0\0\0\x15\0\0\0\x15\0\0\0\x01\0\0\0\0\0â\x18\x0f
\x06¯¶\x02\r \x10\0\f\0\x01\0\x04\x06\b\0L\0\0\0\x01\x02È\x05\0\0\0\x13\0\0\0\x13\0\0\0\0\0\0\0\0\0â\x18\x0f
\x06²L\x02\r \x0e\0
\0\x01\0\x05\x06\x06\0A\0\0\0\0\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f
\x06¶¶\x04\x13\x05\x01\r\0\x01\0\0\0\0\x13\0\0\0\x13\0\0\0\x01\0\0\0\0\0â\x18\x0f
\x06¹x\x02\r \x0e\0
\0\x01\0\x05\x12\x06\0L\0\0\0\0\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x0f
\x06½D\x04\x13\x05\x01\r\0\x01\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0â\x18\x0f
\a•è\x04^[\x03\r\0\x01\0\0\0\x1a\0\0\0\x1a\0\0\0\x01\0\0\0\0\0â\x18\x0f
\aŸ!\x02\r \x15\0\x11\0L\0¡\x01æ…þ}ð€Ú\0\0\0\0\0\0\0

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Can't connect a Xbox one controller
  2016-08-18 17:46       ` Anthony Bourguignon
@ 2016-08-19  8:43         ` Luiz Augusto von Dentz
  2016-08-19  9:28           ` Anthony Bourguignon
  0 siblings, 1 reply; 15+ messages in thread
From: Luiz Augusto von Dentz @ 2016-08-19  8:43 UTC (permalink / raw)
  To: Anthony Bourguignon; +Cc: linux-bluetooth

Hi Anthony,

On Thu, Aug 18, 2016 at 8:46 PM, Anthony Bourguignon <contact@toniob.net> w=
rote:
> Le jeudi 18 ao=C3=BBt 2016 =C3=A0 19:20 +0300, Luiz Augusto von Dentz a =
=C3=A9crit :
>> Hi Anthony,
>>
>> On Thu, Aug 18, 2016 at 5:52 PM, Anthony Bourguignon <contact@toniob.
>> net> wrote:
>> >
>> > Le jeudi 18 ao=C3=BBt 2016 =C3=A0 16:56 +0300, Luiz Augusto von Dentz =
a =C3=A9crit
>> > :
>> > >
>> > > Hi Anthony,
>> > >
>> > > On Thu, Aug 18, 2016 at 1:11 PM, Anthony Bourguignon <contact@ton
>> > > iob.
>> > > net> wrote:
>> > > >
>> > > >
>> > > > Hi,
>> > > >
>> > > > I've recently bought a new xbox one controller as the 2016
>> > > > version
>> > > > has
>> > > > bluetooth connectivity.
>> > > >
>> > > > The controller is pairing and connecting well on a windows 10
>> > > > computer
>> > > > and an android 4.4 tablet. But I can"t make it connect under
>> > > > linux
>> > > > (Debian unstable, kernel 4.6 and 4.7-rc7, bluez 5.40 from
>> > > > experimental). The pairing is ok but when I try to connect to
>> > > > controller, it stays connected for less than one second, then
>> > > > disconnects, then connects again and so one until the
>> > > > controller
>> > > > goes
>> > > > to sleep, because of the lack of a remote connection.
>> > > >
>> > > > Any idea ?
>> > >
>> > > It seems there is some problem configuring the L2CAP connection
>> > > (probably for SDP):
>> > >
>> > > >
>> > > >
>> > > > ACL data: handle 256 flags 0x02 dlen 15
>> > >     L2CAP(s): Config rsp: scid 0x0040 flags 0x00 result 3 clen 1
>> > >       Failure - unknown options
>> > >       RFC
>> > > < ACL data: handle 256 flags 0x00 dlen 12
>> > >     L2CAP(s): Disconn req: dcid 0x0040 scid 0x0040
>> >
>> > So, is it a bug of bluez or of the controller firmware ? Why is it
>> > possible to make a connection with an android tablet ?
>> >
>> > Is there something more I can do to help ?
>>
>> Well perhaps we can compare to what other stacks are responding, but
>> this seem quite weird given L2CAP_Config request is an essential part
>> of setting up L2CAP connections so a response with unknown options
>> sounds kind broken, but perhaps other stacks are ignoring it.
>
> I've juste made a capture with my android tablet. Maybe it'll help.
> Association failed two times and succeded on the third one.

It seems the configuration request works just fine here:

< ACL Data TX: Handle 13 flags 0x02 dlen 12

                                                           83.379233
      L2CAP: Connection Request (0x02) ident 15 len 4
        PSM: 17 (0x0011)
        Source CID: 75
> HCI Event: Number of Completed Packets (0x13) plen 5                     =
                                                                           =
                                                   83.381502
        Num handles: 1
        Handle: 13
        Count: 1
> ACL Data RX: Handle 13 flags 0x02 dlen 16                                =
                                                                           =
                                                   83.383358
      L2CAP: Connection Response (0x03) ident 15 len 8
        Destination CID: 64
        Source CID: 75
        Result: Connection pending (0x0001)
        Status: No further information available (0x0000)
> ACL Data RX: Handle 13 flags 0x02 dlen 16                                =
                                                                           =
                                                   83.384600
      L2CAP: Connection Response (0x03) ident 15 len 8
        Destination CID: 64
        Source CID: 75
        Result: Connection successful (0x0000)
        Status: No further information available (0x0000)
< ACL Data TX: Handle 13 flags 0x02 dlen 16

                                                           83.385274
      L2CAP: Configure Request (0x04) ident 16 len 8
        Destination CID: 64
        Flags: 0x0000
        Option: Maximum Transmission Unit (0x01) [mandatory]
          MTU: 640
> ACL Data RX: Handle 13 flags 0x02 dlen 16                                =
                                                                           =
                                                   83.385939
      L2CAP: Configure Request (0x04) ident 5 len 8
        Destination CID: 75
        Flags: 0x0000
        Option: Maximum Transmission Unit (0x01) [mandatory]
          MTU: 1480
< ACL Data TX: Handle 13 flags 0x02 dlen 14

                                                           83.386624
      L2CAP: Configure Response (0x05) ident 5 len 6
        Source CID: 64
        Flags: 0x0000
        Result: Success (0x0000)
> HCI Event: Number of Completed Packets (0x13) plen 5                     =
                                                                           =
                                                   83.387708
        Num handles: 1
        Handle: 13
        Count: 1
> ACL Data RX: Handle 13 flags 0x02 dlen 14                                =
                                                                           =
                                                   83.388425
      L2CAP: Configure Response (0x05) ident 16 len 6
        Source CID: 75
        Flags: 0x0000
        Result: Success (0x0000)

There is another difference here is that the connection to PSM 17 is
started by the Android device while in our case it is started by the
controller without doing any SDP(?) which sounds like the controller
has been connected before or it is not behaving like a HID device. Is
there a way to reset the controller to a state that it clears the
paired devices?


--=20
Luiz Augusto von Dentz

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Can't connect a Xbox one controller
  2016-08-19  8:43         ` Luiz Augusto von Dentz
@ 2016-08-19  9:28           ` Anthony Bourguignon
  0 siblings, 0 replies; 15+ messages in thread
From: Anthony Bourguignon @ 2016-08-19  9:28 UTC (permalink / raw)
  To: Luiz Augusto von Dentz; +Cc: linux-bluetooth

[-- Attachment #1: Type: text/plain, Size: 7841 bytes --]

Hi,

Le vendredi 19 août 2016 à 11:43 +0300, Luiz Augusto von Dentz a
écrit :
> Hi Anthony,
> 
> On Thu, Aug 18, 2016 at 8:46 PM, Anthony Bourguignon <contact@toniob.
> net> wrote:
> > 
> > Le jeudi 18 août 2016 à 19:20 +0300, Luiz Augusto von Dentz a écrit
> > :
> > > 
> > > Hi Anthony,
> > > 
> > > On Thu, Aug 18, 2016 at 5:52 PM, Anthony Bourguignon <contact@ton
> > > iob.
> > > net> wrote:
> > > > 
> > > > 
> > > > Le jeudi 18 août 2016 à 16:56 +0300, Luiz Augusto von Dentz a
> > > > écrit
> > > > :
> > > > > 
> > > > > 
> > > > > Hi Anthony,
> > > > > 
> > > > > On Thu, Aug 18, 2016 at 1:11 PM, Anthony Bourguignon <contact
> > > > > @ton
> > > > > iob.
> > > > > net> wrote:
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > Hi,
> > > > > > 
> > > > > > I've recently bought a new xbox one controller as the 2016
> > > > > > version
> > > > > > has
> > > > > > bluetooth connectivity.
> > > > > > 
> > > > > > The controller is pairing and connecting well on a windows
> > > > > > 10
> > > > > > computer
> > > > > > and an android 4.4 tablet. But I can"t make it connect
> > > > > > under
> > > > > > linux
> > > > > > (Debian unstable, kernel 4.6 and 4.7-rc7, bluez 5.40 from
> > > > > > experimental). The pairing is ok but when I try to connect
> > > > > > to
> > > > > > controller, it stays connected for less than one second,
> > > > > > then
> > > > > > disconnects, then connects again and so one until the
> > > > > > controller
> > > > > > goes
> > > > > > to sleep, because of the lack of a remote connection.
> > > > > > 
> > > > > > Any idea ?
> > > > > 
> > > > > It seems there is some problem configuring the L2CAP
> > > > > connection
> > > > > (probably for SDP):
> > > > > 
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > ACL data: handle 256 flags 0x02 dlen 15
> > > > >     L2CAP(s): Config rsp: scid 0x0040 flags 0x00 result 3
> > > > > clen 1
> > > > >       Failure - unknown options
> > > > >       RFC
> > > > > < ACL data: handle 256 flags 0x00 dlen 12
> > > > >     L2CAP(s): Disconn req: dcid 0x0040 scid 0x0040
> > > > 
> > > > So, is it a bug of bluez or of the controller firmware ? Why is
> > > > it
> > > > possible to make a connection with an android tablet ?
> > > > 
> > > > Is there something more I can do to help ?
> > > 
> > > Well perhaps we can compare to what other stacks are responding,
> > > but
> > > this seem quite weird given L2CAP_Config request is an essential
> > > part
> > > of setting up L2CAP connections so a response with unknown
> > > options
> > > sounds kind broken, but perhaps other stacks are ignoring it.
> > 
> > I've juste made a capture with my android tablet. Maybe it'll help.
> > Association failed two times and succeded on the third one.
> 
> It seems the configuration request works just fine here:
> 
> < ACL Data TX: Handle 13 flags 0x02 dlen 12
> 
>                                                            83.379233
>       L2CAP: Connection Request (0x02) ident 15 len 4
>         PSM: 17 (0x0011)
>         Source CID: 75
> > 
> > HCI Event: Number of Completed Packets (0x13) plen
> > 5                                                                  
> >                                                                    
> >               83.381502
>         Num handles: 1
>         Handle: 13
>         Count: 1
> > 
> > ACL Data RX: Handle 13 flags 0x02 dlen
> > 16                                                                 
> >                                                                    
> >                           83.383358
>       L2CAP: Connection Response (0x03) ident 15 len 8
>         Destination CID: 64
>         Source CID: 75
>         Result: Connection pending (0x0001)
>         Status: No further information available (0x0000)
> > 
> > ACL Data RX: Handle 13 flags 0x02 dlen
> > 16                                                                 
> >                                                                    
> >                           83.384600
>       L2CAP: Connection Response (0x03) ident 15 len 8
>         Destination CID: 64
>         Source CID: 75
>         Result: Connection successful (0x0000)
>         Status: No further information available (0x0000)
> < ACL Data TX: Handle 13 flags 0x02 dlen 16
> 
>                                                            83.385274
>       L2CAP: Configure Request (0x04) ident 16 len 8
>         Destination CID: 64
>         Flags: 0x0000
>         Option: Maximum Transmission Unit (0x01) [mandatory]
>           MTU: 640
> > 
> > ACL Data RX: Handle 13 flags 0x02 dlen
> > 16                                                                 
> >                                                                    
> >                           83.385939
>       L2CAP: Configure Request (0x04) ident 5 len 8
>         Destination CID: 75
>         Flags: 0x0000
>         Option: Maximum Transmission Unit (0x01) [mandatory]
>           MTU: 1480
> < ACL Data TX: Handle 13 flags 0x02 dlen 14
> 
>                                                            83.386624
>       L2CAP: Configure Response (0x05) ident 5 len 6
>         Source CID: 64
>         Flags: 0x0000
>         Result: Success (0x0000)
> > 
> > HCI Event: Number of Completed Packets (0x13) plen
> > 5                                                                  
> >                                                                    
> >               83.387708
>         Num handles: 1
>         Handle: 13
>         Count: 1
> > 
> > ACL Data RX: Handle 13 flags 0x02 dlen
> > 14                                                                 
> >                                                                    
> >                           83.388425
>       L2CAP: Configure Response (0x05) ident 16 len 6
>         Source CID: 75
>         Flags: 0x0000
>         Result: Success (0x0000)
> 
> There is another difference here is that the connection to PSM 17 is
> started by the Android device while in our case it is started by the
> controller without doing any SDP(?) which sounds like the controller
> has been connected before or it is not behaving like a HID device. Is
> there a way to reset the controller to a state that it clears the
> paired devices?

Here is a new dump from the android device. I've paired the xbox
controller to another device before for it to change its bluetooth pair
(I hope it worked).

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: btsnoop_hci2.log --]
[-- Type: text/x-log; name="btsnoop_hci2.log"; charset="UTF-8", Size: 9291 bytes --]

btsnoop\0\0\0\0\x01\0\0\x03ê\0\0\0\v\0\0\0\v\0\0\0\x02\0\0\0\0\0â\x18\x1c>þfÒ\x01\v \a\x01\x12\0\x12\0\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x1c>þol\x04\x0e\x04\x01\v \0\0\0\0\x06\0\0\0\x06\0\0\0\x02\0\0\0\0\0â\x18\x1c>þrY\x01\f \x02\x01\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x1c>þá\x04\x0e\x04\x01\f \0\0\0\0\x06\0\0\0\x06\0\0\0\x02\0\0\0\0\0â\x18\x1c>þ„Ñ\x01\x05\f\x02\x01\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x1c>þˆ \x04\x0e\x04\x01\x05\f\0\0\0\0	\0\0\0	\0\0\0\x02\0\0\0\0\0â\x18\x1c>þ­\x01\x01\x04\x053‹ž
\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x1c>þ’«\x04\x0f\x04\0\x01\x01\x04\0\0\x01\x02\0\0\x01\x02\0\0\0\x03\0\0\0\0\0â\x18\x1c??¥ó\x04/ÿ\x01á‹ï2ÛÐ\x01\x02\x04\x02ZO>²
	Nokia 302\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x02\0\0\0\0\0â\x18\x1c?—\x066\x01\f \x02\0\x01\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x1c?—\x0e]\x04\x0e\x04\x01\f \0\0\0\0\v\0\0\0\v\0\0\0\x02\0\0\0\0\0â\x18\x1c?—\x19•\x01\v \a\x01\x12\0\x12\0\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x1c?—!²\x04\x0e\x04\x01\v \0\0\0\x01\x02\0\0\x01\x02\0\0\0\x03\0\0\0\0\0â\x18\x1c?·ß§\x04/ÿ\x01âH\x0f&?È\x01\x02\b\x05\0µ9œ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x04\0\0\0\x04\0\0\0\x03\0\0\0\0\0â\x18\x1c?Â.Ž\x04\x01\x01\0\0\0\0\x0e\0\0\0\x0e\0\0\0\x02\0\0\0\0\0â\x18\x1c?ÂIë\x01\x19\x04
âH\x0f&?È\x01\0µ¹\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x1c?ÂSJ\x04\x0f\x04\0\x01\x19\x04\0\0\0\x11\0\0\0\x11\0\0\0\x03\0\0\0\0\0â\x18\x1c?ÊDy\x04=\x0eâH\x0f&?È\x01\0\0\0\0\0\0\0\0\0\x01\x02\0\0\x01\x02\0\0\0\x03\0\0\0\0\0â\x18\x1c?Ê\x7f¹\x04\aÿ\0âH\x0f&?ÈXbox Wireless Controller\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\v\0\0\0\v\0\0\0\x02\0\0\0\0\0â\x18\x1c?èvç\x01\x12\f\aâH\x0f&?È\0\0\0\0	\0\0\0	\0\0\0\x03\0\0\0\0\0â\x18\x1c?èzM\x04\x0e\x06\x01\x12\f\0\0\0\0\0\0\x11\0\0\0\x11\0\0\0\x02\0\0\0\0\0â\x18\x1c?è|0\x01\x05\x04\râH\x0f&?È\x18Ì\x01\0µ¹\x01\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x1c?è„\x12\x04\x0f\x04\0\x01\x05\x04\0\0\0\x0e\0\0\0\x0e\0\0\0\x03\0\0\0\0\0â\x18\x1c?òdÄ\x04\x03\v\0\x05\0âH\x0f&?È\x01\0\0\0\0\x06\0\0\0\x06\0\0\0\x02\0\0\0\0\0â\x18\x1c?òg€\x01\x1d\x04\x02\x05\0\0\0\0\x0f\0\0\0\x0f\0\0\0\0\0\0\0\0\0â\x18\x1c?òj¥\x02\x05 
\0\x06\0\x01\0
\x02\x02\0\x02\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x1c?òm\x14\x04\x0f\x04\0\x01\x1d\x04\0\0\0\b\0\0\0\b\0\0\0\x02\0\0\0\0\0â\x18\x1c?òp\x11\x01\r\b\x04\x05\0\a\0\0\0\0	\0\0\0	\0\0\0\x03\0\0\0\0\0â\x18\x1c?òrg\x04\x0e\x06\x01\r\b\0\x05\0\0\0\0\b\0\0\0\b\0\0\0\x02\0\0\0\0\0â\x18\x1c?òtú\x017\f\x04\x05\0@\x1f\0\0\0	\0\0\0	\0\0\0\x03\0\0\0\0\0â\x18\x1c?òw”\x04\x0e\x06\x017\f\0\x05\0\0\0\0\v\0\0\0\v\0\0\0\x03\0\0\0\0\0â\x18\x1c?ò¢ª\x04\f\b\0\x05\0\bF\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x02\0\0\0\0\0â\x18\x1c?ò¥\r\x01^[\x04\x02\x05\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x1c?ò§’\x04\x0f\x04\0\x01^[\x04\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0â\x18\x1c?ò±Q\x04^[\x03\x05\0\x05\0\0\0\x0e\0\0\0\x0e\0\0\0\x03\0\0\0\0\0â\x18\x1c?òÄÔ\x04\v\v\0\x05\0¿>þÛý{‡\0\0\0\a\0\0\0\a\0\0\0\x02\0\0\0\0\0â\x18\x1c?òÇ2\x01\x1c\x04\x03\x05\0\x01\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x1c?òÉ´\x04\x0f\x04\0\x01\x1c\x04\0\0\0\x10\0\0\0\x10\0\0\0\x03\0\0\0\0\0â\x18\x1c?òÓm\x04#\r\0\x05\0\x01\x03\x01\0\0\0\0\0\0\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1c?òÖ;\x04\x13\x05\x01\x05\0\x01\0\0\0\0\x15\0\0\0\x15\0\0\0\x01\0\0\0\0\0â\x18\x1c?òØù\x02\x05 \x10\0\f\0\x01\0\v\x02\b\0\x02\0\0\0\x10\0\0\0\0\0\0\v\0\0\0\v\0\0\0\x02\0\0\0\0\0â\x18\x1cB)Q\x12\x01\x12\f\aâH\x0f&?È\0\0\0\0	\0\0\0	\0\0\0\x03\0\0\0\0\0â\x18\x1cB)SP\x04\x0e\x06\x01\x12\f\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x02\0\0\0\0\0â\x18\x1cB)W\x10\x01\x11\x04\x02\x05\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x1cB)YG\x04\x0f\x04\0\x01\x11\x04\0\0\0	\0\0\0	\0\0\0\x03\0\0\0\0\0â\x18\x1cB)[é\x04\x17\x06âH\x0f&?È\0\0\0
\0\0\0
\0\0\0\x02\0\0\0\0\0â\x18\x1cB)^ù\x01\f\x04\x06âH\x0f&?È\0\0\0\r\0\0\0\r\0\0\0\x03\0\0\0\0\0â\x18\x1cB)a™\x04\x0e
\x01\f\x04\0âH\x0f&?È\0\0\0	\0\0\0	\0\0\0\x03\0\0\0\0\0â\x18\x1cB)dû\x041\x06âH\x0f&?È\0\0\0\r\0\0\0\r\0\0\0\x02\0\0\0\0\0â\x18\x1cB)g½\x01+\x04	âH\x0f&?È\x01\0\x03\0\0\0\r\0\0\0\r\0\0\0\x03\0\0\0\0\0â\x18\x1cB)on\x04\x0e
\x01+\x04\0âH\x0f&?È\0\0\0\f\0\0\0\f\0\0\0\x03\0\0\0\0\0â\x18\x1cB)¿}\x042	âH\x0f&?È\x03\0\x04\0\0\0\r\0\0\0\r\0\0\0\x03\0\0\0\0\0â\x18\x1cB+°:\x043
âH\x0f&?ÈOE\a\0\0\0\0
\0\0\0
\0\0\0\x02\0\0\0\0\0â\x18\x1cB+»Ý\x01,\x04\x06âH\x0f&?È\0\0\0\r\0\0\0\r\0\0\0\x03\0\0\0\0\0â\x18\x1cB+¾\x0f\x04\x0e
\x01,\x04\0âH\x0f&?È\0\0\0
\0\0\0
\0\0\0\x03\0\0\0\0\0â\x18\x1cB,œ©\x046\a\0âH\x0f&?È\0\0\0\x1a\0\0\0\x1a\0\0\0\x03\0\0\0\0\0â\x18\x1cB,È?\x04\x18\x17âH\x0f&?È`êR£_“§\x14g*×Á!‚z\x04\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0â\x18\x1cB,Ë™\x04\x06\x03\0\x05\0\0\0\0\x11\0\0\0\x11\0\0\0\0\0\0\0\0\0â\x18\x1cB,ÒÀ\x02\x05 \f\0\b\0\x01\0\x02\x03\x04\0\x01\0L\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB-]\v\x04\x13\x05\x01\x05\0\x01\0\0\0\0\x15\0\0\0\x15\0\0\0\x01\0\0\0\0\0â\x18\x1cB-_¯\x02\x05 \x10\0\f\0\x01\0\x03\x03\b\0@\0L\0\0\0\0\0\0\0\0\x15\0\0\0\x15\0\0\0\0\0\0\0\0\0â\x18\x1cB-b‘\x02\x05 \x10\0\f\0\x01\0\x04\x04\b\0@\0\0\0\x01\x02\0\x01\0\0\0\x15\0\0\0\x15\0\0\0\x01\0\0\0\0\0â\x18\x1cB-dá\x02\x05 \x10\0\f\0\x01\0\x04\x06\b\0L\0\0\0\x01\x02È\x05\0\0\0\x13\0\0\0\x13\0\0\0\0\0\0\0\0\0â\x18\x1cB-h:\x02\x05 \x0e\0
\0\x01\0\x05\x06\x06\0@\0\0\0\0\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB-oâ\x04\x13\x05\x01\x05\0\x01\0\0\0\0\x13\0\0\0\x13\0\0\0\x01\0\0\0\0\0â\x18\x1cB-rl\x02\x05 \x0e\0
\0\x01\0\x05\x04\x06\0L\0\0\0\0\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB-tý\x04\x13\x05\x01\x05\0\x01\0\0\0\0\x1d\0\0\0\x1d\0\0\0\0\0\0\0\0\0â\x18\x1cB-wf\x02\x05 \x18\0\x14\0@\0\x06\0\0\0\x0f5\x03\x19\x12\0\0ð5\x05
\0\0ÿÿ\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB-~w\x04\x13\x05\x01\x05\0\x01\0\0\0\0‰\0\0\0‰\0\0\0\x01\0\0\0\0\0â\x18\x1cB-ŠÀ\x02\x05 „\0€\0L\0\a\0\0\0{\0w5„5‚	\0\0
\0\x01\0\0	\0\x015\x03\x19\x12\0	\0\x02
\0\0\x03\x04	\0\x045\r5\x06\x19\x01\0	\0\x015\x03\x19\0\x01	\0\x055\x03\x19\x10\x02	\0\x065		en	\0j	\x01\0	\0	5\b5\x06\x19\x12\0	\x01\0	\x01\0%\x01\0	\x01\x01%\x01\0	\x01\x02%\x01\0	\x02\0	\x01\x03	\x02\x01	\x04^	\x02\x02	\x02à	\x02\x01\x02\0\0\0\x1e\0\0\0\x1e\0\0\0\0\0\0\0\0\0â\x18\x1cB-Ž\x1d\x02\x05 \x19\0\x15\0@\0\x06\0\x01\0\x105\x03\x19\x12\0\0ð5\x05
\0\0ÿÿ\x01\x02\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB-–ç\x04\x13\x05\x01\x05\0\x01\0\0\0\0 \0\0\0 \0\0\0\x01\0\0\0\0\0â\x18\x1cB-™p\x02\x05 ^[\0\x17\0L\0\a\0\x01\0\x12\0\x0f\x03		\x03	\x02\x04(\x01	\x02\x05	\0\x02\0\0\0\0\x11\0\0\0\x11\0\0\0\0\0\0\0\0\0â\x18\x1cB-œ,\x02\x05 \f\0\b\0\x01\0\x06\x05\x04\0@\0L\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB-¥‰\x04\x13\x05\x01\x05\0\x01\0\0\0\0\x11\0\0\0\x11\0\0\0\x01\0\0\0\0\0â\x18\x1cB-¨\x10\x02\x05 \f\0\b\0\x01\0\a\x05\x04\0@\0L\0\0\0\0\x11\0\0\0\x11\0\0\0\0\0\0\0\0\0â\x18\x1cB-«\a\x02\x05 \f\0\b\0\x01\0\x02\x06\x04\0\x01\0M\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB.Fý\x04\x13\x05\x01\x05\0\x01\0\0\0\0\x15\0\0\0\x15\0\0\0\x01\0\0\0\0\0â\x18\x1cB.I\x02\x05 \x10\0\f\0\x01\0\x03\x06\b\0@\0M\0\0\0\0\0\0\0\0\x15\0\0\0\x15\0\0\0\0\0\0\0\0\0â\x18\x1cB.L3\x02\x05 \x10\0\f\0\x01\0\x04\a\b\0@\0\0\0\x01\x02\0\x01\0\0\0\x15\0\0\0\x15\0\0\0\x01\0\0\0\0\0â\x18\x1cB.NÉ\x02\x05 \x10\0\f\0\x01\0\x04\a\b\0M\0\0\0\x01\x02È\x05\0\0\0\x13\0\0\0\x13\0\0\0\0\0\0\0\0\0â\x18\x1cB.Q \x02\x05 \x0e\0
\0\x01\0\x05\a\x06\0@\0\0\0\0\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB.W„\x04\x13\x05\x01\x05\0\x01\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB.Z\x7f\x04\x13\x05\x01\x05\0\x01\0\0\0\0\x13\0\0\0\x13\0\0\0\x01\0\0\0\0\0â\x18\x1cB.]:\x02\x05 \x0e\0
\0\x01\0\x05\a\x06\0M\0\0\0\0\0\0\0\0\x1d\0\0\0\x1d\0\0\0\0\0\0\0\0\0â\x18\x1cB._è\x02\x05 \x18\0\x14\0@\0\x06\0\0\0\x0f5\x03\x19\x01\0\0ð5\x05
\0\0ÿÿ\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB.i\x10\x04\x13\x05\x01\x05\0\x01\0\0\0\0‰\0\0\0‰\0\0\0\x01\0\0\0\0\0â\x18\x1cB.ò‰\x02\x05 „\0€\0M\0\a\0\0\0{\0w6\x02¾5‚	\0\0
\0\x01\0\0	\0\x015\x03\x19\x12\0	\0\x02
\0\0\x03\x04	\0\x045\r5\x06\x19\x01\0	\0\x015\x03\x19\0\x01	\0\x055\x03\x19\x10\x02	\0\x065		en	\0j	\x01\0	\0	5\b5\x06\x19\x12\0	\x01\0	\x01\0%\x01\0	\x01\x01%\x01\0	\x01\x02%\x01\0	\x02\0	\x01\x03	\x02\x01	\x04^	\x02\x02	\x02à	\x01\x03\0\0\0\x1e\0\0\0\x1e\0\0\0\0\0\0\0\0\0â\x18\x1cB.õŒ\x02\x05 \x19\0\x15\0@\0\x06\0\x01\0\x105\x03\x19\x01\0\0ð5\x05
\0\0ÿÿ\x01\x03\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB/(<\x04\x13\x05\x01\x05\0\x01\0\0\0\0‰\0\0\0‰\0\0\0\x01\0\0\0\0\0â\x18\x1cB/©T\x02\x05 „\0€\0M\0\a\0\x01\0{\0w\x02\x03		\x03	\x02\x04(\x01	\x02\x05	\0\x026\x027	\0\0
\0\x01\0\x01	\0\x015\x03\x19\x11$	\0\x02
\0\0\x03\x12	\0\x045\r5\x06\x19\x01\0	\0\x115\x03\x19\0\x11	\0\x055\x03\x19\x10\x02	\0\x065		en	\0j	\x01\0	\0	5\b5\x06\x19\x11$	\x01\0	\0\r5\x0f5\r5\x06\x19\x01\0	\0\x135\x03\x19\0\x11	\x01\0\x01\x04\0\0\0\x1e\0\0\0\x1e\0\0\0\0\0\0\0\0\0â\x18\x1cB/«ð\x02\x05 \x19\0\x15\0@\0\x06\0\x02\0\x105\x03\x19\x01\0\0ð5\x05
\0\0ÿÿ\x01\x04\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB/µR\x04\x13\x05\x01\x05\0\x01\0\0\0\0‰\0\0\0‰\0\0\0\x01\0\0\0\0\0â\x18\x1cB/º,\x02\x05 „\0€\0M\0\a\0\x02\0{\0w%\x17Xbox Bluetooth Gamepad\0	\x01\x01%\bGamepad\0	\x01\x02%\x16Microsoft Corporation\0	\x02\0	\x01\0	\x02\x01	\x01\x11	\x02\x02\b@	\x02\x03\b!	\x02\x04(\x01	\x02\x05(\x01	\x02\x066\x01:6\x017\b"&\x012\x05\x01	\x05¡\x01…\x01\x01\x05\0\0\0\x1e\0\0\0\x1e\0\0\0\0\0\0\0\0\0â\x18\x1cB/¼¼\x02\x05 \x19\0\x15\0@\0\x06\0\x03\0\x105\x03\x19\x01\0\0ð5\x05
\0\0ÿÿ\x01\x05\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB/ë%\x04\x13\x05\x01\x05\0\x01\0\0\0\0‰\0\0\0‰\0\0\0\x01\0\0\0\0\0â\x18\x1cB/ò8\x02\x05 „\0€\0M\0\a\0\x03\0{\0w	\x01¡\0	0	1\x15\0'ÿÿ\0\0•\x02u\x10\x02À	\x01¡\0	3	4\x15\0'ÿÿ\0\0•\x02u\x10\x02À\x05\x01	2\x15\0&ÿ\x03•\x01u
\x02\x15\0%\0u\x06•\x01\x03\x05\x01	5\x15\0&ÿ\x03•\x01u
\x02\x15\0%\0u\x06•\x01\x03\x05\x01	9\x15\x01%\b5\0F;\x01f\x14\0u\x04•\x01Bu\x04•\x01\x06\0\0\0\x1e\0\0\0\x1e\0\0\0\0\0\0\0\0\0â\x18\x1cB/ôé\x02\x05 \x19\0\x15\0@\0\x06\0\x04\0\x105\x03\x19\x01\0\0ð5\x05
\0\0ÿÿ\x01\x06\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB/þø\x04\x13\x05\x01\x05\0\x01\0\0\0\0‰\0\0\0‰\0\0\0\x01\0\0\0\0\0â\x18\x1cB0\x05½\x02\x05 „\0€\0M\0\a\0\x04\0{\0w\x01\x15\0%\05\0E\0e\0\x03\x05	\x19\x01)
\x15\0%\x01u\x01•
\x02\x15\0%\0u\x06•\x01\x03\x05\x01	€…\x02¡\0	…\x15\0%\x01•\x01u\x01\x02\x15\0%\0u\a•\x01\x03À\x05\x0f	!…\x03¡\x02	—\x15\0%\x01u\x04•\x01‘\x02\x15\0%\0u\x04•\x01‘\x03	p\x15\0%du\b•\x04‘\x02	Pf\x01\x10U\x0e\x01\a\0\0\0\x1e\0\0\0\x1e\0\0\0\0\0\0\0\0\0â\x18\x1cB0\bL\x02\x05 \x19\0\x15\0@\0\x06\0\x05\0\x105\x03\x19\x01\0\0ð5\x05
\0\0ÿÿ\x01\a\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB0\x12\x1f\x04\x13\x05\x01\x05\0\x01\0\0\0\0\x7f\0\0\0\x7f\0\0\0\x01\0\0\0\0\0â\x18\x1cB0\x198\x02\x05 z\0v\0M\0\a\0\x05\0q\0n\x15\0&ÿ\0u\b•\x01‘\x02	§\x15\0&ÿ\0u\b•\x01‘\x02e\0U\0	|\x15\0&ÿ\0u\b•\x01‘\x02À…\x04\x05\x06	 \x15\0&ÿ\0u\b•\x01\x02À	\x02\a5\b5\x06	\x04		\x01\0	\x02\b(\0	\x02	(\x01	\x02
(\0	\x02\v	\x01\0	\x02\f	\f€	\x02\r(\x01	\x02\x0e(\0\0\0\0\0\x11\0\0\0\x11\0\0\0\0\0\0\0\0\0â\x18\x1cB0^[ì\x02\x05 \f\0\b\0\x01\0\x06\b\x04\0@\0M\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB0%ƒ\x04\x13\x05\x01\x05\0\x01\0\0\0\0\x11\0\0\0\x11\0\0\0\x01\0\0\0\0\0â\x18\x1cB0(c\x02\x05 \f\0\b\0\x01\0\a\b\x04\0@\0M\0\0\0\0\x11\0\0\0\x11\0\0\0\0\0\0\0\0\0â\x18\x1cB0Ö;\x02\x05 \f\0\b\0\x01\0\x02	\x04\0\x01\0N\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB1\r\x05\x04\x13\x05\x01\x05\0\x01\0\0\0\0\x15\0\0\0\x15\0\0\0\x01\0\0\0\0\0â\x18\x1cB1\x10Å\x02\x05 \x10\0\f\0\x01\0\x03	\b\0@\0N\0\0\0\0\0\0\0\0\x15\0\0\0\x15\0\0\0\x01\0\0\0\0\0â\x18\x1cB1\x14\0\x02\x05 \x10\0\f\0\x01\0\x04\b\b\0N\0\0\0\x01\x02È\x05\0\0\0\x15\0\0\0\x15\0\0\0\0\0\0\0\0\0â\x18\x1cB1\x16s\x02\x05 \x10\0\f\0\x01\0\x04
\b\0@\0\0\0\x01\x02\0\x01\0\0\0\x13\0\0\0\x13\0\0\0\0\0\0\0\0\0â\x18\x1cB1\x18û\x02\x05 \x0e\0
\0\x01\0\x05\b\x06\0@\0\0\0\0\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB1\x1e²\x04\x13\x05\x01\x05\0\x01\0\0\0\0\x13\0\0\0\x13\0\0\0\x01\0\0\0\0\0â\x18\x1cB1#\b\x02\x05 \x0e\0
\0\x01\0\x05
\x06\0N\0\0\0\0\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB1&.\x04\x13\x05\x01\x05\0\x01\0\0\0\0\x16\0\0\0\x16\0\0\0\0\0\0\0\0\0â\x18\x1cB1)ã\x02\x05 \x11\0\r\0@\0\x02\0\0\0\b5\x03\x19\x12\0\0\x15\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB13\x02\x04\x13\x05\x01\x05\0\x01\0\0\0\0\x17\0\0\0\x17\0\0\0\x01\0\0\0\0\0â\x18\x1cB16;\x02\x05 \x12\0\x0e\0N\0\x03\0\0\0	\0\x01\0\x01\0\x01\0\0\0\0\0\0\x1c\0\0\0\x1c\0\0\0\0\0\0\0\0\0â\x18\x1cB19ð\x02\x05 \x17\0\x13\0@\0\x04\0\x01\0\x0e\0\x01\0\0\0ð5\x05
\0\0ÿÿ\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB1Eñ\x04\x13\x05\x01\x05\0\x01\0\0\0\0‰\0\0\0‰\0\0\0\x01\0\0\0\0\0â\x18\x1cB1N¡\x02\x05 „\0€\0N\0\x05\0\x01\0{\0w5‚	\0\0
\0\x01\0\0	\0\x015\x03\x19\x12\0	\0\x02
\0\0\x03\x04	\0\x045\r5\x06\x19\x01\0	\0\x015\x03\x19\0\x01	\0\x055\x03\x19\x10\x02	\0\x065		en	\0j	\x01\0	\0	5\b5\x06\x19\x12\0	\x01\0	\x01\0%\x01\0	\x01\x01%\x01\0	\x01\x02%\x01\0	\x02\0	\x01\x03	\x02\x01	\x04^	\x02\x02	\x02à	\x02\x03	\x01\b\0\0\0\x1d\0\0\0\x1d\0\0\0\0\0\0\0\0\0â\x18\x1cB1QC\x02\x05 \x18\0\x14\0@\0\x04\0\x02\0\x0f\0\x01\0\0\0ð5\x05
\0\0ÿÿ\x01\b\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB1^d\x04\x13\x05\x01\x05\0\x01\0\0\0\0\x1e\0\0\0\x1e\0\0\0\x01\0\0\0\0\0â\x18\x1cB1`ê\x02\x05 \x19\0\x15\0N\0\x05\0\x02\0\x10\0\r	\x03	\x02\x04(\x01	\x02\x05	\0\x02\0\0\0\0\x11\0\0\0\x11\0\0\0\0\0\0\0\0\0â\x18\x1cB1e\x0f\x02\x05 \f\0\b\0\x01\0\x06\v\x04\0@\0N\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB1q·\x04\x13\x05\x01\x05\0\x01\0\0\0\0\x11\0\0\0\x11\0\0\0\x01\0\0\0\0\0â\x18\x1cB1u(\x02\x05 \f\0\b\0\x01\0\a\v\x04\0@\0N\0\0\0\0\x11\0\0\0\x11\0\0\0\0\0\0\0\0\0â\x18\x1cB1wÊ\x02\x05 \f\0\b\0\x01\0\x02\f\x04\0\x01\0O\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB1õØ\x04\x13\x05\x01\x05\0\x01\0\0\0\0\x15\0\0\0\x15\0\0\0\x01\0\0\0\0\0â\x18\x1cB1÷ð\x02\x05 \x10\0\f\0\x01\0\x03\f\b\0@\0O\0\0\0\0\0\0\0\0\x15\0\0\0\x15\0\0\0\0\0\0\0\0\0â\x18\x1cB1ú3\x02\x05 \x10\0\f\0\x01\0\x04\r\b\0@\0\0\0\x01\x02\0\x01\0\0\0\x15\0\0\0\x15\0\0\0\x01\0\0\0\0\0â\x18\x1cB1ün\x02\x05 \x10\0\f\0\x01\0\x04	\b\0O\0\0\0\x01\x02È\x05\0\0\0\x13\0\0\0\x13\0\0\0\0\0\0\0\0\0â\x18\x1cB1þ\x02\x05 \x0e\0
\0\x01\0\x05	\x06\0@\0\0\0\0\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB2\x04\x19\x04\x13\x05\x01\x05\0\x01\0\0\0\0\x13\0\0\0\x13\0\0\0\x01\0\0\0\0\0â\x18\x1cB2\x06€\x02\x05 \x0e\0
\0\x01\0\x05\r\x06\0O\0\0\0\0\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB2\b«\x04\x13\x05\x01\x05\0\x01\0\0\0\0\x16\0\0\0\x16\0\0\0\0\0\0\0\0\0â\x18\x1cB2
n\x02\x05 \x11\0\r\0@\0\x02\0\0\0\b5\x03\x19\x11$\0\x15\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB2\x12‚\x04\x13\x05\x01\x05\0\x01\0\0\0\0\x17\0\0\0\x17\0\0\0\x01\0\0\0\0\0â\x18\x1cB2\x14Ã\x02\x05 \x12\0\x0e\0O\0\x03\0\0\0	\0\x01\0\x01\0\x01\0\x01\0\0\0\0\x1c\0\0\0\x1c\0\0\0\0\0\0\0\0\0â\x18\x1cB2\x16»\x02\x05 \x17\0\x13\0@\0\x04\0\x01\0\x0e\0\x01\0\x01\0ð5\x05
\0\0ÿÿ\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB2!…\x04\x13\x05\x01\x05\0\x01\0\0\0\0‰\0\0\0‰\0\0\0\x01\0\0\0\0\0â\x18\x1cB2(µ\x02\x05 „\0€\0O\0\x05\0\x01\0{\0w6\x027	\0\0
\0\x01\0\x01	\0\x015\x03\x19\x11$	\0\x02
\0\0\x03\x12	\0\x045\r5\x06\x19\x01\0	\0\x115\x03\x19\0\x11	\0\x055\x03\x19\x10\x02	\0\x065		en	\0j	\x01\0	\0	5\b5\x06\x19\x11$	\x01\0	\0\r5\x0f5\r5\x06\x19\x01\0	\0\x135\x03\x19\0\x11	\x01\0%\x17Xbox Bluetooth\x01	\0\0\0\x1d\0\0\0\x1d\0\0\0\0\0\0\0\0\0â\x18\x1cB2*Ê\x02\x05 \x18\0\x14\0@\0\x04\0\x02\0\x0f\0\x01\0\x01\0ð5\x05
\0\0ÿÿ\x01	\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB24¼\x04\x13\x05\x01\x05\0\x01\0\0\0\0‰\0\0\0‰\0\0\0\x01\0\0\0\0\0â\x18\x1cB2;ê\x02\x05 „\0€\0O\0\x05\0\x02\0{\0w Gamepad\0	\x01\x01%\bGamepad\0	\x01\x02%\x16Microsoft Corporation\0	\x02\0	\x01\0	\x02\x01	\x01\x11	\x02\x02\b@	\x02\x03\b!	\x02\x04(\x01	\x02\x05(\x01	\x02\x066\x01:6\x017\b"&\x012\x05\x01	\x05¡\x01…\x01	\x01¡\0	0	1\x15\0'ÿÿ\0\0•\x01
\0\0\0\x1d\0\0\0\x1d\0\0\0\0\0\0\0\0\0â\x18\x1cB2=ð\x02\x05 \x18\0\x14\0@\0\x04\0\x03\0\x0f\0\x01\0\x01\0ð5\x05
\0\0ÿÿ\x01
\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB2H9\x04\x13\x05\x01\x05\0\x01\0\0\0\0‰\0\0\0‰\0\0\0\x01\0\0\0\0\0â\x18\x1cB2Os\x02\x05 „\0€\0O\0\x05\0\x03\0{\0w\x02u\x10\x02À	\x01¡\0	3	4\x15\0'ÿÿ\0\0•\x02u\x10\x02À\x05\x01	2\x15\0&ÿ\x03•\x01u
\x02\x15\0%\0u\x06•\x01\x03\x05\x01	5\x15\0&ÿ\x03•\x01u
\x02\x15\0%\0u\x06•\x01\x03\x05\x01	9\x15\x01%\b5\0F;\x01f\x14\0u\x04•\x01Bu\x04•\x01\x15\0%\05\0E\0e\0\x03\x05	\x19\x01\v\0\0\0\x1d\0\0\0\x1d\0\0\0\0\0\0\0\0\0â\x18\x1cB2Qq\x02\x05 \x18\0\x14\0@\0\x04\0\x04\0\x0f\0\x01\0\x01\0ð5\x05
\0\0ÿÿ\x01\v\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB2[¡\x04\x13\x05\x01\x05\0\x01\0\0\0\0‰\0\0\0‰\0\0\0\x01\0\0\0\0\0â\x18\x1cB2bö\x02\x05 „\0€\0O\0\x05\0\x04\0{\0w\x01)
\x15\0%\x01u\x01•
\x02\x15\0%\0u\x06•\x01\x03\x05\x01	€…\x02¡\0	…\x15\0%\x01•\x01u\x01\x02\x15\0%\0u\a•\x01\x03À\x05\x0f	!…\x03¡\x02	—\x15\0%\x01u\x04•\x01‘\x02\x15\0%\0u\x04•\x01‘\x03	p\x15\0%du\b•\x04‘\x02	Pf\x01\x10U\x0e\x15\0&ÿ\0u\b•\x01‘\x02	§\x15\0&\x01\f\0\0\0\x1d\0\0\0\x1d\0\0\0\0\0\0\0\0\0â\x18\x1cB2dñ\x02\x05 \x18\0\x14\0@\0\x04\0\x05\0\x0f\0\x01\0\x01\0ð5\x05
\0\0ÿÿ\x01\f\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB2o_\x04\x13\x05\x01\x05\0\x01\0\0\0\0o\0\0\0o\0\0\0\x01\0\0\0\0\0â\x18\x1cB2v\x02\x05 j\0f\0O\0\x05\0\x05\0a\0^ÿ\0u\b•\x01‘\x02e\0U\0	|\x15\0&ÿ\0u\b•\x01‘\x02À…\x04\x05\x06	 \x15\0&ÿ\0u\b•\x01\x02À	\x02\a5\b5\x06	\x04		\x01\0	\x02\b(\0	\x02	(\x01	\x02
(\0	\x02\v	\x01\0	\x02\f	\f€	\x02\r(\x01	\x02\x0e(\0\0\0\0\0\x11\0\0\0\x11\0\0\0\0\0\0\0\0\0â\x18\x1cB2xø\x02\x05 \f\0\b\0\x01\0\x06\x0e\x04\0@\0O\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB2Œ²\x04\x13\x05\x01\x05\0\x01\0\0\0\0\x11\0\0\0\x11\0\0\0\x01\0\0\0\0\0â\x18\x1cB2Žß\x02\x05 \f\0\b\0\x01\0\a\x0e\x04\0@\0O\0\0\0\0\a\0\0\0\a\0\0\0\x02\0\0\0\0\0â\x18\x1cB2‘\x16\x01\x13\x04\x03\x05\0\x01\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x1cB2’Î\x04\x0f\x04\0\x01\x13\x04\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â\x18\x1cB2ç¶\x04\b\x04\0\x05\0\x01\0\0\0\x11\0\0\0\x11\0\0\0\0\0\0\0\0\0â\x18\x1cB2éé\x02\x05 \f\0\b\0\x01\0\x02\x0f\x04\0\x11\0@\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB2÷ý\x04\x13\x05\x01\x05\0\x01\0\0\0\0\x15\0\0\0\x15\0\0\0\x01\0\0\0\0\0â\x18\x1cB2ÿ/\x02\x05 \x10\0\f\0\x01\0\x03\x0f\b\0@\0@\0\x01\0\0\0\0\0\0\x15\0\0\0\x15\0\0\0\x01\0\0\0\0\0â\x18\x1cB3\x04\x0f\x02\x05 \x10\0\f\0\x01\0\x03\x0f\b\0@\0@\0\0\0\0\0\0\0\0\x15\0\0\0\x15\0\0\0\0\0\0\0\0\0â\x18\x1cB3\x06+\x02\x05 \x10\0\f\0\x01\0\x04\x10\b\0@\0\0\0\x01\x02€\x02\0\0\0\x15\0\0\0\x15\0\0\0\x01\0\0\0\0\0â\x18\x1cB3\bï\x02\x05 \x10\0\f\0\x01\0\x04
\b\0@\0\0\0\x01\x02È\x05\0\0\0\x13\0\0\0\x13\0\0\0\0\0\0\0\0\0â\x18\x1cB3\v\x03\x02\x05 \x0e\0
\0\x01\0\x05
\x06\0@\0\0\0\0\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB3\x10t\x04\x13\x05\x01\x05\0\x01\0\0\0\0\x13\0\0\0\x13\0\0\0\x01\0\0\0\0\0â\x18\x1cB3\x13\x1d\x02\x05 \x0e\0
\0\x01\0\x05\x10\x06\0@\0\0\0\0\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB3\x15¶\x04\x13\x05\x01\x05\0\x01\0\0\0\0\x11\0\0\0\x11\0\0\0\0\0\0\0\0\0â\x18\x1cB3\x17Ô\x02\x05 \f\0\b\0\x01\0\x02\x11\x04\0\x13\0A\0\0\0\0\x15\0\0\0\x15\0\0\0\x01\0\0\0\0\0â\x18\x1cB3&š\x02\x05 \x10\0\f\0\x01\0\x03\x11\b\0A\0A\0\x01\0\0\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB3)L\x04\x13\x05\x01\x05\0\x01\0\0\0\0\x15\0\0\0\x15\0\0\0\x01\0\0\0\0\0â\x18\x1cB3+½\x02\x05 \x10\0\f\0\x01\0\x03\x11\b\0A\0A\0\0\0\0\0\0\0\0\x15\0\0\0\x15\0\0\0\0\0\0\0\0\0â\x18\x1cB3.\x1a\x02\x05 \x10\0\f\0\x01\0\x04\x12\b\0A\0\0\0\x01\x02€\x02\0\0\0\x15\0\0\0\x15\0\0\0\x01\0\0\0\0\0â\x18\x1cB30*\x02\x05 \x10\0\f\0\x01\0\x04\v\b\0A\0\0\0\x01\x02È\x05\0\0\0\x13\0\0\0\x13\0\0\0\0\0\0\0\0\0â\x18\x1cB32å\x02\x05 \x0e\0
\0\x01\0\x05\v\x06\0A\0\0\0\0\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB37s\x04\x13\x05\x01\x05\0\x01\0\0\0\0\x13\0\0\0\x13\0\0\0\x01\0\0\0\0\0â\x18\x1cB3;‰\x02\x05 \x0e\0
\0\x01\0\x05\x12\x06\0A\0\0\0\0\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â\x18\x1cB3>[\x04\x13\x05\x01\x05\0\x01\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0â\x18\x1cB4CÚ\x04^[\x03\x05\0\x01\0\0\0\x1a\0\0\0\x1a\0\0\0\x01\0\0\0\0\0â\x18\x1cB4K”\x02\x05 \x15\0\x11\0A\0¡\x01ø€Ž\x7fã‰Ú\0\0\0\0\0\0\0

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Can't connect a Xbox one controller
  2016-08-18 10:11 Can't connect a Xbox one controller Anthony Bourguignon
  2016-08-18 13:56 ` Luiz Augusto von Dentz
@ 2016-08-19 18:02 ` Vinicius Costa Gomes
       [not found]   ` <1471642506.3626.5.camel@toniob.net>
  1 sibling, 1 reply; 15+ messages in thread
From: Vinicius Costa Gomes @ 2016-08-19 18:02 UTC (permalink / raw)
  To: Anthony Bourguignon, linux-bluetooth

Hi Anthony,

Anthony Bourguignon <contact@toniob.net> writes:

> Hi,
>
> I've recently bought a new xbox one controller as the 2016 version has
> bluetooth connectivity.
>
> The controller is pairing and connecting well on a windows 10 computer
> and an android 4.4 tablet. But I can"t make it connect under linux
> (Debian unstable, kernel 4.6 and 4.7-rc7, bluez 5.40 from
> experimental). The pairing is ok but when I try to connect to
> controller, it stays connected for less than one second, then
> disconnects, then connects again and so one until the controller goes
> to sleep, because of the lack of a remote connection.

Can you produce the logs with L2CAP ERTM/Streaming mode disabled,
doing something like this before connecting this should work:

$ echo 1 > /sys/module/bluetooth/parameters/disable_ertm


Cheers,
--
Vinicius

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Can't connect a Xbox one controller
       [not found]   ` <1471642506.3626.5.camel@toniob.net>
@ 2016-08-19 23:34     ` Vinicius Costa Gomes
  2016-08-20 12:54       ` Anthony Bourguignon
  0 siblings, 1 reply; 15+ messages in thread
From: Vinicius Costa Gomes @ 2016-08-19 23:34 UTC (permalink / raw)
  To: Anthony Bourguignon, linux-bluetooth

Hi,

Anthony Bourguignon <contact@toniob.net> writes:

> Le vendredi 19 août 2016 à 15:02 -0300, Vinicius Costa Gomes a écrit :
>> Hi Anthony,
>>
>> Anthony Bourguignon <contact@toniob.net> writes:
>>
>> >
>> > Hi,
>> >
>> > I've recently bought a new xbox one controller as the 2016 version
>> > has
>> > bluetooth connectivity.
>> >
>> > The controller is pairing and connecting well on a windows 10
>> > computer
>> > and an android 4.4 tablet. But I can"t make it connect under linux
>> > (Debian unstable, kernel 4.6 and 4.7-rc7, bluez 5.40 from
>> > experimental). The pairing is ok but when I try to connect to
>> > controller, it stays connected for less than one second, then
>> > disconnects, then connects again and so one until the controller
>> > goes
>> > to sleep, because of the lack of a remote connection.
>>
>> Can you produce the logs with L2CAP ERTM/Streaming mode disabled,
>> doing something like this before connecting this should work:
>>
>> $ echo 1 > /sys/module/bluetooth/parameters/disable_ertm
>
> The connection worked with ertm disabled, the controller is fully
> usable.
>
> Is that normal that we have to disable it ?

No. It could be a bug in the xbox controller. But I need to take a
closer look at the specification to be really sure.

Thinking out loud: this seems too basic a mistake for an end product
(but I wouldn't be too surprised if this is the case), perhaps something
that we are assuming and is incorrect?

But glad that we found a workaround.


Cheers,
--
Vinicius

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Can't connect a Xbox one controller
  2016-08-19 23:34     ` Vinicius Costa Gomes
@ 2016-08-20 12:54       ` Anthony Bourguignon
  2016-08-24 14:02         ` Vinicius Costa Gomes
  0 siblings, 1 reply; 15+ messages in thread
From: Anthony Bourguignon @ 2016-08-20 12:54 UTC (permalink / raw)
  To: Vinicius Costa Gomes, linux-bluetooth

Le vendredi 19 août 2016 à 20:34 -0300, Vinicius Costa Gomes a écrit :
> Hi,
> 
> Anthony Bourguignon <contact@toniob.net> writes:
> 
> > 
> > Le vendredi 19 août 2016 à 15:02 -0300, Vinicius Costa Gomes a
> > écrit :
> > > 
> > > Hi Anthony,
> > > 
> > > Anthony Bourguignon <contact@toniob.net> writes:
> > > 
> > > > 
> > > > 
> > > > Hi,
> > > > 
> > > > I've recently bought a new xbox one controller as the 2016
> > > > version
> > > > has
> > > > bluetooth connectivity.
> > > > 
> > > > The controller is pairing and connecting well on a windows 10
> > > > computer
> > > > and an android 4.4 tablet. But I can"t make it connect under
> > > > linux
> > > > (Debian unstable, kernel 4.6 and 4.7-rc7, bluez 5.40 from
> > > > experimental). The pairing is ok but when I try to connect to
> > > > controller, it stays connected for less than one second, then
> > > > disconnects, then connects again and so one until the
> > > > controller
> > > > goes
> > > > to sleep, because of the lack of a remote connection.
> > > 
> > > Can you produce the logs with L2CAP ERTM/Streaming mode disabled,
> > > doing something like this before connecting this should work:
> > > 
> > > $ echo 1 > /sys/module/bluetooth/parameters/disable_ertm
> > 
> > The connection worked with ertm disabled, the controller is fully
> > usable.
> > 
> > Is that normal that we have to disable it ?
> 
> No. It could be a bug in the xbox controller. But I need to take a
> closer look at the specification to be really sure.

Can I be of any help ?

Thanks a lot again

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Can't connect a Xbox one controller
  2016-08-20 12:54       ` Anthony Bourguignon
@ 2016-08-24 14:02         ` Vinicius Costa Gomes
  2017-11-09 13:49           ` Bastien Nocera
  0 siblings, 1 reply; 15+ messages in thread
From: Vinicius Costa Gomes @ 2016-08-24 14:02 UTC (permalink / raw)
  To: Anthony Bourguignon, linux-bluetooth

[-- Attachment #1: Type: text/plain, Size: 816 bytes --]

Hi,

Anthony Bourguignon <contact@toniob.net> writes:
>>
>> No. It could be a bug in the xbox controller. But I need to take a
>> closer look at the specification to be really sure.
>
> Can I be of any help ?

Attached is a patch that disables negotiating Flow Control and
Retransmission parameters for the SDP channel only. This is a shot in
the dark, as I could find nothing in the specification that advises
against the current BlueZ behaviour.

Could you give it a try? (but I don't have high hopes for it)

This is looking more like a bug in the controller.

>
> Thanks a lot again
> --
> To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

Cheers,
--
Vinicius


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: disable ertm for SDP --]
[-- Type: text/x-patch, Size: 408 bytes --]

diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
index 54ceb1f..aa078b9 100644
--- a/net/bluetooth/l2cap_core.c
+++ b/net/bluetooth/l2cap_core.c
@@ -3216,6 +3216,9 @@ done:
 		if (disable_ertm)
 			break;
 
+		if (chan->psm == cpu_to_le16(L2CAP_PSM_SDP))
+			break;
+
 		if (!(chan->conn->feat_mask & L2CAP_FEAT_ERTM) &&
 		    !(chan->conn->feat_mask & L2CAP_FEAT_STREAMING))
 			break;

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: Can't connect a Xbox one controller
  2016-08-24 14:02         ` Vinicius Costa Gomes
@ 2017-11-09 13:49           ` Bastien Nocera
  2017-11-09 14:28             ` Bastien Nocera
  0 siblings, 1 reply; 15+ messages in thread
From: Bastien Nocera @ 2017-11-09 13:49 UTC (permalink / raw)
  To: Vinicius Costa Gomes, Anthony Bourguignon, linux-bluetooth

On Wed, 2016-08-24 at 11:02 -0300, Vinicius Costa Gomes wrote:
> Hi,
> 
> Anthony Bourguignon <contact@toniob.net> writes:
> > > 
> > > No. It could be a bug in the xbox controller. But I need to take
> > > a
> > > closer look at the specification to be really sure.
> > 
> > Can I be of any help ?
> 
> Attached is a patch that disables negotiating Flow Control and
> Retransmission parameters for the SDP channel only. This is a shot in
> the dark, as I could find nothing in the specification that advises
> against the current BlueZ behaviour.
> 
> Could you give it a try? (but I don't have high hopes for it)
> 
> This is looking more like a bug in the controller.

Hi,

It's getting hit during pairing, but this isn't enough to get it
working.

I also combined it with vudentz' patch in the "Continuing the Xbox One
Bluetooth controller debugging" thread (called "Bluetooth: L2CAP:
Ignore Unknown option error for basic mode") and that wasn't enough to
get it working either.

I think that the fix would be to not try and upgrade the connection to
ERTM at all on this device, but I don't know how I could pass this
information down the stack to the l2cap code. Any ideas?

Cheers

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Can't connect a Xbox one controller
  2017-11-09 13:49           ` Bastien Nocera
@ 2017-11-09 14:28             ` Bastien Nocera
  2017-11-09 15:11               ` Bastien Nocera
  0 siblings, 1 reply; 15+ messages in thread
From: Bastien Nocera @ 2017-11-09 14:28 UTC (permalink / raw)
  To: Vinicius Costa Gomes, Anthony Bourguignon, linux-bluetooth

[-- Attachment #1: Type: text/plain, Size: 1374 bytes --]

On Thu, 2017-11-09 at 14:49 +0100, Bastien Nocera wrote:
> On Wed, 2016-08-24 at 11:02 -0300, Vinicius Costa Gomes wrote:
> > Hi,
> > 
> > Anthony Bourguignon <contact@toniob.net> writes:
> > > > 
> > > > No. It could be a bug in the xbox controller. But I need to
> > > > take
> > > > a
> > > > closer look at the specification to be really sure.
> > > 
> > > Can I be of any help ?
> > 
> > Attached is a patch that disables negotiating Flow Control and
> > Retransmission parameters for the SDP channel only. This is a shot
> > in
> > the dark, as I could find nothing in the specification that advises
> > against the current BlueZ behaviour.
> > 
> > Could you give it a try? (but I don't have high hopes for it)
> > 
> > This is looking more like a bug in the controller.
> 
> Hi,
> 
> It's getting hit during pairing, but this isn't enough to get it
> working.
> 
> I also combined it with vudentz' patch in the "Continuing the Xbox
> One
> Bluetooth controller debugging" thread (called "Bluetooth: L2CAP:
> Ignore Unknown option error for basic mode") and that wasn't enough
> to
> get it working either.
> 
> I think that the fix would be to not try and upgrade the connection
> to
> ERTM at all on this device, but I don't know how I could pass this
> information down the stack to the l2cap code. Any ideas?

Here's the btmon output of a pairing attempt.

Cheers

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: trace.log --]
[-- Type: text/x-log; name="trace.log"; charset="UTF-8", Size: 9694 bytes --]

btsnoop\0\0\0\0\x01\0\0\aÑ\0\0\0;\0\0\0;ÿÿ\0\f\0\0\0\0\0â;@¦\x1fôbLinux version 4.14.0-0.rc8.git1.1.bt2.fc28.x86_64 (x86_64)\0\0\0\0!\0\0\0!ÿÿ\0\f\0\0\0\0\0â;@¦\x1fôeBluetooth subsystem version 2.22\0\0\0\0\x10\0\0\0\x10\0\0\0\0\0\0\0\0\0â;@¦\x1fôf\0\x01ø«\x1e\0…Dhci0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0â;@¦\x1fôg\0\0\0\b\0\0\0\b\0\0\0
\0\0\0\0\0â;@¦\x1fôgø«\x1e\0…D\x02\0\0\0\0\x1e\0\0\0\x1eÿÿ\0\x0e\0\0\0\0\0â;@¦\x1fôh\x02\0\0\0\x02\0\x01\x0e\0\x01\0\0\0\x10memcheck-amd64-\0\0\0\0\x1e\0\0\0\x1eÿÿ\0\x0e\0\0\0\0\0â;@¦\x1fôj\x01\0\0\0\x02\0\x01\x0e\0\x01\0\0\0\x10memcheck-amd64-\0\0\0\0\x1e\0\0\0\x1eÿÿ\0\x0e\0\0\0\0\0â;@¦\x1fôÔ\x03\0\0\0\x02\0\x01\x0e\0\x01\0\0\0\x10btmon\0\0\0\0\0\0\0\0\0\0\0\0\0\0A\0\0\0Aÿÿ\0\r\0\0\0\0\0â;@¦=
"\a\vbluetoothd\0src/device.c:btd_device_set_temporary() temporary 0\0\0\0\06\0\0\06ÿÿ\0\r\0\0\0\0\0â;@¦=\x1e4\a\vbluetoothd\0src/agent.c:agent_ref() 0x85db170: ref=2\0\0\0\0Y\0\0\0Yÿÿ\0\r\0\0\0\0\0â;@¦="v\a\vbluetoothd\0src/device.c:bonding_request_new() Requesting bonding for C8:3F:26:80:BA:71\0\0\0\06\0\0\06ÿÿ\0\r\0\0\0\0\0â;@¦='\x12\a\vbluetoothd\0src/agent.c:agent_ref() 0x85db170: ref=3\0\0\0\08\0\0\08ÿÿ\0\r\0\0\0\0\0â;@¦=*\x17\a\vbluetoothd\0src/agent.c:agent_unref() 0x85db170: ref=2\0\0\0\00\0\0\00ÿÿ\0\r\0\0\0\0\0â;@¦=/>\a\vbluetoothd\0src/adapter.c:suspend_discovery() \0\0\0\0f\0\0\0fÿÿ\0\r\0\0\0\0\0â;@¦=2þ\a\vbluetoothd\0src/adapter.c:adapter_bonding_attempt() hci0 bdaddr C8:3F:26:80:BA:71 type 0 io_cap 0x04\0\0\0\0\x0e\0\0\0\x0e\0\0\0\x10\0\0\0\0\0â;@¦=;{\x01\0\0\03\0qº€&?È\0\x01\0\0\0\x0e\0\0\0\x0e\0\0\0\x11\0\0\0\0\0â;@¦=;¶\x03\0\0\0\x1a\0qº€&?È\0\x01\0\0\0\x0e\0\0\0\x0e\0\0\0\x11\0\0\0\0\0â;@¦=;¶\x02\0\0\0\x1a\0qº€&?È\0\x01\0\0\0\x10\0\0\0\x10\0\0\0\x11\0\0\0\0\0â;@¦=;Ô\x01\0\0\0\x01\03\0\0qº€&?È\0\0\0\0`\0\0\0`ÿÿ\0\r\0\0\0\0\0â;@¦=B1\a\vbluetoothd\0src/adapter.c:add_whitelist_complete() C8:3F:26:80:BA:71 added to kernel whitelist\0\0\0\0\x0e\0\0\0\x0e\0\0\0\x10\0\0\0\0\0â;@¦=Dâ\x01\0\0\0\x19\0qº€&?È\0\x04\0\0\0\x10\0\0\0\x10\0\0\0\x02\0\0\0\0\0â;@¦=EK\x05\x04\rqº€&?È\x18Ì\x02\0\0\0\x01\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0â;@¦=G‰\x0f\x04\0\x01\x05\x04\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0â;@¦TBÅÿ\x04&\0\x01\x01\0\0\0\r\0\0\0\r\0\0\0\x03\0\0\0\0\0â;@¦TNv\x03\v\0\0\x01qº€&?È\x01\0\0\0\0\x05\0\0\0\x05\0\0\0\x02\0\0\0\0\0â;@¦TOæ^[\x04\x02\0\x01\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0â;@¦TUô\x0f\x04\0\x01^[\x04\0\0\0\x05\0\0\0\x05\0\0\0\x03\0\0\0\0\0â;@¦Ti›^[\x03\0\x01\x05\0\0\0\r\0\0\0\r\0\0\0\x03\0\0\0\0\0â;@¦Ty!\v\v\0\0\x01¿>þÛý{‡\0\0\0\x06\0\0\0\x06\0\0\0\x02\0\0\0\0\0â;@¦TyŽ\x1c\x04\x03\0\x01\x01\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0â;@¦T}\x0e\x0f\x04\0\x01\x1c\x04\0\0\0\x0f\0\0\0\x0f\0\0\0\x03\0\0\0\0\0â;@¦T”j#\r\0\0\x01\x01\x03\x01\0\0\0\0\0\0\0\0\0\0\r\0\0\0\r\0\0\0\x02\0\0\0\0\0â;@¦T”Ê\x19\x04
qº€&?È\x02\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0â;@¦T˜B\x0f\x04\0\x01\x19\x04\0\0\x01\x01\0\0\x01\x01\0\0\0\x03\0\0\0\0\0â;@¦U0ì\aÿ\0qº€&?ÈXbox Wireless Controller\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\02\0\0\02\0\0\0\x11\0\0\0\0\0â;@¦U1-\x03\0\0\0\v\0qº€&?È\0\0\0\0\0\x1f\0\x19	Xbox Wireless Controller\x04\r\b\x05\0\0\0\02\0\0\02\0\0\0\x11\0\0\0\0\0â;@¦U1-\x02\0\0\0\v\0qº€&?È\0\0\0\0\0\x1f\0\x19	Xbox Wireless Controller\x04\r\b\x05\0\0\0\02\0\0\02\0\0\0\x11\0\0\0\0\0â;@¦U1-\x01\0\0\0\v\0qº€&?È\0\0\0\0\0\x1f\0\x19	Xbox Wireless Controller\x04\r\b\x05\0\0\0\0\x05\0\0\0\x05\0\0\0\x02\0\0\0\0\0â;@¦U1R\x11\x04\x02\0\x01\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0â;@¦U4\x0f\x04\0\x01\x11\x04\0\0\0c\0\0\0cÿÿ\0\r\0\0\0\0\0â;@¦U7{\a\vbluetoothd\0src/adapter.c:connected_callback() hci0 device C8:3F:26:80:BA:71 connected eir_len 31\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â;@¦U8v\x17\x06qº€&?È\0\0\0	\0\0\0	\0\0\0\x02\0\0\0\0\0â;@¦U8£\f\x04\x06qº€&?È\0\0\0\f\0\0\0\f\0\0\0\x03\0\0\0\0\0â;@¦U<a\x0e
\x01\f\x04\0qº€&?È\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â;@¦U@?1\x06qº€&?È\0\0\0\f\0\0\0\f\0\0\0\x02\0\0\0\0\0â;@¦U@a+\x04	qº€&?È\x01\0\x03\0\0\0\f\0\0\0\f\0\0\0\x03\0\0\0\0\0â;@¦UD3\x0e
\x01+\x04\0qº€&?È\0\0\0\v\0\0\0\v\0\0\0\x03\0\0\0\0\0â;@¦UÐ×2	qº€&?È\x03\0\x04\0\0\0\f\0\0\0\f\0\0\0\x03\0\0\0\0\0â;@¦YzÃ3
qº€&?Èõ\x1a\x06\0\0\0\0	\0\0\0	\0\0\0\x02\0\0\0\0\0â;@¦Y{,\x04\x06qº€&?È\0\0\0\f\0\0\0\f\0\0\0\x03\0\0\0\0\0â;@¦Y~J\x0e
\x01,\x04\0qº€&?È\0\0\0	\0\0\0	\0\0\0\x03\0\0\0\0\0â;@¦_\b—6\a\0qº€&?È\0\0\0\x19\0\0\0\x19\0\0\0\x03\0\0\0\0\0â;@¦_ËÖ\x18\x17qº€&?È\x1fJ]–\\x06óã\x0f·‹ø#\x1em’\x04\0\0\0 \0\0\0 \0\0\0\x11\0\0\0\0\0â;@¦_Ì\x19\x03\0\0\0	\0\x01qº€&?È\0\x04\x1fJ]–\\x06óã\x0f·‹ø#\x1em’\0\0\0\0 \0\0\0 \0\0\0\x11\0\0\0\0\0â;@¦_Ì\x19\x02\0\0\0	\0\x01qº€&?È\0\x04\x1fJ]–\\x06óã\x0f·‹ø#\x1em’\0\0\0\0 \0\0\0 \0\0\0\x11\0\0\0\0\0â;@¦_Ì\x19\x01\0\0\0	\0\x01qº€&?È\0\x04\x1fJ]–\\x06óã\x0f·‹ø#\x1em’\0\0\0\0\x05\0\0\0\x05\0\0\0\x03\0\0\0\0\0â;@¦_Ïg\x06\x03\0\0\x01\0\0\0\x06\0\0\0\x06\0\0\0\x02\0\0\0\0\0â;@¦_Ï›\x13\x04\x03\0\x01\x01\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0â;@¦_ÓI\x0f\x04\0\x01\x13\x04\0\0\0t\0\0\0tÿÿ\0\r\0\0\0\0\0â;@¦_Ó¼\a\vbluetoothd\0src/adapter.c:new_link_key_callback() hci0 new key for C8:3F:26:80:BA:71 type 4 pin_len 0 store_hint 1\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0â;@¦`%X\b\x04\0\0\x01\x01\0\0\0\x05\0\0\0\x05\0\0\0\x02\0\0\0\0\0â;@¦`%˜\b\x14\x02\0\x01\0\0\0/\0\0\0/ÿÿ\0\r\0\0\0\0\0â;@¦`'ã\a\vbluetoothd\0src/device.c:device_set_bonded() \0\0\0\0	\0\0\0	\0\0\0\x03\0\0\0\0\0â;@¦`)7\x0e\a\x01\b\x14\0\0\x01\x10\0\0\0\x10\0\0\0\x10\0\0\0\x11\0\0\0\0\0â;@¦`)|\x01\0\0\0\x01\0\x19\0\0qº€&?È\0\0\0\0\x0e\0\0\0\x0e\0\0\0\x04\0\0\0\0\0â;@¦`)ˆ\0\x01
\0\x06\0\x01\0
\x01\x02\0\x02\0\0\0\0R\0\0\0Rÿÿ\0\r\0\0\0\0\0â;@¦`-&\a\vbluetoothd\0src/device.c:device_bonding_complete() bonding 0x8db8c90 status 0x00\0\0\0\0V\0\0\0Vÿÿ\0\r\0\0\0\0\0â;@¦`1?\a\vbluetoothd\0src/device.c:device_bonding_complete() Proceeding with service discovery\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â;@¦`4ë\x13\x05\x01\0\x01\x01\0\0\0\08\0\0\08ÿÿ\0\r\0\0\0\0\0â;@¦`M6\a\vbluetoothd\0src/agent.c:agent_unref() 0x85db170: ref=1\0\0\0\0/\0\0\0/ÿÿ\0\r\0\0\0\0\0â;@¦`Oû\a\vbluetoothd\0src/adapter.c:resume_discovery() \0\0\0\0A\0\0\0Aÿÿ\0\r\0\0\0\0\0â;@¦`U6\a\vbluetoothd\0src/adapter.c:pair_device_complete() Success (0x00)\0\0\0\0f\0\0\0fÿÿ\0\r\0\0\0\0\0â;@¦`Y¢\a\vbluetoothd\0src/adapter.c:bonding_attempt_complete() hci0 bdaddr C8:3F:26:80:BA:71 type 0 status 0x0\0\0\0\0N\0\0\0Nÿÿ\0\r\0\0\0\0\0â;@¦`_;\a\vbluetoothd\0src/device.c:device_bonding_complete() bonding (nil) status 0x00\0\0\0\0/\0\0\0/ÿÿ\0\r\0\0\0\0\0â;@¦``¥\a\vbluetoothd\0src/adapter.c:resume_discovery() \0\0\0\0\x14\0\0\0\x14\0\0\0\x05\0\0\0\0\0â;@¦`–÷\0!\x10\0\f\0\x01\0\v\x01\b\0\x02\0\0\0\x10\0\0\0\0\0\0\x10\0\0\0\x10\0\0\0\x04\0\0\0\0\0â;@¦`—<\0\x01\f\0\b\0\x01\0\x02\x02\x04\0\x01\0@\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â;@¦`ÑŽ\x13\x05\x01\0\x01\x01\0\0\0\0\x14\0\0\0\x14\0\0\0\x05\0\0\0\0\0â;@¦ažå\0!\x10\0\f\0\x01\0\x03\x02\b\0@\0@\0\0\0\0\0\0\0\0\x10\0\0\0\x10\0\0\0\x04\0\0\0\0\0â;@¦aŸY\0\x01\f\0\b\0\x01\0\x04\x03\x04\0@\0\0\0\0\0\0\x14\0\0\0\x14\0\0\0\x05\0\0\0\0\0â;@¦a£u\0!\x10\0\f\0\x01\0\x04\x01\b\0@\0\0\0\x01\x02È\x05\0\0\0\x16\0\0\0\x16\0\0\0\x04\0\0\0\0\0â;@¦a£Ð\0\x01\x12\0\x0e\0\x01\0\x05\x01
\0@\0\0\0\0\0\x01\x02È\x05\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â;@¦a¬\x14\x13\x05\x01\0\x01\x01\0\0\0\0\x12\0\0\0\x12\0\0\0\x05\0\0\0\0\0â;@¦a±\x1e\0!\x0e\0
\0\x01\0\x05\x03\x06\0@\0\0\0\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â;@¦a³Ï\x13\x05\x01\0\x01\x01\0\0\0\0\x1c\0\0\0\x1c\0\0\0\x04\0\0\0\0\0â;@¦añi\0\x01\x18\0\x14\0@\0\x06\0\0\0\x0f5\x03\x19\x01\0ÿÿ5\x05
\0\0ÿÿ\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â;@¦aú1\x13\x05\x01\0\x01\x01\0\0\0\0ˆ\0\0\0ˆ\0\0\0\x05\0\0\0\0\0â;@¦b\x06\x1a\0!„\0€\0@\0\a\0\0\0{\0w6\x02¾5‚	\0\0
\0\x01\0\0	\0\x015\x03\x19\x12\0	\0\x02
\0\0\x03\x04	\0\x045\r5\x06\x19\x01\0	\0\x015\x03\x19\0\x01	\0\x055\x03\x19\x10\x02	\0\x065		en	\0j	\x01\0	\0	5\b5\x06\x19\x12\0	\x01\0	\x01\0%\x01\0	\x01\x01%\x01\0	\x01\x02%\x01\0	\x02\0	\x01\x03	\x02\x01	\x04^	\x02\x02	\x02à	\x01\x01\0\0\0\x1d\0\0\0\x1d\0\0\0\x04\0\0\0\0\0â;@¦b^[Û\0\x01\x19\0\x15\0@\0\x06\0\x01\0\x105\x03\x19\x01\0ÿÿ5\x05
\0\0ÿÿ\x01\x01\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â;@¦bg¿\x13\x05\x01\0\x01\x01\0\0\0\0ˆ\0\0\0ˆ\0\0\0\x05\0\0\0\0\0â;@¦bŽ˜\0!„\0€\0@\0\a\0\x01\0{\0w\x02\x03		\x03	\x02\x04(\x01	\x02\x05	\0\x026\x027	\0\0
\0\x01\0\x01	\0\x015\x03\x19\x11$	\0\x02
\0\0\x03\x12	\0\x045\r5\x06\x19\x01\0	\0\x115\x03\x19\0\x11	\0\x055\x03\x19\x10\x02	\0\x065		en	\0j	\x01\0	\0	5\b5\x06\x19\x11$	\x01\0	\0\r5\x0f5\r5\x06\x19\x01\0	\0\x135\x03\x19\0\x11	\x01\0\x01\x02\0\0\0\x1d\0\0\0\x1d\0\0\0\x04\0\0\0\0\0â;@¦b’ä\0\x01\x19\0\x15\0@\0\x06\0\x02\0\x105\x03\x19\x01\0ÿÿ5\x05
\0\0ÿÿ\x01\x02\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â;@¦b¢\x10\x13\x05\x01\0\x01\x01\0\0\0\0ˆ\0\0\0ˆ\0\0\0\x05\0\0\0\0\0â;@¦b¦×\0!„\0€\0@\0\a\0\x02\0{\0w%\x17Xbox Bluetooth Gamepad\0	\x01\x01%\bGamepad\0	\x01\x02%\x16Microsoft Corporation\0	\x02\0	\x01\0	\x02\x01	\x01\x11	\x02\x02\b@	\x02\x03\b!	\x02\x04(\x01	\x02\x05(\x01	\x02\x066\x01:6\x017\b"&\x012\x05\x01	\x05¡\x01…\x01\x01\x03\0\0\0\x1d\0\0\0\x1d\0\0\0\x04\0\0\0\0\0â;@¦b­Þ\0\x01\x19\0\x15\0@\0\x06\0\x03\0\x105\x03\x19\x01\0ÿÿ5\x05
\0\0ÿÿ\x01\x03\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â;@¦b¹›\x13\x05\x01\0\x01\x01\0\0\0\0ˆ\0\0\0ˆ\0\0\0\x05\0\0\0\0\0â;@¦b¿j\0!„\0€\0@\0\a\0\x03\0{\0w	\x01¡\0	0	1\x15\0'ÿÿ\0\0•\x02u\x10\x02À	\x01¡\0	3	4\x15\0'ÿÿ\0\0•\x02u\x10\x02À\x05\x01	2\x15\0&ÿ\x03•\x01u
\x02\x15\0%\0u\x06•\x01\x03\x05\x01	5\x15\0&ÿ\x03•\x01u
\x02\x15\0%\0u\x06•\x01\x03\x05\x01	9\x15\x01%\b5\0F;\x01f\x14\0u\x04•\x01Bu\x04•\x01\x04\0\0\0\x1d\0\0\0\x1d\0\0\0\x04\0\0\0\0\0â;@¦b¡\0\x01\x19\0\x15\0@\0\x06\0\x04\0\x105\x03\x19\x01\0ÿÿ5\x05
\0\0ÿÿ\x01\x04\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â;@¦bÑ8\x13\x05\x01\0\x01\x01\0\0\0\0ˆ\0\0\0ˆ\0\0\0\x05\0\0\0\0\0â;@¦b×ó\0!„\0€\0@\0\a\0\x04\0{\0w\x01\x15\0%\05\0E\0e\0\x03\x05	\x19\x01)
\x15\0%\x01u\x01•
\x02\x15\0%\0u\x06•\x01\x03\x05\x01	€…\x02¡\0	…\x15\0%\x01•\x01u\x01\x02\x15\0%\0u\a•\x01\x03À\x05\x0f	!…\x03¡\x02	—\x15\0%\x01u\x04•\x01‘\x02\x15\0%\0u\x04•\x01‘\x03	p\x15\0%du\b•\x04‘\x02	Pf\x01\x10U\x0e\x01\x05\0\0\0\x1d\0\0\0\x1d\0\0\0\x04\0\0\0\0\0â;@¦bÛƒ\0\x01\x19\0\x15\0@\0\x06\0\x05\0\x105\x03\x19\x01\0ÿÿ5\x05
\0\0ÿÿ\x01\x05\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â;@¦bìŽ\x13\x05\x01\0\x01\x01\0\0\0\0~\0\0\0~\0\0\0\x05\0\0\0\0\0â;@¦bð\v\0!z\0v\0@\0\a\0\x05\0q\0n\x15\0&ÿ\0u\b•\x01‘\x02	§\x15\0&ÿ\0u\b•\x01‘\x02e\0U\0	|\x15\0&ÿ\0u\b•\x01‘\x02À…\x04\x05\x06	 \x15\0&ÿ\0u\b•\x01\x02À	\x02\a5\b5\x06	\x04		\x01\0	\x02\b(\0	\x02	(\x01	\x02
(\0	\x02\v	\x01\0	\x02\f	\f€	\x02\r(\x01	\x02\x0e(\0\0\0\0\0\x1c\0\0\0\x1c\0\0\0\x04\0\0\0\0\0â;@¦cè_\0\x01\x18\0\x14\0@\0\x06\0\x06\0\x0f5\x03\x19\x12\0ÿÿ5\x05
\0\0ÿÿ\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â;@¦d_f\x13\x05\x01\0\x01\x01\0\0\0\0ˆ\0\0\0ˆ\0\0\0\x05\0\0\0\0\0â;@¦d±\0!„\0€\0@\0\a\0\x06\0{\0w5„5‚	\0\0
\0\x01\0\0	\0\x015\x03\x19\x12\0	\0\x02
\0\0\x03\x04	\0\x045\r5\x06\x19\x01\0	\0\x015\x03\x19\0\x01	\0\x055\x03\x19\x10\x02	\0\x065		en	\0j	\x01\0	\0	5\b5\x06\x19\x12\0	\x01\0	\x01\0%\x01\0	\x01\x01%\x01\0	\x01\x02%\x01\0	\x02\0	\x01\x03	\x02\x01	\x04^	\x02\x02	\x02à	\x02\x01\x06\0\0\0\x1d\0\0\0\x1d\0\0\0\x04\0\0\0\0\0â;@¦dµ[\0\x01\x19\0\x15\0@\0\x06\0\a\0\x105\x03\x19\x12\0ÿÿ5\x05
\0\0ÿÿ\x01\x06\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â;@¦dÅB\x13\x05\x01\0\x01\x01\0\0\0\0\x1f\0\0\0\x1f\0\0\0\x05\0\0\0\0\0â;@¦dÇé\0!^[\0\x17\0@\0\a\0\a\0\x12\0\x0f\x03		\x03	\x02\x04(\x01	\x02\x05	\0\x02\0\0\0\0`\0\0\0`ÿÿ\0\r\0\0\0\0\0â;@¦e,5\a\vbluetoothd\0src/device.c:device_probe_profiles() Probing profiles for device C8:3F:26:80:BA:71\0\0\0\0c\0\0\0cÿÿ\0\r\0\0\0\0\0â;@¦e2u\a\vbluetoothd\0profiles/input/device.c:input_device_register() /org/bluez/hci0/dev_C8_3F_26_80_BA_71\0\0\0\0>\0\0\0>ÿÿ\0\r\0\0\0\0\0â;@¦e4|\a\vbluetoothd\0src/service.c:btd_service_ref() 0x8e88a50: ref=2\0\0\0\0\0\0\0ÿÿ\0\r\0\0\0\0\0â;@¦e6å\a\vbluetoothd\0src/service.c:change_state() 0x8e88a50: device C8:3F:26:80:BA:71 profile input-hid state changed: unavailable -> disconnected (0)\0\0\0\0\\0\0\0\ÿÿ\0\r\0\0\0\0\0â;@¦eDO\a\vbluetoothd\0src/device.c:device_svc_resolved() /org/bluez/hci0/dev_C8_3F_26_80_BA_71 err 0\0\0\0\0\x10\0\0\0\x10\0\0\0\x04\0\0\0\0\0â;@¦Ž´\x13\0\x01\f\0\b\0\x01\0\x06\x04\x04\0@\0@\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â;@¦Ž¿\\x13\x05\x01\0\x01\x01\0\0\0\0\x10\0\0\0\x10\0\0\0\x05\0\0\0\0\0â;@¦ŽÃ7\0!\f\0\b\0\x01\0\a\x04\x04\0@\0@\0\0\0\0\x06\0\0\0\x06\0\0\0\x02\0\0\0\0\0â;@¦­XË\x06\x04\x03\0\x01\x13\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0â;@¦­_>\x0f\x04\0\x01\x06\x04\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0â;@¦®ÆB\x05\x04\0\0\x01\x16\0\0\0\x0e\0\0\0\x0e\0\0\0\x11\0\0\0\0\0â;@¦®Æ‰\x03\0\0\0\f\0qº€&?È\0\x02\0\0\0\x0e\0\0\0\x0e\0\0\0\x11\0\0\0\0\0â;@¦®Æ‰\x02\0\0\0\f\0qº€&?È\0\x02\0\0\0\x0e\0\0\0\x0e\0\0\0\x11\0\0\0\0\0â;@¦®Æ‰\x01\0\0\0\f\0qº€&?È\0\x02\0\0\0\r\0\0\0\r\0\0\0\x11\0\0\0\0\0â;@¦®Æ§\x03\0\0\0\x16\0qº€&?È\0\0\0\0\r\0\0\0\r\0\0\0\x11\0\0\0\0\0â;@¦®Æ§\x02\0\0\0\x16\0qº€&?È\0\0\0\0\r\0\0\0\r\0\0\0\x11\0\0\0\0\0â;@¦®Æ§\x01\0\0\0\x16\0qº€&?È\0\0\0\0\x10\0\0\0\x10\0\0\0\x11\0\0\0\0\0â;@¦®Æºÿÿÿÿ\x01\0^[\0\0qº€&?È\0\0\0\0^\0\0\0^ÿÿ\0\r\0\0\0\0\0â;@¦®Íþ\a\vbluetoothd\0src/adapter.c:dev_disconnected() Device C8:3F:26:80:BA:71 disconnected, reason 2\0\0\0\08\0\0\08ÿÿ\0\r\0\0\0\0\0â;@¦®ÓÂ\a\vbluetoothd\0src/adapter.c:adapter_remove_connection() \0\0\0\07\0\0\07ÿÿ\0\r\0\0\0\0\0â;@¦®äÒ\a\vbluetoothd\0plugins/policy.c:disconnect_cb() reason 2\0\0\0\0f\0\0\0fÿÿ\0\r\0\0\0\0\0â;@¦®éa\a\vbluetoothd\0src/adapter.c:bonding_attempt_complete() hci0 bdaddr C8:3F:26:80:BA:71 type 0 status 0xe\0\0\0\0N\0\0\0Nÿÿ\0\r\0\0\0\0\0â;@¦®ï\x13\a\vbluetoothd\0src/device.c:device_bonding_complete() bonding (nil) status 0x0e\0\0\0\0<\0\0\0<ÿÿ\0\r\0\0\0\0\0â;@¦®÷Q\a\vbluetoothd\0src/device.c:device_bonding_failed() status 14\0\0\0\0/\0\0\0/ÿÿ\0\r\0\0\0\0\0â;@¦®ú+\a\vbluetoothd\0src/adapter.c:resume_discovery() \0\0\0\0K\0\0\0Kÿÿ\0\r\0\0\0\0\0â;@¦¯\0‹\a\vbluetoothd\0src/adapter.c:unpaired_callback() hci0 addr C8:3F:26:80:BA:71\0\0\0\0A\0\0\0Aÿÿ\0\r\0\0\0\0\0â;@¦¯Yç\a\vbluetoothd\0src/device.c:btd_device_set_temporary() temporary 1\0\0\0\0`\0\0\0`ÿÿ\0\r\0\0\0\0\0â;@¦¯dÆ\a\vbluetoothd\0src/device.c:device_remove() Removing device /org/bluez/hci0/dev_C8_3F_26_80_BA_71\0\0\0\0\0\0\0ÿÿ\0\r\0\0\0\0\0â;@¦¯i®\a\vbluetoothd\0src/service.c:change_state() 0x8e88a50: device C8:3F:26:80:BA:71 profile input-hid state changed: disconnected -> unavailable (0)\0\0\0\0e\0\0\0eÿÿ\0\r\0\0\0\0\0â;@¦¯n­\a\vbluetoothd\0profiles/input/device.c:input_device_unregister() /org/bluez/hci0/dev_C8_3F_26_80_BA_71\0\0\0\0@\0\0\0@ÿÿ\0\r\0\0\0\0\0â;@¦¯ws\a\vbluetoothd\0src/service.c:btd_service_unref() 0x8e88a50: ref=1\0\0\0\0@\0\0\0@ÿÿ\0\r\0\0\0\0\0â;@¦¯|\x04\a\vbluetoothd\0src/service.c:btd_service_unref() 0x8e88a50: ref=0\0\0\0\0b\0\0\0bÿÿ\0\r\0\0\0\0\0â;@¦¯¾í\a\vbluetoothd\0src/device.c:btd_device_unref() Freeing device /org/bluez/hci0/dev_C8_3F_26_80_BA_71\0\0\0\02\0\0\02ÿÿ\0\r\0\0\0\0\0â;@¦¯é˜\a\vbluetoothd\0src/device.c:device_free() 0x8d4c8e0\0\0\0\0\r\0\0\0\r\0\0\0\x10\0\0\0\0\0â;@¦¯úÖ\x01\0\0\04\0qº€&?È\0\0\0\0\r\0\0\0\r\0\0\0\x11\0\0\0\0\0â;@¦¯úç\x03\0\0\0^[\0qº€&?È\0\0\0\0\r\0\0\0\r\0\0\0\x11\0\0\0\0\0â;@¦¯úç\x02\0\0\0^[\0qº€&?È\0\0\0\0\x10\0\0\0\x10\0\0\0\x11\0\0\0\0\0â;@¦¯úï\x01\0\0\0\x01\04\0\0qº€&?È\0\0\0\0g\0\0\0gÿÿ\0\r\0\0\0\0\0â;@¦°\0	\a\vbluetoothd\0src/adapter.c:remove_whitelist_complete() C8:3F:26:80:BA:71 removed from kernel whitelist\0\0\0\0\x0e\0\0\0\x0e\0\0\0\x10\0\0\0\0\0â;@¦°\x01f\x01\0\0\0^[\0qº€&?È\0\x01\0\0\0\x10\0\0\0\x10\0\0\0\x11\0\0\0\0\0â;@¦°\x01q\x01\0\0\0\x01\0^[\0\0qº€&?È\0\0\0\0\r\0\0\0\r\0\0\0\x11\0\0\0\0\0â;@¦°\x01t\x03\0\0\0\x16\0qº€&?È\0\0\0\0\r\0\0\0\r\0\0\0\x11\0\0\0\0\0â;@¦°\x01t\x02\0\0\0\x16\0qº€&?È\0

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Can't connect a Xbox one controller
  2017-11-09 14:28             ` Bastien Nocera
@ 2017-11-09 15:11               ` Bastien Nocera
  2017-11-13 10:04                 ` Bastien Nocera
  0 siblings, 1 reply; 15+ messages in thread
From: Bastien Nocera @ 2017-11-09 15:11 UTC (permalink / raw)
  To: Vinicius Costa Gomes, Anthony Bourguignon, linux-bluetooth

[-- Attachment #1: Type: text/plain, Size: 1334 bytes --]

On Thu, 2017-11-09 at 15:28 +0100, Bastien Nocera wrote:
> 
<snip>
> Here's the btmon output of a pairing attempt.

And this is a pairing attempt with disable_ertm set to 1.

You will see a gap of about a minute between 2 events:
@ MGMT Event: Device Disconnected (0x000c) plen 8                                                                                                                                        {0x0001} [hci0] 12.103542
        BR/EDR Address: C8:3F:26:80:BA:71 (Microsoft Corporation)
        Reason: Connection terminated by local host (0x02)
> HCI Event: Connect Request (0x04) plen 10                                                                                                                                                   #77 [hci0] 81.172351
        Address: C8:3F:26:80:BA:71 (Microsoft Corporation)
        Class: 0x000508
          Major class: Peripheral (mouse, joystick, keyboards)
          Minor class: 0x02
        Link type: ACL (0x01)

The pad carried on blinking expecting "something". I turned the pad off
by long pressing on the "XBox" button, and turned it on again. I got a
service authentication request:
[CHG] Device C8:3F:26:80:BA:71 Connected: yes
Authorize service
[agent] Authorize service 00001124-0000-1000-8000-00805f9b34fb (yes/no): yes

And it's now connected and working.

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: trace.log --]
[-- Type: text/x-log; name="trace.log"; charset="UTF-8", Size: 12231 bytes --]

btsnoop\0\0\0\0\x01\0\0\aÑ\0\0\0;\0\0\0;ÿÿ\0\f\0\0\0\0\0â;A3È-ÑLinux version 4.14.0-0.rc8.git1.1.bt2.fc28.x86_64 (x86_64)\0\0\0\0!\0\0\0!ÿÿ\0\f\0\0\0\0\0â;A3È-ÖBluetooth subsystem version 2.22\0\0\0\0\x10\0\0\0\x10\0\0\0\0\0\0\0\0\0â;A3È-×\0\x01ø«\x1e\0…Dhci0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\b\0\0\0\0\0â;A3È-Ø\0\0\0\b\0\0\0\b\0\0\0
\0\0\0\0\0â;A3È-Ùø«\x1e\0…D\x02\0\0\0\0\x1e\0\0\0\x1eÿÿ\0\x0e\0\0\0\0\0â;A3È-Ú\x02\0\0\0\x02\0\x01\x0e\0\x01\0\0\0\x10memcheck-amd64-\0\0\0\0\x1e\0\0\0\x1eÿÿ\0\x0e\0\0\0\0\0â;A3È-Û\x01\0\0\0\x02\0\x01\x0e\0\x01\0\0\0\x10memcheck-amd64-\0\0\0\0\x1e\0\0\0\x1eÿÿ\0\x0e\0\0\0\0\0â;A3È.§\x03\0\0\0\x02\0\x01\x0e\0\x01\0\0\0\x10btmon\0\0\0\0\0\0\0\0\0\0\0\0\0\0A\0\0\0Aÿÿ\0\r\0\0\0\0\0â;A3óÕ[\a\vbluetoothd\0src/device.c:btd_device_set_temporary() temporary 0\0\0\0\06\0\0\06ÿÿ\0\r\0\0\0\0\0â;A3óØØ\a\vbluetoothd\0src/agent.c:agent_ref() 0x8588ed0: ref=2\0\0\0\0Y\0\0\0Yÿÿ\0\r\0\0\0\0\0â;A3óÛS\a\vbluetoothd\0src/device.c:bonding_request_new() Requesting bonding for C8:3F:26:80:BA:71\0\0\0\06\0\0\06ÿÿ\0\r\0\0\0\0\0â;A3óݦ\a\vbluetoothd\0src/agent.c:agent_ref() 0x8588ed0: ref=3\0\0\0\08\0\0\08ÿÿ\0\r\0\0\0\0\0â;A3ó߸\a\vbluetoothd\0src/agent.c:agent_unref() 0x8588ed0: ref=2\0\0\0\00\0\0\00ÿÿ\0\r\0\0\0\0\0â;A3óâ#\a\vbluetoothd\0src/adapter.c:suspend_discovery() \0\0\0\0f\0\0\0fÿÿ\0\r\0\0\0\0\0â;A3óäù\a\vbluetoothd\0src/adapter.c:adapter_bonding_attempt() hci0 bdaddr C8:3F:26:80:BA:71 type 0 io_cap 0x04\0\0\0\0\x0e\0\0\0\x0e\0\0\0\x10\0\0\0\0\0â;A3óçú\x01\0\0\03\0qº€&?È\0\x01\0\0\0\x0e\0\0\0\x0e\0\0\0\x11\0\0\0\0\0â;A3óè\x17\x03\0\0\0\x1a\0qº€&?È\0\x01\0\0\0\x0e\0\0\0\x0e\0\0\0\x11\0\0\0\0\0â;A3óè\x17\x02\0\0\0\x1a\0qº€&?È\0\x01\0\0\0\x10\0\0\0\x10\0\0\0\x11\0\0\0\0\0â;A3óè*\x01\0\0\0\x01\03\0\0qº€&?È\0\0\0\0`\0\0\0`ÿÿ\0\r\0\0\0\0\0â;A3óìÕ\a\vbluetoothd\0src/adapter.c:add_whitelist_complete() C8:3F:26:80:BA:71 added to kernel whitelist\0\0\0\0\x0e\0\0\0\x0e\0\0\0\x10\0\0\0\0\0â;A3óí÷\x01\0\0\0\x19\0qº€&?È\0\x04\0\0\0\x10\0\0\0\x10\0\0\0\x02\0\0\0\0\0â;A3óî,\x05\x04\rqº€&?È\x18Ì\x02\0\0\0\x01\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0â;A3óñŠ\x0f\x04\0\x01\x05\x04\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0â;A4'V1ÿ\x04&\0\x01\x01\0\0\0\r\0\0\0\r\0\0\0\x03\0\0\0\0\0â;A4'aà\x03\v\0\0\x01qº€&?È\x01\0\0\0\0\x05\0\0\0\x05\0\0\0\x02\0\0\0\0\0â;A4'c+^[\x04\x02\0\x01\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0â;A4'e~\x0f\x04\0\x01^[\x04\0\0\0\x05\0\0\0\x05\0\0\0\x03\0\0\0\0\0â;A4'€¹^[\x03\0\x01\x05\0\0\0\r\0\0\0\r\0\0\0\x03\0\0\0\0\0â;A4'Œ‚\v\v\0\0\x01¿>þÛý{‡\0\0\0\x06\0\0\0\x06\0\0\0\x02\0\0\0\0\0â;A4'Œµ\x1c\x04\x03\0\x01\x01\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0â;A4'd\x0f\x04\0\x01\x1c\x04\0\0\0\x0f\0\0\0\x0f\0\0\0\x03\0\0\0\0\0â;A4'§Ý#\r\0\0\x01\x01\x03\x01\0\0\0\0\0\0\0\0\0\0\r\0\0\0\r\0\0\0\x02\0\0\0\0\0â;A4'¨G\x19\x04
qº€&?È\x02\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0â;A4'«Ó\x0f\x04\0\x01\x19\x04\0\0\x01\x01\0\0\x01\x01\0\0\0\x03\0\0\0\0\0â;A4(HB\aÿ\0qº€&?ÈXbox Wireless Controller\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\02\0\0\02\0\0\0\x11\0\0\0\0\0â;A4(H„\x03\0\0\0\v\0qº€&?È\0\0\0\0\0\x1f\0\x19	Xbox Wireless Controller\x04\r\b\x05\0\0\0\02\0\0\02\0\0\0\x11\0\0\0\0\0â;A4(H„\x02\0\0\0\v\0qº€&?È\0\0\0\0\0\x1f\0\x19	Xbox Wireless Controller\x04\r\b\x05\0\0\0\02\0\0\02\0\0\0\x11\0\0\0\0\0â;A4(H„\x01\0\0\0\v\0qº€&?È\0\0\0\0\0\x1f\0\x19	Xbox Wireless Controller\x04\r\b\x05\0\0\0\0\x05\0\0\0\x05\0\0\0\x02\0\0\0\0\0â;A4(H®\x11\x04\x02\0\x01\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0â;A4(Kâ\x0f\x04\0\x01\x11\x04\0\0\0c\0\0\0cÿÿ\0\r\0\0\0\0\0â;A4(M\x11\a\vbluetoothd\0src/adapter.c:connected_callback() hci0 device C8:3F:26:80:BA:71 connected eir_len 31\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â;A4(OÌ\x17\x06qº€&?È\0\0\0	\0\0\0	\0\0\0\x02\0\0\0\0\0â;A4(Où\f\x04\x06qº€&?È\0\0\0\f\0\0\0\f\0\0\0\x03\0\0\0\0\0â;A4(Sµ\x0e
\x01\f\x04\0qº€&?È\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â;A4(W™1\x06qº€&?È\0\0\0\f\0\0\0\f\0\0\0\x02\0\0\0\0\0â;A4(WÚ+\x04	qº€&?È\x01\0\x03\0\0\0\f\0\0\0\f\0\0\0\x03\0\0\0\0\0â;A4([\x0e
\x01+\x04\0qº€&?È\0\0\0\v\0\0\0\v\0\0\0\x03\0\0\0\0\0â;A4(vÙ2	qº€&?È\x03\0\x04\0\0\0\f\0\0\0\f\0\0\0\x03\0\0\0\0\0â;A4,ÿp3
qº€&?È„?\x02\0\0\0\0	\0\0\0	\0\0\0\x02\0\0\0\0\0â;A4-\0\0,\x04\x06qº€&?È\0\0\0\f\0\0\0\f\0\0\0\x03\0\0\0\0\0â;A4-\x03\x04\x0e
\x01,\x04\0qº€&?È\0\0\0	\0\0\0	\0\0\0\x03\0\0\0\0\0â;A42bR6\a\0qº€&?È\0\0\0\x19\0\0\0\x19\0\0\0\x03\0\0\0\0\0â;A43%”\x18\x17qº€&?È™Ò}ŽÅª¾¼µ¾m h\rA‚\x04\0\0\0 \0\0\0 \0\0\0\x11\0\0\0\0\0â;A43%×\x03\0\0\0	\0\x01qº€&?È\0\x04™Ò}ŽÅª¾¼µ¾m h\rA‚\0\0\0\0 \0\0\0 \0\0\0\x11\0\0\0\0\0â;A43%×\x02\0\0\0	\0\x01qº€&?È\0\x04™Ò}ŽÅª¾¼µ¾m h\rA‚\0\0\0\0 \0\0\0 \0\0\0\x11\0\0\0\0\0â;A43%×\x01\0\0\0	\0\x01qº€&?È\0\x04™Ò}ŽÅª¾¼µ¾m h\rA‚\0\0\0\0t\0\0\0tÿÿ\0\r\0\0\0\0\0â;A43)\x10\a\vbluetoothd\0src/adapter.c:new_link_key_callback() hci0 new key for C8:3F:26:80:BA:71 type 4 pin_len 0 store_hint 1\0\0\0\0\x05\0\0\0\x05\0\0\0\x03\0\0\0\0\0â;A43)\x1d\x06\x03\0\0\x01\0\0\0\x06\0\0\0\x06\0\0\0\x02\0\0\0\0\0â;A43)Z\x13\x04\x03\0\x01\x01\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0â;A43-\x05\x0f\x04\0\x01\x13\x04\0\0\0/\0\0\0/ÿÿ\0\r\0\0\0\0\0â;A43kû\a\vbluetoothd\0src/device.c:device_set_bonded() \0\0\0\0R\0\0\0Rÿÿ\0\r\0\0\0\0\0â;A43m\x18\a\vbluetoothd\0src/device.c:device_bonding_complete() bonding 0x9177360 status 0x00\0\0\0\0V\0\0\0Vÿÿ\0\r\0\0\0\0\0â;A43n\x15\a\vbluetoothd\0src/device.c:device_bonding_complete() Proceeding with service discovery\0\0\0\08\0\0\08ÿÿ\0\r\0\0\0\0\0â;A43q+\a\vbluetoothd\0src/agent.c:agent_unref() 0x8588ed0: ref=1\0\0\0\0/\0\0\0/ÿÿ\0\r\0\0\0\0\0â;A43r\x06\a\vbluetoothd\0src/adapter.c:resume_discovery() \0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0â;A43\x7fZ\b\x04\0\0\x01\x01\0\0\0\x05\0\0\0\x05\0\0\0\x02\0\0\0\0\0â;A43\x7f¡\b\x14\x02\0\x01\0\0\0	\0\0\0	\0\0\0\x03\0\0\0\0\0â;A43ƒC\x0e\a\x01\b\x14\0\0\x01\x10\0\0\0\x10\0\0\0\x10\0\0\0\x11\0\0\0\0\0â;A43ƒ”\x01\0\0\0\x01\0\x19\0\0qº€&?È\0\0\0\0\x0e\0\0\0\x0e\0\0\0\x04\0\0\0\0\0â;A43ƒ©\0\x01
\0\x06\0\x01\0
\x01\x02\0\x02\0\0\0\0A\0\0\0Aÿÿ\0\r\0\0\0\0\0â;A43†\b\a\vbluetoothd\0src/adapter.c:pair_device_complete() Success (0x00)\0\0\0\0f\0\0\0fÿÿ\0\r\0\0\0\0\0â;A43‡µ\a\vbluetoothd\0src/adapter.c:bonding_attempt_complete() hci0 bdaddr C8:3F:26:80:BA:71 type 0 status 0x0\0\0\0\0N\0\0\0Nÿÿ\0\r\0\0\0\0\0â;A43‰*\a\vbluetoothd\0src/device.c:device_bonding_complete() bonding (nil) status 0x00\0\0\0\0/\0\0\0/ÿÿ\0\r\0\0\0\0\0â;A43ŠK\a\vbluetoothd\0src/adapter.c:resume_discovery() \0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â;A44RP\x13\x05\x01\0\x01\x01\0\0\0\0\x14\0\0\0\x14\0\0\0\x05\0\0\0\0\0â;A44U³\0!\x10\0\f\0\x01\0\v\x01\b\0\x02\0\0\0\x10\0\0\0\0\0\0\x10\0\0\0\x10\0\0\0\x04\0\0\0\0\0â;A44Uú\0\x01\f\0\b\0\x01\0\x02\x02\x04\0\x01\0@\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â;A44eÝ\x13\x05\x01\0\x01\x01\0\0\0\0\x14\0\0\0\x14\0\0\0\x05\0\0\0\0\0â;A44i\x12\0!\x10\0\f\0\x01\0\x03\x02\b\0@\0@\0\0\0\0\0\0\0\0\x10\0\0\0\x10\0\0\0\x04\0\0\0\0\0â;A44ik\0\x01\f\0\b\0\x01\0\x04\x03\x04\0@\0\0\0\0\0\0\x14\0\0\0\x14\0\0\0\x05\0\0\0\0\0â;A44n%\0!\x10\0\f\0\x01\0\x04\x01\b\0@\0\0\0\x01\x02È\x05\0\0\0\x16\0\0\0\x16\0\0\0\x04\0\0\0\0\0â;A44n]\0\x01\x12\0\x0e\0\x01\0\x05\x01
\0@\0\0\0\0\0\x01\x02È\x05\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â;A44y7\x13\x05\x01\0\x01\x01\0\0\0\0\x12\0\0\0\x12\0\0\0\x05\0\0\0\0\0â;A44úÅ\0!\x0e\0
\0\x01\0\x05\x03\x06\0@\0\0\0\0\0\0\0\0\x1c\0\0\0\x1c\0\0\0\x04\0\0\0\0\0â;A44üô\0\x01\x18\0\x14\0@\0\x06\0\0\0\x0f5\x03\x19\x01\0ÿÿ5\x05
\0\0ÿÿ\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â;A44ýß\x13\x05\x01\0\x01\x01\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â;A45	å\x13\x05\x01\0\x01\x01\0\0\0\0ˆ\0\0\0ˆ\0\0\0\x05\0\0\0\0\0â;A45\x14»\0!„\0€\0@\0\a\0\0\0{\0w6\x02¾5‚	\0\0
\0\x01\0\0	\0\x015\x03\x19\x12\0	\0\x02
\0\0\x03\x04	\0\x045\r5\x06\x19\x01\0	\0\x015\x03\x19\0\x01	\0\x055\x03\x19\x10\x02	\0\x065		en	\0j	\x01\0	\0	5\b5\x06\x19\x12\0	\x01\0	\x01\0%\x01\0	\x01\x01%\x01\0	\x01\x02%\x01\0	\x02\0	\x01\x03	\x02\x01	\x04^	\x02\x02	\x02à	\x01\x01\0\0\0\x1d\0\0\0\x1d\0\0\0\x04\0\0\0\0\0â;A45\x18â\0\x01\x19\0\x15\0@\0\x06\0\x01\0\x105\x03\x19\x01\0ÿÿ5\x05
\0\0ÿÿ\x01\x01\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â;A45)-\x13\x05\x01\0\x01\x01\0\0\0\0ˆ\0\0\0ˆ\0\0\0\x05\0\0\0\0\0â;A45-2\0!„\0€\0@\0\a\0\x01\0{\0w\x02\x03		\x03	\x02\x04(\x01	\x02\x05	\0\x026\x027	\0\0
\0\x01\0\x01	\0\x015\x03\x19\x11$	\0\x02
\0\0\x03\x12	\0\x045\r5\x06\x19\x01\0	\0\x115\x03\x19\0\x11	\0\x055\x03\x19\x10\x02	\0\x065		en	\0j	\x01\0	\0	5\b5\x06\x19\x11$	\x01\0	\0\r5\x0f5\r5\x06\x19\x01\0	\0\x135\x03\x19\0\x11	\x01\0\x01\x02\0\0\0\x1d\0\0\0\x1d\0\0\0\x04\0\0\0\0\0â;A452Y\0\x01\x19\0\x15\0@\0\x06\0\x02\0\x105\x03\x19\x01\0ÿÿ5\x05
\0\0ÿÿ\x01\x02\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â;A45@V\x13\x05\x01\0\x01\x01\0\0\0\0ˆ\0\0\0ˆ\0\0\0\x05\0\0\0\0\0â;A45Ej\0!„\0€\0@\0\a\0\x02\0{\0w%\x17Xbox Bluetooth Gamepad\0	\x01\x01%\bGamepad\0	\x01\x02%\x16Microsoft Corporation\0	\x02\0	\x01\0	\x02\x01	\x01\x11	\x02\x02\b@	\x02\x03\b!	\x02\x04(\x01	\x02\x05(\x01	\x02\x066\x01:6\x017\b"&\x012\x05\x01	\x05¡\x01…\x01\x01\x03\0\0\0\x1d\0\0\0\x1d\0\0\0\x04\0\0\0\0\0â;A45KE\0\x01\x19\0\x15\0@\0\x06\0\x03\0\x105\x03\x19\x01\0ÿÿ5\x05
\0\0ÿÿ\x01\x03\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â;A45W¿\x13\x05\x01\0\x01\x01\0\0\0\0ˆ\0\0\0ˆ\0\0\0\x05\0\0\0\0\0â;A45]×\0!„\0€\0@\0\a\0\x03\0{\0w	\x01¡\0	0	1\x15\0'ÿÿ\0\0•\x02u\x10\x02À	\x01¡\0	3	4\x15\0'ÿÿ\0\0•\x02u\x10\x02À\x05\x01	2\x15\0&ÿ\x03•\x01u
\x02\x15\0%\0u\x06•\x01\x03\x05\x01	5\x15\0&ÿ\x03•\x01u
\x02\x15\0%\0u\x06•\x01\x03\x05\x01	9\x15\x01%\b5\0F;\x01f\x14\0u\x04•\x01Bu\x04•\x01\x04\0\0\0\x1d\0\0\0\x1d\0\0\0\x04\0\0\0\0\0â;A45c‘\0\x01\x19\0\x15\0@\0\x06\0\x04\0\x105\x03\x19\x01\0ÿÿ5\x05
\0\0ÿÿ\x01\x04\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â;A45ð]\x13\x05\x01\0\x01\x01\0\0\0\0ˆ\0\0\0ˆ\0\0\0\x05\0\0\0\0\0â;A45ÿ\x1d\0!„\0€\0@\0\a\0\x04\0{\0w\x01\x15\0%\05\0E\0e\0\x03\x05	\x19\x01)
\x15\0%\x01u\x01•
\x02\x15\0%\0u\x06•\x01\x03\x05\x01	€…\x02¡\0	…\x15\0%\x01•\x01u\x01\x02\x15\0%\0u\a•\x01\x03À\x05\x0f	!…\x03¡\x02	—\x15\0%\x01u\x04•\x01‘\x02\x15\0%\0u\x04•\x01‘\x03	p\x15\0%du\b•\x04‘\x02	Pf\x01\x10U\x0e\x01\x05\0\0\0\x1d\0\0\0\x1d\0\0\0\x04\0\0\0\0\0â;A46\x02þ\0\x01\x19\0\x15\0@\0\x06\0\x05\0\x105\x03\x19\x01\0ÿÿ5\x05
\0\0ÿÿ\x01\x05\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â;A46\x13…\x13\x05\x01\0\x01\x01\0\0\0\0~\0\0\0~\0\0\0\x05\0\0\0\0\0â;A46\x17”\0!z\0v\0@\0\a\0\x05\0q\0n\x15\0&ÿ\0u\b•\x01‘\x02	§\x15\0&ÿ\0u\b•\x01‘\x02e\0U\0	|\x15\0&ÿ\0u\b•\x01‘\x02À…\x04\x05\x06	 \x15\0&ÿ\0u\b•\x01\x02À	\x02\a5\b5\x06	\x04		\x01\0	\x02\b(\0	\x02	(\x01	\x02
(\0	\x02\v	\x01\0	\x02\f	\f€	\x02\r(\x01	\x02\x0e(\0\0\0\0\0\x1c\0\0\0\x1c\0\0\0\x04\0\0\0\0\0â;A46Çè\0\x01\x18\0\x14\0@\0\x06\0\x06\0\x0f5\x03\x19\x12\0ÿÿ5\x05
\0\0ÿÿ\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â;A46Ö†\x13\x05\x01\0\x01\x01\0\0\0\0ˆ\0\0\0ˆ\0\0\0\x05\0\0\0\0\0â;A46ßt\0!„\0€\0@\0\a\0\x06\0{\0w5„5‚	\0\0
\0\x01\0\0	\0\x015\x03\x19\x12\0	\0\x02
\0\0\x03\x04	\0\x045\r5\x06\x19\x01\0	\0\x015\x03\x19\0\x01	\0\x055\x03\x19\x10\x02	\0\x065		en	\0j	\x01\0	\0	5\b5\x06\x19\x12\0	\x01\0	\x01\0%\x01\0	\x01\x01%\x01\0	\x01\x02%\x01\0	\x02\0	\x01\x03	\x02\x01	\x04^	\x02\x02	\x02à	\x02\x01\x06\0\0\0\x1d\0\0\0\x1d\0\0\0\x04\0\0\0\0\0â;A47%¢\0\x01\x19\0\x15\0@\0\x06\0\a\0\x105\x03\x19\x12\0ÿÿ5\x05
\0\0ÿÿ\x01\x06\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â;A474H\x13\x05\x01\0\x01\x01\0\0\0\0\x1f\0\0\0\x1f\0\0\0\x05\0\0\0\0\0â;A475|\0!^[\0\x17\0@\0\a\0\a\0\x12\0\x0f\x03		\x03	\x02\x04(\x01	\x02\x05	\0\x02\0\0\0\0`\0\0\0`ÿÿ\0\r\0\0\0\0\0â;A47~z\a\vbluetoothd\0src/device.c:device_probe_profiles() Probing profiles for device C8:3F:26:80:BA:71\0\0\0\0c\0\0\0cÿÿ\0\r\0\0\0\0\0â;A47…Š\a\vbluetoothd\0profiles/input/device.c:input_device_register() /org/bluez/hci0/dev_C8_3F_26_80_BA_71\0\0\0\0>\0\0\0>ÿÿ\0\r\0\0\0\0\0â;A47‡'\a\vbluetoothd\0src/service.c:btd_service_ref() 0x9247600: ref=2\0\0\0\0\0\0\0ÿÿ\0\r\0\0\0\0\0â;A47‰p\a\vbluetoothd\0src/service.c:change_state() 0x9247600: device C8:3F:26:80:BA:71 profile input-hid state changed: unavailable -> disconnected (0)\0\0\0\0\\0\0\0\ÿÿ\0\r\0\0\0\0\0â;A47®\a\vbluetoothd\0src/device.c:device_svc_resolved() /org/bluez/hci0/dev_C8_3F_26_80_BA_71 err 0\0\0\0\0\x10\0\0\0\x10\0\0\0\x04\0\0\0\0\0â;A4[VË\0\x01\f\0\b\0\x01\0\x06\x04\x04\0@\0@\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â;A4[fK\x13\x05\x01\0\x01\x01\0\0\0\0\x10\0\0\0\x10\0\0\0\x05\0\0\0\0\0â;A4[Æ\v\0!\f\0\b\0\x01\0\a\x04\x04\0@\0@\0\0\0\0\x06\0\0\0\x06\0\0\0\x02\0\0\0\0\0â;A4{\x1a:\x06\x04\x03\0\x01\x13\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0â;A4{\x1fC\x0f\x04\0\x01\x06\x04\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0â;A4|ž$\x05\x04\0\0\x01\x16\0\0\0\x0e\0\0\0\x0e\0\0\0\x11\0\0\0\0\0â;A4|žv\x03\0\0\0\f\0qº€&?È\0\x02\0\0\0\x0e\0\0\0\x0e\0\0\0\x11\0\0\0\0\0â;A4|žv\x02\0\0\0\f\0qº€&?È\0\x02\0\0\0\x0e\0\0\0\x0e\0\0\0\x11\0\0\0\0\0â;A4|žv\x01\0\0\0\f\0qº€&?È\0\x02\0\0\0^\0\0\0^ÿÿ\0\r\0\0\0\0\0â;A4|£)\a\vbluetoothd\0src/adapter.c:dev_disconnected() Device C8:3F:26:80:BA:71 disconnected, reason 2\0\0\0\08\0\0\08ÿÿ\0\r\0\0\0\0\0â;A4|¥¦\a\vbluetoothd\0src/adapter.c:adapter_remove_connection() \0\0\0\07\0\0\07ÿÿ\0\r\0\0\0\0\0â;A4|«,\a\vbluetoothd\0plugins/policy.c:disconnect_cb() reason 2\0\0\0\0f\0\0\0fÿÿ\0\r\0\0\0\0\0â;A4|®N\a\vbluetoothd\0src/adapter.c:bonding_attempt_complete() hci0 bdaddr C8:3F:26:80:BA:71 type 0 status 0xe\0\0\0\0N\0\0\0Nÿÿ\0\r\0\0\0\0\0â;A4|±I\a\vbluetoothd\0src/device.c:device_bonding_complete() bonding (nil) status 0x0e\0\0\0\0<\0\0\0<ÿÿ\0\r\0\0\0\0\0â;A4|³t\a\vbluetoothd\0src/device.c:device_bonding_failed() status 14\0\0\0\0/\0\0\0/ÿÿ\0\r\0\0\0\0\0â;A4|µ­\a\vbluetoothd\0src/adapter.c:resume_discovery() \0\0\0\0\f\0\0\0\f\0\0\0\x03\0\0\0\0\0â;A8š†\x7f\x04
qº€&?È\b\x05\0\x01\0\0\0
\0\0\0
\0\0\0\x02\0\0\0\0\0â;A8š‡9	\x04\aqº€&?È\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0â;A8šŠ\r\x0f\x04\0\x01	\x04\0\0\0
\0\0\0
\0\0\0\x03\0\0\0\0\0â;A8h¹\x12\b\0qº€&?È\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0â;A8 ;\x18ÿ\x04&\0\x01\x01\0\0\0\r\0\0\0\r\0\0\0\x03\0\0\0\0\0â;A8 œ±\x03\v\0\0\x01qº€&?È\x01\0\0\0\0\x05\0\0\0\x05\0\0\0\x02\0\0\0\0\0â;A8 ú^[\x04\x02\0\x01\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0â;A8  Œ\x0f\x04\0\x01^[\x04\0\0\0\x05\0\0\0\x05\0\0\0\x03\0\0\0\0\0â;A8 ¸\x04^[\x03\0\x01\x05\0\0\0\r\0\0\0\r\0\0\0\x03\0\0\0\0\0â;A8 Ã¼\v\v\0\0\x01¿>þÛý{‡\0\0\0\x06\0\0\0\x06\0\0\0\x02\0\0\0\0\0â;A8 Ä\x1e\x1c\x04\x03\0\x01\x01\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0â;A8 Ç¾\x0f\x04\0\x01\x1c\x04\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â;A8 òÀ\x17\x06qº€&?È\0\0\0\x19\0\0\0\x19\0\0\0\x02\0\0\0\0\0â;A8 òÿ\v\x04\x16qº€&?È™Ò}ŽÅª¾¼µ¾m h\rA‚\0\0\0\f\0\0\0\f\0\0\0\x03\0\0\0\0\0â;A8 ö¨\x0e
\x01\v\x04\0qº€&?È\0\0\0\x0f\0\0\0\x0f\0\0\0\x03\0\0\0\0\0â;A8¡\x15ø#\r\0\0\x01\x01\x03\x01\0\0\0\0\0\0\0\0\0\0\r\0\0\0\r\0\0\0\x02\0\0\0\0\0â;A8¡\x16e\x19\x04
qº€&?È\x02\0\0\0\0\0\0\x0e\0\0\0\x0e\0\0\0\x04\0\0\0\0\0â;A8¡\x16{\0\x01
\0\x06\0\x01\0
\x01\x02\0\x02\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0â;A8¡\x19Ò\x0f\x04\0\x01\x19\x04\0\0\x01\x01\0\0\x01\x01\0\0\0\x03\0\0\0\0\0â;A8¡XI\aÿ\0qº€&?ÈXbox Wireless Controller\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\02\0\0\02\0\0\0\x11\0\0\0\0\0â;A8¡Xy\x03\0\0\0\v\0qº€&?È\0\0\0\0\0\x1f\0\x19	Xbox Wireless Controller\x04\r\b\x05\0\0\0\02\0\0\02\0\0\0\x11\0\0\0\0\0â;A8¡Xy\x02\0\0\0\v\0qº€&?È\0\0\0\0\0\x1f\0\x19	Xbox Wireless Controller\x04\r\b\x05\0\0\0\02\0\0\02\0\0\0\x11\0\0\0\0\0â;A8¡Xy\x01\0\0\0\v\0qº€&?È\0\0\0\0\0\x1f\0\x19	Xbox Wireless Controller\x04\r\b\x05\0\0\0\0c\0\0\0cÿÿ\0\r\0\0\0\0\0â;A8¡[\x0f\a\vbluetoothd\0src/adapter.c:connected_callback() hci0 device C8:3F:26:80:BA:71 connected eir_len 31\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0â;A8¡Ù\x1a\b\x04\0\0\x01\x01\0\0\0\x05\0\0\0\x05\0\0\0\x02\0\0\0\0\0â;A8¡Ù[\b\x14\x02\0\x01\0\0\0\x10\0\0\0\x10\0\0\0\x05\0\0\0\0\0â;A8¡ÜR\0!\f\0\b\0\x01\0\x02\x01\x04\0\x11\0@\0\0\0\0\x14\0\0\0\x14\0\0\0\x04\0\0\0\0\0â;A8¡Ü¢\0\x01\x10\0\f\0\x01\0\x03\x01\b\0@\0@\0\x01\0\0\0\0\0\0\x0e\0\0\0\x0e\0\0\0\x04\0\0\0\0\0â;A8¡Ü¯\0\x01
\0\x06\0\x01\0
\x02\x02\0\x02\0\0\0\0	\0\0\0	\0\0\0\x03\0\0\0\0\0â;A8¡Üÿ\x0e\a\x01\b\x14\0\0\x01\x10\0\0\0\x14\0\0\0\x14\0\0\0\x04\0\0\0\0\0â;A8¡Ý.\0\x01\x10\0\f\0\x01\0\x03\x01\b\0@\0@\0\0\0\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â;A8¡àÚ\x13\x05\x01\0\x01\x01\0\0\0\0\x10\0\0\0\x10\0\0\0\x04\0\0\0\0\0â;A8¡á\f\0\x01\f\0\b\0\x01\0\x04\x03\x04\0@\0\0\0\0\0\0\x14\0\0\0\x14\0\0\0\x05\0\0\0\0\0â;A8¡êü\0!\x10\0\f\0\x01\0\v\x01\b\0\x02\0\0\0\x10\0\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â;A8¡ì­\x13\x05\x01\0\x01\x01\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â;A8¡ð£\x13\x05\x01\0\x01\x01\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â;A8¡ô†\x13\x05\x01\0\x01\x01\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â;A8¡øs\x13\x05\x01\0\x01\x01\0\0\0\0\x14\0\0\0\x14\0\0\0\x05\0\0\0\0\0â;A8¡ùÞ\0!\x10\0\f\0\x01\0\v\x02\b\0\x02\0\0\0\x10\0\0\0\0\0\0\x14\0\0\0\x14\0\0\0\x05\0\0\0\0\0â;A8¡þ‘\0!\x10\0\f\0\x01\0\x04\x02\b\0@\0\0\0\x01\x02È\x05\0\0\0\x16\0\0\0\x16\0\0\0\x04\0\0\0\0\0â;A8¡þ¸\0\x01\x12\0\x0e\0\x01\0\x05\x02
\0@\0\0\0\0\0\x01\x02È\x05\0\0\0\x12\0\0\0\x12\0\0\0\x05\0\0\0\0\0â;A8¢\x02?\0!\x0e\0
\0\x01\0\x05\x03\x06\0@\0\0\0\0\0\0\0\0m\0\0\0mÿÿ\0\r\0\0\0\0\0â;A8¢\x05\\a\vbluetoothd\0profiles/input/server.c:connect_event_cb() Incoming connection from C8:3F:26:80:BA:71 on PSM 17\0\0\0\0V\0\0\0Vÿÿ\0\r\0\0\0\0\0â;A8¢\x06´\a\vbluetoothd\0profiles/input/device.c:input_device_set_channel() idev 0x9249ef0 psm 17\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â;A8¢\vö\x13\x05\x01\0\x01\x01\0\0\0\0\x10\0\0\0\x10\0\0\0\x05\0\0\0\0\0â;A8¢mÎ\0!\f\0\b\0\x01\0\x02\x03\x04\0\x13\0A\0\0\0\0\x14\0\0\0\x14\0\0\0\x04\0\0\0\0\0â;A8¢n2\0\x01\x10\0\f\0\x01\0\x03\x03\b\0A\0A\0\x01\0\x02\0\0\0\09\0\0\09ÿÿ\0\r\0\0\0\0\0â;A8¢pœ\a\vbluetoothd\0profiles/input/server.c:confirm_event_cb() \0\0\0\06\0\0\06ÿÿ\0\r\0\0\0\0\0â;A8¢tA\a\vbluetoothd\0src/agent.c:agent_ref() 0x8588ed0: ref=2\0\0\0\0€\0\0\0€ÿÿ\0\r\0\0\0\0\0â;A8¢}ë\a\vbluetoothd\0src/agent.c:agent_authorize_service() authorize service request was sent for /org/bluez/hci0/dev_C8_3F_26_80_BA_71\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â;A8¢ v\x13\x05\x01\0\x01\x01\0\0\0\06\0\0\06ÿÿ\0\r\0\0\0\0\0â;A8ØÏ\x05\a\vbluetoothd\0src/agent.c:agent_ref() 0x8588ed0: ref=3\0\0\0\0\x14\0\0\0\x14\0\0\0\x04\0\0\0\0\0â;A8ØÐ:\0\x01\x10\0\f\0\x01\0\x03\x03\b\0A\0A\0\0\0\0\0\0\0\0\x10\0\0\0\x10\0\0\0\x04\0\0\0\0\0â;A8ØÐo\0\x01\f\0\b\0\x01\0\x04\x04\x04\0A\0\0\0\0\0\08\0\0\08ÿÿ\0\r\0\0\0\0\0â;A8Øӏ\a\vbluetoothd\0src/agent.c:agent_unref() 0x8588ed0: ref=2\0\0\0\08\0\0\08ÿÿ\0\r\0\0\0\0\0â;A8ØÔÜ\a\vbluetoothd\0src/agent.c:agent_unref() 0x8588ed0: ref=1\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â;A8ØÛB\x13\x05\x01\0\x01\x01\0\0\0\0\x14\0\0\0\x14\0\0\0\x05\0\0\0\0\0â;A8ØÞœ\0!\x10\0\f\0\x01\0\x04\x04\b\0A\0\0\0\x01\x02È\x05\0\0\0\x16\0\0\0\x16\0\0\0\x04\0\0\0\0\0â;A8ØÞÕ\0\x01\x12\0\x0e\0\x01\0\x05\x04
\0A\0\0\0\0\0\x01\x02È\x05\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â;A8ØÞú\x13\x05\x01\0\x01\x01\0\0\0\0\x12\0\0\0\x12\0\0\0\x05\0\0\0\0\0â;A8Øâ/\0!\x0e\0
\0\x01\0\x05\x04\x06\0A\0\0\0\0\0\0\0\0m\0\0\0mÿÿ\0\r\0\0\0\0\0â;A8Øäò\a\vbluetoothd\0profiles/input/server.c:connect_event_cb() Incoming connection from C8:3F:26:80:BA:71 on PSM 19\0\0\0\0V\0\0\0Vÿÿ\0\r\0\0\0\0\0â;A8Øæ^\a\vbluetoothd\0profiles/input/device.c:input_device_set_channel() idev 0x9249ef0 psm 19\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0â;A8Øî”\x13\x05\x01\0\x01\x01\0\0\0\0\0\0\0ÿÿ\0\r\0\0\0\0\0â;A8Øò¥\a\vbluetoothd\0src/service.c:change_state() 0x9247600: device C8:3F:26:80:BA:71 profile input-hid state changed: disconnected -> connected (0)\0\0\0\0>\0\0\0>ÿÿ\0\r\0\0\0\0\0â;A8Øó×\a\vbluetoothd\0src/service.c:btd_service_ref() 0x9247600: ref=3\0\0\0\0G\0\0\0Gÿÿ\0\r\0\0\0\0\0â;A8ØöG\a\vbluetoothd\0plugins/policy.c:service_cb() Added input-hid reconnect 0\0\0\0\07\0\0\07ÿÿ\0\r\0\0\0\0\0â;A8ØøE\a\vbluetoothd\0profiles/input/device.c:encrypt_notify() \0\0\0\0\x05\0\0\0\x05\0\0\0\x03\0\0\0\0\0â;A8ØúQ^[\x03\0\x01\x01\0\0\0\x19\0\0\0\x19\0\0\0\x05\0\0\0\0\0â;A8ÙX-\0!\x15\0\x11\0A\0¡\x01À‹ß|oy2ˆ\0\0\0\0\0\0\0\0\0\0\x19\0\0\0\x19\0\0\0\x05\0\0\0\0\0â;A8Ù`ó\0!\x15\0\x11\0A\0¡\x01À‹ß|oy2ˆ\0\0\0\0\0\0\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0â;A8ÙcÅ\x14\x06\0\0\x01\x02\f\0\0\0\0\v\0\0\0\v\0\0\0\x05\0\0\0\0\0â;A8ñó.\0!\a\0\x03\0A\0¡\x04†\0\0\0\v\0\0\0\v\0\0\0\x05\0\0\0\0\0â;A:#e\x16\0!\a\0\x03\0A\0¡\x04†

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Can't connect a Xbox one controller
  2017-11-09 15:11               ` Bastien Nocera
@ 2017-11-13 10:04                 ` Bastien Nocera
  0 siblings, 0 replies; 15+ messages in thread
From: Bastien Nocera @ 2017-11-13 10:04 UTC (permalink / raw)
  To: Vinicius Costa Gomes, Anthony Bourguignon, linux-bluetooth

Hey,

I'm still working on getting some interesting information out of this.
The first thing is:

> ACL Data RX: Handle 256 flags 0x02 dlen 15              #38 [hci0] 7.314671
      L2CAP: Configure Response (0x05) ident 3 len 7
        Source CID: 64
        Flags: 0x0000
        Result: Failure - unknown options (0x0003)
        04                                               .   

This tells us that the pad doesn't like the RFC request (Retransmit and
Flow Control, not Request For Configuration, as I thought it might
mean).

The specification says[1]:
> The remote device proposes Basic L2CAP mode in a Configuration
> Request
> and the local device proposes Enhanced Retransmission mode or
> Streaming mode. The remote device rejects the local device's
> Configuration
> Request by sending a negative Configuration Response proposing Basic
> mode. The local device will send a second Configuration Request
> proposing
> Basic L2CAP mode or disconnect the channel. If the local device sends
> a
> second Configuration Request that does not propose Basic L2CAP mode
> then the remote device will disconnect the channel. If the local
> device rejects
> the remote device's Configuration Request then the remote device will
> disconnect the channel.

And[2]:
> The Basic L2CAP mode is the default. If Basic L2CAP mode is requested
> then all other parameters shall be ignored.
> Enhanced Retransmission mode should be enabled if a reliable channel
> has
> been requested. Enhanced Retransmission mode shall only be sent to an
> L2CAP entity that has previously advertised support for the mode in
> its
> Extended Feature Mask (see Section 4.12).
> Streaming mode should be enabled if a finite L2CAP Flush Time-Out is
> set
> on an L2CAP connection. Streaming mode shall only be sent to a device
> that has previously advertised support for the mode in the Extended
> Feature
> Mask (see Section 4.12).

But the code only ever sets the mode to BASIC if it was basic before,
never trying to upgrade the mode:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/net/bluetooth/l2cap_core.c#n3230

I'm also unclear on whether the current code checks whether the L2CAP
Flush Time-Out is set, which is required for Streaming Mode to be
enabled.

So I think that we should try to set a non-BASIC mode in when setting
the RFC config request in l2cap_build_conf_req() [3], and if the mode
is streaming, but only if L2CAP_CONF_FLUSH_TO is non-zero. Break out if
the remote device doesn't support ERTM or has a 0 flush timeout.

Am I on the right track?

[1]: BLUETOOTH SPECIFICATION Version 5.0 | Vol 3, Part A
page 1790
[2]: BLUETOOTH SPECIFICATION Version 5.0 | Vol 3, Part A
page 1785
[3]: How do I get the remote feature mask? I couldn't figure it out

On Thu, 2017-11-09 at 16:11 +0100, Bastien Nocera wrote:
> On Thu, 2017-11-09 at 15:28 +0100, Bastien Nocera wrote:
> > 
> 
> <snip>
> > Here's the btmon output of a pairing attempt.
> 
> And this is a pairing attempt with disable_ertm set to 1.
> 
> You will see a gap of about a minute between 2 events:
> @ MGMT Event: Device Disconnected (0x000c) plen
> 8                                                                    
>                                                                     {
> 0x0001} [hci0] 12.103542
>         BR/EDR Address: C8:3F:26:80:BA:71 (Microsoft Corporation)
>         Reason: Connection terminated by local host (0x02)
> > HCI Event: Connect Request (0x04) plen
> > 10                                                                 
> >                                                                    
> >                #77 [hci0] 81.172351
> 
>         Address: C8:3F:26:80:BA:71 (Microsoft Corporation)
>         Class: 0x000508
>           Major class: Peripheral (mouse, joystick, keyboards)
>           Minor class: 0x02
>         Link type: ACL (0x01)
> 
> The pad carried on blinking expecting "something". I turned the pad
> off
> by long pressing on the "XBox" button, and turned it on again. I got
> a
> service authentication request:
> [CHG] Device C8:3F:26:80:BA:71 Connected: yes
> Authorize service
> [agent] Authorize service 00001124-0000-1000-8000-00805f9b34fb
> (yes/no): yes
> 
> And it's now connected and working.

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2017-11-13 10:04 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-08-18 10:11 Can't connect a Xbox one controller Anthony Bourguignon
2016-08-18 13:56 ` Luiz Augusto von Dentz
2016-08-18 14:52   ` Anthony Bourguignon
2016-08-18 16:20     ` Luiz Augusto von Dentz
2016-08-18 17:46       ` Anthony Bourguignon
2016-08-19  8:43         ` Luiz Augusto von Dentz
2016-08-19  9:28           ` Anthony Bourguignon
2016-08-19 18:02 ` Vinicius Costa Gomes
     [not found]   ` <1471642506.3626.5.camel@toniob.net>
2016-08-19 23:34     ` Vinicius Costa Gomes
2016-08-20 12:54       ` Anthony Bourguignon
2016-08-24 14:02         ` Vinicius Costa Gomes
2017-11-09 13:49           ` Bastien Nocera
2017-11-09 14:28             ` Bastien Nocera
2017-11-09 15:11               ` Bastien Nocera
2017-11-13 10:04                 ` Bastien Nocera

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.