ps3 sixaxis & bluez 3.22: HDI issue
Hello,
I'm experiencing an issue while trying to use the Sony PS3 sixaxis under Linux (Gentoo). The host machine is a PS3, I use bluez 3.22 out of the box (no patches) on a 64 bits kernel. I followed the documentation at
http://www.pabr.org/sixlinux/
This is my first bluetooth/Bluez experience, so please forgive if I use the wrong term or if I ask stupid questions ...
==== Problem Description ====
The sixaxis is not recognized by bluetoothd-service-input. According hcidump, a connection is made from the device (sixaxis) to the host controler but when trying to contact HDI on control channel (PSM 17), bluetoothd-service-input generate an error:
"HIDP: Control: Virtual cable unplug".
As a consequence, the device try few more times to establish the connection and then give up. Sixaxis is never recognized and created on the host.
==== Investigations ====
Attaching GDB to the running hcid and bluetoothd-service-input processes, I've isolated the following behavior :
**** bluetoothd-service-input side ****
At startup, it setup the callback mechanism from l2cap control (psm 17) & interrupt (psm 19) sockets to the function connect_event(). Later, when the device ask to open the psm 17 on l2cap, connect_event() is called. Then :
connect_event() ==call=> input_device_set_channel() ==call==> find_device() ==use==> GSList *devices;
In my case, GSList *devices is NULL, so connect_event() do a /* Send unplug virtual cable to unknown devices */.
This point out that:
1- The device structure for the sixaxis has not been created 2- Having a device structure is a requirement to use HID
**** hcid side ****
Everything looks good here.
Once the device has completed the connection with hcid, the function conn_complete() is called.
This one will :
+ Send a dbus system signal via hcid_dbus_conn_complete() :
signal sender=:1.3 -> dest=(null destination) path=/org/bluez/hci0; interface=org.bluez.Adapter; member=RemoteDeviceConnected
+ Read the remote name of the device
**** dbus side ****
Everytime the sixaxis tries to establish a connection with the host, the following messages appear :
signal sender=:1.3 -> dest=(null destination) path=/org/bluez/hci0; interface=org.bluez.Adapter; member=RemoteDeviceConnected
string "00:19:C1:ED:21:31"
signal sender=:1.3 -> dest=(null destination) path=/org/bluez/hci0; interface=org.bluez.Adapter; member=RemoteNameUpdated
string "00:19:C1:ED:21:31"
string "PLAYSTATION(R)3 Controller"
signal sender=:1.3 -> dest=(null destination) path=/org/bluez/hci0; interface=org.bluez.Adapter; member=RemoteDeviceDisconnected
string "00:19:C1:ED:21:31"
**** Other ****
Just to be sure, the pairing has been done using sixpair.c => same issue I've tested with the CVS versions of hcid and bluetoothd-service-input => same issue.
==== Need Help :/ ====
Could someone explains me what should be the process to establish a HID connection via Bluez ?
I think bluetoothd-service-input should listen signals from /org/bluez/hci0 and create a device structure when a RemoteDeviceConnected signal is intercepted, but it doesn't seem to
work like this.
In bluetoothd-service-input, in which step of this process should the create_device() function be called ?
Did I miss a something ?
Please find in attachment :
+ Output of "hcidump -w" while trying to establish a connection
+ Output of "dbus-monitor --system --monitor" while trying to establish a connection
+ Output of syslog while trying to establish a connection
# dbus-daemon --version D-Bus Message Bus Daemon 1.0.2
Thanks in advance for your help,
Signature · 1 line
creber
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users
I also couldn't use Sixaxis in bluetooth mode until I add this lines into pairing informations:
$ cat /var/lib/bluetooth/[mac od your bluetooth]/input 05010904A101A102850175089501150026FF008103750195131500250135004501050919012= 91381027501950D0600FF8103150026FF0005010901A10075089504350046FF000930093109= 3209358102C0050175089527090181027508953009019102750895300901B102C0A10285027= 50895300901B102C0A10285EE750895300901B102C0A10285EF750895300901B102C0C000 00000000 Sony Computer Entertainment Wireless Controller
$ cat /var/lib/bluetooth/[mac od your bluetooth]/trusts 00:19:C1:E4:2D:06 [all]
All Sixaxis controllers have the same Mac adress, you need only add this li= nes.
2007/11/20, Fr=E9d=E9ric Blain <[email protected]>:
Quoted 30 lines
Hello,
I'm experiencing an issue while trying to use the Sony PS3 sixaxis under Linux (Gentoo). The host machine is a PS3, I use bluez 3.22 out of the box (no patches) on a 64 bits kernel. I followed the documentation at
http://www.pabr.org/sixlinux/This is my first bluetooth/Bluez experience, so please forgive if I use the wrong term or if I ask stupid questions ...
=3D=3D=3D=3D Problem Description =3D=3D=3D=3D
The sixaxis is not recognized by bluetoothd-service-input. According hcidump, a connection is made from the device (sixaxis) to the host controler but when trying to contact HDI on control channel (PSM 17), bluetoothd-service-input generate an error:
"HIDP: Control: Virtual cable unplug".As a consequence, the device try few more times to establish the connection and then give up. Sixaxis is never recognized and created on the host.
=3D=3D=3D=3D Investigations =3D=3D=3D=3D
Attaching GDB to the running hcid and bluetoothd-service-input processes, I've isolated the following behavior :
Quoted 7 lines
**** bluetoothd-service-input side ****
At startup, it setup the callback mechanism from l2cap control (psm 17) & interrupt (psm 19) sockets to the functionconnect_event(). Later, when the device ask to open the psm 17 on l2cap,connect_event()is called. Then :
connect_event()=3D=3Dcall=3D>input_device_set_channel()=3D=3Dcall=3D=
=3D>
Quoted 10 lines
find_device()=3D=3Duse=3D=3D> GSList *devices;In my case, GSList *devices is NULL, so
connect_event()do a /* Send unplug virtual cable to unknown devices */.This point out that:
1- The device structure for the sixaxis has not been created 2- Having a device structure is a requirement to use HID
Quoted 8 lines
**** hcid side ****
Everything looks good here.
Once the device has completed the connection with hcid, the functionconn_complete()is called.This one will :
+ Send a dbus system signal viahcid_dbus_conn_complete():signal sender=3D:1.3 -> dest=3D(null destination) path=3D/org/bluez/=
hci0; interface=3Dorg.bluez.Adapter; member=3DRemoteDeviceConnected
Quoted 9 lines
+ Read the remote name of the device
**** dbus side ****
Everytime the sixaxis tries to establish a connection with the host, the following messages appear :signal sender=3D:1.3 -> dest=3D(null destination) path=3D/org/bluez/hci0;=
interface=3Dorg.bluez.Adapter; member=3DRemoteDeviceConnected
Quoted 2 lines
string "00:19:C1:ED:21:31"signal sender=3D:1.3 -> dest=3D(null destination) path=3D/org/bluez/hci0;=
interface=3Dorg.bluez.Adapter; member=3DRemoteNameUpdated
Quoted 3 lines
string "00:19:C1:ED:21:31"
string "PLAYSTATION(R)3 Controller"
signal sender=3D:1.3 -> dest=3D(null destination) path=3D/org/bluez/hci0;=
interface=3Dorg.bluez.Adapter; member=3DRemoteDeviceDisconnected
Quoted 7 lines
string "00:19:C1:ED:21:31"**** Other ****
Just to be sure, the pairing has been done usingsixpair.c=3D> same issue I've tested with the CVS versions of hcid and bluetoothd-service-input =
=3D> same issue.
Quoted 15 lines
=3D=3D=3D=3D Need Help :/ =3D=3D=3D=3D
Could someone explains me what should be the process to establish a HID connection via Bluez ?
I think bluetoothd-service-input should listen signals from /org/bluez/hci0 and create a device structure when a RemoteDeviceConnected signal is intercepted, but it doesn't seem to work like this.
In bluetoothd-service-input, in which step of this process should the
create_device()function be called ?
Quoted 6 lines
Did I miss a something ?
Please find in attachment :
+ Output of "hcidump -w" while trying to establish a connection
+ Output of "dbus-monitor --system --monitor" while trying to establish=
a connection
Quoted 14 lines
+ Output of syslog while trying to establish a connection
# dbus-daemon --version D-Bus Message Bus Daemon 1.0.2Thanks in advance for your help,
--
creber
Quoted 11 lines
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Bluez-users mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Bluez-users mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users
Hello Adam and thanks for your help.
My Sixaxis has a different Mac address than yours (00:19:C1:ED:21:31) :
# dbus-monitor --system --monitor signal sender=3D:1.3 -> dest=3D(null destination) path=3D/org/bluez/hci0; =
interface=3Dorg.bluez.Adapter; member=3DRemoteDeviceDisconnected
string "00:19:C1:ED:21:31"
I've set /var/lib/bluetooth/[mac od your bluetooth]/trusts accordingly =
and let /var/lib/bluetooth/[mac od your bluetooth]/input as yours.
I still have the same issue.
Do you know what's the structure of /var/lib/bluetooth/[mac od your =
bluetooth]/input ?
Should I change anything ?
Also, I forgot to specify in my original mail :
# uname -a Linux localhost 2.6.23 #3 SMP Tue Nov 13 23:08:08 CET 2007 ppc64 Cell =
Broadband Engine, altivec supported GNU/Linux
Thanks,
-- =
creber
Quoted 5 lines · Adam Strojek
I also couldn't use Sixaxis in bluetooth mode until I add this lines into pairing informations:
$ cat /var/lib/bluetooth/[mac od your bluetooth]/input 05010904A101A102850175089501150026FF0081037501951315002501350045010509190=
1291381027501950D0600FF8103150026FF0005010901A10075089504350046FF0009300931= 093209358102C0050175089527090181027508953009019102750895300901B102C0A102850= 2750895300901B102C0A10285EE750895300901B102C0A10285EF750895300901B102C0C000
Quoted 6 lines
00000000 Sony Computer Entertainment Wireless Controller
$ cat /var/lib/bluetooth/[mac od your bluetooth]/trusts 00:19:C1:E4:2D:06 [all]All Sixaxis controllers have the same Mac adress, you need only add this =
lines.
Quoted 40 lines
2007/11/20, Fr=E9d=E9ric Blain <[email protected]>:
=Quoted 36 lines
Hello,
I'm experiencing an issue while trying to use the Sony PS3 sixaxis under Linux (Gentoo). The host machine is a PS3, I use bluez 3.22 out of the box (no patches) on a 64 bits kernel. I followed the documentation at
http://www.pabr.org/sixlinux/This is my first bluetooth/Bluez experience, so please forgive if I use the wrong term or if I ask stupid questions ...
=3D=3D=3D=3D Problem Description =3D=3D=3D=3D
The sixaxis is not recognized by bluetoothd-service-input. According hcidump, a connection is made from the device (sixaxis) to the host controler but when trying to contact HDI on control channel (PSM 17), bluetoothd-service-input generate an error:
"HIDP: Control: Virtual cable unplug".As a consequence, the device try few more times to establish the connection and then give up. Sixaxis is never recognized and created on the host.
=3D=3D=3D=3D Investigations =3D=3D=3D=3D
Attaching GDB to the running hcid and bluetoothd-service-input processes, I've isolated the following behavior :
**** bluetoothd-service-input side ****
At startup, it setup the callback mechanism from l2cap control (psm 17) & interrupt (psm 19) sockets to the functionconnect_event(). Later, when the device ask to open the psm 17 on l2cap,connect_event()is called. Then :
connect_event()=3D=3Dcall=3D>input_device_set_channel()=3D=3Dcall=3D=
=3D>
Quoted 10 lines
Quoted 10 lines
find_device()=3D=3Duse=3D=3D> GSList *devices;In my case, GSList *devices is NULL, so
connect_event()do a /* Send unplug virtual cable to unknown devices */.This point out that:
1- The device structure for the sixaxis has not been created 2- Having a device structure is a requirement to use HID
Quoted 8 lines
Quoted 8 lines
**** hcid side ****
Everything looks good here.
Once the device has completed the connection with hcid, the functionconn_complete()is called.This one will :
+ Send a dbus system signal viahcid_dbus_conn_complete():signal sender=3D:1.3 -> dest=3D(null destination) path=3D/org/bluez=
/hci0; interface=3Dorg.bluez.Adapter; member=3DRemoteDeviceConnected
Quoted 9 lines
Quoted 9 lines
+ Read the remote name of the device
**** dbus side ****
Everytime the sixaxis tries to establish a connection with the host, the following messages appear :signal sender=3D:1.3 -> dest=3D(null destination) path=3D/org/bluez/hci0=
; interface=3Dorg.bluez.Adapter; member=3DRemoteDeviceConnected
Quoted 2 lines
Quoted 2 lines
string "00:19:C1:ED:21:31"signal sender=3D:1.3 -> dest=3D(null destination) path=3D/org/bluez/hci0=
; interface=3Dorg.bluez.Adapter; member=3DRemoteNameUpdated
Quoted 3 lines
Quoted 3 lines
string "00:19:C1:ED:21:31"
string "PLAYSTATION(R)3 Controller"
signal sender=3D:1.3 -> dest=3D(null destination) path=3D/org/bluez/hci0=
; interface=3Dorg.bluez.Adapter; member=3DRemoteDeviceDisconnected
Quoted 6 lines
Quoted 6 lines
string "00:19:C1:ED:21:31"**** Other ****
Just to be sure, the pairing has been done usingsixpair.c=3D> same iss=
ue
Quoted 1 line
Quoted 1 line
I've tested with the CVS versions of hcid and bluetoothd-service-input =
=3D> same issue.
Quoted 15 lines
Quoted 15 lines
=3D=3D=3D=3D Need Help :/ =3D=3D=3D=3D
Could someone explains me what should be the process to establish a HID connection via Bluez ?
I think bluetoothd-service-input should listen signals from /org/bluez/hci0 and create a device structure when a RemoteDeviceConnected signal is intercepted, but it doesn't seem to work like this.
In bluetoothd-service-input, in which step of this process should the
create_device()function be called ?
Quoted 6 lines
Quoted 6 lines
Did I miss a something ?
Please find in attachment :
+ Output of "hcidump -w" while trying to establish a connection
+ Output of "dbus-monitor --system --monitor" while trying to establis=
h a connection
Quoted 25 lines
Quoted 25 lines
+ Output of syslog while trying to establish a connection
# dbus-daemon --version D-Bus Message Bus Daemon 1.0.2Thanks in advance for your help,
--
creber-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Bluez-users mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users
Quoted 1 line
Quoted 1 line
=
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Bluez-users mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users
A message that is not in the archive (sent off-list or not yet received): [email protected]
Hello Adams,
I actually built bluez-utils with --enable-hidd option and renamed the file /var/lib/bluetooth/xx:xx:xx:xx:xx/hidd to ......./input to get /bluetoothd-service-input/ working. However, there is an issue with the current version since new input devices (at least the sixaxis) does not seem to be recognized. I will try to post on bluez-devel to get an idea on what should be done to fix this.
For those interested, I've written a step by step doc here:
http://creber.free.fr/frederic-blain/?n=Main.GentooOnPS3SixaxisBluetooth.
Thanks for your help,
Signature · 1 line
creber
Quoted 5 lines · Adam Strojek
This min that you need pair your sixaxis using old hidd deamon with patchs and instructions from this page, and then you can delete old deamons because you have propetly created pair link between your computer and your sixaxis.
Quoted 174 lines
2007/11/20, Frédéric Blain <[email protected]>:
Quoted 172 lines
Hello Adam and thanks for your help.
My Sixaxis has a different Mac address than yours (00:19:C1:ED:21:31) :
# dbus-monitor --system --monitor signal sender=:1.3 -> dest=(null destination) path=/org/bluez/hci0; interface=org.bluez.Adapter; member=RemoteDeviceDisconnected string "00:19:C1:ED:21:31"I've set /var/lib/bluetooth/[mac od your bluetooth]/trusts accordingly and let /var/lib/bluetooth/[mac od your bluetooth]/input
as yours.I still have the same issue.
Do you know what's the structure of /var/lib/bluetooth/[mac od your bluetooth]/input ?
Should I change anything ?Also, I forgot to specify in my original mail :
# uname -a Linux localhost 2.6.23 #3 SMP Tue Nov 13 23:08:08 CET 2007 ppc64 Cell Broadband Engine, altivec supported GNU/LinuxThanks,
--
creberQuoted 138 lines · Adam Strojek
I also couldn't use Sixaxis in bluetooth mode until I add this lines into pairing informations:
$ cat /var/lib/bluetooth/[mac od your bluetooth]/input 05010904A101A102850175089501150026FF00810375019513150025013500450105091901291381027501950D0600FF8103150026FF0005010901A10075089504350046FF0009300931093209358102C0050175089527090181027508953009019102750895300901B102C0A1028502750895300901B102C0A10285EE750895300901B102C0A10285EF750895300901B102C0C000 00000000 Sony Computer Entertainment Wireless Controller$ cat /var/lib/bluetooth/[mac od your bluetooth]/trusts 00:19:C1:E4:2D:06 [all]All Sixaxis controllers have the same Mac adress, you need only add this lines.
2007/11/20, Frédéric Blain <[email protected]>:
Quoted 123 lines
Hello,
I'm experiencing an issue while trying to use the Sony PS3 sixaxis under Linux (Gentoo). The host machine is a PS3, I use bluez 3.22 out of the box (no patches) on a 64 bits kernel. I followed the documentation at
http://www.pabr.org/sixlinux/This is my first bluetooth/Bluez experience, so please forgive if I use the wrong term or if I ask stupid questions ...
==== Problem Description ====
The sixaxis is not recognized by bluetoothd-service-input. According hcidump, a connection is made from the device (sixaxis) to the host controler but when trying to contact HDI on control channel (PSM 17), bluetoothd-service-input generate an error:
"HIDP: Control: Virtual cable unplug".As a consequence, the device try few more times to establish the connection and then give up. Sixaxis is never recognized and created on the host.
==== Investigations ====
Attaching GDB to the running hcid and bluetoothd-service-input processes, I've isolated the following behavior :
**** bluetoothd-service-input side ****
At startup, it setup the callback mechanism from l2cap control (psm 17) & interrupt (psm 19) sockets to the functionconnect_event(). Later, when the device ask to open the psm 17 on l2cap,connect_event()is called. Then :
connect_event()==call=>input_device_set_channel()==call==>find_device()==use==> GSList *devices;In my case, GSList *devices is NULL, so
connect_event()do a /* Send unplug virtual cable to unknown devices */.This point out that:
1- The device structure for the sixaxis has not been created 2- Having a device structure is a requirement to use HID**** hcid side ****
Everything looks good here.
Once the device has completed the connection with hcid, the functionconn_complete()is called.This one will :
+ Send a dbus system signal viahcid_dbus_conn_complete():signal sender=:1.3 -> dest=(null destination) path=/org/bluez/hci0; interface=org.bluez.Adapter; member=RemoteDeviceConnected+ Read the remote name of the device
**** dbus side ****
Everytime the sixaxis tries to establish a connection with the host, the following messages appear :signal sender=:1.3 -> dest=(null destination) path=/org/bluez/hci0; interface=org.bluez.Adapter; member=RemoteDeviceConnected
string "00:19:C1:ED:21:31"
signal sender=:1.3 -> dest=(null destination) path=/org/bluez/hci0; interface=org.bluez.Adapter; member=RemoteNameUpdated
string "00:19:C1:ED:21:31"
string "PLAYSTATION(R)3 Controller"
signal sender=:1.3 -> dest=(null destination) path=/org/bluez/hci0; interface=org.bluez.Adapter; member=RemoteDeviceDisconnected
string "00:19:C1:ED:21:31"**** Other ****
Just to be sure, the pairing has been done usingsixpair.c=> same issue I've tested with the CVS versions of hcid and bluetoothd-service-input => same issue.==== Need Help :/ ====
Could someone explains me what should be the process to establish a HID connection via Bluez ?
I think bluetoothd-service-input should listen signals from /org/bluez/hci0 and create a device structure when a RemoteDeviceConnected signal is intercepted, but it doesn't seem to work like this.
In bluetoothd-service-input, in which step of this process should the
create_device()function be called ?Did I miss a something ?
Please find in attachment :
+ Output of "hcidump -w" while trying to establish a connection
+ Output of "dbus-monitor --system --monitor" while trying to establish a connection
+ Output of syslog while trying to establish a connection# dbus-daemon --version D-Bus Message Bus Daemon 1.0.2Thanks in advance for your help,
--
creber-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Bluez-users mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users