为什么赢了';SDL是否在Linux(PocketCHIP)上检测我的iBuffalo游戏控制器?

为什么赢了';SDL是否在Linux(PocketCHIP)上检测我的iBuffalo游戏控制器?,linux,sdl,sdl-2,gamepad,gamecontroller,Linux,Sdl,Sdl 2,Gamepad,Gamecontroller,我最近获得了一台基于ARM的Linux计算机,名为a。这是一台很棒的小电脑!我正在编写一个使用SDL2.0.4和我的。然而,SDL似乎无法识别PocketCHIP上的控制器。我认为这是一个流行的控制器,所以如果SDL还不支持它,我会感到惊讶,这让我觉得我的设置/安装有问题。控制器在其他程序中也可以工作(mednafen) 在我的Mac电脑上,当我运行SDL测试目录中包含的testgamecontroller.c、TestMagicle.c和controllermap.c脚本时,它们都能正确识别控

我最近获得了一台基于ARM的Linux计算机,名为a。这是一台很棒的小电脑!我正在编写一个使用SDL2.0.4和我的。然而,SDL似乎无法识别PocketCHIP上的控制器。我认为这是一个流行的控制器,所以如果SDL还不支持它,我会感到惊讶,这让我觉得我的设置/安装有问题。控制器在其他程序中也可以工作(mednafen)

在我的Mac电脑上,当我运行SDL测试目录中包含的
testgamecontroller.c
TestMagicle.c
controllermap.c
脚本时,它们都能正确识别控制器:

INFO: Joystick 0: USB,2-axis 8-button gamepad   (guid 83050000000000006020000000000000)
INFO: There are 0 game controller(s) attached (1 joystick(s))
但是,当我在PocketCHIP上运行相同的脚本时,它不会检测到控制器

INFO: There are 0 game controller(s) attached (0 joystick(s))
Linux似乎能够识别设备已连接,但:

$ cat /proc/bus/input/devices
...

I: Bus=0003 Vendor=0583 Product=2060 Version=0110
N: Name="USB,2-axis 8-button gamepad  "
P: Phys=usb-1c14400.usb-1/input0
S: Sysfs=/devices/platform/soc@01c00000/1c14400.usb/usb2/2-1/2-1:1.0/0003:0583:2060.0003/input/input5
U: Uniq=
H: Handlers=js0 event2 
B: PROP=0
B: EV=1b
B: KEY=ff 0 0 0 0 0 0 0 0 0
B: ABS=3
B: MSC=10

我需要做什么才能让SDL识别我在PocketCHIP上的控制器?

多亏了@genpfault,我了解到SDL使用
/dev/input/event*
进行gamepad输入捕获。但是,我的用户(
芯片
)没有访问这些文件的权限,因此它在无声中失败

要授予
芯片
用户访问权限,请将芯片用户添加到
输入

在Debian Linux上,您只需运行:

sudo adduser chip input
或者您可以通过编辑
/etc/group
手动执行此操作:

sudo nano /etc/group
向下箭头指向表示以下内容的行:

input:x:101:
致:


键入
control+x
,退出。它将提示您保存该文件。键入
y
,然后
return
保存文件并退出nano文本编辑器。重新启动PocketCHIP,SDL将能够读取gamepad输入。

您的用户帐户有吗?@genpfault就是这样!!!我将芯片用户添加到输入组,现在SDL正在检测我的控制器。谢谢@genpfault:请随意将我的答案复制/粘贴到下面,我会接受它来给你评分。不过我很好,谢谢!
input:x:101:chip