Solaar: Logitech Unifying を Linux で使う

Logitech (日本では ロジクール ) は PC 用のキーボードやマウスといったヒューマンインタフェースデバイス (以下 HID) を製造・販売するメーカーとして有名ですが、 2009 年ごろより Unifying という超小型 USB ワイヤレスレシーバに対応した HID 製品を多数販売しています。

Unifying が使える環境は公称では Windows か OSX のみなのですが、実際には Linux などでもサポート外ながら使うことができます。この記事では Linux でそれを可能にする Solaar というソフトウェアについて紹介したいと思います。

Logitech Unifying と Solaar の紹介

いまワイヤレス HID といえば Bluetooth 接続が主流な気もしますが、PC の世界では Bluetooth 接続だと OS 起動前の BIOS 設定などで難儀することがいまだに多いため、私は昔ながらの USB 接続に見える専用レシーバを利用した製品を選んで使っています。中でも LogitechUnifying デバイスは次の点で優れており、特に愛用しています。

ただひとつの問題は、この Unifying デバイスのペアリングを行うには Logitech の SetPoint (Windows) ないし Logitech Control Center (OSX) というプロプラエタリソフトウェアが必要だということです。

Logitech からは Linux 版のソフトウェアは用意されていないため、ペアリングしようにも Windows または OSX マシンに Logitech ソフトウェアをインストールし Unifying レシーバを接続して設定するしかありません。そしてこの Logitech ソフトウェアはあまり出来がよくなく、 Logitech のフォーラムでもたびたび問題が指摘されており、なるべくインストールしたくない代物でした。

この Unifying を Linux などのフリーな環境で使えるようにしようという試みは 2 年ほど前からあったようですが、その後のリバースエンジニアリングなどの努力の結果、Linux カーネル 3.2 にて Unifying レシーバを制御するドライバが追加され、またその管理ツールとして Solaar というソフトウェアが登場しました。 Solaar のライセンスは GPLv2 です。

Solaar を使えばプロプラエタリな環境に頼ることなく Linux で Unifying デバイスのペアリングや状態取得、設定が完結できます。余計な機能もなくシンプルで、 GUI/CUI を備えた完成度の高いソフトウェアとなっておりおすすめです。

Solaar のインストール

Solaar は Linux 3.2 以降の hid_logitech_dj ドライバが利用可能なカーネルで動作します。 Debian では wheezy 以降、Ubuntu なら precise (12.04) 以降のカーネルが必要となります。

インストールは Debian/Ubuntu では作者によるバイナリパッケージが用意されており簡単にできます。 Debian 公式パッケージになってくれると楽なのですが、まだそうなってはいないため (スポンサー募集 も出ているが止まっている?) 最初に APT リポジトリの追加が必要です。

Debian/Ubuntu 以外のディストリビューションのバイナリパッケージについても Web に書かれてますので参照してください。

Debian では /etc/apt/sources.list.d/solaar.list というファイルを作り次の apt-line を追加します。このリポジトリは残念ながら署名されていません。パッケージのインストール時に警告が出ますがインストールは各自の責任で進めてください。

deb http://pwr.github.io/Solaar/packages/ ./
deb-src http://pwr.github.io/Solaar/packages/ ./

Ubuntu では PPA が用意されているため次のコマンドで簡単に設定できます。

$ sudo add-apt-repository ppa:daniel.pavel/solaar

リポジトリの追加ができたら solaar ないし solaar-gnome3 パッケージをインストールします。

$ sudo apt-get update
$ sudo apt-get install solaar
$ sudo apt-get install solaar-gnome3  (Unity や Gnome Desktop を使っている場合)

Unifying デバイスへのアクセスには /dev/hidraw* を使います。いまどきの consolekit/systemd を使用するデスクトップ環境であれば、デスクトップログインユーザは自動的にこれらのデバイスが扱えるように設定されます。

