DisplayLink
Linux における DisplayLink デバイスのサポートはまだ実験的です。使用するのに成功している人もいますが、簡単に使えるわけではなく動作するという保証もありません。このページに記載しているのは DisplayLink で外付けモニターを使用する方法の中でも最も成功率が高いとされる方法です。
目次
インストール
USB 2.0 DL-1xx デバイス
DisplayLink のカーネル DRM ドライバーは udl
です。初期の udlfb ドライバーを書き直したドライバーになります。udl
を利用すれば Xrandr を使って DisplayLink モニターを設定することができます。
まず、ドライバーを設定・インストールしてください:
- 旧式のカーネルモジュールである
udlfb
が先にロードされてしまわないようにudlfb
はブラックリストに入れて下さい。
USB 3.0 DL-5xxx, DL-41xx, DL-3x00 デバイス
AUR から displaylinkAUR ドライバーをインストールしてください。udl
ドライバーと同じように Xrandr を使って DisplayLink モニターを設定できます。systemctl を使って displaylink.service
を起動・有効化してください。
X ディスプレイの設定
ドライバーのインストール後、以下を実行:
# xrandr --listproviders
Providers: number : 2 Provider 0: id: 0x49 cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 2 outputs: 8 associated providers: 0 name:Intel Provider 1: id: 0x13c cap: 0x2, Sink Output crtcs: 1 outputs: 1 associated providers: 0 name:modesetting
上記の出力で、Provider 0 がシステムの標準のグラフィックプロバイダ (Intel) であること、そして Provider 1 (modesetting) が DisplayLink プロバイダであることが確認できます。DisplayLink デバイスを使うには、Provider 1 を Provider 0 に接続します:
# xrandr --setprovideroutputsource 1 0
xrandr によって DVI 出力が追加されるので、これで通常通り xrandr で使用することができます。実験的ですがホットプラグもサポートしているので、ちゃんと動作すれば非常に簡単にセットアップできたことになります。上手く動作しない場合、以下の設定が必要になります。
設定
以下の設定手順は X サーバーを既に立ち上げる準備が整っているのが前提で、後は既存のセットアップにモニターを追加するだけという状態になっている必要があります。
フレームバッファデバイスのロード
DisplayLink デバイスがシステムに認識される前に、udl
カーネルモジュールをロードしなくてはなりません。ロードするには、次を実行:
# modprobe udl
DisplayLink デバイスを接続すると、表示に何らかの変化が現れるはずです。緑色の画面が出るのが普通ですが、他の表示がされることもよくあるので気にする必要はありません。最も大事なのは、dmesg
の出力で以下のように DisplayLink デバイスが認識されたのを確認できることです:
usb 2-1.1: new high-speed USB device number 7 using ehci-pci usb 2-1.1: New USB device found, idVendor=17e9, idProduct=03e0 usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 usb 2-1.1: Product: Lenovo LT1421 wide usb 2-1.1: Manufacturer: DisplayLink usb 2-1.1: SerialNumber: 6V9BBRM1 [drm] vendor descriptor length:17 data:17 5f 01 00 15 05 00 01 03 00 04 udl 2-1.1:1.0: fb1: udldrmfb frame buffer device [drm] Initialized udl 0.0.1 20120220 on minor 1
さらに、プライマリディスプレイに既にフレームバッファが存在する場合、/dev
に /dev/fb1
のような新しい fb
デバイスが作られます。
起動時に自動的に udl
をロードするには、以下の内容で /etc/modules-load.d/
に udl.conf
ファイルを作成してください:
/etc/modules-load.d/udl.conf
udl
カーネルモジュールのロードに関してはカーネルモジュール#ロードを参照。
X サーバーの設定
xrandr
やデスクトップ環境のディスプレイ設定 UI を使って udl
や displaylink
ドライバーを使用する USB モニターを設定してください。
xrandr
ドライバーをロードすると、DisplayLink モニターがプロバイダの出力に表示されます:
$ xrandr --listproviders
Providers: number : 2 Provider 0: id: 0x43 cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 2 outputs: 2 associated providers: 1 name:Intel Provider 1: id: 0xcb cap: 0x2, Sink Output crtcs: 1 outputs: 1 associated providers: 1 name:modesetting
上記の例では、Provider 1 が DisplayLink デバイスで、Provider 0 がデフォルトディスプレイです。xrandr --current
を実行すると利用可能なスクリーンのリストが表示されます:
$ xrandr --current
Screen 0: minimum 320 x 200, current 1600 x 900, maximum 8192 x 8192 LVDS1 connected 1600x900+0+0 (normal left inverted right x axis y axis) 309mm x 174mm 1600x900 60.0*+ 40.0 1440x900 59.9 1360x768 59.8 60.0 1152x864 60.0 1024x768 60.0 800x600 60.3 56.2 640x480 59.9 VGA1 disconnected (normal left inverted right x axis y axis) DVI-1-0 connected (normal left inverted right x axis y axis) 1366x768 60.0 + 1368x768_59.90 59.9 1368x768_59.90 (0xd0) 85.7MHz h: width 1368 start 1440 end 1584 total 1800 skew 0 clock 47.6KHz v: height 768 start 769 end 772 total 795 clock 59.9Hz
上記のコマンドで DisplayLink のスクリーンが表示されない場合、DisplayLink をメイン GPU にオフロードする必要があります:
xrandr --setprovideroutputsource 1 0
スクリーンが使えるようになったら、Xrandr を参照して設定してください。自動で設定する方法は displaylink.sh を参照。
トラブルシューティング
画面の再描画が壊れている
カーネルドライバーとして udl
を使用するとモニターが機能しなくなり、マウスを移動したりウィンドウを変形したときだけしか画面が更新されない場合、スクリーンの modeline の設定が間違っています。以下のようなコマンドで適切な modeline を取得できます:
gtf 1366 768 59.9
1366
と 768
はモニターの横・縦の解像度に、59.9
はリフレッシュレートに置き換えてください。modeline を使うには、以下のように xrandr
で新しいモードを作成:
xrandr --newmode "1368x768_59.90" 85.72 1368 1440 1584 1800 768 769 772 795 -HSync +Vsync
そして Xrandr に追加:
xrandr --addmode DVI-0 1368x768_59.90
それから DisplayLink モニターで上記のモードを使うようにモニターを設定することで、再描画問題は解決するはずです。別のモードを使用する方法は Xrandr のページを見てください。
GNOME 3 で DisplayLink のリフレッシュレートが異常に低い
DisplayLink を設定したとたんにデスクトップが遅くなる場合、背景画像をシンプルに、例えば真っ黒にするなど設定してみてください。
参照
- DisplayLink Open Source: Official DisplayLink open source support forum
- Plugable: Vendor blog chronicling Linux support for DisplayLink.
- Ubuntu Driver Download: DisplayLink Ubuntu Driver Download and Information
- Release Notes: Latest release notes for DisplayLink Ubuntu Software