Dell XPS 15 (9560)
デバイス/機能 | 状態 |
サスペンド | バグが存在 |
ハイバネート | 動作 |
内蔵グラフィック | 動作 |
Nvidia 単体グラフィック | 動作 |
Wifi | 動作 |
Bluetooth | 動作 |
rfkill | 動作 |
オーディオ | 動作 |
タッチパッド | 動作 |
ウェブカメラ | 動作 |
カードリーダー | 動作 |
ファンクション/マルチメディアキー | 動作 |
電源管理 | 設定が必要 |
EFI ファームウェアアップデート | 動作 |
指紋リーダー | 動作せず |
このページは Dell XPS 15 9650 (2016年下旬モデル) で Arch Linux を動作させるにあたっての推奨事項を載せています。構成にもよりますがハードウェアの多くが問題なく動作します。例外は指紋リーダーで、サスペンドから復帰したときにロックされることが報告されており、また、Nvidia のプロプライエタリドライバーにはディスクリート GPU にレンダリングをオフロードする PRIME のサポートがありません。
UEFI
インストールする前に UEFI の設定が必要です。起動中に F2 を押すことで UEFI の設定画面を開くことができます。
- SATA Mode をデフォルトの "RAID" から "AHCI" に変更してください。これで Linux が NVMe SSD を認識できるようになります。プリインストールされた Windows 環境とデュアルブートする場合、設定の変更によって Windows が起動しなくなるので注意してください。ただし、Windows を再インストールしなくても修正することが可能です。
- "POST Behaviour" の Fastboot を "Thorough" に変更してください。設定を変更しないと断続的に起動が失敗することがあります。
- セキュアブートを無効化して Linux が起動できるようにしてください。
Arch のインストールは通常通りに行うことができます。詳しくはインストールガイドを見てください。
電源管理
サスペンドとハイバネート
サスペンドとハイバネートは特に設定をしなくても動作します。ただし一部のユーザーはサスペンドから復帰したときにフリーズが発生することがあると報告しています [1]。カーネル 4.10 以上で発生頻度が上がるようです。
ファンと温度の監視・制御
内蔵されている温度計は lm_sensors で読み込むことができます。
ファンの速度は i8kutils-gitAUR に入っている i8kctl
で監視できます。サポートされているノートパソコンのリストに含まれていないため、force=1
モジュールオプションを使って i8k
モジュールをロードする必要があります。カーネルモジュール#モジュールオプションを設定するを参照してください。ファンの速度を手動で制御することもできますが、ファームウェアの自動制御で使われる速度 (0rpm, 2500rpm, 3200rpm, 3700rpm, 4800rpm, 5100rpm) を全て選ぶことはできず、一部の速度にしか制御できません (0rpm, 2500rpm, 4800rpm)。ファンの手動制御は自己責任で行ってください。詳しくはファンスピード制御#BIOS によるファンスピード制御を無効化を参照。
Nvidia GPU の温度は nvidia-smi
ユーティリティで確認できます。ユーティリティは nvidia-utils パッケージに含まれています。
省電力機能
ディスクリート GPU の無効化
ディスクリートの Nvidia GTX 1050 GPU はデフォルトで電源が入るようになっており、UEFI の設定では無効化できません。アイドル状態でも Nvidia GPU の消費電力 (約7W) は少なくありません。無効化するには CONFIG_ACPI_REV_OVERRIDE_POSSIBLE
フラグを設定してカスタムカーネルをビルドする必要があります。カーネル/コンパイル/Arch Build System を見てください。カスタムカーネルをインストールしたら、bbswitch と bumblebee をインストールしてから、カーネルパラメータに acpi_rev_override=1
を追加してください。そして bumblebeed.service
を有効化して再起動してください。
以下のコマンドを実行することで状態を確認できます:
$ cat /proc/acpi/bbswitch
無効化されている場合、OFF
と出力されます。
また、以下のコマンドを実行した場合:
$ dmesg | grep bbswitch
以下のように出力されるはずです:
[ 4.253642] bbswitch: loading out-of-tree module taints kernel. [ 4.253833] bbswitch: version 0.8 [ 4.254093] bbswitch: Found integrated VGA device 0000:00:02.0: \_SB_.PCI0.GFX0 [ 4.254163] bbswitch: Found discrete VGA device 0000:01:00.0: \_SB_.PCI0.PEG0.PEGP [ 4.254225] bbswitch: detected an Optimus _DSM function [ 4.254282] bbswitch: Succesfully loaded. Discrete card 0000:01:00.0 is on [ 4.256651] bbswitch: disabling discrete graphics
汎用の省電力設定
省電力の一般的な設定を行うツールをインストールすると良いでしょう。電源管理#ユーザースペースツールを見てください。PCIe の電源管理を有効にすると bbswitch が機能しなくなる ので注意してください。Nvidia GPU の PCIe 電源管理を無効にすることで解決できます。例えば TLP の場合、/etc/default/tlp
を編集して RUNTIME_PM_BLACKLIST="01:00.0"
を追加してください。また、pcie_port_pm=off
カーネルパラメータを使うと全ての PCIe ランタイム電源管理が無効になります。
タッチスクリーンの無効化
UEFI の設定からタッチスクリーンを無効化することで消費電力を抑えることができます。
NVMe APST の有効化
カーネル 4.11 以前では Linux は NVMe APST をサポートしていないため、NVMe SSD は常に一番電力を消費するパワーステートになります。パッチを適用したカーネルを使用して、適切なパラメータを設定し APST を有効化することで、消費電力を大幅に下げることが可能です。ソリッドステートドライブ/NVMe#省電力 APST を見てください。ASPT を動作させるには nvme_core
モジュールの default_ps_max_latency_us
パラメータを調整する必要があります。
i915 カーネルモジュールの省電力機能
以下のオプションを i915 カーネルモジュールに指定することで消費電力を小さくすることができます:
enable_fbc=1 enable_psr=1 disable_power_well=0
Wifi と Bluetooth
Intel 8265 ワイヤレスカードが搭載された Precision 5520 の場合、iwlwifi
カーネルモジュールの power_save
オプションを 1 から 5 までの数値に設定できます。カーネルモジュール#モジュールオプションを設定するを参照してください。また、rfkill を使うことで Bluetooth と Wifi を別々に無効化できます。ワイヤレス設定#Rfkill によるブロックを見てください。
グラフィック
内蔵の Intel HD 630 GPU は特に設定をしなくても動作します。任意で xf86-video-intel をインストールして使うことができますが、カーネルに組み込まれているモードセッティングドライバーの方が信頼性が高いため推奨されません。ディスクリートの Nvidia GPU を使わない場合、設定は不要です。使用する場合、いくつか選択肢が存在します。ディスプレイ出力は内蔵 GPU に接続されているためディスクリート GPU から出力を設定する必要はありません。無効化したい場合、#省電力機能に書かれている説明のようにカスタムカーネルのコンパイルが必要です。
オープンソースドライバーと PRIME によるオフロード
デフォルトでは内蔵 GPU を使用して、GPU を必要とするアプリケーションだけ DRI_PRIME
環境変数でディスクリート GPU にオフロードします。詳しくは PRIME を見てください。オープンソースの Nvidia ドライバーである Nouveau は GTX 1050 など Pascal 世代 GPU の電源管理をサポートしていないため [2]、オープンソースドライバーを使用した場合は性能を最大限発揮できません。Nouveau#電源管理を参照してください。
プロプライエタリドライバーと bumblebee
デフォルトでは内蔵 GPU を使用して、一部のアプリケーションだけ optirun
や primusrun
を使ってディスクリート GPU でレンダリングする構成です。詳しくは Bumblebee を見てください。垂直同期のサポートに問題があるため、ディスクリート GPU でレンダリングしたアプリケーションにティアリングが発生します。また、ディスクリート GPU と内蔵 GPU のデータの移動が非効率的でオーバーヘッドが存在します。それでも Nouveau よりもパフォーマンスは良くなります。最新安定版の Nvidia (378.13) では機能しませんが (dmesg に rmInitAdapterFailed と表示されます)、最新のベータ版ドライバー nvidia-betaAUR, nvidia-utils-betaAUR, lib32-nvidia-utils-betaAUR なら動作します。カスタムカーネルでベータ版を使うには DKMS 版の nvidia-beta-dkmsAUR パッケージを使用して utils パッケージとバージョンが合うように PKGBUILD を編集する必要があります。もしくは、長期間サポート版 (375.66) のパッケージも動作します (nvidia-llb-dkmsAUR, nvidia-utils-llbAUR, lib32-nvidia-utils-llbAUR)。
プロプライエタリドライバーと PRIME によるオフロード
あらゆるレンダリングでディスクリート GPU を使用して、内蔵 GPU はディスプレイ出力にのみ使用します。ディスクリート GPU が常に稼働するため負担がないときの電力消費は増大します。グラフィック性能を必要とするアプリケーションは Bumblebee よりもずっと良い動作をするようになり、PRIME Synchronization で垂直同期が機能するためティアリングは発生しません。bumblebee を削除して NVIDIA Optimus, Nvidia README, PRIME Synchronization スレッド の手順に従ってください。BusID は PCI:1:0:0
です。PRIME 同期を有効にしてちらつきを無くすには nvidia_drm
カーネルモジュールに modeset=1
パラメータを追加してください (カーネルモジュール#モジュールオプションを設定するを参照)。最新安定版 (378.13) やベータ版 (381.09) には PRIME Synchronization を GTX 1050 で使うためのバグフィックスが含まれていないため、長期サポート版の Nvidia ドライバー (nvidia-llb-dkmsAUR, nvidia-utils-llbAUR, lib32-nvidia-utils-llbAUR) を使う必要があります [3]。
ファームウェアのアップデート
Dell によって提供されているファームウェアアップデートは fwupdate でインストールできます。利用可能なファームウェアのバージョンは こちら からも確認できます。
指紋リーダー
搭載されている指紋リーダーは Validity/Synaptics 製のモデルで USB ID は 138a:0090
です。現時点では Linux ドライバーが存在しませんが、オープンソースの Linux ドライバーが Windows ドライバーをリバースエンジニアリングして開発されている途中です [4]。