hid: Make game controllers accessible to members of the game group
Their events have to be accessible by unprivileged users via e.g. libsdl. MFC after: 1 month
This commit is contained in:
@@ -24,7 +24,7 @@
|
|||||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
.\" SUCH DAMAGE.
|
.\" SUCH DAMAGE.
|
||||||
.\"
|
.\"
|
||||||
.Dd November 12, 2025
|
.Dd November 30, 2025
|
||||||
.Dt HGAME 4
|
.Dt HGAME 4
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
@@ -69,8 +69,9 @@ prompt, or add it to
|
|||||||
To give user applications access to the game controllers,
|
To give user applications access to the game controllers,
|
||||||
allow user access to the
|
allow user access to the
|
||||||
.Pa /dev/input/event*
|
.Pa /dev/input/event*
|
||||||
nodes with
|
nodes with inclusion of user in the
|
||||||
.Xr devfs.rules 5 .
|
.Em games
|
||||||
|
group.
|
||||||
.Sh HARDWARE
|
.Sh HARDWARE
|
||||||
The
|
The
|
||||||
.Nm
|
.Nm
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
.\" SUCH DAMAGE.
|
.\" SUCH DAMAGE.
|
||||||
.\"
|
.\"
|
||||||
.Dd September 19, 2020
|
.Dd November 30, 2025
|
||||||
.Dt PS4DSHOCK 4
|
.Dt PS4DSHOCK 4
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
@@ -55,6 +55,9 @@ The
|
|||||||
device presents the game controller as a
|
device presents the game controller as a
|
||||||
.Ar evdev
|
.Ar evdev
|
||||||
type device.
|
type device.
|
||||||
|
It is accessible to members of the
|
||||||
|
.Em games
|
||||||
|
group.
|
||||||
.Sh SYSCTL VARIABLES
|
.Sh SYSCTL VARIABLES
|
||||||
Next parameters are available as
|
Next parameters are available as
|
||||||
.Xr sysctl 8
|
.Xr sysctl 8
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
.\" SUCH DAMAGE.
|
.\" SUCH DAMAGE.
|
||||||
.\"
|
.\"
|
||||||
.Dd September 16, 2020
|
.Dd November 30, 2025
|
||||||
.Dt XB360GP 4
|
.Dt XB360GP 4
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
@@ -56,6 +56,9 @@ The
|
|||||||
device presents the game controller as a
|
device presents the game controller as a
|
||||||
.Ar evdev
|
.Ar evdev
|
||||||
type device.
|
type device.
|
||||||
|
It is accessible to members of the
|
||||||
|
.Em games
|
||||||
|
group.
|
||||||
.Sh SYSCTL VARIABLES
|
.Sh SYSCTL VARIABLES
|
||||||
The following variable is available as both
|
The following variable is available as both
|
||||||
.Xr sysctl 8
|
.Xr sysctl 8
|
||||||
|
|||||||
+6
-1
@@ -33,8 +33,10 @@
|
|||||||
|
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
#include <sys/bus.h>
|
#include <sys/bus.h>
|
||||||
|
#include <sys/conf.h>
|
||||||
#include <sys/kernel.h>
|
#include <sys/kernel.h>
|
||||||
#include <sys/module.h>
|
#include <sys/module.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
#include <sys/sysctl.h>
|
#include <sys/sysctl.h>
|
||||||
|
|
||||||
#include <dev/evdev/input.h>
|
#include <dev/evdev/input.h>
|
||||||
@@ -170,8 +172,11 @@ hgame_final_cb(HIDMAP_CB_ARGS)
|
|||||||
{
|
{
|
||||||
struct evdev_dev *evdev = HIDMAP_CB_GET_EVDEV();
|
struct evdev_dev *evdev = HIDMAP_CB_GET_EVDEV();
|
||||||
|
|
||||||
if (HIDMAP_CB_GET_STATE() == HIDMAP_CB_IS_ATTACHING)
|
if (HIDMAP_CB_GET_STATE() == HIDMAP_CB_IS_ATTACHING) {
|
||||||
evdev_support_prop(evdev, INPUT_PROP_DIRECT);
|
evdev_support_prop(evdev, INPUT_PROP_DIRECT);
|
||||||
|
evdev_set_cdev_mode(evdev, UID_ROOT, GID_GAMES,
|
||||||
|
S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP);
|
||||||
|
}
|
||||||
|
|
||||||
/* Do not execute callback at interrupt handler and detach */
|
/* Do not execute callback at interrupt handler and detach */
|
||||||
return (ENOSYS);
|
return (ENOSYS);
|
||||||
|
|||||||
@@ -37,10 +37,12 @@
|
|||||||
|
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
#include <sys/bus.h>
|
#include <sys/bus.h>
|
||||||
|
#include <sys/conf.h>
|
||||||
#include <sys/kernel.h>
|
#include <sys/kernel.h>
|
||||||
#include <sys/lock.h>
|
#include <sys/lock.h>
|
||||||
#include <sys/malloc.h>
|
#include <sys/malloc.h>
|
||||||
#include <sys/module.h>
|
#include <sys/module.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
#include <sys/sx.h>
|
#include <sys/sx.h>
|
||||||
#include <sys/sysctl.h>
|
#include <sys/sysctl.h>
|
||||||
|
|
||||||
@@ -806,8 +808,11 @@ ps4dshock_final_cb(HIDMAP_CB_ARGS)
|
|||||||
{
|
{
|
||||||
struct evdev_dev *evdev = HIDMAP_CB_GET_EVDEV();
|
struct evdev_dev *evdev = HIDMAP_CB_GET_EVDEV();
|
||||||
|
|
||||||
if (HIDMAP_CB_GET_STATE() == HIDMAP_CB_IS_ATTACHING)
|
if (HIDMAP_CB_GET_STATE() == HIDMAP_CB_IS_ATTACHING) {
|
||||||
evdev_support_prop(evdev, INPUT_PROP_DIRECT);
|
evdev_support_prop(evdev, INPUT_PROP_DIRECT);
|
||||||
|
evdev_set_cdev_mode(evdev, UID_ROOT, GID_GAMES,
|
||||||
|
S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP);
|
||||||
|
}
|
||||||
|
|
||||||
/* Do not execute callback at interrupt handler and detach */
|
/* Do not execute callback at interrupt handler and detach */
|
||||||
return (ENOSYS);
|
return (ENOSYS);
|
||||||
@@ -886,6 +891,8 @@ ps4dsacc_final_cb(HIDMAP_CB_ARGS)
|
|||||||
if (HIDMAP_CB_GET_STATE() == HIDMAP_CB_IS_ATTACHING) {
|
if (HIDMAP_CB_GET_STATE() == HIDMAP_CB_IS_ATTACHING) {
|
||||||
evdev_support_event(evdev, EV_ABS);
|
evdev_support_event(evdev, EV_ABS);
|
||||||
evdev_support_prop(evdev, INPUT_PROP_ACCELEROMETER);
|
evdev_support_prop(evdev, INPUT_PROP_ACCELEROMETER);
|
||||||
|
evdev_set_cdev_mode(evdev, UID_ROOT, GID_GAMES,
|
||||||
|
S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP);
|
||||||
}
|
}
|
||||||
/* Do not execute callback at interrupt handler and detach */
|
/* Do not execute callback at interrupt handler and detach */
|
||||||
return (ENOSYS);
|
return (ENOSYS);
|
||||||
|
|||||||
Reference in New Issue
Block a user