首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用xboxdrv帮助的Gamepad

使用xboxdrv帮助的Gamepad
EN

Ask Ubuntu用户
提问于 2018-07-26 11:30:12
回答 1查看 2K关注 0票数 1

我遵循了本页的指南-> https://steamcommunity.com/app/221410/discussions/0/558748653738497361/,让我的通用usb有线游戏板在我的笔记本上工作。但是,正如指南中提到的,初始化必须在每次重新启动时完成。此外,正如指南中提到的,初始化命令必须包含在"/etc/rc.local或您的发行版称之为“。我需要这个"rc.local“在Ubuntu18.04发行版的位置。

另外,这也是我第一次连接游戏垫,所以我在这个过程中犯了一些错误,比如没有为游戏垫分配正确的键组合。这导致了多个"js“文件,如"js0”、"js1“、."js5“输入设备,其中"js5”是成功的游戏垫条目。这些额外的输入"js“设备能被删除吗?

此外,是否有不同的方式永久注册我的游戏垫作为一个输入设备?

如果有帮助的话,我最后一次使用的命令是: sudo xboxdrv -evdev /dev/input/event21 21-evdev- ABS_Z=x1、ABS_Y=y1、ABS_RX=x2、ABS_RZ=y2、ABS_HAT0X=dpad_x、ABS_HAT0Y=dpad_y --axismap -Y1=Y1、-Y2=Y2 -evdev-keymap BTN_TOP=x、BTN_TRIGGER=y、BTN_THUMB2=a、BTN_THUMB=b、BTN_BASE3=back、BTN_BASE4=start、BTN_TOP2=lb、BTN_PINKIE=rb、BTN_BASE=lt、BTN_BASE=lt、-模仿-xpad-静默&

这个命令向我展示了一个输出:您的Xbox/Xbox360控制器现在应该可以在以下位置使用:/dev/input/as 5/dev/js5/event22 22

请帮帮忙。

EN

回答 1

Ask Ubuntu用户

发布于 2018-08-06 07:27:18

好吧,所以我几乎把这件事弄清楚了。

