我有一个 PS3 蓝牙遥控器,已将其与我的 Ubuntu 14.04.1 系统配对,并且很多按钮都可以工作(即它们会生成“xev”可以看到的事件),但是相当多的按钮却不能工作(L1-L3、R1-R3 和其他)。
不幸的是,我需要这些按钮来控制音量,所以我正在寻找某种方法来映射它们。
我知道内核将这些视为事件,因为“evtest”可以看到它们的按键动作,但 X 却看不到。
请注意,之前我在较旧的 Ubuntu 系统(10.04.4)上按照以下步骤操作http://wiki.xbmc.org/index.php?title=How-to:Setup_PS3_BD_Remote然而这似乎不再正确了(input.conf 不再保存映射)。
答案1
X 看不到这些按钮,因为它们的键代码>255。
我尝试使用 LIRC 充当重映射层(使用 devinput 驱动程序),但随后我失去了按键重复,这是一个大问题。
最后我发现http://www.thenautilus.net/SW/xf86-input-evdev/并修补了驱动程序(此版本的 Ubuntu 上为 v2.8.2)。
IE
首先安装这些包
sudo apt-get install git automake autoconf pkg-config xcb-proto xutils-dev libtool xserver-xorg-dev libudev-dev
克隆仓库并构建
git clone git://www.thenautilus.net/xf86-input-evdev
cd xf86-input-evdev
git pull git://www.thenautilus.net/xf86-input-evdev code-remap-2.8.2
./autogen.sh
make
sudo mv /usr/lib/xorg/modules/input/evdev_drv.so /usr/lib/xorg/modules/input/evdev_drv.so.orig
sudo cp ./src/.libs/evdev_drv.so /usr/lib/xorg/modules/input/evdev_drv.so
cat > /usr/share/X11/xorg.conf.d/99-evdev.conf <<EOF
Section "InputClass"
Identifier "evdev keyboard catchall"
MatchIsKeyboard "on"
MatchDevicePath "/dev/input/event*”
MatchProduct "PS3 Remote Controller"
Driver "evdev"
Option "event_key_remap" "311=76 313=75 318=74"
EndSection
EOF
这会将右侧 1/2/3 按钮重新映射到音量调高/调低/静音。