Dell XPS 13 (9350)
Dell XPS 13 2016 (9350) は XPS 13 の第三世代モデルです。Windows がインストールされた標準エディションと Broadcom WiFi カードが Intel WiFi カードに置き換えられて Ubuntu がインストールされたデベロッパーエディションがあります。旧モデル (Dell XPS 13 (9333) や Dell XPS 13 (9343)) と同じように購入時にハードウェアの構成を多少変えられます。
XPS 13 に Arch をインストールする手順は他の PC の場合と同じです。インストールする方法はインストールガイドや UEFI を見て下さい。このページでは Arch におけるハードウェアの対応状況と、インストール後の設定について扱います。
カーネル 4.3 から、Intel の Skylake アーキテクチャがサポートされています。
デバイス | 状態 | モジュール |
ビデオ | 動作 | i915 |
ワイヤレス | 動作 | brcmfmac |
Bluetooth | ファームウェアのインストール後に動作 | btbcm |
オーディオ | 動作 | snd_hda_intel |
タッチパッド | 動作 | ? |
ウェブカメラ | 動作 | uvcvideo |
カードリーダー | 動作 | rtsx_pci |
無線スイッチ | 動作 | intel_hid |
ファンクション・マルチメディアキー | 動作 | ? |
TPM 1.2/2.0 | 動作 | tpm |
目次
CABC
XPS 13 のディスプレイパネル (FHD と QHD+ の両方) にはパネルのフォームウェアに「コンテンツ適応輝度コントロール」 (大抵は CABC とか DBC と呼ばれます) が組み込まれています。画面上に表示されたコンテンツにあわせて画面の明るさを変えてくれる機能ですが、暗いコンテンツと明るいコンテンツを頻繁に切り替えるユーザーにとっては不快ともなります。Dell はフィックスを提供していますが QHD+ モデルの Windows でしか使用できないため Linux をインストールする前に対処が必要です。XPS 13 (9350) の FHD モデルではフィックスは適用できません。パネルの問題というわけではなく、どちらかといえば XPS 13 のパネルの設定の問題です。同じパネルが Dell の Latitude 13 7000 シリーズ (e7370) の FHD モデルで使われていますが CABC は無効になっています。フィックスは Dell から直接入手できます。
BIOS
Arch Linux をインストールする場合は "Secure Boot" を無効化したほうが簡単です (Secure Boot > Disable)。カーネルに自分で署名して有効なまま起動することもできます。詳しくはセキュアブートの記事を読んでください。
efivars
が正しくセットされてない場合、おそらく UEFI で起動できていません。問題が解決しない場合は UEFI#UEFI 変数を見てください。
アップデート
BIOS アップデート 1.4.12 が2016年12月21日にリリースされています。アップデートバイナリを EFI パーティション (/boot/EFI
) あるいは USB フラッシュドライブに保存して、再起動し、F12 ブートメニューから BIOS アップデートを選択してください。サスペンドからマシンが復帰しない場合はアップデートで治ることがあります。
ファームウェアのアップデート
Dell は Linux Vendor Firmware Service (LVFS) でファームウェアアップデートを提供しています。詳しくは Linux から BIOS を書き換える#fwupd を参照してください。fwupdAUR パッケージで利用できます。
Thunderbolt 3 / USB 3.1
USB-C 端子は Thunderbolt 3, Displayport-over-USB-C, USB パワーデリバリ, USB 3.1 に対応しています。
デバイスが正しく動作しない場合、BIOS (上を参照) と Thunderbolt ファームウェア (下を参照) が最新バージョンにアップデートされていることを確認してください。
Thunderbolt 3 ファームウェアアップデート 2.16.01.003, A04 は2016年8月10日にリリースされました。BIOS アップデートとは異なり、新しい Windows 環境で実行する必要があるグラフィカルアプリケーションが存在します (MS-DOS では実行できません)。
USB-C 端子のホットプラグのサポートはカーネルバージョン 4.7 に含まれている バグフィックス が必要です。また、カーネルをビルドするときに CONFIG_PCI_HOTPLUG=y
を使う必要があります。
外部ディスプレイ
USB-C から HDMI や mini Display Port に変換するアダプタを使用して外部ディスプレイに接続しても正しく動作しない場合があります。以下のような報告があがっています:
- 一瞬画像が表示されてから黒画面になる。
- 全く画像が表示されない。
- 数分後にちらつきが発生して使い物にならない。
使用できるアダプタについては Arch フォーラムの投稿 や Dell フォーラムの投稿 を見てください。
SATA コントローラ
BIOS で SATA コントローラが RAID On
に設定されている場合、ハードディスク (もしくは SSD) が認識されません。Arch をインストールする前に Off
あるいは AHCI
に設定してください (AHCI
が推奨です)。
Linux と Windows のデュアルブート
RAID
を無効化したときに Windows が INACCESSIBLE_BOOT_DEVICE
エラーを出力しないようにするには、AHCI
を利用する SATA ストレージコントローラを使用するように Windows を設定する必要があります (Linux をインストールするために AHCI
を使用している場合)。ドライバーはインストールするだけでは有効になりません。以下の方法のどれかで再インストールすることなくドライバーを有効化できます (画一的な方法はありません):
- セーフモードで起動してから通常モードに戻す
- Windows のデバイスマネージャで
Microsoft Storage Spaces Controller
を選択 - レジストリのエントリを修正
- 他のレジストリエントリを修正
詳しくは Microsoft のサポートページ を読んでください。Windows を再インストールするしかないと言っているところもありますが、それは嘘です。
NVM Express SSD
Cannot find root device
linux カーネルバージョン 4.3 と 4.4 の間で "NVM Express" SSD の nvme
モジュールの場所が変更されました。起動時に "cannot find root device" と表示される場合、nvme
モジュールが initramfs
に存在しないのが原因 かもしれません。その場合、以下の設定で解決します。
/etc/mkinitcpio.conf
ファイルを編集:
... MODULES="... nvme" ...
ブートローダーをアップデート:
# mkinitcpio -p linux
linux
は起動時にロードされるイメージの名前に置き換えてください。linux-mainlineAUR をインストールしている場合は linux-mainline
になります。
マウントオプション
ソリッドステートドライブ#TRIM や フォーラム に書かれているように discard
マウントオプションを使用するのは推奨されていません。ソリッドステートドライブ/NVMe#Discard も参照。
NVME 省電力パッチ
Andy Lutomirski は Linux で NVMe デバイスの省電力機能を修正するパッチセットのバージョン 4 をリリースしています。現在のところ、パッチはまだメインラインにマージされていません。以下の AUR パッケージを使用してください。
- Linux-nvme — Andy の NVME 省電力 APST パッチが含まれたメインラインの Linux カーネル。
ワイヤレス
標準エディションに搭載されている Broadcom BCM4350 は最新の linux カーネルでサポートされています (バージョン 4.4.1-1 現在)。ワイヤレスモジュール brcmfmac
は linux-firmware パッケージの brcmfmac4350-pcie.bin
ファームウェアを必要とします。
Broadcom アダプタは規制範囲を報告しないため、デフォルトでは世界共通のチャネル・周波数設定が使われます。設定を変更する方法はワイヤレス設定#規制範囲を見てください。
Bluetooth
Intel WiFi
WiFi カードが Bluetooth をサポートしている場合、BT インターフェイスが使えるはずです。必要なファームウェアは linux-firmware に含まれています。
Broadcom Wifi
Bluetooth は問題なく動作します。btusb
と bluetooth
モジュールをロードして bluetooth.service
を起動・有効化してください。詳しくは Bluetooth を参照。
ワイヤレスヘッドセット
Bluetooth ヘッドセットの接続はできるのに音が流れないなどの問題が起こる場合、ファームウェアが必要です。
Broadcom Bluetooth ファームウェアはカーネルに含まれていない (2015年モデルと同一 [1]) ため、Windows の .exe からファームウェアを入手する必要があります。p7zip で .exe
ファイルを展開して (bluez-utils に含まれている) hex2hcd を使って .hcd
ファイルに変換してください:
$ 7z x 9350_Network_Driver_XMJK7_WN32_12.0.1.720_A00.EXE $ cp Win32/BCM4350C5_003.006.007.0095.1703.hex ./ $ hex2hcd BCM4350C5_003.006.007.0095.1703.hex # mv BCM4350C5_003.006.007.0095.1703.hcd /lib/firmware/brcm/BCM-0a5c-6412.hcd
もしくは bcm4350-firmwareAUR をインストールしてください。
再起動後、Bluetooth インターフェイスのファームウェアが利用できるようになります。
ビデオ
最新の linux カーネルの i915
ドライバーでビデオチップは問題なく動作します。詳しい設定方法は Intel Graphics を、トラブルシューティングは Intel Graphics#トラブルシューティングを見てください。
起動後に画面が表示されない
遅延起動 KMS (デフォルト) を使っていてモジュールのロード時に画面が表示されなくなる場合、initramfs に i915
と intel_agp
を追加したり、特殊なカーネルパラメータを使用することで解決する可能性があります。カーネルパラメータを使用する方法は Intel Graphics#起動中 "Loading modules" するときに画面がブラックアウトするを、initramfs にモジュールを設定する方法は Kernel Mode Setting#Early KMS start を見てください。
Linux カーネル 4.8 以上
RC6
i915.enable_rc6=1
は安定して機能します。高い値に設定しても無視されます。このオプションで有効になる深い GPU の電源状態 (RC6p と RC6pp) は gen7+ ハードウェアには存在しません [2][3]。
パネルセルフリフレッシュ
i915.enable_psr=1
でパッケージを効率的な C ステートにすることで優れた省電力機能を使うことができます。ただし、このオプションを使用すると頻繁にフリーズが発生します。オプションの値を 2 や 3 にした場合も同じような省電力効果は得られますがフリーズは発生しません [4]。i915.disable_power_well=0
と i915.enable_psr=1 i915.enable_rc6=1
の組み合わせがおそらく PSR の安定設定です。
フレームバッファ圧縮
i915.enable_fbc=1
は安定しますがあまり消費電力を抑える効果はありません。
GuC
i915.enable_guc_loading=1 i915.enable_guc_submission=1
で GuC のロードを有効にできます。
Linux カーネル 4.3 以下
カーネル 4.3 以下を使っている場合、i915.preliminary_hw_support=1
カーネルパラメータが必要です。Intel Graphics#Skylake サポートを見てください (カーネル 4.3 以上や linux-bcm4350AUR を使っている場合はパラメータは不要です)。
Linux カーネル 4.5 以下
新しい i7-6560 CPU 付属の Iris 540 Graphics が搭載されている場合、カーネル 4.6 未満では GPU が数分間ごとにフリーズします。https://bugs.freedesktop.org/show_bug.cgi?id=94161 のバグが原因であり、Xorg の設定で DRI を無効化することでフリーズを減らせます:
/etc/X11/xorg.conf.d/20-intel.conf
Section "Device" Identifier "Intel Graphics" Driver "intel" Option "DRI" "false" EndSection
あるいはカーネルのブートパラメータに i915.enable_rc6=0
を追加してください。
タッチパッド
設定前はキーの押下しか動作しません。xf86-input-libinput をインストールすることでマウスとして使えるようになり、タッチスクリーンも利用できるようになります。設定方法は libinput を見てください。「タップでクリック」などの機能はデスクトップ環境で設定できます。
代わりのドライバーとして xf86-input-synaptics をインストールすることもできますが、既にメンテナンスモードに入っているため xf86-input-libinput を使用することを推奨します。さらに、デスクトップ環境からタッチパッドを簡単に設定することができない可能性があります。また、X サーバーの再起動が必要です。
psmouse のエラー
タッチパッドは動作しているのに dmesg | grep -i psmouse
でエラーが返ってくる場合、psmouse
を無効化すると良いでしょう。まず設定ファイルを作成:
/etc/modprobe.d/modprobe.conf
blacklist psmouse
そしてファイルを /etc/mkinitcpio.conf
に追加:
... FILES="/etc/modprobe.d/modprobe.conf" ...
その後 initramfs を再生成してください (Mkinitcpio#イメージ作成とアクティベーションを参照)。
ジェスチャー
ジェスチャーの利用方法については libinput#ジェスチャーを見てください。
サウンド
ヘッドフォンでパチパチ/シュッとしたノイズが鳴る
ヘッドフォンを使用しているときにホワイトノイズが混じるという報告が複数存在します。ノイズを除去するには (alsa-utils に含まれている) alsamixer
を起動してください。F6 でサウンドカードを選択してヘッドセットのゲイン (左から3番目) を22に設定してください。もしくは次の amixer
コマンドを使ってください:
$ amixer -c 0 cset 'numid=10' 1 numid=10,iface=MIXER,name='Headphone Mic Boost Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=3,step=0 : values=1,1 | dBscale-min=0.00dB,step=10.00dB,mute=0
残念ながら PulseAudio によってログイン・ログアウト時 (もしくは PulseAudio サービスを再起動した時) に上記の設定は上書きされてしまいます。alsa-restore.service
が起動時に有効になっていても関係ありません。
この問題を回避するには、/usr/share/pulseaudio/alsa-mixer/paths/analog-input-headphone-mic.conf
を編集して [Element Headphone Mic Boost]
セクションをコメントアウトしてください:
--- #[Element Headphone Mic Boost] #required-any = any #switch = select #volume = merge #override-map.1 = all #override-map.2 = all-left,all-right ---
同じく /usr/share/pulseaudio/alsa-mixer/paths/analog-input-internal-mic.conf
でも同じセクションをコメントアウトしてください:
--- #[Element Headphone Mic Boost] #switch = off #volume = off ---
上記の設定を行うと PulseAudio からゲインの設定が全くされなくなります。
マイク
ALS の場合、"Digital" チャンネルのボリュームを上げることでマイクが機能します。
TPM
搭載されている Trusted Platform Module (TPM) は Trusted Platform Module のページに書かれている方法で簡単に設定でき、特別な設定は不要です。TPM を使うなら tpm-toolsAUR や trousersAUR などのパッケージが便利です。
TPM 2.0
Dell XPS 13 (9350) に最初搭載されていたのは TPM 1.2 で、TPM Standard バージョン 1.2 をサポートする TPM チップでした。しかしながら2017年1月6日に Dell からリリースされた ファームウェアアップデート (内部バージョン 1.3.1.0_V1) によって TPM チップは TPM Standard バージョン 2.0 の機能セットをサポートするようになります。残念ながら、執筆時点では Linux を使ったり BIOS を直接書き換えることでアップデートを適用する方法はありません。アップデートをインストールするには Windows OS を使うしかありません。USB ドライブで一時的に Windows 環境を起動して、アップデートを実行するのが一番簡単です。
アップデートをインストールするときは上記のファームウェアのアップデートページに書かれている手順に従ってください。TPM チップを消去・リセットしてアップデートを開始します。Linux でデバイスを使用する場合、"Disable TPM Auto Provisioning in Windows" セクションの最後の手順 11 と 12 はスキップできます。TPM を消去するだけであれば こちらのガイド に従って Windows から .exe
ファイルを実行してください。
アップデートが完了したら、Linux カーネルは新しく設定された TPM デバイスを自動的に認識して、自動的に有効化します。TPM 2.0 対応となったチップを活用にするには tpm2.0-tss-gitAUR と tpm2.0-tools-gitAUR パッケージをインストールしてください。起動時に TSS のリソースマネージャを機能させたい場合、こちら に便利な systemd サービスが存在します。
サスペンドから復帰した後に CPU が低速になる
サスペンドから復帰したときにコンピュータが非常に遅くなる場合、CPU 周波数が非常に低い値に絞られるバグが発現している可能異性があります。cpupower frequency-info
を使用して確認してください。デバッグ情報や回避方法は フォーラムスレッド を読んでください。
lspci と lsusb
以下の lspci
と lsusb
の出力結果を得た環境:
[ 0.000000] DMI: Dell Inc. XPS 13 9350/0PWNCR, BIOS 1.3.3 03/01/2016
カーネル:
Linux marv 4.5.4-1-ARCH #1 SMP PREEMPT Wed May 11 22:21:28 CEST 2016 x86_64 GNU/Linux
lspci
00:00.0 Host bridge: Intel Corporation Skylake Host Bridge/DRAM Registers (rev 08) 00:02.0 VGA compatible controller: Intel Corporation Skylake Integrated Graphics (rev 07) 00:04.0 Signal processing controller: Intel Corporation Skylake Processor Thermal Subsystem (rev 08) 00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21) 00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21) 00:15.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #0 (rev 21) 00:15.1 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #1 (rev 21) 00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI #1 (rev 21) 00:1c.0 PCI bridge: Intel Corporation Device 9d10 (rev f1) 00:1c.4 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #5 (rev f1) 00:1c.5 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #6 (rev f1) 00:1d.0 PCI bridge: Intel Corporation Device 9d18 (rev f1) 00:1f.0 ISA bridge: Intel Corporation Sunrise Point-LP LPC Controller (rev 21) 00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21) 00:1f.3 Audio device: Intel Corporation Sunrise Point-LP HD Audio (rev 21) 00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21) 3a:00.0 Network controller: Broadcom Corporation BCM4350 802.11ac Wireless Network Adapter (rev 08) 3b:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS525A PCI Express Card Reader (rev 01) 3c:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller (rev 01)
USB-C ハブを接続すると、新しい PCI デバイスが認識されます:
01:00.0 PCI bridge: Intel Corporation Device 1576 02:00.0 PCI bridge: Intel Corporation Device 1576 02:01.0 PCI bridge: Intel Corporation Device 1576 02:02.0 PCI bridge: Intel Corporation Device 1576 39:00.0 USB controller: Intel Corporation Device 15b5
lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 004: ID 0c45:670c Microdia Bus 001 Device 003: ID 04f3:20d0 Elan Microelectronics Corp. Bus 001 Device 002: ID 0a5c:6412 Broadcom Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub