2014-02-12 21:31:12

by Andrea

[permalink] [raw]
Subject: partial success with PS3 sixaxis

Hi,

I've been trying to pair a PS3 sixaxis controller using bluez 5.14
I've had so far only partial success.

It connects, creates js0 and event0 devices, but after a few seconds it removes them.

The lights are always flashing.

I am on a Raspberry running ArchLinux.

This is the output of bluetoothctl

...
[bluetooth]# disconnect
[CHG] Device 00:0B:EB:63:F2:62 Connected: yes
[bluetooth]# disconnect show
[bluetooth]# disconnect 00:0B:EB:63:F2:62
Attempting to disconnect from 00:0B:EB:63:F2:62
Successful disconnected
[CHG] Device 00:0B:EB:63:F2:62 Connected: no
[CHG] Device 00:0B:EB:63:F2:62 Connected: yes

then in dmesg I can see

[ 2745.435967] sony 0005:054C:0268.0008: Fixing up Sony Sixaxis report descriptor
[ 2745.452105] sony 0005:054C:0268.0008: unknown main item tag 0x0
[ 2745.471504] input: PLAYSTATION(R)3 Controller as
/devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3.1/1-1.3.1:1.0/bluetooth/hci0/hci0:11/input7
[ 2745.472795] sony 0005:054C:0268.0008: input,hidraw0: BLUETOOTH HID v1.00 Joystick
[PLAYSTATION(R)3 Controller] on 00:0b:0d:4c:94:a6
[ 2755.472242] sony: probe of 0005:054C:0268.0008 failed with error -5

the hardware should be ok as it works using sixad & sixpair.

any idea what could be going wrong?
I am not even sure if I am doing the right thing to pair, trust, connect etc... as I cannot google
anything using bluez 5 + ps3. All the howtos are for sixad.

Andrea


2014-02-28 21:20:19

by Andrea

[permalink] [raw]
Subject: Re: partial success with PS3 sixaxis

On 28/02/14 10:47, Szymon Janc wrote:
> Hi Andrea,
>
>
> Failing probe is a problem here. Do you use same dongle on RaspPi as on Fedora?
> I've seen that DS3 is not playing well with some controllers i.e. it doesn't work
> with one on my CSR 2.0 USB dongle.

yes I seem to confirm it.

using kernel 3.10.xxx on Pi, the PS3 does not seem to work on any usb dongle

3.12 Fedora and 3.13 Pi with a CSR 4.0 it works (let's ignore the crashes on Pi which seems to be
related to Pi USB stack). No LEDs.

3.12 Fedora and 3.13 Pi with a CSR 2.0, it pairs, connects but /dev/input/js0 is only readable for a
few seconds then it stops reading events

3.13 Pi with a CSR 4.0 I sometimes get device timeout when I try "hciconfig hcio up"

What is strange here is that sixad was working with more dongles and more kernels.

So, to be concrete, my current issues are

1) no LEDs (you said it is going to be fixed in Linux 3.15)
2) CSR with dongle 2.0 produces a non usable /dev/input/js0
3) CSR 4.0 I cant always bring hci0 up

The 2 dongles I am using now are both reporting the same usb device id

0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)

although they are very different 2.0 vs 4.0

Anything I can do to narrow down these last issues?


>
>> I am not too familiar with whom is responsible for /dev/input/js0? kernel? bluez? the sixaxis plugin?
>
> Kernel. sixaxis plugin is used only to associate DS3 with host controller (and to set LEDs).
>
>> Since this controller always works with the alternative sixad daemon, can I log the traffic and
>> compare it? or maybe post it here so some of you guys can help me?
>
> Yeap, btmon logs could give us some more info what is going on.
>


2014-02-28 10:47:27

by Szymon Janc

[permalink] [raw]
Subject: Re: partial success with PS3 sixaxis

Hi Andrea,

