标签:sdl-2 sdl gamepad linux gamecontroller
我最近获得了一台名为PocketCHIP的基于ARM的Linux计算机.这是一台很棒的小型计算机!我正在编写一个使用SDL 2.0.4和我的iBuffalo USB gamepad的程序.但是,SDL似乎无法识别PocketCHIP上的控制器.我认为这是一个流行的控制器,所以如果SDL不支持它,会让我感到惊讶,这使我认为我的设置/安装有问题.控制器确实可以在其他程序中工作(mednafen).
在我的Mac上,当我运行SDL测试目录中包含的testgamecontroller.c,testjoystick.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 *进行游戏手柄输入捕获.但是,我的用户(芯片)没有访问这些文件的权限,因此它无声地失败了.
要授予芯片用户访问权限,请将芯片用户添加到输入组.
在Debian Linux上,您可以简单地运行:
sudo adduser chip input
或者,您可以通过编辑/ etc / group来手动执行此操作:
sudo nano /etc/group
向下箭头指向该行:
input:x:101:
至:
input:x:101:chip
键入控件x,退出.它将提示您保存文件.键入y,然后返回保存文件并退出nano文本编辑器.重新启动PocketCHIP,SDL现在将能够读取游戏手柄输入.
标签:sdl-2,sdl,gamepad,linux,gamecontroller 来源: https://codeday.me/bug/20191118/2028414.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。