Date: Wed, 30 Sep 2015 22:31:28 +0300 From: Arto Pekkanen <isoa@kapsi.fi> To: x11@freebsd.org Subject: X.org devd hotplug backend ignoring uhid devices, prevents using gamepads with X.org Message-ID: <560C3890.7020004@kapsi.fi>
next in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --QD7nkNl30ALxgNP3jkfArPNvn2eqfIgdw Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable I have an XBox 360 controller that is attached as /dev/uhid0 by the kerne= l.=20 I have also declared a catch-all InputClass for hid devices in order to h= ave X.org use gamepads automatically: -- file: /usr/local/etc/X11/xorg.conf.d/30-joystick.conf Section "InputClass" Identifier "Game Controller" Driver "joystick" Option "MatchIsJoystick" "on" MatchDevicePath "/dev/uhid*" EndSection The above was derived from the man page of joystick(4x). As I understood,= here's how it works: - when X.org get notified about a /dev/uhid* device, it would dispatch th= e device to joystick(4x) (package: x11-drivers/xf86-input-joystick) - joystick(4x) would then test if the device is a hid joystick or not - if the device was a joystick, joystick(4x) would attach it to X.org as = input device, after which X11 applications could use it - by default the joystick directional input would double as main pointer = input, but that can be disabled with spesific options in InputClass However, this simply doesn't work, because the X.org devd backend ignores= all uhid devices. When I connect my gamepad, logfile Xorg.0.log outputs = the following: [(timestamp)] (II) config/devd: ignoring device uhid0 This means that my the InputClass definition is never matched, and joysti= ck(4x) is never attached to uhid0. Thus I can't get the gamepad to work w= ith X.org. I would like to get my gamepad working as a genuine X11 input device, pre= ferably hot pluggable. There are plenty applications that support the X11= input layer and can use gamepads and other widgets. One such application= that comes to mind is Wine.=20 And yes, I do know there is uhidd(8) installable via pkg, and I could use= it as a replacement for X.org input layer. uhidd(8) enables specific per= -device configuration, similarly to the X.org InputClass. And some applic= ations (NOT all) can be forced to use the raw /dev/uhidX device. I know a= ll that, and could do it. I just think that the correct way of using hid = devices in X.org context would be to use then via X11 input layer. Is there a way to force the X.org devd backend to not ignore uhid devices= and have them configured as per InputClass definitions? If not, are ther= e any plans to incorporate a reliable uhid configuration function to the = devd backend? And finally, how would I get my gamepad to work as X.org input device? --=20 Arto Pekkanen, s=C3=A4=C3=A4t=C3=A4j=C3=A4 ksym@IRCnet --QD7nkNl30ALxgNP3jkfArPNvn2eqfIgdw Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (MingW32) iF4EAREIAAYFAlYMOJMACgkQTBivhqtJa24VVgD/TtL6lQjbCLh59E8sEmEKU0ip 06RJlJe5Qp9ddICg0IMBAJLUO8vhZCi9oshvM3BBo/85Ely/GxuJEDk/PxlhfHve =LAFt -----END PGP SIGNATURE----- --QD7nkNl30ALxgNP3jkfArPNvn2eqfIgdw--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?560C3890.7020004>