スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
Date: --.--.-- Category: スポンサー広告   

VNC2DL

DisplayLink で X を表示させる方法ですが、libdlo の ML アーカイブ に xinerama を有効にすることができた、とのコメントがありました。
ですが、私の環境では同じ設定にしてもうまくいきませんでした。ご本人も不満があるようですから、もう少し工夫が必要なのかも知れません。

と言うわけで、少し違ったアプローチを取ってみます。とはいえ、この方法も xinerama のようなふたつのスクリーンをひとつにまとめる方法ができていません。
そのため、アプリケーションは起動したスクリーンから出せませんが、メリットとしてすでに起動している X を終了する必要がないという点があります。

その方法は、VNC2DL を使う方法です。
これは VNC の画面を DisplayLink デバイスに出力するソフトウェアで、DisplayLink デバイスで X を起動させるのではなく、VNC サーバーで動いている画面を表示するだけです。
この方法ならカーネルモジュールをコンパイルすることもないので、あまり環境に依存しないで DisplayLink デバイスを使うことが出来ると思います。
とはいえ、カーネルモジュールを使わないのでパフォーマンス的には多少落ちると思います。また、複数のソフトウェアを組み合わせて使うため、コマンド入力がそこそこあります。
ひとつの方法として、こんなやり方もあったということで。

最初に、すでに udlfb や displaylink-mod がインストールされている場合、DisplayLink デバイスを接続してしまうと自動的にモジュールがロードされてしまうので、それを防ぐために modprobe の blacklist に指定します。

vi /etc/modprobe.d/blacklist-displaylink.conf

と新しいファイルを作成し、
blacklist udlfb
blacklist displaylink
の二行を記述して保存して閉じます。

libdlo をインストールします。DisplayLink Wiki から libdlo-0.1.2.tar.gz をダウンロードしてきます。コンパイルには libusb-dev が必要とのことなので、

sudo apt-get install libusb-dev
./configure && make
sudo make install

テストのために DisplayLink デバイスとモニターを接続してから

make check

テストパターンが表示されれば OK です。

次に vnc2dl です。vnc2dl は git を使ってソースを取得するため、

sudo apt-get install git-core
git clone git://github.com/quentinsf/vnc2dl.git vnc2dl

と実行して、ソースツリーを取得します。
取得したソースの vnc2dl/dldevice.c の 40 行目あたりに、
desc.view.width = 1280;
desc.view.height = 1024;
という行があるので、これを接続するモニターの解像度にあわせるとその解像度で表示されます。変更しなくても、1280x1024 の解像度を表示できるモニターであれば、とりあえずその解像度で表示することはできます。あとは必要なパッケージをインストールしてからコンパイルします。

sudo apt-get install xutils-dev zlib1g-dev libjpeg62-dev
xmkmf
make World
sudo make install


最後に x2vnc、vncserver をインストールします。

sudo apt-get install x2vnc tightvncserver



これで準備は完了です。

では実際に vnc2dl を使ってみます。手順は、VNC サーバーの起動 > DisplayLink デバイスを接続 (接続していない場合) > vnc2dl を起動 > x2vnc を起動となります。
VNC サーバーを起動するには、以下のコマンドを実行します。一般ユーザー権限で OK です。

Xvnc -geometry 1680x1050 -depth 16 -alwaysshare :1

-geometry は画面の解像度です。vnc2dl のソースを書き換えた場合はその解像度に、書き換えてない場合は 1280x1024 を使います。-depth は色数です。-alwaysshare は、この VNC サーバーに vnc2dl と x2vnc のふたつのクライアントが同時に接続するので、それを許可するオプションです。最後の :1 はディスプレイ番号です。オンボードのディスプレイが :0 を使っていると思うので、それ以外の任意の番号を使います。後の vnc2dl と x2vnc で指定するディスプレイ番号と一致させます。

vnc2dl を起動するには、以下のコマンドを実行します。このコマンドは root 権限が必要ですので、sudo を付けて実行します。

sudo vnc2dl :1


x2vnc を起動するには、以下のコマンドを実行します。

x2vnc -west :1

-west は、x2vnc を実行したディスプレイの左側に vnc2dl の画面を配置する形にするためのオプションです。-west の代わりに -north , -south , -east が指定できます。指定しない場合は -east を指定したのと同じになります。

これでメインディスプレイの左端にカーソルを移動すると、DisplayLink デバイスに接続したディスプレイにカーソルが行きます。最初に言ったように、アプリの移動は出来ません。
今回は 1680x1050 の解像度のディスプレイを接続したのですが、ウィンドウを最大化したときなどは描写にちょっともたつく感じがあります。
YouTube は標準画質ぐらいなら (私は) 見られると思います。ただ、どうせならメインディスプレイで見た方がいいと思いますが。。。

アプリの移動もできれば、X の起動中にディスプレイを追加できる便利さもあるので、多少のパフォーマンスは我慢できるかと思うのですが、なかなかそこがうまくいきません。
スポンサーサイト
Date: 2009.11.29 Category: DisplayLink  Comments (0) Trackbacks (0)

この記事へのコメント:


管理人のみ通知 :

トラックバック:


最新記事
最新コメント
ウィジェット
月別アーカイブ
カテゴリ
プロフィール

SC3WO06A

Author:SC3WO06A
FC2ブログへようこそ!


検索フォーム
RSSリンクの表示
リンク
このブログをリンクに追加する
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
最新トラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。