DisplayLink

提供: ArchWiki
ナビゲーションに移動 検索に移動

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 を使って udldisplaylink ドライバーを使用する 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

1366768 はモニターの横・縦の解像度に、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 を設定したとたんにデスクトップが遅くなる場合、背景画像をシンプルに、例えば真っ黒にするなど設定してみてください。

参照