2013年11月19日火曜日

DisplayLinkモニタでRaspberry Piデスクトップを使用する

これまで、DisplayLinkモニタ用のフレームバッファドライバudlfbをカーネルコンフィギュレーションで有効化し、フレームバッファデバイスをXで扱うためのグラフィックドライバxf86-video-fbdevをインストールしました。

今回はDisplayLinkモニタでデスクトップを立ち上げるようにしたメモです。

1. xorg.confを設定

エディタでxorg.confの設定をします。
内容は以下。
これを保存すれば、usb_modeswitchでモニタをストレージからDisplayLinkデバイスへ切り替えるだけで、デスクトップを表示させることができるはずです。コマンドは前々回に書いたので割愛します。

2. udevルールでストレージ認識を回避

起動後、自動的にDisplayLinkモニタにデスクトップを立ち上げるようにするための設定です。Raspbianの起動中にudevdがDisplayLinkモニタを見つけたとき、ストレージではなくDisplaLinkデバイスとして認識するようにします。
エディタで下記のルールファイルを作成します。
中身には下記の行を記述。
こうすることでドライバとしてcdromではなくudlfbがロードされます。

3. X起動設定

RPiが起動したら自動的にstartxするよう、次のファイルに記述を加えます。
exit 0の直前に一文追加するだけでOKです。
4. 再起動

ここまでで、起動後にDisplayLinkモニタでデスクトップが表示されるようになったはずです。ためしに再起動してみます。
再起動後、下の画像のように(デフォルトのままなら)LXDEのデスクトップが表示されます。

5. タッチパネルのキャリブレーション

さて、とりあえずLXDEが起動し、キーボードとマウスを繋げばデスクトップPCとして使えるようになりました。しかし、今回使用しているDisplayLinkモニタLCD-USB10XB-Tはタッチパネル搭載です。マウスで使うなんて野暮。触って操作しましょう。
幸運にもRaspbianにはタッチパネルコントローラeGalaxに対応するドライバが標準でインストールされていまです(万が一無かったとしてもカーネルコンフィギュレーションで有効化するだけですけどね)。したがって、既にタッチ操作はできるはずです。
ただし初期状態ではタッチ位置とデスクトップ上の座標にズレがあったり、ドライバ等ソフトウェアの仕様によって反転していたりすることがあります。タッチ点を画面の座標上に正しく対応させるため、キャリブレーション(校正)を行う必要があります。
キャリブレーションには、xinput_calibratorというツールを使います。freedesktop.orgからソースをダウンロードしてきてインストールします。
インストールしたら、X上のターミナルから起動します。そのターミナルを起動するためにデスクトップのアイコンをダブルクリックするのは、キャリブレーションしていないタッチスクリーンではちょっと苦労します(笑)。キーボードやマウスで操作したほうが早いと思います。
コマンドを実行すると画像のようなフルスクリーンのUIが表れます。4つの十字マークが順次表示されるので、交点をなるべく正確に押していきます。中心の円グラフは操作の残り時間を示しています。残り時間がなくなるとプログラムは終了しますが、上記コマンドで何度でもやり直しできます。

4点の入力が終わるとプログラムが終了しますが、これで完了ではありません。コマンドラインにコンフィギュレーションスクリプトが生成されるので、これをコピーして下記ファイルに書き込みます。
以上で終了です。

参考情報

DisplayLink - wiki.archlinux.org
RPi Debian Auto Login - elinux.org
xinput calibrator - freedesktop.org
How to get eGalax TouchScreen film (0eef:0001) working in Linux for Raspberry Pi - Black God

0 件のコメント:

コメントを投稿