我最近获得了一台名为PocketCHIP的基于ARM的Linux计算机。这是一台很棒的小电脑!我正在编写一个使用SDL 2.0.4和iBuffalo USB游戏手柄的程序。但是,SDL似乎无法识别PocketCHIP上的控制器。我认为这是一个流行的控制器,所以如果SDL不支持它,我会感到惊讶,这使我认为我的设置/安装有问题。该控制器确实可以在其他程序中工作(mednafen)。
在我的Mac,当我运行testgamecontroller.c
,testjoystick.c
以及controllermap.c
脚本包含在SDL test目录,它们都正确地识别控制器:
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*
用于捕获游戏手柄输入。但是,我的用户(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现在将能够读取游戏手柄的输入。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句