On Saturday 15 of February 2014 12:10:39 Andrea wrote:
> On 13/02/14 09:25, Szymon Janc wrote:
> > Hi Andrea,
> >
>
> > This should "just work". Since 5.14 there is authorization needed when DS3 is
> > connecting (device is not marked as trusted when connected on USB) so please
> > make sure you have default agent registered.
> >
> > I assume you are using bluetoothctl so do:
> > agent on
> > default-agent
> >
> > Then you should get authorization request in bluetoothctl when DS3 is connecting.
> >
>
> I think the problem is not authorisation (I do not get such a request, by I did use the trust
> command, so maybe it is not necessary any more). It gets connected, it creates /dev/input/js0 but it
> deletes it shortly after.
>
> I run bluetoothd in debug mode and this is what it prints
>
> bluetoothd[13678]: src/adapter.c:connected_callback() hci0 device 00:1B:FB:63:F2:64 connected eir_len 5
> bluetoothd[13678]: profiles/input/server.c:connect_event_cb() Incoming connection from
> 00:1B:FB:63:F2:64 on PSM 17
> bluetoothd[13678]: profiles/input/device.c:input_device_set_channel() idev 0x1dec160 psm 17
> bluetoothd[13678]: profiles/input/server.c:confirm_event_cb()
> bluetoothd[13678]: profiles/input/server.c:connect_event_cb() Incoming connection from
> 00:1B:FB:63:F2:64 on PSM 19
> bluetoothd[13678]: profiles/input/device.c:input_device_set_channel() idev 0x1dec160 psm 19
> bluetoothd[13678]: src/service.c:change_state() 0x1deb1c0: device 00:1B:FB:63:F2:64 profile
> input-hid state changed: disconnected -> connected (0)
> bluetoothd[13678]: sixaxis: compatible device connected: PLAYSTATION(R)3 Controller (054C:0268)
>
> < ===================================== here I disconnect manually, as /dev/input/js0 has already
> been deleted>
>
> bluetoothd[13678]: src/service.c:change_state() 0x1deb1c0: device 00:1B:FB:63:F2:64 profile
> input-hid state changed: connected -> disconnecting (0)
> bluetoothd[13678]: profiles/input/device.c:input_device_disconnect()
> bluetoothd[13678]: Input: disconnect /org/bluez/hci0/dev_00_1B_FB_63_F2_64
> bluetoothd[13678]: profiles/input/device.c:ctrl_watch_cb() Device 00:1B:FB:63:F2:64 disconnected
> bluetoothd[13678]: profiles/input/device.c:intr_watch_cb() Device 00:1B:FB:63:F2:64 disconnected
> bluetoothd[13678]: src/service.c:change_state() 0x1deb1c0: device 00:1B:FB:63:F2:64 profile
> input-hid state changed: disconnecting -> disconnected (0)
> bluetoothd[13678]: profiles/input/device.c:input_device_enter_reconnect_mode()
> path=/org/bluez/hci0/dev_00_1B_FB_63_F2_64 reconnect_mode=device
> bluetoothd[13678]: src/adapter.c:dev_disconnected() Device 00:1B:FB:63:F2:64 disconnected, reason 2
> bluetoothd[13678]: src/adapter.c:adapter_remove_connection()
> bluetoothd[13678]: src/adapter.c:bonding_attempt_complete() hci0 bdaddr 00:1B:FB:63:F2:64 type 0
> status 0xe
> bluetoothd[13678]: src/device.c:device_bonding_complete() bonding (nil) status 0x0e
> bluetoothd[13678]: src/device.c:device_bonding_failed() status 14
> bluetoothd[13678]: src/adapter.c:resume_discovery()
>
> Halfway through I disconnected the controller with
>
> disconnect XX:XX:XX:XX:XX in bluetoothtcl
>
> at the same time in the kernel log I can see
>
> Feb 15 12:08:29 alarmpi kernel: sony 0005:054C:0268.0010: Fixing up Sony Sixaxis report descriptor
> Feb 15 12:08:29 alarmpi kernel: sony 0005:054C:0268.0010: unknown main item tag 0x0
> Feb 15 12:08:29 alarmpi kernel: input: PLAYSTATION(R)3 Controller as
> /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3.1/1-1.3.1:1.0/blu
> Feb 15 12:08:29 alarmpi kernel: sony 0005:054C:0268.0010: input,hidraw0: BLUETOOTH HID v1.00
> Joystick [PLAYSTATION(R)3 Controller] on 00:
> Feb 15 12:08:39 alarmpi kernel: sony: probe of 0005:054C:0268.0010 failed with error -5
>
> which mention some issues with descriptor, tag and probe.

