スポンサーサイト

上記の広告は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)

X を複数起動して連携させる方法を探す

一応マルチディスプレイにすることはできた DisplayLink のチップを使った USB-VGA アダプタですが、わざわざ X を再起動しないと認識されないのは使い勝手が良くありません。
また、xorg.conf を書き換える必要があるため、単に X を再起動しただけでは使えないのも不便さに拍車をかけます。

X を複数起動することで、X を再起動しなくても USB-VGA アダプタ経由で X を使うことが出来ます。しかし、この場合はそれぞれの X が別個に稼働するため、Ctrl+Alt+F7 や F8 を押して X を切り替えて使うことになります。
しかも、この方法では切り替えてアクティブでは無くなった側の X は表示されなくなってしまいます。

なんとかならないかなぁ。。。と思って今探っているのは Xdmx というコマンドを使う方法。
Xdmx は複数の PC 上で稼働する X を、理論上 1 つの X サーバーとして扱う方法です。
複数の PC の X をまとめられるのだから、1 つの PC 上の複数の X をまとめることもできるのでは・・・? と思っているのですが、なかなかうまくいきません。
あまりこういう用途で使う人はいないのですかね。。。VGA 出力を持たない機器 (玄箱など) で使っている例はたくさん見つかるのですけどね。

ちなみに、SC3 や mini12 の psb ドライバと DisplayLink とでのマルチモニタはできないようです。
どうもこの辺は psb ドライバがあまり良くないみたいですね。

BUFFALO USB2.0用 ディスプレイ増設アダプタ GX-DVI/U2BUFFALO USB2.0用 ディスプレイ増設アダプタ GX-DVI/U2
(2008/03/27)
バッファロー

商品詳細を見る
Date: 2009.09.29 Category: DisplayLink  Comments (0) Trackbacks (0)

DisplayLink の Xorg ドライバ

DisplayLink の USB-VGA アダプタですが、以前と比べてかなり使いやすくなっています。
ただ、ノートPCのように普段はオンボードのVGAを使って、必要になったら USB-VGA アダプタを差してディスプレイを追加、というのがうまくいきません。
この辺を、もうちょっと調べてみる必要がありそうです。

とりあえず、現状では DisplayLink でディスプレイを追加するには、一旦 Xorg を再起動する必要があります。

手順としては、DisplayLink Wiki でカーネルモジュールと Xorg のドライバをダウンロードします。
Wiki のページを開いたら、「Using DisplayLink devices」の How To をリンクをクリックします。開いたページの真ん中あたり、「Specific Drivers」のリンクにカーネルモジュールと Xorg のドライバのリンクがあります。ちなみに、Xorg のドライバのパッケージの中にもカーネルモジュールが入っていますが、こちらは古いバージョンんなので、問題がなければ新しい方を使った方がいいと思います。

カーネルモジュールは、普通にカーネルモジュールをビルドできる環境があればビルドできると思います。displaylink.ko というモジュールがインストールされるはずです。

Xorg のドライバは、必要なパッケージがちょっと多いと思います。Fedora なら X 開発ライブラリ みたいなグループをインストールすればよかったはず。もし Fedora11 でビルドしようとしている場合は、私の作った spec ファイルを ファイル置き場 に置いておきます。
(説明するまでもないですが、自分用のメモとして・・・) 使い方は、ホームディレクトリに rpmbuild という名前でディレクトリを作り、その中に SPEC と SOURCE というディレクトリを作ります。
作成した SPEC ディレクトリに .spec ファイルを、SOURCE ディレクトリに Wiki からダウンロードしたドライバのパッケージを置いて、SPEC ディレクトリに移動してから (ARCH は i586 や i686 など使用しているシステムに適したものを入れる)
rpmbuild --target ARCH -bb xorg-x11-drv-displaylink.spec
と実行すると、rpmbuild ディレクトリの下に RPMS というディレクトリができて、その中に ARCH で指定した i586 や i686 のディレクトリが (自動的に) 作成されてその中にパッケージができています。

あとは同じくファイル置き場にある DisplayLink 用の xorg.conf ファイルを使用すれば DisplayLink デバイスに接続したディスプレイに X が立ち上がるはず。
以前のバージョンでは対応する解像度が限られていましたが、現在はちゃんと自動認識してくれて、1680x1050 や 1280x768 の解像度でもちゃんと表示されます。

