雑記 - ThinkPad X1 Carbon Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

2012年8月末に注文し、9月14日に受け取る。三年半使い続けた WXGA+ な[[ThinkPad X200s]] の後継機を探していたのだが、何時まで待ってもX200系で高解像度モデルが出ないので、その代わりとして購入。(SSD が汎用でないこと、バッテリ交換ができないことなどがマイナスなんだけどね...)

ThinkPad 20周年にあたるということで力を入れて作られたらしい。また初の ThinkPad の Ultrabook だとか。[[MacBook Air]] 13inch とほとんど同じ大きさ({{attach_anchor('R0010404.JPG')}}
)なのに 14inch の高解像度 1600x900 HD+ 液晶を持つ、薄いスタイリッシュな ThinkPad である。天板は人工衛星に使われるクラスのカーボンファイバー、ボディはマグネシウム合金だとか。

もちろん ThinkPad であるから、メンテナンスマニュアルも用意されており、自分である程度のメンテナンスが可能。(いきなり開けた写真→  {{attach_anchor('R0010405.JPG')}})
* [[Hardware Maintenance Manual - ThinkPad X1 Carbon|http://support.lenovo.com/en_US/guides-and-manuals/detail.page?DocID=UM015748]]

いつものように Linux (Plamo Linux) を入れて使います。時間もあまり無いし、少しずつ設定していくことにする。

!メモ
* BIOS setup 画面に入るには、起動時に F1 を押下
* 起動デバイスの選択は、F12 を押下
* lspci -v > {{attach_anchor('lspci-v.txt')}}

!シールはがし
キーボード左下の Windows7 のシールを引き剥がす :p

Windows キーも気になるけど、キートップを削るのは面倒なので放置

!まずは領域確保
Ubuntu の CD で起動して、gparted を使い、Windoze の入っているパーティションをぶった切る。

本当は Windoze とかは抹消してしまいたいのだが、指紋認証の情報を作成 & 格納するのに必要だったような気がする。(違うかもしれない)

とりあえず、Windows7 の入っている C ドライブを最小限(30GB)残して、未割り当て領域を185GB ほど確保する。==あとはこの 185GB の未使用領域中に Linux を入れればよい。== このままでは primary パーティションが足りないので、Lenovo Recovery (Q:) のパーティションを開放して拡張パーティションに。system_drv パーティション、30GB に減らした windows7_os パーティション、多分 Intel Rapid Start 用の休止パーティションの 3つは念のため残しておく。

!Plamo64-1.0
とりあえず入れる

!Ubuntu 12.10
パーティションを幾つか作成したので、一番後ろ(/dev/sda9)に ubuntu を入れておいた。もし面倒なことはしたくないのであれば、ubuntu をお勧めする。(unity は微妙だけど...)インストールしただけで簡単にほぼ全ての機能(すべては確認していない)が使えた。

!kernel
kernel 3.5.4 + tuxonice で rebuild

suspend / resume 問題なし

!wireless
Intel Centrino Advanced-N 6205 なので、intellinuxwireless.org から iwlwifi-6000g2a-ucode を取ってきて展開して、/lib/firmware/ の中に。

wpa_supplicant.conf 等を用意して、wireless 接続設定完了

!update-pciids
PCI ID リストのアップデート

!hotkey
輝度調整とかのキーが働かない。電源投入直後は効いているし、ubuntu (12.04) だと問題なく動くので、何らかの設定(acpi?)の問題。

その後、kernel rebuild して fb cosole にしたら、起動調整キーは動作するようになった。

しかし xorg の driver を vesa にしていると、画面全体が上にずれてしまう。(ちなみに console が fb でなければ位置はずれない。) 位置調整なら xvidtune で mode line を調べればいいかなと思ったが、「調整できんよ」と言われたので、xorg の driver を intel にする方向に。

!Graphic chip
この X1 carbon の graphic chip は Intel HD Graphics 4000 というチップ。ところがかなり新しい chip なので xorg の最新の intel driver でないと対応していない。

一方、Plamo64-1.0 に入っている intel driver は少し古いのでこの chip には対応していない。そこで、最新の xf86-driver-intel 他、Mesa だとかを自前 build した。( xorg は driver 一つ新しくしようとすると芋づる的にいろんな package をアップデートする必要があるので面倒。)

あれこれ package を入れて出来たと思って、intel driver で起動するように xorg.conf を修正してテストしてみたら、、、あ、キーボードやポインティングでバイスが動かない!!! なんてこった。
input まわりの package もアップデートする必要があることが分かった。

ちょっと面倒だなと横着心を抱き、[[plamo の ftp download サイト|ftp://ftp.ne.jp/pub/Linux/distributions/plamolinux/Plamo-5.0/x86_64/plamo/]]を見てみたら、、、新しい package 群があるじゃないか!そこで wget で関連する package 群(00_base, 01_minimum, 02_x11)を落としてきて更新するとあっさり intel driver が使えるようになった。vesa で生じていたような画面のずれも発生しない。もちろん輝度調整も ok。

!touchpad
最近の ThinkPad には trackpoint だけでなく touchpad が付いている。普段の利用時 touchpad は邪魔なだけなので、synclient で止めておく
synclient TouchpadOff=1
使いたい時には
synclient TouchpadOff=0
もちろん xfce などの設定ツールで調整してもよい。

!消費電力
WindowMaker + wireless on + brightness 4/15 + 音楽ファイル再生状態で、6.7W 前後。特に省電力チューニングしていない状態としては優秀。

!Plamo64_1.1-120912 (test)
package を入れ替えたりしていたら塩梅が悪くなったので、[[ここ|ftp://ftp.ne.jp/pub/Linux/distributions/plamolinux/Plamo-test/for-5.0/]]から test 段階の Plamo64_1.1-120912 の DVD image を取ってきて入れ替える。xorg の intel driver も問題なし。今のところ特に問題はないので、これをベースに環境設定することにしようかな。

!uas module
ある USB 接続のハードディスクが認識しないという問題が発生した。結論から言うと、kernel の uas module(USB Attached SCSI)が原因。この module を disable にすればよい。
(X1 carbon が USB3 に対応していたので xhci module を enable にした kernel を作成したのだが、その際に uas も enable にしてしまったので発覚)

この module を enable にしていると失敗することがある理由は不明(大抵は問題ないのだけど)

!East Asian Ambiguous
Xfce の Terminal を使って日本語等を表示した際に、ある種の記号文字の幅が正しく扱われず表示が崩れることがある。(よく知られた East Asian Ambiguous の問題。詳しくはググってね。)

Xfce や Gnome の Terminal では、VTE_CJK_WIDTH という環境変数を 1 にセットすればよい。例えば、~/.xinitrc や ~/.xsession に以下の一行を加えればよい
export VTE_CJK_WIDTH=1

!現時点での kernel config や xorg.conf
{{attach_anchor('config-3.5.4')}}, {{attach_anchor('xorg.conf_201210')}}

!kernel update
3.5.5 + tuxonice

!kernel update
3.6 + tuxonice

!xfce-session が不調
ログアウトパネルを出そうとすると、しばし freeze してしまう。

dbus との通信がうまくいっていない?あるいは upowerd 関連?要調査

解決。解ってしまえばくだらない原因だった。/home の内容を x200s から持ってきたときに、polkit ユーザのホームディレクトリを移し忘れていたため。最近の polkit はホームディレクトリが /dev/null ではダメなので /home/polkituser に作成してあったのだけれど、これが存在しないために polkitd が起動できず、、、という訳。私のミスですね。(参考: Plamo Linux のページより[[polkituser のホームディレクトリを設定する|http://plamo.linet.gr.jp/wiki/index.php?%C9%D4%B6%F1%B9%E7%CA%F3%B9%F0%2FPlamo64-1.0%2F121]])

!kernel update
3.6.1 + tuxonice

!geeqie-1.1, jhead-2.96
geeqie と jhead を入れる

!pinentry と scim
[[X200s|ThinkPad X200s]] の時もそうだったが、scim-bridge を使っている状態で pinentry への入力ができない。環境変数 GTK_IM_MODULE を scim にすればよい。
GTK_IM_MODULE=scim emacs -nw hogehoge.gpg

!サスペンド
メモリサスペンド状態がしばらく続くと、ハイバネーション状態に移行するようになったみたい。kernel 3.6.x で付加された機能の模様。

!printer setting
職場に置いてある FujiXerox? DocuCentre? III C6500 から印刷できるように設定

手順は、[[ThinkPad X200s]] のときと同じく、Fuji Xerox のサイトから fxlinuxprint-1.0.1 のソースを取ってきて、./configure && make && make install して、ゴニョゴニョ。

!kernel update
3.6.2 + tuxonice

!sleep 時の消費電力
LCDを閉じて、約7時間半後にどれだけバッテリー容量が減っているかテストしてみた(途中で memory suspend 状態から disk suspend 状態に変化しているはず)

スリープ前:
nagato@x1:~$ date
2012年 10月 18日 木曜日 01:37:49 JST
nagato@x1:~$ cat /proc/acpi/battery/BAT0/state
present:                 yes
capacity state:          ok
charging state:          discharging
present rate:            6355 mW
remaining capacity:      43080 mWh
present voltage:         16507 mV
復帰後:
nagato@x1:~$ date
2012年 10月 18日 木曜日 09:05:08 JST
nagato@x1:~$ cat /proc/acpi/battery/BAT0/state
present:                 yes
capacity state:          ok
charging state:          discharging
present rate:            8962 mW
remaining capacity:      41880 mWh
present voltage:         16236 mV

!kernel update
3.6.3 + tuxonice

!evince の日本語フォント
evince で PDF を表示すると、明朝体がゴシック体になるので、ホームディレクトリ上に以下のような .fonts.conf を作成。
<fontconfig>
<match target="pattern">
<test name="family" compare="contains">
<string>Ryumin</string>
</test>
<edit name="family" mode="prepend" binding="strong">
<string>IPAMincho</string>
</edit>
</match>
<match target="pattern">
<test name="family" compare="contains">
<string>GothicBBB</string>
</test>
<edit name="family" mode="prepend" binding="strong">
<string>IPAGothic</string>
</edit>
</match>
</fontconfig>
同じ事を X200s の設定でやっていたことに後で気付く(記憶力が...^-^;;;)

この辺りの詳しいことは、[[fontconfig|http://ja.wikipedia.org/wiki/Fontconfig]] 関連を調べれば ok

fc-list で使えるフォントのリストアップ。fc-match を使うと、どのフォントが優先されるか表示される。例えば、
fc-match Ryumin
とか
fc-match GothicBBB
とかすると、Ryumin や GothicBBB に割り当てられた font が表示される。

!ufraw, gtkimageview
/usr/local 以下に ufraw-0.18 を入れる。それに先だって gtkimageview-1.6.4 を入れる。

!synclient 設定について
[[http://www.ibm.com/developerworks/jp/opensource/library/os-touchpad/]]

!xinput
X の input device を設定したりテストするコマンド

!SHMConfig
synclient で monitoring するために、xorg.conf に以下を付け加える
Section "InputClass"
         Identifier      "enable synaptics SHMConfig"
         MatchIsTouchpad "on"
         MatchDevicePath "/dev/input/event*"
         Option          "SHMConfig" "on"
EndSection

!kernel update
3.6.4 + tuxonice

!mtpfs-1.1
nexus7 をつなぐために入れる

!ebview
これまでコマンドラインで使う dic を使い続けていたが library まわりの問題で使えなくなったので、ebview-0.3.6.2 を入れた。これに先だって、eb-4.4.1 を入れた。

串刺し検索もできるみたいで便利ですね。

!mmc 周りのトラブル?
時折 SDHC カードを認識しない。どうやら S3 sleep した後に問題が発生しているような... ありがちな module 周りの問題かな。

!kernel update
3.6.6 + tuxonice

!32bit libraries
別の pc (X200s) から 32bit library 群をまとめて持ってきて、/lib32 や /lib32/usr/lib 以下に配置し、
ln -s /lib32/ld-linux.so.2 /lib/
この後、/etc/ld.so.conf に /lib32 と /lib32/usr/lib を付け加えて
ldconfig
これで大体 32bit アプリが動くようになる。

!dic
この binary はかなり古いので libreadline.so.4 とか libhistory.so.4 とか参照していた。この dic バイナリファイルを emacs で開いて、libreadline.so.4 を libreadline.so.5 に、libhistory.so.4 を libhistory.so.5 に書き換えてやった :p

!mini DisplayPort
mini Display ポートからの外部モニター出力、Apple の Mini DisplayPort − VGA アダプタが使えることを確認(使えて当たり前ですが)

!ACアダプタ
使えるで思い出したのだけれど、NEC Lavie Z の AC アダプタ(PC-VP-BP87)を使うことができます。(メーカーは保証していないので自己責任ということで、、、)

まぁ、[[NEC と Lenovo は同じ事業グループ|http://www.nec.co.jp/press/ja/1107/0401.html]]になったので、互換性があるのは尤もな話ですね。

それはそうと、ThinkPad の旧来の ACアダプタ(丸型コネクタ)を矩形コネクタへ変換するアダプタを出してくれないだろうか。旧来タイプのACアダプタが沢山あるので、それを併用したいのですよね。(電源規格的には問題ないはずなので)サードパーティでもいいから出して欲しい。

!powertop-2.1
新しい powertop が出ていることに気付いたので入れる [[https://01.org/powertop/]]

!gMTP
Nexus7 へ USB 経由でデータを転送するために、[[gMTP|http://gmtp.sourceforge.net/]] を入れる。その後、
/lib/udev/rules.d/69-libmtp.rules に以下を追加:
# Asus Nexus7 Transformer Prime (tablet)
ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e41", SYMLINK+="libmtp-%k", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"

!kernel update
3.6.7 + tuxonice

!省電力設定
powertop の Tunables タブで Bad -> Good に調整したら、消費電力が 5W 前半位まで下がった :)

!kernel update
3.6.8 + tuxonice

!google-chrome
firefox だけではなんなので、検証用に入れた。
rpm package を取ってきて rpm2targz で変換し、適宜配置。

firefox のように自動的にアップデートできないのが面倒なんですよねぇ。(debian/ubuntu や fedora/suse といったディストリビューションなら cron で自動アップデートできるみたいですが)

あ、自分で update 用の script を書けばいいのか。

!kernel update
3.6.9 + tuxonice

!kernel update
3.7 + tuxonice

!ImageMagick
ImageMagick-6.8.0-9 を /usr/local に入れる

!inkscape-0.48.3.1
inkscape を /usr/local に入れ.... あれ? コンパイルエラー... どうやら [[これ|https://bugs.launchpad.net/inkscape/+bug/1005565]] らしい

!inkscape-0.48.4
出ていたのでこっちを make install する

!kernel update
3.7.1 + tuxonice

!powertop-2.2
出ていたので入れる

!kernel update
3.7.2 + tuxonice

!kernel update
3.7.3 + tuxonice

!kernel update
3.7.4 + tuxonice

!kernel update
3.7.5 + tuxonice

!kernel update
3.7.6 + tuxonice

!kernel update
3.7.7 + tuxonice

!kernel update
3.7.8 + tuxonice

!ufraw, lensfun
lensfun-0.27 を取ってきて入れたり、CVS から ufraw の最新版を取ってきて入れたり
*[[lensfun|http://lensfun.berlios.de/]]
*[[ufraw|http://sourceforge.net/scm/?type=cvs&group_id=127649]]

!exiv2
ufraw を弄っていて偶然気付いたのだけど、exif 情報の処理は jhead よりも exiv2 って奴の方が良さそう。(exiv2 は plamo に default で入っていた)exiv2 は lens 情報なども取得できるみたい
*[[exiv2|http://www.exiv2.org/]]

!exiftool
exiftool を使えば総シャッターカウント数も分かる。今のところ見つけた中では、これが一番ですね。
*[[exiftool|http://www.sno.phy.queensu.ca/~phil/exiftool/]]

!kernel update
3.7.9 + tuxonice

!天板の lenovo ロゴに注意!
天板の lenovo ロゴであるが、"lenovo" という薄い金属プレートが貼り付けてある。この金属プレートが浮き上がって、"e" の文字が指に突き刺さった。(他のユーザからも[[同様の報告|http://www.thinkpad-club.net/modules/d3forum/index.php?topic_id=5605]]あり)
 {{attach_view('20130222-R0010854.JPG')}}

非常に危険。
誰だよ、こんなプレートを付けることに決めたのは。(ThinkPad の開発メンバーではないだろうけどね、多分)

!kernel update
3.8.0 + tuxonice

!kernel update
3.8.1 + tuxonice

!kernel update
3.8.6 + tuxonice

!kernel update
3.9.2 + tuxonice

!kernel update
3.9.4 + tuxonice

!kernel update
3.9.5 + tuxonice

!kernel update
3.9.6 + tuxonice

!kernel update
3.9.7 + tuxonice

!kernel update
3.9.8 + tuxonice

!kernel update
3.10.10 + tuxonice

!kernel update
3.10.17 + tuxonice

!kernel update
3.10.18 + tuxonice

!kernel update
3.10.20 + tuxonice

!kernel update
3.10.21 + tuxonice

!kernel update
3.10.22 + tuxonice

!kernel update
3.10.23 + tuxonice

!kernel update
3.10.25 + tuxonice

!kernel update
3.10.27 + tuxonice

!kernel update
3.10.28 + tuxonice

!kernel update
3.10.31 + tuxonice

!Plamo Linux 5.1
/ システム入れ替え。/dev/sda6 を / 、/dev/sda5 を swap に。/dev/sda7 の /home はそのまま。

!kernel update
3.14.3 + tuxonice

!sdhci_pci, sdhci
suspend/resume 後、SDカードを認識しなくなるので、sdhci 関連のモジュールを reload するように設定

!kernel update
3.14.4 + tuxonice

!BIOS update
ふと思い立ち BIOS の更新をしておいた

!kernel update
3.14.5 + tuxonice

!kernel update
3.14.7 + tuxonice

!kernel update
3.14.8 + tuxonice

!kernel update
3.15.2 + tuxonice

!kernel update
3.15.4 + tuxonice

!kernel update
3.15.5 + tuxonice

!kernel update
3.15.6 + tuxonice

!kernel update
3.15.7 + tuxonice

!kernel update
3.15.8 + tuxonice

!kernel update
3.16.0 + tuxonice

!kernel update
3.16.3 + tuxonice

!kernel update
3.16.4 + tuxonice

!kernel update
3.16.6 + tuxonice

!kernel update
3.16.7 + tuxonice

!不調
どうもここしばらく調子が悪い。(2014/10末) 以下のように悪化の一途:

指紋認証が右指だと反応しない → 指紋認証が全く効かない → そもそも指紋認証デバイスを認識していない(Windows7でも) → 電源ボタンを押しても反応しない(今日 10/31)

開腹して、バッテリーとバックアップ電池を抜き差しすることで起動するようにはなったものの、何か面倒な問題を抱えていそう。何が悪いのか…

全く関係ないかもしれないけど、とりあえず BIOS を 2.69 に上げた。

!kernel update(?)
3.14.23 + tuxonice

!Plamo Linux 5.3
glibc のセキュリティホール GHOST 対策で glibc-2.20 を入れようとしたのだけどいろいろ塩梅が良くなかったので、Plamo 5.3 を入れることに。(2015/01/27)

!バッテリーの放電
昨年末くらいから、停止時にバッテリーが勝手に放電してしまう現象あり。指紋認証デバイスの不調もあったので、指紋認証デバイスが壊れてリークしている?のかもしれないし、電源制御まわりのトラブルかもしれない。何にせよソフトではなくハード的な問題っぽい。

!バッテリーの放電2
少し時間ができたので、指紋認証デバイスを外し職場に転がっていた接点復活剤で掃除
指紋認証デバイスは相変わらず使えないが、バッテリーが放電してしまう現象は抑制されるようになった

!AC on で落ちた
作業の途中、AC on にしたら、いきなり落ちてしまった。電源投入すると、時計が 2001 年になっていたので、内蔵コイン電池がダメになったのかもしれない。

コイン電池が悪いせいかもしれないが、 VAIO Pro 11 であった upower まわりの問題の可能性もあるので、upower-0.9.23 を --enable-deprecated 無しで rebuild しておく
./configure --prefix=/usr --sysconfdir=/etc --libdir=/usr/lib64 --localstatedir=/var --mandir=/usr/share/man --disable-static
make && make install


!AC on で落ちた 2
夜のセミナー後、AC on にしたら、また落ちた。。。どうやら Battery でしばらく運用していると内蔵コイン電池が惚けてしまって、AC off/on の制御をうまくできなくなってしまうという感じっぽい。前から電源周りの調子が悪かったのは、これのせいかも。このコイン電池、簡単に手に入るかな。

!BIOS update
2015/02 に 2.70 が出ていたので、一応上げてみる