Failing probe is a problem here. Do you use same dongle on RaspPi as on Fedora?
I've seen that DS3 is not playing well with some controllers i.e. it doesn't work
with one on my CSR 2.0 USB dongle.

> I am not too familiar with whom is responsible for /dev/input/js0? kernel? bluez? the sixaxis plugin?

Kernel. sixaxis plugin is used only to associate DS3 with host controller (and to set LEDs).

> Since this controller always works with the alternative sixad daemon, can I log the traffic and
> compare it? or maybe post it here so some of you guys can help me?

Yeap, btmon logs could give us some more info what is going on.

--
Best regards,
Szymon Janc

2014-02-28 10:35:29

by Szymon Janc

[permalink] [raw]
Subject: Re: partial success with PS3 sixaxis

Hi Andrea,

On Saturday 22 of February 2014 09:19:15 Andrea wrote:
> On 20/02/14 09:47, Szymon Janc wrote:
> > Hi Andrea,
> >
> >
> > This is a known regression on kernels >3.9. Should be fixed in 3.15 AFAIR.
> >
>
> you really mean 3.15? not even 3.14?

AFAIK yes, this regression was only spotted in mid December when sixaxis
patches were submitted and proper fix turns out to be not that trivial.

> then, my last issue is the following:
>
> on Fedora 19 x86 things work with a Bluetooth 4.0 dongle
>
> 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
>
> running 3.12.11 (Fedora version)
>
>
>
> unfortunately on a Raspberry Pi ARM6, Arch Linux with kernel 3.13.3 I get a strange kernel oops
> after a random time of successful usage (could be 1 minute or 2 days)
>
> I struggle to get a meaningful stack trace (the whole system dies, need to attach a serial console),
> would you know of any issues on this architecture? it seems to be a NULL pointer exception.
> The same crash happens with a different dongle (older bluetooth 2 from broadcom)

I haven't seen any issues on my PC but I wasn't using it on any ARM device.

--
Best regards,
Szymon Janc

2014-02-22 09:19:15

by Andrea

[permalink] [raw]
Subject: Re: partial success with PS3 sixaxis

On 20/02/14 09:47, Szymon Janc wrote:
> Hi Andrea,
>
>
> This is a known regression on kernels >3.9. Should be fixed in 3.15 AFAIR.
>

you really mean 3.15? not even 3.14?

then, my last issue is the following:

on Fedora 19 x86 things work with a Bluetooth 4.0 dongle

0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)

running 3.12.11 (Fedora version)



unfortunately on a Raspberry Pi ARM6, Arch Linux with kernel 3.13.3 I get a strange kernel oops
after a random time of successful usage (could be 1 minute or 2 days)

I struggle to get a meaningful stack trace (the whole system dies, need to attach a serial console),
would you know of any issues on this architecture? it seems to be a NULL pointer exception.
The same crash happens with a different dongle (older bluetooth 2 from broadcom)


thanks


2014-02-20 09:47:44

by Szymon Janc

[permalink] [raw]
Subject: Re: partial success with PS3 sixaxis

Hi Andrea,

