2017年10月19日木曜日

CentOS7 で TrackPoint が重い

ThinkPad W520 で Win7 と CentOS7 をデュアルブートして使用しているのですが、Win7 を使った直後に CentOS7 に切り替えて使用すると、TrackPoint が重く(反応鈍い、スピード遅い)感じます。このマシンは長い期間使っていて、今まであまり気にならなかったのですが、急に我慢できなくなり、調べました。

まず、そういえば X301 を常用していた頃は、gpointing-device-settings というツールを利用していたので、今回もこれを使えばよいやと思いました。それで、CentOS7 向けの RPM をネットで探したわけですが、これが出てきません。
仕方がないので、少し古くてもいいので Fedora の .src.rpm から rebuild すればいいかと、実行してみたのですが、残念ながらコンパイルが通りません。
[root@hoge ~]# rpmbuild --rebuild gpointing-device-settings-1.5.1-8.fc18.src.rpm
gpointing-device-settings-1.5.1-8.fc18.src.rpm をインストール中です。
警告: gpointing-device-settings-1.5.1-8.fc18.src.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID fb4b18e6: NOKEY
...
/usr/include/gnome-settings-daemon-3.0/gnome-settings-daemon/gnome-settings-plugin.h:63:16: error: unknown type name 'GsdMouseExtensionPluginManager'
...
このエラーの解決方法もサーチしてみたのですが、見つからずでした。それなら、GitHub から持ってくればいけるかもと思ったのですが、2010年で開発が止まっているようです。最近の Fedora に入ってないのは、そういうことか。。。

という具合に遠回りしてしまいましたが、別の方法を探したところ、
http://www.thinkwiki.org/wiki/How_to_configure_the_TrackPoint
こちらに udev で設定する方法がありました。感謝。
写経ですが、こんな感じです。
[root@hoge ~]# ls -l /etc/conf.d/trackpoint 
-rwxr-xr-x 1 root root 884 10月 18 07:32 /etc/conf.d/trackpoint
[root@hoge ~]# cat /etc/conf.d/trackpoint 
#! /bin/bash

## Trackpoint settings

# When run from a udev rule, DEVPATH should be set
if [ ! -z $DEVPATH ] ; then
    TPDEV=/sys/$( echo "$DEVPATH" | sed 's/\/input\/input[0-9]*//' )
else
# Otherwise just look in /sys/
    TPDEV=$(find /sys/devices/platform/i8042 -name name | xargs grep -Fl TrackPoint | sed 's/\/input\/input[0-9]*\/name$//')
fi

# http://www.thinkwiki.org/wiki/How_to_configure_the_TrackPoint
# http://wwwcssrv.almaden.ibm.com/trackpoint/files/ykt3eext.pdf
#------------------------------------------------------------
if [ -d "$TPDEV" ]; then
    echo "Configuring Trackpoint"
    echo -n 255     > $TPDEV/sensitivity     # Integer  128   Sensitivity
    echo -n 97      > $TPDEV/speed           # Integer  97   Cursor speed
    echo -n 4       > $TPDEV/inertia         # Integer  6   Negative intertia
else
    echo "Couldn't find trackpoint device $TPDEV"
fi
[root@hoge ~]# cat /etc/udev/rules.d/
10-trackpoint.rules        70-persistent-ipoib.rules  
[root@hoge ~]# cat /etc/udev/rules.d/10-trackpoint.rules 
SUBSYSTEM=="input", ATTR{name}=="*TrackPoint*", RUN+="/etc/conf.d/trackpoint"
/etc/conf.d というディレクトリは、CentOS7 には無いのですが、下手にパスを変えるとネットの情報とつき合わせたりする場合に不便になるので、そのまま採用しました。

備考:この調査の過程で、真ん中ボタンを使ったスクロール設定の方法を見つけたので、ついでに設定しました。感謝。
https://qiita.com/naiasin/items/09f27faef8a8f92ad179

2017-12-03追記
手持ちの中で最古の X300 の場合は、上記設定方法では NG でした。
人気ブログランキングへ にほんブログ村 IT技術ブログへ