Lenovo ThinkPad X1 Carbon (Gen 6)

提供: ArchWiki
移動先: 案内検索

関連記事

ヒント: ThinkPad の資料は https://www.thinkwiki.org/wiki/ThinkWiki にまとまっています。

モデルの説明

2018年前期に発売された ultrabook である第6世代の Lenovo ThinkPad X1 Carbon です。複数のモデル (20KH*20KG*) が存在し、14インチディスプレイ・第8世代 Intel Core プロセッサ・内蔵 Intel UHD 620 グラフィックを搭載しています。

dmidecode パッケージをインストールして実行することであなたの使っているノートパソコンのバージョンを確認できます:

# dmidecode -t system | grep Version

Version: ThinkPad X1 Carbon 6th

サポート

デバイス 動作 モジュール
Intel Graphics Yes i915, (intel_agp)
無線ネットワーク Yes iwlmvm
付属ドングル による有線接続 Yes  ?
モバイルブロードバンド No***  ?
Audio Yes snd_hda_intel
タッチパッド Yes* psmouse, rmi_smbus, i2c_i801
トラックポイント Yes psmouse, rmi_smbus, i2c_i801
カメラ Yes uvcvideo
指紋リーダー No**  ?
電源管理 Yes  ?
Bluetooth Yes btusb
microSD カードリーダー Yes scsi_mod
キーボードバックライト Yes  ?
ファンクション/マルチメディアキー Yes  ?

* 設定が必要です。

** 開発中のドライバー が存在します。

*** Fibocom L850-GL では linux pcie ドライバーが動作しません [1]

トラブルシューティング

サスペンド (S3) がデフォルトで使用できない

第6世代の X1 Carbon は S0i3 (別名 Windows モダンスタンバイ) をサポートしていますが、S3 スリープステートはサポートしていません。S3 のサポートを追加するために ACPI DSDT テーブルにパッチを適用する方法は https://delta-xi.net/#056 を見てください。

関連する問題について詳しくは https://bbs.archlinux.org/viewtopic.php?id=234913 を参照してください。

S0i3 スリープのサポート

s0i3 スリープのサポートを有効にするには以下のカーネルパラメータを追加してください (Lenovo フォーラム を参照):

acpi.ec_no_wakeup=1
ノート: 上記の設定を行うとノートパソコンのフタを開けたときにスリープから復帰しなくなります。

また、BIOS から設定するか以下のコマンドを実行して Realtek のメモリーカードリーダー (常に 2-3 W を消費) を無効にする必要があります:

# echo "2-3" | tee /sys/bus/usb/drivers/usb/unbind

BIOS の設定

Config -> Thunderbolt BIOS Assist Mode - Set to "Enabled" と設定してください。無効にした場合、Linux では s2idle で CPU が立ち上がってしまい電力消費量が跳ね上がります。

電源管理・スロットリングの問題

電源管理のレジスタの設定が間違っているために Windows 環境よりも消費電力が大きくなることがあり、温度上昇によるスロットリングが 80°C が発生します (Windows の場合は 97°C になります、T480s throttling bug を参照)。

公式の Lenovo フォーラム にこのバグについての情報が投稿されています。

Lenovo によって問題が解決されるまで、手動で制限をセットする必要があります。

まず msr-toolsAUR をインストールしてください。

以下の内容で /usr/local/bin/cpu-throttling.sh ファイルを作成してください (実行可能属性を付与してください):

#!/bin/bash

/bin/modprobe msr
wrmsr -a 0x1a2 0x3000000 # which sets the offset to 3 C, so the new trip point is 97 C 

それから以下の内容で /etc/systemd/system/cpu-throttling.service ファイルを作成:

[Unit]
Description=set cpu heating limit to 97°c

[Service]
ExecStart=/usr/local/bin/cpu-throttling.sh
RemainAfterExit=no

[Install]
WantedBy=timers.target

また、/etc/systemd/system/cpu-throttling.timer というタイマーも作成:

[Unit]
Description=set cpu heating limit to 97°c every minute

[Timer]
OnActiveSec=60
OnUnitActiveSec=60
Unit=cpu-throttling.service

[Install]
WantedBy=timers.target

作成したらタイマーを有効化してください:

# systemctl enable cpu-throttling.timer

再起動して以下のコマンドで反映されているかチェック:

# rdmsr -f 29:24 -d 0x1a2
3

トラックポイントとタッチパッドの問題

20KG モデルの場合、タッチパッド (Synaptics 製) とトラックポイント (Elantech 製) を両方一緒に動作させることができません。タッチパッドを使うには BIOS でトラックポイントを無効化する必要があります。この問題の原因は古い PS/2 ドライバーによるトラックポイントのロードがタッチパッドのロードと干渉することにあります。Synaptics は RMI(4) という新しいロード手法を導入しており、問題が一部解決されています。詳しくは こちらのスレッド を参照。

対応策としては psmouse カーネルモジュールのオプションに synaptics_intertouch=1 を追加してください。例えばブートローダーのコマンドラインで以下のように設定します:

 [...] root=/dev/sda1 rw psmouse.synaptics_intertouch=1 [...]

あるいは /etc/modprobe.d/psmouse.conf を編集:

options psmouse synaptics_intertouch=1
ノート: TLP のデフォルトの省電力設定を使用する場合、タッチパッドのタップクリック機能がときどき動作しなくなったり、サスペンドするとトラックポイントが動かなくなり再初期化が必要になることがあります。

動作しないタッチパッドを再接続:

# echo -n "none" | tee /sys/bus/serio/devices/serio1/drvctl
# echo -n "reconnect" | tee /sys/bus/serio/devices/serio1/drvctl

参照