On Saturday 15 of February 2014 20:41:58 Andrea wrote:
> On 13/02/14 09:25, Szymon Janc wrote:
> > Hi Andrea,
> >
> >
> > I assume you are using bluetoothctl so do:
> > agent on
> > default-agent
> >
> > Then you should get authorization request in bluetoothctl when DS3 is connecting.
> >
>
> Hi,
>
> I have tried on a different laptop (no more the raspberry pi, where I still have the issues I
> reported in the other email), running Fedora 19.
>
> I compiled bluez 5.14 and run it.
> It is more stable and /dev/input/js0 is usable.
>
> It is still not able to set the LEDs. This gets written in the output
>
> Feb 15 16:55:02 localhost.localdomain bluetoothd[24620]: sixaxis: compatible device connected:
> PLAYSTATION(R)3 Contr
> Feb 15 16:55:02 localhost.localdomain kernel: input: PLAYSTATION(R)3 Controller as
> /devices/pci0000:00/0000:00:1d.1/
> Feb 15 16:55:02 localhost.localdomain kernel: sony 0005:054C:0268.000E: input,hidraw0: BLUETOOTH HID
> v1.00 Joystick
> Feb 15 16:55:02 localhost.localdomain bluetoothd[24620]: sixaxis: failed to set LEDS (0 bytes written)
>
> I have tried to log the traffic for bluez and sixad (where the LEDs work), to see you can find any
> difference.

This is a known regression on kernels >3.9. Should be fixed in 3.15 AFAIR.

> http://pastebin.com/pExywtUk (this is the log from bluez where LEDs keep flashing)
> http://pastebin.com/BgRUnamS (log from sixad where LEDs are set)
>
> Happy to provide more if it can be of any help.
>
> Andrea
>

--
Best regards,
Szymon Janc

2014-02-15 20:49:34

by Andrea

[permalink] [raw]
Subject: Re: partial success with PS3 sixaxis

On 15/02/14 20:41, Andrea wrote:
> On 13/02/14 09:25, Szymon Janc wrote:
>> Hi Andrea,
>>
>>
>> I assume you are using bluetoothctl so do:
>> agent on
>> default-agent
>>
>> Then you should get authorization request in bluetoothctl when DS3 is connecting.
>>
>
> Hi,
>
> I have tried on a different laptop (no more the raspberry pi, where I still have the issues I
> reported in the other email), running Fedora 19.
>
> I compiled bluez 5.14 and run it.
> It is more stable and /dev/input/js0 is usable.
>
> It is still not able to set the LEDs. This gets written in the output
>
> Feb 15 16:55:02 localhost.localdomain bluetoothd[24620]: sixaxis: compatible device connected:
> PLAYSTATION(R)3 Contr
> Feb 15 16:55:02 localhost.localdomain kernel: input: PLAYSTATION(R)3 Controller as
> /devices/pci0000:00/0000:00:1d.1/
> Feb 15 16:55:02 localhost.localdomain kernel: sony 0005:054C:0268.000E: input,hidraw0: BLUETOOTH HID
> v1.00 Joystick
> Feb 15 16:55:02 localhost.localdomain bluetoothd[24620]: sixaxis: failed to set LEDS (0 bytes written)
>
> I have tried to log the traffic for bluez and sixad (where the LEDs work), to see you can find any
> difference.
>
> http://pastebin.com/pExywtUk (this is the log from bluez where LEDs keep flashing)
> http://pastebin.com/BgRUnamS (log from sixad where LEDs are set)
>
> Happy to provide more if it can be of any help.
>
> Andrea
>

and this is the log from bluez 5.14 running on raspberry pi
where /dev/input/js0 disappears after a few seconds.

http://pastebin.com/Rxsv3php

Andrea


2014-02-15 20:41:58

by Andrea

[permalink] [raw]
Subject: Re: partial success with PS3 sixaxis

On 13/02/14 09:25, Szymon Janc wrote:
> Hi Andrea,
>
>
> I assume you are using bluetoothctl so do:
> agent on
> default-agent
>
> Then you should get authorization request in bluetoothctl when DS3 is connecting.
>

Hi,

I have tried on a different laptop (no more the raspberry pi, where I still have the issues I
reported in the other email), running Fedora 19.

I compiled bluez 5.14 and run it.
It is more stable and /dev/input/js0 is usable.

It is still not able to set the LEDs. This gets written in the output

