Lenovo ThinkPad X200

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

Lenovo ThinkPad X200 は12.1インチのワイドスクリーン WXGA ディスプレイ, Intel Core 2 Duo プロセッサ (2.26 - 2.8GHz), Intel Graphics Media Accelerator 4500MHD, 最大 8GB のメモリを搭載しながらもバッテリーの持ちが良い高品質なノートパソコンです。

設定

ワイヤレス

ThinkPad X200 に搭載されている Intel PRO/Wireless 5100/5300 AGN 無線アダプタは linux-firmware によってサポートされています。

接続速度が遅かったり途切れたりするなどの問題が発生する場合 (特に WPA2 Enterprise ネットワークに接続する場合) 11n_disable=1, 11n_disable=2, swcrypto=1, bt_coex_active=0 オプションを付けて iwlwifi モジュールをロードしてみてください。どのオプションが効果があるのかはっきりしたことはわかっていません。ユーザーによっては 11n_disable=1 で問題が解決することもありますが、bt_coex_active=0 が必要なこともあります。詳しくはワイヤレス設定#iwlwifi を見てください。

トラックポイント

トラックポイントを見てください。

指紋リーダー

ノートパソコンのモデルによりますが X200/X200T の指紋リーダーは使用できる可能性があります。

詳しくは fprint を見てください。

起動時に bluetooth を無効化

省電力設定#Bluetooth を見てください。

ハードディスクの衝撃保護

ThinkPad X200 には2軸の加速度計が内蔵されており、ハードドライブのディスクヘッドを退避させることで強い衝撃によってデータが消失する危険を減らすことができます。詳しくは HDAPS を見てください。invert パラメータを正しく設定する必要があります。

ミュートボタン

キーボードのミュートボタンが機能しない場合、/etc/default/grub のブートパラメータに acpi_osi="Linux" を追加してください:

GRUB_CMDLINE_LINUX_DEFAULT="quiet acpi_osi=Linux"

画面のキャリブレーション

スタイラスの動作がおかしい場合、画面のキャリブレーションが必要です。xinput_calibratorAUR をインストールした以下のコマンドを実行するとキャリブレーションが開始されます:

# xinput_calibrator --device "Serial Wacom Tablet WACf004 stylus"

キャリブレーションの設定を保存するには、xinput_calibrator によって作られた設定を /etc/X11/xorg.conf.d/99-calibration.conf に保存してください。

適切な ICC カラープロファイルをロード

x200.icc をダウンロードして ~/.color/icc に移動してください。以下のように xcalib でプロファイルをロードできます:

$ /usr/bin/xcalib -d :0 ~/.color/icc/x200.icc

画面の回転

ノート: xmodmap, xev, showkey, dmesg, setkeycodes などのコマンドが役に立つでしょう。詳しくは特別なキーボードキーを見てください。

デフォルトではハードウェアボタンの画面の回転は機能しません。有効にするには、まずボタンにキーコードを割り当てる必要があります。空いているキーコードを確認するために、xmodmap -pke | less コマンドを実行してみてください。

以下のような systemd のサービスを使うことで起動時にキーコードをボタンにマッピングすることができます:

/etc/systemd/system/setkeycodes.service
[Unit]
Description=Assign each hardware button to a free keycode on boot

[Service]
Type=oneshot
ExecStart=/usr/bin/setkeycodes 0x67 184 0x6c 185 0x68 186 0x66 187

[Install]
WantedBy=multi-user.target

キーコードをハードウェアボタンにマッピングできたら、以下のようなスクリプトを使ってコマンドを実行するように設定します:

/usr/local/bin/screen_rotation.sh
#!/bin/sh

# Find the line in "xrandr -q --verbose" output that contains current screen orientation and "strip" out current orientation.
rotation="$(xrandr -q --verbose | grep 'connected' | egrep -o  '\) (normal|left|inverted|right) \(' | egrep -o '(normal|left|inverted|right)')"