そうでないデスクトップ環境を使っていたり SSH などでリモートログインしたユーザも使えるようにしたい場合は、デバイスのアクセス権限を plugdev グループに出すこともできます。この設定にするためには次のようにして solaar の debconf 設定を変更し、さらに solaar を使用するユーザを adduser などで plugdev グループに追加してください。

$ sudo dpkg-reconfigure -plow solaar
$ sudo adduser yaegashi plugdev

ログイン中のユーザを plugdev グループに追加した場合は再度ログインが必要になります。

Solaar の使い方

Solaar の GUI の使い方に特に難しいところはないし、ツールチップによる説明も出るので、触ってみればわかるでしょう。

/usr/bin/solaar を起動するとデスクトップの通知領域にアイコンが出現します。デバイスノードにアクセスできないなどの警告が出る場合は Unifying レシーバを抜き差ししてみてください。

アイコンクリックして Unifying デバイスを選べば、次のような GUI が現れます。Unifying レシーバとそれにペアリングされた Unyfing HID が階層表示され、各 HID についてはワイヤレス接続の有無や電池の残量などが表示されています。

Unifying レシーバを選んで Pair new device ボタンを押し、デバイスの電源を OFF/ON にすれば、即座にペアリングが完了します。また Unifying HID を選んで Unpair ボタンを押せば、そのデバイスのペアリングを解除して別の Unifying レシーバにペアリングすることができます。

面白いのはひとつのレシーバに 4 つ以上の HID をペアリングしたときに、同時に接続中状態になるのはなぜか最大で 3 つまでということでしょう。接続・切断は高速に行われるため、ユーザがそれに気づくことは (本当に 4 つ以上の HID を同時に操作しているのでない限り) ありません。

また solaar パッケージには /usr/bin/solaar-cli という CUI 版プログラムも同梱されています。使い方は -h オプションで表示されるヘルプメッセージを参照してください。基本的には次のように -D オプションで Unifying レシーバのデバイスノードを指定し show config pair unpair のいずれかのコマンドと引数を指定して使用します。

$ solaar -h
usage: solaar [-h] [-d] [-V]

optional arguments:
  -h, --help     show this help message and exit
  -d, --debug    print logging messages, for debugging purposes (may be
                 repeated for extra verbosity)
  -V, --version  show program's version number and exit

$ solaar-cli -D /dev/hidraw2 show
Unifying Receiver [/dev/hidraw2:A69E9D13] with 4 devices
1: Wireless Touchpad [Wireless Touch:1F508D50] offline
2: Wireless Keyboard K360 [K360:BCF55D1A] 
3: Wireless Mouse M325 [M325:0720BA9E] offline
4: Wireless Mouse M510 [M510:AD4E14C3] 

$ solaar-cli -D /dev/hidraw2 config 4
[AD4E14C3:mouse]
# Wireless Mouse M510

# Smooth Scrolling
#   possible values: on/true/t/yes/y/1 or off/false/f/no/n/0
# smooth-scroll = ? (failed to read from device)

# Side Scrolling
#   possible values: on/true/t/yes/y/1 or off/false/f/no/n/0
# side-scroll = ? (failed to read from device)

$ solaar-cli -D /dev/hidraw2 pair
Pairing: turn your new device on (timing out in 20 seconds).
Paired device 5: M560 [402D:M560:702CBDEB]

$ solaar-cli -D /dev/hidraw2 unpair 5
Unpaired 5: M560 [M560:702CBDEB]

まとめ

Logitech Unifying デバイスの状況と、それを Linux で管理するためのソフトウェア Solaar について紹介しました。

Solaar があれば安心して Linux でも Unifying 製品が使えると思いたいところですが、実は製品によってはハードウェア的に Windows 以外では使い物にならない仕様のものが存在するので、そちらでまた別の注意が必要となります。タッチ UI 対応の Windows 8 登場が契機となって Microsoft など他社製品でもそういうデバイスが増えている気がします。

私もこれまでそういう製品をいくつか掴んでしまい後悔したので、のちほど別の記事でそれらをレビューとともに紹介したいと思います。

2014/01/31 追記: マウス製品レビュー を書きました。

2013/11/04 11:27:00 JST