Thread (4 messages) 4 messages, 3 authors, 2011-03-25

Re: [PATCH v2 0/3] Another try for the Sixaxis plugin

From: Bastien Nocera <hadess@hadess.net>
Date: 2011-02-25 12:34:02
Also in: linux-input

On Fri, 2011-02-25 at 11:04 +0100, Antonio Ospite wrote:
Hi,

this is another attempt to get the sixaxis plugin merged upstream in
bluez, now cable pairing is done without libusb, which is good because
the hid driver does not need to be detached anymore.
Good stuff.
The work is based on patches by Bastian Nocera, so its SOB line comes
first on the third patch, even though many parts have been totally
reimplemented.  More comments on the patch itself.

Bastien, I took the liberty to impersonate you in the second patch about
re-adding manager_get_default_adapter(), because the change was taken
out from your bluez rpm package. I hope this is OK.
Both fine by me.
I was wondering if it was possible to have the equivalent of this plugin
as a separate daemon doing the association part with bluez over dbus,
instead of having it builtin (I do not know the bluez dbus interface at
all), and if there were any major drawbacks with that compared to the
builtin plugin. What are your opinions on that?
This was already discussed, and I even created a patch to allow outside
pairing. I don't think there's much of a point doing this outside of
bluetoothd though, and Marcel preferred the pairing to be done within
bluetoothd.
Anyhow,

HOWTO test it:
  - Get a kernel supporting HIDIOCSFEATURE and HIDIOCGFEATURE: linux-next
    should have that, or Jiki Kosina's hidraw-feature branch:
    http://git.kernel.org/?p=linux/kernel/git/jikos/hid.git;a=shortlog;h=refs/heads/hidraw-feature
  - Build it and install it with its linux-libc-dev package ("make
    deb-pkg" on recent kernels builds that already).
  - Apply the patches in this series and configure bluez, the ioctl
    above should be detected automatically and the plugin enabled.
  - If there is any problem, try backing up and cleaning up
    /var/lib/bluetooth/

TODO before merging:
  - Check the routine about bluetooth association. Also, is it strictly
    necessary to grant manually the first connection?
The line setting the device trust should be enough to not have to
manually grant the first connection. You might want to double-check what
changes between the state of /var/lib/bluetooth after cable pairing and
before connecting for the first time.
  - Add the actual official version of linux-libc-dev in which the
    hidraw ioctl will be merged (now it is just 2.6.3x as a
    placeholder).
  - Check the last comment from Marcel about the timeout in
    http://marc.info/?l=linux-bluetooth&m=125525415718147&w=2 Could you
    comment on the third patch about that, please?
The timeout was to avoid reading data while udev was probing the device.
This might not be necessary anymore.
  - When the controller is connected via USB after it is working over BT
    it is seen as a second controller and the second LED is turned on,
    should we force BT disconnection on USB connection?
If we can assert that the device is the same one, yes, I think we
should.
  - Test with multiple controllers, and/or multiple BT adapters, which I
    can't do right now.
  - Remove the XXX comment about the lowercase hex bdaddr format.


FUTURE plans:
 - Add support for battery status report
Where is the battery level exported currently?
 - Add support for Playstation Move (I don't have the hardware, tho),
   Pascal?
The PS3 add-on keyboard, and the PS3 headset both use cable pairing. I
have them around, but was unable to get them to pair.

Cheers
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help