【问题标题】:Why won't SDL detect my iBuffalo game controller on Linux (PocketCHIP)?为什么 SDL 在 Linux (PocketCHIP) 上检测不到我的 iBuffalo 游戏控制器?
【发布时间】:2016-06-30 05:11:45
【问题描述】:

我最近获得了一台基于 ARM 的 Linux 计算机,名为 PocketCHIP。这是一台很棒的小电脑!我正在编写一个使用 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 上的控制器?

【问题讨论】:

  • 您的用户帐户是否有read permissions on the joystick file?
  • @genpfault 就是这样!!!我将芯片用户添加到输入组,现在 SDL 正在检测我的控制器。谢谢!
  • @genpfault:随意复制/粘贴我的答案,我会接受它来给你信用。
  • 我很好,谢谢!

标签: linux sdl sdl-2 gamepad gamecontroller


【解决方案1】:

感谢@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 现在将能够读取游戏手柄的输入。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-29
    • 2020-08-06
    • 2016-07-30
    • 2012-04-15
    • 2019-12-26
    • 1970-01-01
    相关资源
    最近更新 更多