为什么SDL不会在Linux(PocketCHIP)上检测到我的iBuffalo游戏控制器?

时间:2016-06-30 05:11:45

标签: linux sdl sdl-2 gamepad gamecontroller

我最近获得了一台名为PocketCHIP的基于ARM的Linux计算机。这是一台很棒的小电脑!我正在编写一个使用SDL 2.0.4和我的iBuffalo USB gamepad的程序。但是,SDL似乎无法识别PocketCHIP上的控制器。我认为这是一个受欢迎的控制器,所以如果SDL还没有支持它会让我感到惊讶,这让我觉得我的设置/安装有问题。控制器确实在其他程序中工作(mednafen)。

在我的Mac上,当我运行SDL测试目录中包含的testgamecontroller.ctestjoystick.ccontrollermap.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上的控制器?

1 个答案:

答案 0 :(得分:3)

感谢@genpfault,我了解到SDL使用/dev/input/event*进行游戏手柄输入捕获。但是,我的用户(chip)没有访问这些权限的权限,因此它无声地失败。

要授予chip用户访问权限,请将筹码用户添加到input群组。

在Debian Linux上,您只需运行:

sudo adduser chip input

或者您可以通过编辑/etc/group

手动执行此操作
sudo nano /etc/group

向下箭头指向:

input:x:101:

为:

input:x:101:chip

输入control+x,退出。它会提示您保存文件。键入y,然后键入return以保存文件并退出nano文本编辑器。重新启动PocketCHIP,SDL现在可以读取游戏手柄输入。