# Using current screen orientation proceed to rotate screen and input tools.
case "$rotation" in
    normal)
    # rotate to the left
    xrandr -o left
    xsetwacom set "Serial Wacom Tablet WACf004 stylus" rotate ccw
    xsetwacom set "Serial Wacom Tablet WACf004 eraser" rotate ccw
    ;;
    left)
    # rotate to normal
    xrandr -o normal
    xsetwacom set "Serial Wacom Tablet WACf004 stylus" rotate none
    xsetwacom set "Serial Wacom Tablet WACf004 eraser" rotate none
    ;;
esac

キーコードをスクリプトに割り当てる方法は、使用しているデスクトップ環境によって異なります。GNOME の場合、キーボード設定のショートカットセクションから簡単に割り当てることができます。

他のデスクトップ環境を使っている場合 (Xfce, LXDE, Fluxbox など)、xbindkeys プログラムを使うことができます。

画面の自動回転

デフォルトでは画面の自動回転は機能しません。HDAPS パッケージをインストールすることで ThinkPad X200 に内蔵されている2軸の加速度計を利用できるようになります。

HDAPS をインストールした後、以下のスクリプトを作成することで自動的に画面が回転するようになります:

#!/bin/bash

# (To have the exact names of these devices you should type the command : xsetwacom --list devices )
stylus="Serial Wacom Tablet stylus" 
eraser="Serial Wacom Tablet eraser"

function rotate {
    if [ $# -lt 1 ]; then  # error ...
	exit 1 
    fi

    case "$1" in
        up)
            nextRotate="none"
            nextOrient="normal" ;;
        down)
            nextRotate="half"
            nextOrient="inverted" ;;
	right)
            nextRotate="ccw"
            nextOrient="left" ;;
	left)
            nextRotate="cw"
            nextOrient="right";;
    esac

    # Rotate the screen      
    xrandr -o $nextOrient

    # Rotate the tablet                      
    xsetwacom set "$stylus" Rotate $nextRotate
    xsetwacom set "$eraser" Rotate $nextRotate
}

while true; do
    # 1) We extract data about the actual position
    position=$(cat /sys/devices/platform/hdaps/position)
    x=$(echo $position | sed -n "s/(\([-0-9]*\),\([-0-9]*\).*)/\1/p") # most of time contained in [350,650]
    y=$(echo $position | sed -n "s/(\([-0-9]*\),\([-0-9]*\).*)/\2/p") # most of time contained in [-650,-350]

    # 2) We work out the x value (= left and right inclination) (always between 
    if [ $x -lt 400 ]; then
	rotate left
    elif [ $x -gt 600 ]; then
	rotate right
    fi
    
    # 3) We work out the y value (= front and back inclination)
    if [ $y -gt -400 ]; then
	rotate down
    elif [ $y -lt -600 ]; then
	rotate up
    fi

    # 4) wait before checking the value again
    sleep 0.5
done

上記のスクリプトは起動時に実行されるようにしてください。詳しくは自動起動を参照。

電力消費とファンの制御

ノート: X200T の消費電力をわずか7ワットにまで減らす方法が書かれた ブログ記事 が存在します。

省電力な環境をセットアップするには、tlp パッケージをインストールしてください。TLP を使って省電力な環境を構築するガイドは こちら にあります。

ファン制御ソフトウェアを使うことでさらに消費電力を抑えられます。AUR の tpfanco-svnAUR[リンク切れ: アーカイブ: aur-mirror] パッケージには X200 に搭載されている様々なハードウェアセンサーに基づいてファンを起動する閾値を設定できるシンプルな GTK GUI が入っています。

実際の電力消費量を計測する方法は Powertop の記事や AUR の powerstat-gitAUR パッケージを見てください。

一般的な消費電力のヒントは省電力設定を参照。

サスペンドとハイバネート

サスペンドとハイバネートは完全にサポートされています。詳しくはサスペンドとハイバネートを見てください。

BIOS WiFi - ホワイトリストの削除

警告: システムのファームウェアを改変する行為には危険が伴います。気をつけて実行してください。

