Logicool Wireless Rechargeable Touchpad t650のタップをUbuntu上で有効にする

カーネルバージョンの関係から、開発中のUbuntu 13.10(Saucy Salamander)上で実行している。

※以下を実行すると、戻る・進むジェスチャーが効かなくなる。また、ginn等でジェスチャーを取得出来無くなる。

※対象とするカーネルのバージョンは適宜変更する事。

※以下の内容を実行して生じた結果について当方は一切責任を持ちません。

※もしかしたらT651でもタップ有効になるかも(持ってないので試してない)。

方法

 T650のタップをサポートしたカーネルを得る方法には、以下の二つがある。

  1. カーネルDebパッケージをビルドする。
  2. モジュールのみをビルドする。

カーネルDebパッケージをビルドする

 ここの一番上の投稿とここを参考にして、適当なディレクトリ下で以下の様にする。

$ git clone https://git.lekensteyn.nl/peter/linux.git lkn
$ git checkout logitech-wtp
$ apt-get source linux-image-3.11.0-11-generic
$ git diff linux-3.11.0/include/linux/hid.h lkn/include/linux/hid.h | patch -p 2 linux-3.11.0/
$ git diff linux-3.11.0/include/uapi/linux/ lkn/include/uapi/linux/ | patch -p 2 linux-3.11.0/
$ git diff linux-3.11/drivers/hid/ lkn/drivers/hid/ | patch -p 2 linux-3.11.0/
$ cd linux-3.11.0/
$ fakeroot debian/rules clean
$ DEB_BUILD_OPTIONS=paralell=8 AUTOBUILD=1 NOEXTRAS=1 fakeroot debian/rules binary-generic

 以下の様な表示が出るので、mと入力しエンターキーを押す。

Logitech Unifying Wireless Touchpad full multitouch support (HID_LOGITECH_WTP) [N/m/?] (NEW)

 後はパッケージのビルドが終わるまでずっと待つ…。

※parallel=の数値は適宜変更する。

 出来上がったDebパッケージをインストールし再起動する。起動時に表示されるgrubのメニューから、インストールしたカーネルバージョンの項目を選択し起動する。そうするとT650でタップが有効になっている筈。

モジュールのみをビルドする

 ここの回答を参考にして適当なディレクトリ下で以下の様にする。

$ git clone https://git.lekensteyn.nl/peter/linux.git lkn
$ git checkout logitech-wtp
$ cp /usr/src/linux-headers-3.11.0-11-generic/Module.symvers .
$ cp /boot/config-3.11-0-11-generic .config
$ make EXTRAVERSION=-11-generic oldconfig
$ make EXTRAVERSION=-11-generic prepare
$ make EXTRAVERSION=-11-generic outputmakefile
$ make EXTRAVERSION=-11-generic archprepare
$ make EXTRAVERSION=-11-generic modules SUBDIRS=scripts
$ make EXTRAVERSION=-11-generic modules SUBDIRS=drivers/hid/ CONFIG_HID_LOGITECH_HIDPP=m CONFIG_HID_LOGITECH_WTP=m
$ sudo mkdir /lib/modules/3.11.0-11-generic/updates/
$ sudo cp -r drivers/hid/ -t /lib/modules/3.11.0-11-generic/updates/
$ find /lib/modules/3.11.0-11-generic/updates/ -type f ! -name \*.ko -print0 | xargs -0 -I\{\} sudo rm \{\}
$ sudo depmod -a 3.11.0-11-generic
$ sudo update-initramfs -u -k 3.11.0-11-generic

 以上の後に再起動し、起動時に表示されるgrubのメニューから、モジュールをビルドする際に指定したカーネルバージョンの項目を選択して起動する。そうするとT650でタップが有効になっている筈。

 3本指タップでのミドルクリックを有効にしたい場合は端末上で以下の様にする。

$ synclient TapButton3=2

おまけ: Ubuntuカーネルレポジトリからソースコードを取ってきてビルドする

$ git clone git://kernel.ubuntu.com/ubuntu/ubuntu-saucy.git
$ cd ubuntu-saucy/
$ git remote add lkn https://git.lekensteyn.nl/peter/linux.git -t logitech-wtp
$ git fetch lkn
$ git diff …lkn/logitech-wtp include/ drivers/ | git apply
$ fakeroot debian/rules clean
$ DEB_BUILD_OPTIONS=paralell=8 AUTOBUILD=1 NOEXTRAS=1 fakeroot debian/rules binary-generic

 以下の様な表示が出るので、mと入力しエンターキーを押す。

Logitech Unifying Wireless Touchpad full multitouch support (HID_LOGITECH_WTP) [N/m/?] (NEW)

 後はパッケージのビルドが終わるまでずっと待つ…。

※parallel=の数値は適宜変更する。

 出来上がったDebパッケージをインストールし再起動する。起動時に表示されるgrubのメニューから、インストールしたカーネルバージョンの項目を選択し起動する。そうするとT650でタップが有効になっている筈。