Feb 15 16:55:02 localhost.localdomain bluetoothd[24620]: sixaxis: compatible device connected:
PLAYSTATION(R)3 Contr
Feb 15 16:55:02 localhost.localdomain kernel: input: PLAYSTATION(R)3 Controller as
/devices/pci0000:00/0000:00:1d.1/
Feb 15 16:55:02 localhost.localdomain kernel: sony 0005:054C:0268.000E: input,hidraw0: BLUETOOTH HID
v1.00 Joystick
Feb 15 16:55:02 localhost.localdomain bluetoothd[24620]: sixaxis: failed to set LEDS (0 bytes written)

I have tried to log the traffic for bluez and sixad (where the LEDs work), to see you can find any
difference.

http://pastebin.com/pExywtUk (this is the log from bluez where LEDs keep flashing)
http://pastebin.com/BgRUnamS (log from sixad where LEDs are set)

Happy to provide more if it can be of any help.

Andrea


2014-02-15 12:10:39

by Andrea

[permalink] [raw]
Subject: Re: partial success with PS3 sixaxis

On 13/02/14 09:25, Szymon Janc wrote:
> Hi Andrea,
>

> This should "just work". Since 5.14 there is authorization needed when DS3 is
> connecting (device is not marked as trusted when connected on USB) so please
> make sure you have default agent registered.
>
> I assume you are using bluetoothctl so do:
> agent on
> default-agent
>
> Then you should get authorization request in bluetoothctl when DS3 is connecting.
>

I think the problem is not authorisation (I do not get such a request, by I did use the trust
command, so maybe it is not necessary any more). It gets connected, it creates /dev/input/js0 but it
deletes it shortly after.

I run bluetoothd in debug mode and this is what it prints

bluetoothd[13678]: src/adapter.c:connected_callback() hci0 device 00:1B:FB:63:F2:64 connected eir_len 5
bluetoothd[13678]: profiles/input/server.c:connect_event_cb() Incoming connection from
00:1B:FB:63:F2:64 on PSM 17
bluetoothd[13678]: profiles/input/device.c:input_device_set_channel() idev 0x1dec160 psm 17
bluetoothd[13678]: profiles/input/server.c:confirm_event_cb()
bluetoothd[13678]: profiles/input/server.c:connect_event_cb() Incoming connection from
00:1B:FB:63:F2:64 on PSM 19
bluetoothd[13678]: profiles/input/device.c:input_device_set_channel() idev 0x1dec160 psm 19
bluetoothd[13678]: src/service.c:change_state() 0x1deb1c0: device 00:1B:FB:63:F2:64 profile
input-hid state changed: disconnected -> connected (0)
bluetoothd[13678]: sixaxis: compatible device connected: PLAYSTATION(R)3 Controller (054C:0268)

< ===================================== here I disconnect manually, as /dev/input/js0 has already
been deleted>

bluetoothd[13678]: src/service.c:change_state() 0x1deb1c0: device 00:1B:FB:63:F2:64 profile
input-hid state changed: connected -> disconnecting (0)
bluetoothd[13678]: profiles/input/device.c:input_device_disconnect()
bluetoothd[13678]: Input: disconnect /org/bluez/hci0/dev_00_1B_FB_63_F2_64
bluetoothd[13678]: profiles/input/device.c:ctrl_watch_cb() Device 00:1B:FB:63:F2:64 disconnected
bluetoothd[13678]: profiles/input/device.c:intr_watch_cb() Device 00:1B:FB:63:F2:64 disconnected
bluetoothd[13678]: src/service.c:change_state() 0x1deb1c0: device 00:1B:FB:63:F2:64 profile
input-hid state changed: disconnecting -> disconnected (0)
bluetoothd[13678]: profiles/input/device.c:input_device_enter_reconnect_mode()
path=/org/bluez/hci0/dev_00_1B_FB_63_F2_64 reconnect_mode=device
bluetoothd[13678]: src/adapter.c:dev_disconnected() Device 00:1B:FB:63:F2:64 disconnected, reason 2
bluetoothd[13678]: src/adapter.c:adapter_remove_connection()
bluetoothd[13678]: src/adapter.c:bonding_attempt_complete() hci0 bdaddr 00:1B:FB:63:F2:64 type 0
status 0xe
bluetoothd[13678]: src/device.c:device_bonding_complete() bonding (nil) status 0x0e
bluetoothd[13678]: src/device.c:device_bonding_failed() status 14
bluetoothd[13678]: src/adapter.c:resume_discovery()

