如何将 Wiimote 连接到 Fedora 19 系统?

如何将 Wiimote 连接到 Fedora 19 系统?

如何连接一个Wiimote用于 Fedora 下的远程控制目的?

(实际上,它是第 3 方 Wiimote 克隆,就像亚马逊上售价 15 美元的产品一样)

答案1

Fedora 19 足够新,安装的蓝牙堆栈默认带有 Wiimote 支持。您可以像任何其他蓝牙设备一样直接连接 Wiimote。

基本配对

如果一切正常,则不需要 pin。在配对过程结束时,可以选择 Wiimote 作为蓝牙小程序中的输入设备。

根据硬件的不同,一开始可能需要进行几次尝试(使用电池盒内的重置按钮) - 一种方法是:在计算机“看到”蓝牙硬件后,单击“连接”并立即按设备上的“重置”。

蓝牙符号和/或上下文菜单显示配对成功。

只有几个按钮可以工作(上/下/左/右键,鼠标右键单击和空格 - 就是这样)。

因此,我们必须配置某种映射。

所需的依赖项

# yum install \
  git gcc strace strace autoconf automake libtool systemd-devel ncurses-devel
  xorg-x11-util-macros xorg-x11-proto-devel xorg-x11-server-devel

(strace 并不是绝对必要的,但在运行 xwiimote 时检查权限被拒绝的问题很有用)

xwiimote

xwiimote 存储库包含与 bluetooth-daemon-plugin 和一些相关工具交互的基本用户空间库。

不幸的是,这个软件还没有为 Fedora 打包。

因此,我们必须编译它:

$ git clone https://github.com/dvdhrm/xwiimote.git
$ cd xwiimote
$ ./autogen.sh
$ ./configure --prefix=$HOME/local/xwiimote
$ make
$ make install

一些硬件测试

$ ./xwiishow list
Listing connected Wii Remote devices:
  Found device #1: /sys/devices/pci0000:00/0000:00:1a.1/usb4/4-2/4-2:1.0/bluetooth/hci0/hci0:11/0001:0002:0023.0032
End of device list

=> 配对成功,我们必须修复权限以进行进一步测试:

# chown root:juser /sys/devices/pci0000:00/0000:00:1a.1/usb4/4-2/4-2:1.0/bluetooth/hci0/hci0:11/0001:0002:0023.0032/leds/*/brightness
# chmod g+w /sys/devices/pci0000:00/0000:00:1a.1/usb4/4-2/4-2:1.0/bluetooth/hci0/hci0:11/0001:0002:0023.0032/leds/*/brightness

$ xinput --list
[..]
    ↳ Nintendo Wii Remote Accelerometer         id=9    [slave  keyboard (3)]
    ↳ Nintendo Wii Remote IR                    id=10   [slave  keyboard (3)]
    ↳ Nintendo Wii Remote                       id=11   [slave  keyboard (3)]
    ↳ Nintendo Wii Remote Extension             id=12   [slave  keyboard (3)]
    ↳ Nintendo Wii Remote Motion+               id=13   [slave  keyboard (3)]
[..]

=> 一些更多的权限调整:

# chown root:juser /dev/input/event1[0123] /dev/input/event9
# chmod g+w /dev/input/event1[0123] /dev/input/event9

(xiimote 存储库还包含用于连接权限设置的示例 udev 规则,但它们仅对于像 xwiishow 那样的直接访问是必需的)

启动 ncurses 界面来测试按钮、传感器、校准等:

$ ./xwiishow 1

(其中 1 是第一个设备)

真实 Xorg 设置

Fedora/Fusion 软件包存储库中还没有提供 xinput2 模块。

$ cd ..
$ git clone https://github.com/dvdhrm/xf86-input-xwiimote.git
$ cd xf86-input-xwiimote
$ ./autogen.sh
$ PKG_CONFIG_PATH=$HOME/local/xwiimote/lib/pkgconfig  ./configure --prefix=$HOME/local/xwiimote LDFLAGS="-L$HOME/local/xwiimote/lib -Wl,-R$HOME/local/xwiimote/lib"
$ make
$ make install

验证运行时路径设置:

$ ldd /home/gms/local/xwiimote/lib/xorg/modules/input/xwiimote_drv.so

(不应显示“未找到”消息)

更改系统范围的 Xorg 配置:

# cd /etc/X11/xorg.conf.d
# ln -s /home/juser/src/xf86-input-xwiimote/60-xorg-xwiimote.conf
# cd /usr/lib64/xorg/modules/input/
# ln -s /home/juser/local/xwiimote/lib/xorg/modules/input/xwiimote_drv.so

注销并重新启动 X。

通过 X 命令行工具进行验证xev:所有按钮现在都应该发送真实的键代码。

例如,对于我的硬件,默认值是:输入、左/右/上/下、空格、1、2、esc、音量 +/-

(这是相当合理的默认值)

杂项

廉价的 Wiimote 克隆版还带有“双节棍”扩展,该扩展无法与 xiishow - YMMV 一起使用。

相关内容