Lenovo ThinkPad X1 Extreme

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

関連記事

デバイス 状態 モジュール
Intel UHD 630 Graphics 動作 i965
Nvidia GTX 1050 Ti (Max-Q) 動作 nvidia
Intel I219-V Ethernet 動作 e1000e
Intel 9560 ワイヤレス 動作 iwlwifi
Realtek ALC285 オーディオ 動作 snd_hda_intel
Synaptics タッチパッド 動作 synaptics + libinput
SunplusIT カメラ 動作 uvcvideo
カードリーダー 動作 xhci_hcd
Intel 9560 Bluetooth 動作 btusb
Intel JHL7540 Thunderbolt 動作 thunderbolt
Synaptics 指紋リーダー 未動作

ThinkPad X1 Extreme は Lenovo から2018年度の ThinkPad X ラインナップとして発売された薄型・軽量の 15.6 インチワークステーション・マルチメディアノートパソコンです。

このページでは X1 Extreme で Arch Linux を動作させるときの詳細を扱います。ノートパソコン一般の情報についてはノートパソコンを、他の ThinkPad ノートパソコンについては ThinkPad を見てください。Ubuntu certification page も有益です。

ノート: ほとんど同じハードウェアを搭載しているワークステーションとして Lenovo ThinkPad P1 が存在します。このページの情報の多くは P1 モデルにも当てはまります。

ハードウェア互換性

BIOS アップデート

Arch Linux 環境で必須というわけではありませんが、ノートパソコンを使うときは基本的に BIOS アップデートをすることが強く推奨されます。初期バージョンの 1.13 には複数のバグが存在し、ノートパソコンが文鎮化する可能性があります: Reddit thread discussing the issue; another Reddit thread discussing a different bricking issue

BIOS アップデートは fwupd や Windows の Lenovo Vantage アプリケーション、あるいは Lenovo のウェブサイト から行うことができます。

最新のバージョンは v1.30 であって (2020年6月現在)、これが推奨されます。断わりのない限り、このページの情報は最新のBIOSであることを前提としています。

ハイブリッドグラフィック

ハイブリッドモードは Bumblebeenvidia-xrun、optimus-manager で動作します。USB-C アダプタや Thunderbolt ドックを繋いだ時に生成されるディスプレイポートと、 HDMI ポートは Nvidia の dGPU に配線されています。BIOSの設定では "Discrete Graphics" (Nvidia のみ) と "Hybrid" (Intel + GPU) の2つのみ選択肢があり、Intel GPU のみを使う選択肢は利用できません。

Bumblebee

Bumblebeeのインストール後、次に示すファイルを修正、作成し再起動して、 intel-virtual-output -fを iGPUで動作している X サーバから実行することで HDMI ポートが動作するようになります。

/etc/X11/xorg.conf.d/20-intel.conf
Section "Device"
    Identifier "intelgpu0"
    Driver "intel"
EndSection
/etc/bumblebee/xorg.conf.nvidia
Section "ServerLayout"
    Identifier  "Layout0"
    Option      "AutoAddDevices" "true"
    Option      "AutoAddGPU" "false"
EndSection

Section "Device"
    Identifier  "DiscreteNvidia"
    Driver      "nvidia"
    VendorName  "NVIDIA Corporation"
    Option "ProbeAllGpus" "false"
    Option "AllowEmptyInitialConfiguration"
EndSection

Section "Screen"
    Identifier "Screen0"
    Device "DiscreteNVidia"
EndSection

optimus-manager

optimus-manager はグラフィックを切り替えるために、システムからログアウトさせますが、外部ディスプレイのサポートについて、より高いパフォーマンスと安定性を提供します。次の設定が上手く動作することが確かめられています。

/etc/optimus-manager/optimus-manager.conf
[intel]
DRI=3
driver=modesetting
modeset=yes

[nvidia]
PAT=yes
ignore_abi=no
modeset=yes

[optimus]
pci_power_control=no
pci_remove=no
pci_reset=function_level
switching=bbswitch

上記の設定のために bbswitch をインストールする必要があります。

外部グラフィックスのみを使う

nvidia-xconfigが生成するデフォルトの設定を使うことで、HDMI 出力も含めて上手く動作します。

Thunderbolt

Thunderbolt は特に設定をしなくても動作します (ThinkPad Thunderbolt 3 ドックで確認)。セキュリティについて詳しくは Thunderbolt を見てください。

ファン制御

X1 Extreme にはファンが左右2つあり、本体右側のファンは thinkpad_acpi でもって制御することが出来ます。もう一方のファンを制御するためには thinkpad_acpi モジュールにパッチを当てる必要があります。詳細は [1] を見てください。ファンの騒音が問題な場合には、ファンをマザーボードから外すことで止めることができます。あるいは the dust mesh can be removed に従ってメッシュを外すことができます。

他のハードウェア

タッチパッドの操作性が、カーネルメッセージが示すように "intertouch" を有効化することで、大幅に改善されます。これは、カーネルコマンドラインに psmouse.synaptics_intertouch=1を加えるか、 modprobeのエントリに次のように加えることで可能です。

/etc/modprobe.d/psmouse.conf
options psmouse synaptics_intertouch=1