Halfway through I disconnected the controller with

disconnect XX:XX:XX:XX:XX in bluetoothtcl

at the same time in the kernel log I can see

Feb 15 12:08:29 alarmpi kernel: sony 0005:054C:0268.0010: Fixing up Sony Sixaxis report descriptor
Feb 15 12:08:29 alarmpi kernel: sony 0005:054C:0268.0010: unknown main item tag 0x0
Feb 15 12:08:29 alarmpi kernel: input: PLAYSTATION(R)3 Controller as
/devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3.1/1-1.3.1:1.0/blu
Feb 15 12:08:29 alarmpi kernel: sony 0005:054C:0268.0010: input,hidraw0: BLUETOOTH HID v1.00
Joystick [PLAYSTATION(R)3 Controller] on 00:
Feb 15 12:08:39 alarmpi kernel: sony: probe of 0005:054C:0268.0010 failed with error -5

which mention some issues with descriptor, tag and probe.

I am not too familiar with whom is responsible for /dev/input/js0? kernel? bluez? the sixaxis plugin?

Since this controller always works with the alternative sixad daemon, can I log the traffic and
compare it? or maybe post it here so some of you guys can help me?

thank you


2014-02-13 09:25:43

by Szymon Janc

[permalink] [raw]
Subject: Re: partial success with PS3 sixaxis

Hi Andrea,

On Wednesday 12 of February 2014 21:31:12 Andrea wrote:
> Hi,
>
> I've been trying to pair a PS3 sixaxis controller using bluez 5.14
> I've had so far only partial success.
>
> It connects, creates js0 and event0 devices, but after a few seconds it removes them.
>
> The lights are always flashing.
>
> I am on a Raspberry running ArchLinux.
>
> This is the output of bluetoothctl
>
> ...
> [bluetooth]# disconnect
> [CHG] Device 00:0B:EB:63:F2:62 Connected: yes
> [bluetooth]# disconnect show
> [bluetooth]# disconnect 00:0B:EB:63:F2:62
> Attempting to disconnect from 00:0B:EB:63:F2:62
> Successful disconnected
> [CHG] Device 00:0B:EB:63:F2:62 Connected: no
> [CHG] Device 00:0B:EB:63:F2:62 Connected: yes
>
> then in dmesg I can see
>
> [ 2745.435967] sony 0005:054C:0268.0008: Fixing up Sony Sixaxis report descriptor
> [ 2745.452105] sony 0005:054C:0268.0008: unknown main item tag 0x0
> [ 2745.471504] input: PLAYSTATION(R)3 Controller as
> /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3.1/1-1.3.1:1.0/bluetooth/hci0/hci0:11/input7
> [ 2745.472795] sony 0005:054C:0268.0008: input,hidraw0: BLUETOOTH HID v1.00 Joystick
> [PLAYSTATION(R)3 Controller] on 00:0b:0d:4c:94:a6
> [ 2755.472242] sony: probe of 0005:054C:0268.0008 failed with error -5
>
> the hardware should be ok as it works using sixad & sixpair.
>
> any idea what could be going wrong?
> I am not even sure if I am doing the right thing to pair, trust, connect etc... as I cannot google
> anything using bluez 5 + ps3. All the howtos are for sixad.

This should "just work". Since 5.14 there is authorization needed when DS3 is
connecting (device is not marked as trusted when connected on USB) so please
make sure you have default agent registered.

I assume you are using bluetoothctl so do:
agent on
default-agent

Then you should get authorization request in bluetoothctl when DS3 is connecting.

--
Best regards,
Szymon Janc