最初にも書いたように、既にオンボードの VGA で X を立ち上げていると DisplayLink 側では X が立ち上がらない。
多分、仮想コンソールが DisplayLink 側に割り当てられていないからじゃないかと思っているのですが、それを割り当てるコマンド (だと思っている) con2fbset が Fedora11 だと見あたらないのですよねぇ。。。
Date: 2009.08.06 Category: DisplayLink  Comments (3) Trackbacks (0)

DisplayLink の USB-VGA アダプタを Linux で - Xorg ドライバを使ってみる

前回は Xorg のドライバがリリースされましたが、解像度の調整が効かずに正常に表示出来なかった、という状態でした。
今回、カーネルモジュールの udlfb が 0.2.3 に、Xorg のドライバが 0.3 に更新されました。今回のアップデートで、対応外の解像度でも一定の解像度で表示されるようになったようです。

パッケージには、カーネルモジュールと Xorg のドライバそれぞれのソースが同梱されているので、まずはカーネルモジュールのビルドをします。これはカーネルソースがあれば大体ビルドできると思います。
Xorg のドライバは、ちょっといろいろ必要だと思います。私の Ubuntu9.04 環境では、x11-proto-core-dev, x11-proto-fonts-dev, xserver-xorg-dev パッケージをインストールする必要がありました。
あとは定番の ./configure, make, sudo make install をすればドライバがインストールされますが、デフォルトだとドライバが /usr/local 以下にインストールされてしまい、そのままでは認識されませんでした。
本来ならインストール位置を正確に指定すべきなのでしょうが、それほどの手間でもないので、/usr/local/lib/xorg/module/drivers/ 以下の displaylink.* ファイルを、/usr/lib/xorg/module/drivers/ 以下にコピーしてしまいます。

あとは一旦 gdm をストップして、カーネルモジュールを読み込んでから X を立ち上げます。
カーネルモジュールを読み込む前に、DisplayLink デバイスを USB ポートに接続しますが、この時に対応する解像度 (800x480, 1024x768, 1280x1024, 1400x1050) ではない解像度のモニターの場合、まだモニターは接続しないでおきます。
これは、モジュールを読み込むときにモニターの最大解像度を認識するのですが、ここで対応外のモニターだとモジュールが読み込まれないからです。
モニターが認識されなければ、fallback モードとして 1280x1024 の解像度を設定します。モジュールを読み込んだ後にモニターをつなげれば、(1280x1024 に対応したモニターであれば) 正常に表示されます。

あとは、Xorg ドライバに同梱の Readme を参照に xorg.conf を編集します。とりあえず私が試せたのは、ここ に置いた xorg.conf の内容です。

ざっと使った感じでは普通に使えてます。今回テストしたのは SC3 だったので、動画の再生については本体の力不足もあるかもしれないので、なんとも言えませんが。。。
xorg.conf を書き換える必要がありますし、Windows のように手軽にディスプレイを追加、というわけには行きませんが、ちゃんと Linux でも動くようにはなってきているようですね。
Date: 2009.06.11 Category: DisplayLink  Comments (6) Trackbacks (0)

DisplayLink の USB-VGA アダプタを Linux で - Xorg のドライバ

ついに DisplayLink 用の Xorg ドライバもリリースされましたね。
フレームバッファー用のカーネルモジュールとセットで使います。
試してみたところ、モジュールに適合する解像度のモニターを持っていないため、正常に表示が出来ませんでした。
ただ、崩れた画面ながら、gnome のデスクトップが表示されていたのは解ったので、ドライバとして使えることは確かですね。
あとは解像度の対応をなんとかできれば・・・

以前のモジュールでは、libdlo のソースから再利用していたので、それをコピーすれば他の解像度にも対応できたのですが、今のモジュールはそれとは違う方法で定義していました。
1024x768 のモニターが一つあれば、簡単にテストできたのですけどねぇ。。。
Date: 2009.06.06 Category: DisplayLink  Comments (0) Trackbacks (0)
最新記事
最新コメント
ウィジェット
月別アーカイブ
カテゴリ
プロフィール

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


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

この人とブロともになる

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