Return-Path: Message-ID: In-Reply-To: References: <8ccf0ad88f16335719c367ed69c90a3e.squirrel@mungewell.org> Date: Fri, 17 Jan 2014 15:17:36 -0500 Subject: Re: Dualshock4 - 'HIDP: Handshake: Unsupported request' after 'unplug virtual cable'. From: simon@mungewell.org To: "David Herrmann" Cc: "Simon Wood" , "linux-bluetooth@vger.kernel.org" , "Frank Praznik" MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Sender: linux-bluetooth-owner@vger.kernel.org List-ID: > So the problem is, your host refuses the HIDP connection from the > device. This is intentional, as we don't want *any* remote Bluetooth > device to be allowed to provide HID services. This could be used for > very subtle attacks. The code responsible for that is > ./profiles/input/server.c in bluez. I note that there is now some DS3/SixAxis specfic stuff in there: http://git.kernel.org/cgit/bluetooth/bluez.git/tree/profiles/input/server.c#n167 > Now, there are two ways to go on: > - try to initiate the HIDP connection from the host instead of the > device. Simply use "bluetoothctl" and then "connect " > - add the remote device to the list of known devices so incoming > connections are not blocked. You can do this by triggering the > ->device_probe() callback of the input device. I'm not sure how this > is done, but I think a simple "connect " should trigger it on > *all* available services. Thanks for your suggestions, I'll try to get some logs early next week. Cheers, Simon