我也在另外两个论坛上问过这个问题,唯一的答案就是我得到的SDL2游戏垫工具(http://generalarcade.com/gamepadtool/)。这个工具应该注册我的游戏垫而不用xboxdrv命令。这个工具确实识别了我的游戏垫,给我的游戏垫起了一个名为"DragonRise_Inc. Generic“,而不是以前仅仅显示为"Generic”的东西,我可以在游戏中使用我的游戏垫。但是映射是错误的,即正确的d-pad按钮会加速我的播放器和其他异常。即使手动映射此工具中的按钮,也会发现相同的行为。

因此,这个工具在某种程度上是有帮助的(也许顾名思义,它对基于SDL2的游戏更有帮助,也许我想玩的游戏不是基于SDL2的)。我想玩的游戏是‘泰迪软盘耳朵-在蒸汽Linux上的种族’。

接下来,我遇到了同样的第一个问题。我在这个网站上搜索并找到了一个问题,这对我很有帮助。页面链接是Rc.local替代(如何在Ubuntu16.10上启动时执行命令)根据这个页面,Ubuntu >= 16.10没有rc.local文件,但是有一个善良的人给出了制作一个文件的指令。所以我继续创建了这个文件。

在该页面上创建rc.local文件的命令如下:

代码语言:javascript
复制
printf '%s\n' '#!/bin/bash' 'exit 0' | sudo tee -a /etc/rc.local
sudo chmod +x /etc/rc.local
sudo reboot

接下来,我对额外的js输入设备不满意,所以我搜索了更多。我的搜索把我带到了这两个页面:https://github.com/RetroPie/RetroPie-Setup/wiki/Universal-Controller-Calibration-&-Mapping-Using-xboxdrvhttps://retropie.org.uk/forum/topic/7096/xboxdrv-guidance-needed --这些页面对xboxdrv命令进行了非常专门的讨论。从这些页面中,我得到了命令'sudo killall xboxdrv‘。此命令删除了所有其他js输入设备。并显示用游戏垫的名称调用xboxdrv初始化命令比使用事件号更好。我还发现,如果在笔记本上附加了更多/更少的usb设备,则事件编号会发生变化。在这里,通过SDL2 gamepad工具注册的游戏垫名称非常有用。

现在,我有个工作安排。我有包含以下内容的rc.local文件:

代码语言:javascript
复制
#!/bin/bash

sudo killall xboxdrv
sudo killall xboxdrv
sudo xboxdrv --evdev /dev/input/by-id/usb-DragonRise_Inc._Generic_USB_Joystick-event-joystick --silent --mimic-xpad --evdev-absmap ABS_Z=x1,ABS_Y=y1,ABS_RX=x2,ABS_RZ=y2,ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y --axismap -Y1=Y1,-Y2=Y2 --evdev-keymap BTN_THUMB2=a,BTN_THUMB=b,BTN_TOP=x,BTN_TRIGGER=y,BTN_TOP2=lb,BTN_PINKIE=rb,BTN_BASE=lt,BTN_BASE2=rt, BTN_BASE5=tl,BTN_BASE6=tr,BTN_BASE3=back,BTN_BASE4=start &

exit 0

在我的设置中需要使用double "sudo killall xboxdrv“命令,我不知道确切原因,但是如果没有这个命令,就会出现一个额外的js输入设备列表的问题。

其中一个问题是,在启动之前,我必须将游戏垫连接到笔记本上。如果我在启动笔记本后附加游戏垫,游戏垫就不会初始化。我可以在附加游戏板后手动运行这些命令,但不可能每个人都使用我的笔记本。

下一步是找到一种使用命令创建脚本文件的方法,这样我就可以在附加游戏垫之后双击脚本文件,这将初始化游戏垫。但是,我还没有找到将sudo命令合并到一个简单脚本中的方法。

编辑(2018年8月14日):好的,现在我有了一种不使用rc.local文件调用初始化脚本的方法。这是一个更好的解决方案,并在任何时候工作,我想连接游戏垫。(我是从我问这个问题的另一个论坛上得到这个方法的)。

我在/home/mark/. my -Controler.sh创建了初始化脚本(在这里,用用户名替换'mark‘)

这个..my hander.sh文件有以下代码:

代码语言:javascript
复制
#!/bin/bash

sudo killall xboxdrv
sudo killall xboxdrv
sudo xboxdrv --evdev /dev/input/by-id/usb-DragonRise_Inc._Generic_USB_Joystick-event-joystick --silent --mimic-xpad --evdev-absmap ABS_Z=x1,ABS_Y=y1,ABS_RX=x2,ABS_RZ=y2,ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y --axismap -Y1=Y1,-Y2=Y2 --evdev-keymap BTN_THUMB2=a,BTN_THUMB=b,BTN_TOP=x,BTN_TRIGGER=y,BTN_TOP2=lb,BTN_PINKIE=rb,BTN_BASE=lt,BTN_BASE2=rt, BTN_BASE5=tl,BTN_BASE6=tr,BTN_BASE3=back,BTN_BASE4=start &

exit 0

接下来,在/etc/sudoers文件中添加以下文本(用家乡的名称替换/home/mark ):

代码语言:javascript
复制
# Added manually
mark ALL = NOPASSWD: /home/mark/.my-controller.sh

接下来,创建将调用此脚本的.desktop文件(将"/home/mark“替换为您的家乡名称)(如果使用该脚本,请将'sakura‘替换为’gnome-末端‘):

代码语言:javascript
复制
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Name=StartMyGamepad
Comment=To initialize my gamepad
Exec=sakura -e "bash -c 'sudo /home/mark/.my-controller.sh;$SHELL'"
Icon=utilities-terminal
Terminal=false
Type=Application
Categories=Application;

现在,当您想使用游戏垫时,首先将游戏垫附加到PC上,然后打开.desktop文件。这将打开一个终端,询问您的密码。输入您的密码,然后运行脚本来初始化游戏垫。

票数 2
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1059666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档