ウェブカメラは何も設定なくても動作しますが、スライダーの状態に関係なく常に接続状態として認識されます (保護スライダーを閉じているとき Windows では「非接続」画像が表示されます)。ただし、スライダーを閉じているとき、カメラの画像は完全に黒画像となります。

指紋スキャナはいまのところ libfprint でサポートされていません。リバースエンジニアリングによる開発が こちら で進めれていますが、停滞しているようです。上流の libfprint バグが こちら から確認できます。

その他のハードウェアは全て問題なく動作します。

ソフトウェアの設定

Linux における Dolby Atmos エフェクト

Windows 環境における Dolby Atmos と同じスピーカーの音質・エフェクトを得るには、PulseAudiopulseeffects をインストール・設定してください。Dolby Atmos プリセットを JackHack96 の Github からダウンロードして PulseEffects GUI の "Convolver" タブで有効化できます。

マイクのノイズ除去

PulseAudio の エコー除去・ノイズキャンセルを有効にする がノイズ除去に使えます。/etc/pulse/default.paに次を追加することで可能です。"mic_geometry" が X1 Extreme 特有の設定です。

/etc/pulse/default.pa
### Enable Echo/Noise-Cancellation
load-module module-echo-cancel use_master_format=1 aec_method=webrtc aec_args="beamforming=1 mic_geometry=-0.0257,0,0,0.0257,0,0" source_name=echoCancel_source sink_name=echoCancel_sink
set-default-source echoCancel_source
set-default-sink echoCancel_sink

バッテリー閾値

バッテリーの充電の閾値は sysfs ノードの /sys/class/power_supply/BAT0/charge_start_threshold/sys/class/power_supply/BAT0/charge_stop_thresholdから可能です。 または TLP を使うこともできて、バッテリーの起動・停止の閾値を設定するには、acpi_call をインストールして /etc/default/tlp を以下のように編集します:

START_CHARGE_THRESH_BAT0=80
STOP_CHARGE_THRESH_BAT0=90

CPU スロットリングの設定

警告: BIOSのバージョン v1.30では、温度上限を上書きします。これによっていくつかの条件の下では、本来の性能を発揮しません。BIOS レベルでの適切な対応は Lenovo によって取り組まれていて、ゆくゆくは利用可能になるでしょう。

s-tui を使ってストレステストを行うと CPU の電源の上限が 38W となっていることがわかります。CPU の温度は 81C に保たれるため i7-8750H では最大周波数は約 2850 MHz となります。「パフォーマンス」モードでの Windows が設定する上限は高く、44W/95C となります。次の2つの方法でもって電源の上限を設定することが可能です。

sysfs を使う

Linux カーネルのバージョン5.4から、CPU の温度ポリシーを設定するための、いくつかのインターフェースが提供されています。主要なものは2つで DPTF ポリシーと TCC オフセットです。DPTF ポリシーでは、周波数スケールの振舞いを制御することができ、TCC オフセットでは、CPU パッケージの温度上限を制御することが可能です。下のスクリプトを使うことで、Windows の場合と同じになるように、この2つを設定することが出来ます。

#!/bin/bash

# set DPTF policy to "adaptive performance"
echo "63BE270F-1C11-48FD-A6F7-3AF253FF3E2D" > /sys/devices/platform/INT3400:00/uuids/current_uuid

# enable INT3400 thermal zone
for zone in /sys/class/thermal/thermal_zone*; do
	if [ "$(cat $zone/type)" == "INT3400 Thermal" ]; then
		echo enabled > $zone/mode
	fi
done

# set TCC offset to 5 degrees (Tmax = 95C)
echo 5 > /sys/devices/pci0000:00/0000:00:04.0/tcc_offset_degree_celsius

サードパーティー製のツールを使う

throttledintel-undervolt (詳細は下) を使うことで、温度と電源の上限を上書きすることが出来ます。しかしこのツールが利用する方法は、上に比べて信頼性が弱いです。

CPU 低電圧化

警告: 一般にハードウェアへの直接の悪さはないものの、低電圧化は Lenovo や Intel にサポートされていません。もし低電圧化して問題があった場合には、電圧を元に戻して、問題があるか確認してください。

CPU/Intel GPU の低電圧化を intel-undervolt で行うことができます。i7-8750H と i7-8850H CPU では -150mV が基本的に安全なラインですが、個体差が存在します。 低電圧化によるシステムへの安定性の影響は、それぞれのハードウェアに大きく依存します(a.k.a. "the silicon lottery")。

仕様

このページの情報は全て製造番号 20MF000BUS と 20MFCTO1WW のノートパソコンでテストしています。仕様は以下の通り:

  • CPU: Intel Core i7-8750H / i7-8850H
  • グラフィック: ハイブリッド Intel UHD 630 + Nvidia GTX 1050 Ti Max-Q
  • ディスプレイ: Innolux N156HCE-EN1 1920x1080/60Hz IPS (他のメーカー製の場合あり)
  • メモリ: 16GB / 32GB
  • SSD: Intel 7600p シリーズ 512GB NVMe / Samsung 970 Pro 1TB NVMe