大抵の ThinkPad がそうであるように、X200(s) / X200T にはワイヤレスカードの FCC enforced whitelist が存在します。Mini PCIe や PCMCIA スロットからサードパーティ製のワイヤレスカードを挿入すると、システムは起動しなくなります。しかしながら、オンライン上にはホワイトリストフリーな BIOS アップデートを配布している人がたくさんいます。

X200(s) のホワイトリストフリー BIOS は こちら にあり、X200T のホワイトリストフリー BIOS は こちら にあります。

システムが使っている BIOS のバージョンと、配布されているクラック版の BIOS のバージョンが一致していることを確認してください。

BIOS やシステムファームウェアを書き換える方法については、Linux から BIOS を書き換えるを見てください。

Coreboot / Libreboot

警告: システムのファームウェアを改変する行為には危険が伴います。気をつけて実行してください。

Coreboot (Libreboot) は高速・柔軟なオープンソースのファームウェアソリューションで、システム BIOS を置き換えることができます。ThinkPad X200 は Coreboot によって完全にサポートされており [1]、Libreboot プロジェクトの公式 ウェブサイト にはドキュメントが揃っています。Libreboot X200 ドキュメント によれば X200s と X200 タブレットも部分的にですがサポートされています。

トラブルシューティング

failed to execute '/usr/sbin/inputattach'

ログにエラーが表示される場合、/usr/lib/udev/rules.d/70-wacom.rules/etc/udev/rules.d/70-wacom.rules にコピーして inputattach の SUBSYSTEM をコメントアウトしてください。

システムの反応が悪い

システムが反応しなくなったりラグが生じる場合、/etc/modprobe.d/drm_kms.conf という名前のファイルを作成してみてください:

options drm_kms_helper poll=N

復帰した後にバックライトが有効にならない

復帰後、まれにバックライトが有効にならないことがあります。対処方法は Problem with display remaining black after resume を見てください。

PM device: Resume from hibernation error: Failed to restore -19

ハイバネートする前に tpm_tis と tpm モジュールが正しくアンロードされていないのが原因です。00:0a のデバイスがこれらのモジュールを必要としています:

# dmesg | grep 00:0a
[    0.377877] pnp 00:0a: Plug and Play ACPI device, IDs PNP0c31 (active)
[   10.746742] tpm_tis 00:0a: 1.2 TPM (device-id 0x1020, rev-id 6)
[   10.746751] tpm_tis 00:0a: Intel iTPM workaround enabled
[   10.866734] tpm_tis 00:0a: TPM is disabled/deactivated (0x6)

モジュールをアンロードするには以下のようなスクリプトを /usr/lib/systemd/system-sleep/tpm.sh という名前で作成してください (systemd のハイバネートコマンドを使用する場合):

#!/bin/sh
case $1/$2 in
  pre/*)
    echo "Going to $2..."
    modprobe -r tpm
    modprobe -r tpm_tis
    ;;
  post/*)
    echo "Waking up from $2..."
    modprobe tpm
    modprobe tpm_tis
    ;;
esac

mei_me 0000:00:03.0: suspend

エラーが表示される場合、meimei_me モジュールをブラックリストに入れてください。詳しくは こちら を参照。

pciehp 0000:00:1c.1:pcie04: Cannot add device at 0000:03:00

#mei_me 0000:00:03.0: suspend を見てください。

Uhhuh. NMI received for unknown reason 30.

ハイバネートやサスペンドから復帰したときに Thinkpad X200 が以下のエラーを表示することがあります:

Uhhuh. NMI received for unknown reason 30.
Dazed and confused, but trying to continue
Do you have a strange power saving mode enabled?

GRUB のカーネルパラメータに "nohpet" を追加することで高精度イベントタイマー (HPET) を無効化できます。

高音のノイズ

バッテリーが残り少ないとき X200(s) の CPU から小さな甲高いノイズが聞こえてくることがあります。BIOS で CPU の電源管理を無効化することで解決します。

CCFL モデルの場合、ディスクの基盤から高音ノイズが鳴っていることもあります。これは仕様であり、ディスプレイが消費する電力によって、鳴ったり鳴らなかったりします。

詳しくは [2] を見てください。

参照