ThinkPad X200s
2009年3月、ThinkPad X200s (7465CTO) を購入した。
これまで使っていた X60s を、職場での Windows XP 英語版環境の検証用に回した事もあり、 Linux 専用の新しい note を数ヶ月前から物色していた。 Mac でない note pc の中では ThinkPad が様々な点で満足度が高かったので、今回も ThinkPad X series をセレクト。 Lenovo の某 club に入会していることに加えて決算期で非常にお買い得になった(想定金額をあっさり下回った)ので 2009年2月25日発注。3月10日到着。構成は以下の通りでなかなか豪勢だと思う。
- プロセッサー: インテル Core 2 Duo プロセッサー SL9400 (1.86GHz 1066MHz 6MBL2 )
- モバイル インテル GM45 Express チップセット
- 初期導入OS: Windows Vista Business 正規版 ダウングレード (Windows XP Professional 正規版)
- ディスプレイ: 12.1型液晶(WXGA+, 1440x900, LED backlight)
- グラフィック: Intel
グラフィックス・メディア・アクセラレーター X4500GMA 4500MHD - メモリー: 2GB PC3-8500 DDR3 (1スロット使用)
- キーボード: 英語キーボード(US)
- ハード・ディスク・ドライブ: 320GB ハード・ディスク・ドライブ (2.5inch SATA 5400rpm)
- モデム / メディア・スロット: 5 in 1 メディア・カード・リーダー(モデムあり)
- Bluetooth: 内蔵Bluetooth
- ワイヤレスLAN アダプター: インテル WiFi Link 5300 (802.11a/b/g/n 最大450Mbps(理論値))
- バッテリー: X200 6セル拡張バッテリー
- 電源アダプター: 65W ACアダプター; 日本
- 言語内容: Japanese Publication
もちろん Windoze は使わず、Linux を入れます。(お約束) Windoze 無しモデルがあれば良かったんですけどね。 ちょっと忙しい時期なので、しばらく楽しむ時間はなさそう。 とりあえずドット欠けなどは無かった。画面も高解像度(1440x900)できれいです。:) backlight も LED ですしね。 キーボードはフルサイズでキータッチも良好。 X60sで唯一不満だった画面の狭さが解消され、現時点で最高の note PC ではないかと思う。
メモ
partition は 2つに切ってあり、/dev/sda1 に Windoze XP が、/dev/sda2 にリカバリー領域が割り当てられている。この辺り X60s と変わりない。
BIOS 設定画面に入るには、電源投入後に F1 を押す。
X60s の時と同じように、Knoppix 辺りで partition を切り詰めて、Linux を入れてみることにしよう。いや、X60s に付けていた Mtron の SSD と差し替えてもいいか。
HDD→SSD 差し替え
というわけで、SSD と差し替えてみた。(元々付いていた SATA HDD は Fujitsu の MHZ2320BH というもの。) 若干の問題はあるものの、X60s 用のシステムで普通に使えてしまった。 X も 1440x900 であっさり使えている。 (この文章もこの machine から書き込んでいる。) バッテリーの持ちは、6〜7 時間といったところか。 とはいえ、Plamo の新しいバージョンが出ているので、それと入れ替えてみようと思う。
Plamo 4.6 installed
Plamo 4.6 をとりあえず入れてみた。ちゃちゃっと仕込みをして、インストール開始。20分程で完了。 とりあえず入れただけ。X を立ち上げるところまで確認。
SSD の容量が少ないので、ちょっと整理して、partition を切り直した方が良さそう。tuxonice ( software suspend ) するために、swap 領域を2GB 以上に増やさないといけないし。
partition 切り直し
SSD を 3 partitions 構成に。 swap 領域を 2.5GB、/home 用に 5GB、残りを / に。 /home は消さないで、Plamo を再インストール。
kernel rebuild
kernel 2.6.28.7 + current-tuxonice-for-2.6.28.patch-20090313-v1
tuxonice (software suspend) は問題なく動作 :)
wireless 設定
iwlwifi-5000-ucode-5.4.A.11 を取ってきて、iwlwifi-5000-1.ucode を /lib/firmware/ にコピー。
/etc/network.{config,fixed,mode} 辺りを修正。
iwconfig wlan0 essid "hogehoge" key restricted "s:ahoahohoge123" dhclient wlan0
といった感じで、無線 LAN 通信できることを確認。
VirtualBox
仮想環境のひとつである VirtualBox を試してみた。当初最適化するために make しようかと思ったのだけれど、あれが無いこれが足りないとか言われるので、時間も無い事だし、とりあえず All distributions の i386 package を落として入れる事にした。
落とした shell script を root で実行すると、/opt の下に VirtualBox のファイル群がインストールされ、/usr/bin/ 以下に実行プログラムの symbolic link が作成され、/etc/vbox という設定ファイルの入った directory が作成され、kernel modules (vboxdrv.ko, vboxnetflt.ko)が作成される。
VirtualBox というコマンドを実行すると、他の仮想環境などと同じような画面が表示される。他の仮想環境を使った事があれば使い方に迷う事はないだろう。(というか分かり易いです。)
ちゃんと動くか試すために、Puppy Linux 日本語版 4.1.2.1 の iso image file を落としてきて VirtualBox 上で起動してみた。簡単に起動 :) こりゃいいや。
kernel update & hibernate-script-2.0 + tuxonice-userui-1.0
kernel 2.6.29.1 + tuxonice-3.0.1
hibernate-script と tuxonice-userui の入れ替え
kernel の crypto をみると LZF が無くなっている(?)ので LZO に変更した。
xf86-video-intel-2.6.3
以前から X でアクティブでないウインドウの表示が乱れることがあった。kernel 2.6.29.1 に上げてから、tuxonice の復帰時に画面がわやくちゃになってしまったり、それどころか単純に X を終了するだけでも表示がわやくちゃ(千鳥格子模様?)になってしまうように。(fb を切っても事態は変わらない。)
http://intellinuxgraphics.org/
そこで新しめの intel driver を make して入れた。build したものを固めたもの。(libdrm-2.4.7 は xf86-video-intel-2.6.3 を build するのに必要。) xf86video_intel263.tgz, libdrm247.tgz
これによって X 終了時や tuxonice の resume 時の表示乱れは無くなった。
現時点での kernel config config-2.6.29.1toi
blackout?
VirtualBox 2.2 を入れた(アップデートした)後、kernel 2.6.29.1 + tuxonice 上で X を起動すると blackout してしまうようになってしまった。(表示しないだけで起動している模様。) 以前の kernel 2.6.28 であれば X は起動する。
kernel 2.6.29.1 を作り直しても blackout する。あれ?なんで???
xf86-video-intel 2.7.0 released らしいので、これを試してみるべきか。 →ダメ。 どうも別のところに問題がありそう。
仕事にならんので、とりあえず 2.6.28.7 に戻す。
No DHCPOFFERS received
無線 LAN 接続しようとして dhclient wlan0 すると
receive_packet failed on wlan0: Network is down DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 5 DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 13 DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 8 DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 9 DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 19 DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 5 No DHCPOFFERS received.
てな具合になってつながらないことがあるが、dhclient.leases を消してやり直すとあっさり繋がることがある。
rm /var/state/dhcp/dhclient.leases && dhclient wlan0
kernel rebuild
X が blackout する件、うまくいかないときの Xorg.0.log をみると VideoRam が 4194303 KB になっている。xorg.conf で VideoRam を指定するのは no longer recommended らしい。kernel の設定を見直すことに。とりあえず、次の kernel config と xorg.conf でうまく表示されるようになった。config-2.6.29.1toi2, xorg.conf
X の performance
一応表示はできるものの描画性能が出ていないと思われる X 。(ぐぐると不幸な話が散見される X4500。 X3100 も評判が悪かったけれど、Intel のビデオ統合チップって、、、)
そんな折り、Mesa-7.4.1 + libdrm-2.4.6 + xf86-video-intel-2.7.0 にすると幸せになれるという投稿が ML に。(本多さんありがとうございます)
xf86-video-intel と libdrm は update しているので、Mesa を上げればいいのかな。というわけで、現在 build 中。
結果として格段に描画性能が上がりました。やったことを簡単にまとめておくと、
- dri2proto-2.0, Mesa-7.4.1, libdrm-2.4.9, xf86-video-intel-2.7.0 を入れて、xorg.conf の Device section に以下を追加。
Option "MigrationHeuristic" "greedy" Option "BackingStore" Option "RenderAccel" "true" Option "AccelMethod" "EXA"
build して固めたもの→ dri2proto20.tgz, Mesa741.tgz, libdrm249.tgz, xf86video_intel270.tgz
xorg.conf →xorg.conf.2
ちなみに KMS (kernel modesetting)を enable にした kernel を作って、AccelMethod を UXA にしてみたら見事にハマってしまった。X がちゃんと起動できない。(起動途中で固まるわ、縞模様になるわ、、、)というわけで、KMS はしばらく disable にしておくのが吉。
ちょっと脱線するけど Why glxgears is slower with Kernel Modesetting (and why it doesn't matter) - glxgears is not a 3d benchmark てな話もあるようです。が、うちの環境では KMS は使いものにならなかったので、それ以前の問題だなぁ。
X4500 ? 4500MHD?
どうでもいい話。ビデオチップの名前が正確には何なんだろうと思って調べてみたら、以前と表記が変わっているような。。。X4500 ってどこかに書いてあったと思うんだけど、Lenovo のサイトをみると 4500MHD って書いてあるなぁ。まぁ、どっちでもいいけど。
xfce-4.6.1
xfce-4.6.1 の source code を取ってきて入れる。
mkdir xfce4 cd xfce4 tar jxf ../xfce-4.6.1-src.tar.bz2 \ls *.bz2 | while read f do echo $f (cd ${f%.tar.bz2}; ./configure --prefix=/usr; make && make install) done
てなかんじ。
音量キー
音量キーを使うために、.Xmodmap に以下を追加。
keycode 160 = XF86AudioMute keycode 174 = XF86AudioLowerVolume keycode 176 = XF86AudioRaiseVolume
後は xfce のキーボード設定で XF86AudioLowerVolume 等が設定されていることを確認。
kernel update 後の VirtualBox の setup
kernel update した後には、VirtualBox に必要な kernel modules を入れ直す必要がある。root で
/etc/rc.d/rc.vboxdrv setup
とすれば modules を recompile して入れ直してくれる。(この script の場所は /etc/init.d の下だったりするかも。)
BIOS 3.01 は危険かも?
ThinkPad Club への書き込みを見て知ったのだが、BIOS 2.06 から 3.01 に上げた方が(何名か)起動不能に陥っているらしい。→ http://www.thinkpad-club.net/modules/xhnewbb/viewtopic.php?topic_id=2855&viewmode=flat
X200 series を持っている方はご注意を。(もしかすると他機種の BIOS でもあるかも?)
USB storage の自動マウント
thunar-volman-0.3.80 を入れ
tar jxf thunar-volman-0.3.80.tar.bz2 cd thunar-volman-0.3.80 ./configure --prefix=/usr && make && make install
その後、加藤さんのページをそのまま真似して設定 :)
dbus-uuidgen > /usr/var/lib/dbus/machine-id /etc/rc.d/init.d/console-kit-daemon start
.xinitrc_xfce の最後を以下にように修正
exec startxfce4 -> ck-launch-session startxfce4
boost_1_39_0
inkscape を入れるのに必要らしいので、boost_1_39_0 を入れる。
tar jxf boost_1_39_0.tar.bz2 cd boost_1_39_0 ./bootstrap.sh
ここで project-config.jam を確認する。default では /usr/local 以下に入るようになっているはず。何故か最後から 2行目の option.set libdir が /lib になっていたので、/usr/local/lib に修正。(修正しないで以下を実行すると /lib 以下に boost library がインストールされる。)
次に、root で
./bjam install
これで /usr/local 以下に install されるのだが、include file のディレクトリが変(?)なので、
cd /usr/local/include/ ln -s boost-1_39/boost .
としておく。これをしないと、次の inkscape を build するところで、include file を見つけられないで error になってしまう。
inkscape-0.46
configure して make すると、pdf-parser.cpp で error がでて失敗する。なんでも inkscape が poppler-0.8.2 で作られているためらしい。inkscape-0.46-poppler-0.8.3.patch を net で探してきて patch 当て。
tar jxf inkscape-0.46.tar.bz2 cd inkscape-0.46 ./configure --prefix=/usr/local patch -p1 < ../inkscape-0.46-poppler-0.8.3.patch make && make install
これで ok
省電力設定 (1)
echo min_power > /sys/class/scsi_host/host0/link_power_management_policy ethtool -s eth0 wol d echo 1500 > /proc/sys/vm/dirty_writeback_centisecs echo 5 > /proc/sys/vm/laptop_mode mount -o remount,noatime /
無線を使わなければ 7.6W 程度。
無線を有効にすると8.6〜9.1W程度。(ただし Power Management: off)
なお、音を鳴らす(youtube とかで)と更に 2W 程度増える。
現時点の kernel config(usb まわりを組み込みでなく module に) config-2.6.29.3toi
省電力設定 (2) wireless, snd_hda_intel
echo 5 > /sys/bus/pci/drivers/iwlagn/0000\:03\:00.0/power_level echo 5 > /sys/module/snd_hda_intel/parameters/power_save
無線 iwlagn の省電力はかなり効く。1W強減ずる。現時点で無線を使いつつ作業をしていて 7.6W 程度。何もしなければ 7.4W程度。
xf86-video-intel-2.7.1
util-macros-1.2.1, dri2proto-2.1, Mesa-7.4.4, libdrm-2.4.11, xf86-video-intel-2.7.1
ffmpeg
sourceforge.net から faac-1.28.tar.bz2 と faad2-2.7.tar.bz2 を取ってきて /usr/local 以下に入れる。lame は 3.97b が既にあったので略。
ffmpeg を git で取得
git clone git://git.ffmpeg.org/ffmpeg/ cd ffmpeg git clone git://git.ffmpeg.org/libswscale/ ./configure --prefix=/usr/local --enable-libmp3lame --enable-libfaac \ --enable-libfaad --enable-gpl --enable-nonfree make
libx264
libx264 を入れる前に yasm を入れておく。( http://www.tortall.net/projects/yasm/wiki ) yasm を入れたら、 http://downloads.videolan.org/pub/videolan/x264/snapshots/ から x264-snapshot-xxxxx.tar.bz2 を取ってきて /usr/local 以下に入れる。
./configure --prefix=/usr/local --enable-pthread --enable-shared make
その後に ffmpeg を rebuild
./configure --prefix=/usr/local --enable-libmp3lame --enable-libfaac \ --enable-libfaad --enable-libx264 --enable-pthreads --enable-shared \ --enable-gpl --enable-nonfree
mplayer
svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer cd mplayer ./configure --prefix=/usr/local make
kernel update
2.6.30.1 + tuxonice-3.0.1 (git)
kernel config: config-2.6.30.1toi
vlc 1.0.0 released
vlc 1.0.0 が release されていたので入れた。vlc の make の前に fribidi を入れておく。
tar zxf fribidi-0.10.9.tar.gz cd fribidi-0.10.9/ ./configure --prefix=/usr/local make
んで
tar jxf vlc-1.0.0.tar.bz2 cd vlc-1.0.0/ ./configure --prefix=/usr/local --disable-nls --disable-mozilla --disable-postproc --disable-qt4 --disable-skins2 make
rxvt-unicode v9.06, mrxvt v0.5.4
tar jxf ../Download/rxvt-unicode-9.06.tar.bz2 cd rxvt-unicode-9.06/ ./configure --prefix=/usr/X11 make && install
tar zxf ../Download/mrxvt-0.5.4.tar.gz cd ../mrxvt-0.5.4/ ./configure --enable-everything make && install
b-mobile 3G
b-mobile 3G を使えるように設定。Mac OS X 用の設定マニュアルと、次の URL に書かれた情報を参考にした。 http://www2.kokken.go.jp/masaya/public/wiki/index.php?memo%2Flinux%2Fb-mobile3G
まず usb_modeswitch-1.0.2 を入れる。/etc/usb_modeswitch.conf 中の MF628+ の項目のコメントを外す。
udev の設定ファイル /etc/udev/rules.d/91-bmobile.rules と、 usb_modeswitch を叩くための script ファイル /usr/local/bin/bmobile_switch.sh を作成。
以上の設定で modem の認識ができる。
次に ppp の設定。Plamo では pppsetup を使う。pppsetup で設定されるファイルは /etc/ppp/chat/xxx と /etc/ppp/peers/xxx 。 なお接続ならびに切断するスクリプトは、pon と poff 。
pppsetup での設定の際に注意するポイントの一つは、詳細設定(Advanced)の中の MODEMINIT。この値を
+cgdcont=1,"IP","dm.jplat.net"
とすれば良いのだが、pppsetup script の実装のせいか、IP とdm.jplat.net の両側の " (ダブルクォーテーション)が設定ファイルから消されてしまう。仕方ないので手動で設定ファイル (/etc/ppp/chat/xxx) を修正する。
もう一点は設定項目の DEVICE 。 b-mobile 3G アダプタの GSM modem を認識した後、/dev/ttyUSB? が何故か 4 つ作成される。(これは udev の設定ファイルの書き方が悪いのかなぁ。謎。)DEVICE 項目として、この 4 つのうち最も値の大きい device ファイルを指定すれば接続できた。 またこの値であるが、USB の抜き差しをする度に割り当てられた数字が異なってしまうので、ppp 接続する前に使用する DEVICE 名を変更するように細工した。 (設定ファイルや修正したファイル群を固めたもの→bmobile_setupfiles.tgz)
上記の若干の問題は、時間がある時に udev とかの設定方法を調べて直してみよう。
openssl-1.0.0-beta3
今月中程に release されていたので作って入れる。
./config --prefix=/usr shared make && make install
openssl を上げたのにあわせ、openssh-5.2p1 を作り直す。
./configure --prefix=/usr --with-pam --sysconfdir=/etc/ssh make && make install
iwlwifi-5000-2.ucode
無線を使おうとしていたときの log の中に
Firmware has old API version.Expected v2, got v1. New firmware can be obtained from http://www.intellinuxwireless.org.
とか出ていたので、iwlwifi-5000-ucode-8.24.2.12.tgz を取ってきて、/lib/firmware/ の中に展開して入れた。
半年経って...
2009年3月に購入して、現在9月中旬。半年経ったわけだが、この X200s を購入したのは大正解だった。非常に具合が良いです。併用している MacBook Air と並んで最高の note だと思う。(注:あくまで Linux machine としての話。Windoze のことは知らん。)
いろんな作業をしていてもバッテリーは長時間持つし、キーボードは打ちやすいし、画面も 1440x900 で広くて綺麗だし、筐体は十分軽いのに丈夫だし。本当に買ってよかった。:)
(追記)一点だけ問題をあげるとすると、グラフィック周りだろうか。私自身はグラフィック性能をゴリゴリ使うようなプログラムを使用していないので実のところそれほど気にしていないが、Intel じゃなく、NVIDIA GeForce 9400M を載せてくれていたら最強といえただろうな。(その意味で MacBook Air は最強ですね。)Intel のグラフィックはねぇ...
jhead-2.87
exif 情報を見るのに入れた。(ImageMagick の) identify -verbose でも取得できるが、jhead の方が圧倒的に速い。(多分 identify はファイル全体をくまなく調べていて遅いのだろう。)
vlc-1.0.3-rc
1.0.3-rc にしようかと思ったけど、とりあえず 1.0.2 を。build の手順は 1.0.1 の時と同じ。と思ったら
misc/objects.c: In function 'vlc_object_waitpipe': misc/objects.c:385: error: implicit declaration of function 'eventfd'
とか make 時にエラー。1.0.3 で修正されているらしいので、1.0.3-rc を入れることに。
memory の解放
使用している memory を解放するには
/sbin/sysctl -w vm.drop_caches=1
software suspend する前とかにも実行しておくと良い感じ。(今のところ何の問題もありません。)
hibernate できない?
bmobile 3Gを認識させるところで固まってしまった(時々ある)ので仕方なく電源断で再起動した後、hibernate できなくなった。(正確に言えば、/sys/power/tuxonice/do_hibernate を叩けば hibernate できるが、hibernate スクリプトでは hibernate できない状態。)
もしかして SSD が壊れたのかと思ったが、いろいろシステムを調べてみたところ、lock ファイルが残ったままになっていたのが原因だった。
rm /var/run/hibernate-last-resume
で解決。
Plamo Linux 4.71
X が blackout したりで調子が今ひとつなので、Plamo Linux 4.71 を入れる。/home は触らず、まずはシステムのみを入れ、kernel を新しいものにする。
無線を使えるようにするため、iwlwifi-5000-ucode-8.24.2.12 の iwlwiri-5000-2.ucode を /lib/firmware の中に入れ、/etc/network.config に wlan0 のエントリを加えた。
xfce のキーバインドを若干修正。tuxonice-ui とか hibernate script などの設定。xfce4-battery-plugin を入れる。
vje を入れ、esecannaserver を立てる。scim-canna を。
eb-4.4.2 を入れ、ebview_0.3.6.2 を。
bmobile 3G の設定。
ufrawの修正
こちら→patch of ufraw
Geeqie Image Viewer
とても軽い画像表示アプリ。お勧めです。機能もとても高いしカスタマイズ性も高そう。 RAW 画像も軽々と表示しちゃう上、RAW の編集が必要ならメニューから簡単に UFRAW を使って開くことができるようになってます。
何より動作が軽いのが良いですね。何でこんなに表示が速いのかなー。機能も含めて、まさしく私がほしかったものです :) (iPhoto '09 は動作が重くなってきたし、画像の表示もイマイチなんだよなぁ...)
tuxguitar
Guitar Pro や Power Tab などを再生編集できる TuxGuitar を入れる。これは便利。 なお、Java を必要とするので JRE も入れておくこと。
xf86-video-intel-2.11.0
ふと思い立って新しい xf86-video-intel を入れてみることにした。2.11.0 は KMS な driver なので、
CONFIG_DRM_I915_KMS=y
として kernel を rebuild しておく。 libdrm-2.4.21 を入れた後に xf86-driver-intel-2.11.0 を入れる。
grub.conf の kernel parameter に i915.modeset=1 を追加。起動途中、i915 module が load されたところで真っ暗になるが、X を立ちあげさえすれば正常に表示される。(真っ暗な画面で console login して startx しても良いのだけれど、ちょっと面倒なので)inittab を修正して runlevel 4 (xdm) で起動するようにした。
省電力
resume して無線ネットワークに接続した後 powertop を立ちあげてみたら、、、
PowerTOP version 1.12 (C) 2007 Intel Corporation Cn Avg residency P-states (frequencies) C0 (cpu running) ( 0.6%) C0 0.0ms ( 0.0%) C1 mwait 0.0ms ( 0.0%) C2 mwait 0.5ms ( 0.3%) C6 mwait 20.1ms (99.1%) Wakeups-from-idle per second : 55.3 interval: 15.0s Power usage (ACPI estimate): 6.3W (6.8 hours) Top causes for wakeups: 19.7% ( 13.5) <interrupt> : acpi 18.0% ( 12.4) <interrupt> : iwlagn 18.0% ( 12.4) <interrupt> : extra timer interrupt 15.2% ( 10.5) <kernel core> : hrtimer_start_range_ns (tick_sched_timer)
なんとたったの 6.3W !!! 従来は良くても 7W 台だったので、びっくり。 先日入れた intel driver が良かったのか。それとも、ほかの設定が良かったのか。素晴らしい。
ところで intel driver だが、時々画面がチラツクことがあるのが気になるところ。別に固まったりするわけでもないので、もうしばらく様子見しよう。
SSD 交換
これまで使っていた SSD (Mtron MOBI MSD-SATA3025-016)、容量が少ないことを除けば今のところ問題は発生していないが、2年目を過ぎたので念のために新しく容量の大きな SSD に替えることにした。
選んだのは IO Data の 64GB SSD (東芝製、SSDN-ST64B) (2010/July/06) システム的(Plamo 4.71)には大きな変更は無いので、partition を切った後に元の SSD からデータを移すだけでおしまい。
省電力
resume して、無線LANを on にして firefox を立ちあげた後、バックライトの輝度を最低にした状態で powertop してみたら、、、
PowerTOP version 1.12 (C) 2007 Intel Corporation Cn Avg residency P-states (frequencies) C0 (cpu running) ( 1.3%) C0 0.0ms ( 0.0%) C1 mwait 0.0ms ( 0.0%) C2 mwait 0.5ms ( 0.5%) C6 mwait 11.5ms (98.2%) Wakeups-from-idle per second : 95.6 interval: 15.0s Power usage (ACPI estimate): 5.4W (3.0 hours) (long term: 7.3W,/2.2h) Top causes for wakeups: 25.0% ( 28.4) <interrupt> : extra timer interrupt 21.3% ( 24.2) <kernel core> : hrtimer_start_range_ns (tick_sched_timer) 16.1% ( 18.3) <interrupt> : acpi 10.2% ( 11.6) <interrupt> : iwlagn 10.0% ( 11.3) firefox-bin : hrtimer_start_range_ns (hrtimer_wakeup) 3.5% ( 4.0) ifctld : hrtimer_start_range_ns (hrtimer_wakeup) 3.1% ( 3.5) scim-panel-gtk : hrtimer_start_range_ns (hrtimer_wakeup)
ぎょえーーー、たったの 5.4W!!! なんじゃこれー!!! SSD を交換したのが効いたのだろうな。
WPA2-EAP
wpa_supplicant-0.7.3 を取ってきて設定
設定の流れ
tar zxf wpa_supplicant-0.7.3.tar.gz cd wpa_supplicant-0.7.3/wpa_supplicant cp defconfig .config vi .config make && make install mkdir /etc/wpa_supplicant cp wpa_supplicant.conf /etc/wpa_supplicant/ vi /etc/wpa_supplicant/wpa_supplicant.conf
debug モード(?)でテストしてみる↓
wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf -dddt
問題なさそうなら以下のようにして起動
wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B
その後、必要に応じて
dhclient wlan0
のように。うまくいけばこれでいけるはず。
設定にあたって、付属文書とここを参照した。
xfce4-battery-plugin-0.5.1
合わせて xfce4-battery-plugins の表示が 50%% になってしまったので、ぐぐってみたところ bug 情報が載っていたので、0.5.1 にあげた
printer 設定
職場に置いてある FujiXerox DocuCentre III C6500 から印刷できるように設定。
FujiXerox のLinux ドライバのダウンロードサイトから、fxlinuxprint-1.0.1 の source file を取ってくる。展開して ./configure && make && make install。これで、/usr/lib/cups/filter の下に 3つのフィルタ(*fx)、/etc/cups に mimefx.* というファイル二つ、/usr/share/cups/model/FujiXerox/en の中に ppd ファイルが入る。
次に CUPS の設定を行う。web ブラウザで、http://localhost:631/ にアクセスして管理ツールを。ppd ファイルとして /usr/share/cups/model/FujiXerox/en/fxlinuxprint.ppd を選べば良い。
科研の書類を開こうとして気付いたのだが、open するのにパスワード保護された PDF が印刷できない(みたい)。おそらく acrobat から、/usr/lib/cups/filter/pdftopdffx といったフィルタを経由してプリンタにジョブが送られているだろうから、間にあるフィルタによるファイル変換で失敗しているのではないかなぁ。
printer 設定
Canon LBP09500C を印刷できるように設定。 Canon のサイトにあった cndrvcups-common-2.10 と cndrvcups-lb-2.10 の source をとってきて入れた。が、ジョブを送ると「JPEGデータが正しくありません。PAGE 0 」と印刷されるだけ。いろいろ試してみたが状況が変わらないので、rpm package を取ってきて rpm2tgz で tgz 化して、入れた。
コマンドラインから印刷するときには、
cngplp -p PR117_p648.pdf
のように -p の後にファイル名を指定すればよい。パネルが開いて、n段組みとか両面とか設定をいろいろ変えられる。
分解清掃
とある土曜日の朝、寝ぼけていて開いた X200s の上に水をぶっかけてしまった。(しかも結構大量に) 急いで電源断して、SSD を取り外し、キーボードやパームレストを分解し、内部を乾燥。 分解にあたっては、IBM のサイトにあるThinkPad X200 および X200s 保守マニュアル(PDF)を参照。 ユーザレベルで分解できるように考えられている ThinkPad は素晴らしい :)
google chrome
Plamo 用の packageがあることに気付いたので入れる。とても速い。:) 拡張機能の FlashBlock と Smooth Gestures を入れる。
https な cups 設定
cups のプリンタ設定において、プリンタの追加でデバイスを選ぶときに、IPP(https) を選ぶことができない。この場合、以下のようにすればよい。
cd /usr/lib/cups/backend ln -s ipp https
これで IPP(https) を選べるようになる。(OS X の場合は、/usr/libexec/cups/backend )
印刷時に認証が必要な場合、
https://username:password@printername/hogehoge
のように記入。これにより、/etc/cups/printers.conf に username と password が生で記録されることに注意。(もちろん一般ユーザには読めないようになっているけど。)
kernel update
2.6.37-rc3 + tuxonice (git)
tpm_tis module が load されていると suspend に失敗する。suspend 前に tpm_tis を外せばよいようだ。
ufraw-0.17
Pentax K-5 の RAW (DNG) を現像できるように、最新の dcraw.c (version 9.05) を元にして ufraw-0.17 に対する ufraw-0.17+pentax.patch を作成。
tar zxf ufraw-0.17.tar.gz cd ufraw-0.17 patch -p1 < ../ufraw-0.17+pentax.patch ./configure && make
なお、面倒くさかったので K-r, K-5, 645D のみ追加。
↑ということをしなくても ufraw の CVS を取ってくれば ok
バッテリ交換
このところバッテリーの持ちが悪くなっており、設計容量の半分以下しか充電できなくなってきたので、新しいバッテリー、ThinkPad バッテリー 47+ (6セル) - X200シリーズ用 (43R9254) を購入。(2011/01/13) 16k
powertop-1.13
入れる
新しいバッテリーを満充電後、無線LAN ON の状態で powertop を動かしてみると、、、なんじゃこりゃ!
Power usage (ACPI estimate): 5.6W (11.4 hours)
バッテリーの容量が以前のものより少しだけ大きくなっているとはいえ、6セルバッテリーで 10時間越えとは。嬉しい悲鳴 :)
TuxOnIce 3.2 released
というわけで、kernel 2.6.38.5 + tuxonice-3.2-for-2.6.38.patch
kernel config -> config-2.6.38.5
cups-1.4.6
1.3.11 から 1.4.6 に
./configure --prefix=/usr && make && make install
1.4.7 にしなかったのは、Mac OS X 10.6.8 で PS プリンタへの印刷が不可になったため(cups の SNMP support を off にすれば良さそうだけど時間がないので)
gnumeric-1.10.16
表計算を使う必要があったので、 goffice-0.8.16 と libgsf-1.14.21 を入れた後に、gnumeric-1.10.16 を make install
日本語は問題なし
java plugin
jre-6u26-linux-i586.bin を落として、適当なディレクトリ ${JRE_DIR} で
cd ${JRE_DIR}/ sh jre-6u26-linux-i586.bin
その後、plugin のリンク作成
cd ~/.mozilla/plugins/ ln -s ${JRE_Dir}/lib/lib/i386/libnpjp2.so .
日本語が豆腐(□)になったので、
mkdir ${JRE_DIR}/lib/fonts/fallback cd ${JRE_DIR}/lib/fonts/fallback ln -s /usr/X11R7/lib/X11/fonts/TrueType/*.ttf . (適当な日本語 ttf font をリンク) ln -s /usr/X11R7/lib/X11/fonts/TrueType/fonts.dir .
mailcap
jnlp を実行するために ~/.mailcap に
# Java Web Start application/x-java-jnlp-file; ${JRE_DIR}/bin/javaws %s
を追記
バッテリー、完全放電&充電
7か月前に購入したバッテリー(full cap. 62160mWh)が、フル充電しても 51000mWh 程度にしかならなくなっていた。使用期間からいって、こんなに残量が減るのは変。そこで、電源ON状態でバッテリーを完全放電し再充電したところ、61300mWh まで回復した。
作業しながらの放電途中に、残り 3330mWh くらいになったところでどんなに作業を続けても残量が減らない状態が長らく続くことに気付いた。 Li-ion バッテリーの制御の仕組みはよく知らないが、バッテリーユニットの認識(記憶)している残量が狂っていたためかもしれない。完全放電&充電することで、記録されている情報がリセットされて正常値になった、というところだろう。
udlfb
udlfb を module にした kernel に
framebuffer が enable になったためか、消費電力が若干(0.7W程度)増加。さて、どうしたものか。tunning できるかな。
Plamo64-0.21
次期 Plamo5 のテスト版を入れてみる
filesystem は ext4 に
インストールは特に問題なく終了。まだ地雷は発見していない。
kernel rebuild ↓した後に、TRIMを使うため discard option を付けて mount するようにしてみた
kernel rebuild
64bit な linux-3.0.4 + tuxonice を build。
CONFIG_SYSFS_DEPRECATED=y となっていたために、root partition 以外の partition が mount されなかった以外は問題なし。 tuxonice の suspend/resume も ok。
kernel config -> config-3.0.4
30秒間隔で止まるマウスカーソル
しばらく前からマウスカーソルが時折引っかかるような症状。システムを入れ替えても同じ。(但し kernel は自前 build 、X driver は intel にしている)
何となく一定間隔で動かなくなっている気がして、時計を見ながらマウスを動かしてみたところ、30秒間隔で1,2秒間マウスが動かなくなることが分かった。一定間隔ということは、何らかの割り込みが入って止まっているのではなかろうか。kernel の設定に問題があるのか?あるいは、X の intel driver に問題があるのか?
試しに top で process を監視してみると、ちょうど mouse が動かなくなるときに、upowerd なる process の CPU usage が瞬間的に急上昇していることに気づく。とりあえず upowerd (upower daemon) を止めてしまえば、マウスが動かなくなる問題は解消することを確認。しかし upower daemon は電源管理で使っているみたいなので止めない方が良い気がする。
X の driver が vesa だったとき(インストール直後)にはマウスは止まらなかったような気がする(曖昧な記憶)ので、intel driver も疑ってみることに。(ちなみに vesa は画面解像度 1440x900 に対応してないみたいなので、intel にしている。) intel の代わりに fbdev にしてみたらマウスが止まる問題は発生しない模様。このとき upowerd は動いていても大丈夫。upowerd の負荷は 30秒毎に上がっているが、マウスの動作には影響しないようだ。
(下に続き有)
zphoto-1.2
zphoto を build するにあたり、gcc-4.5.3 & 64bit system のため compile error が出た。そこで以下のような patch を適用
--- image.cpp.orig 2004-07-21 01:48:11.000000000 +0900 +++ image.cpp 2011-10-27 16:22:26.069584604 +0900 @@ -554,8 +554,8 @@ static int convert_needed_p (const char *src, const char *dest) { - char *suffix1 = strrchr(src, '.'); - char *suffix2 = strrchr(dest, '.'); + char *suffix1 = const_cast<char*>(strrchr(src, '.')); + char *suffix2 = const_cast<char*>(strrchr(dest, '.')); return strcmp(suffix1, suffix2) != 0; } --- exif.c.orig 2004-06-07 18:58:04.000000000 +0900 +++ exif.c 2011-10-27 16:30:40.970310468 +0900 @@ -46,14 +46,14 @@ static int is_little_endian () { - static long retval = -1; + static int retval = -1; if (retval == -1) { - long n = 1; + int n = 1; char *p = (char *)&n; char x[] = {1, 0, 0, 0}; - assert(sizeof(long) == 4); + assert(sizeof(int) == 4); if (memcmp(p, x, 4) == 0) { retval = 1; } else {
zphoto と jhead
zphoto は縦で撮ったものを自動回転してくれない。(exif を読み imlib2 なり ImageMagick なりで回転させるように zphoto の source code を修正すればいいのだけど、少々面倒くさい。)jhead は自動回転処理ができるので、これを使っちゃった方が簡単だろう。
jhead -autorot -ft IMGP1234.JPG
とかすれば、IMGP1234.JPG の exif 情報を読み、適切に回転した上で、time stamp を exif 情報のものにセットしてくれる。このコマンドをスクリプトで流した後で、zphoto に処理させればよい。(この方が UNIX っぽいやり方ですよね :p)
30秒間隔で止まるマウスカーソル(解決)
fbdev で使っていれば一応気にならないとは言え、fbdev では xrandr によるモニター外部出力制御が難しい(できない?)し、そもそも 30秒間隔で upowerd の負荷が急激に上がることを変だと思ったので、色々とシステムをいじってみた。結論としては upower の version up (0.9.8 -> 0.9.14)で解決。
X関連の update
上記の問題を調べる過程で、以下の update を行った。
dri2proto-2.6 libdrm-2.4.26 libva-1.0.14 llvm-2.9 Mesa-7.11 xf86-video-intel-2.16.0
Android 開発環境
Installing the SDK を参照しながら、jdk_1.6.0_29、Eclipse IDE for Java Developers、android-sdk_r15-linux を入れる。jdk も eclipse も 64bit 版があるのに、何故か Linux 用の android-sdk だけ 64bit が無い。(何故だ > Google!!) 64bit Linux において、32bit 版 android-sdk を用いるには、32bit library が必要なことに注意。
android 端末を実機 debug できるよう udev の設定
/etc/udev/rules.d/51-android.rules というファイルを作成。ideos と iconiatab を持っているので、以下のように記述。
# Ideos: 12d1=huawei SUBSYSTEM=="usb", ATTR{idVendor}=="12d1", MODE="0666" # Iconiatab: 0502=acer SUBSYSTEM=="usb", ATTR{idVendor}=="0502", MODE="0666"
設定ファイルを書いた後、udev の rule を再読み込みするため
udevadm control --reload-rules
procps-3.2.8
suspend/resume した後に ps や w とかを実行すると、Unknown HZ value とか表示されたり(されなかったり)、ps ux で表示される process の開始時間が目茶苦茶だったり。調べてみると procps に何か問題がありそう。
procps/proc/sysinfo.c の中を読んでみると、init_libproc 内の linux_version_code 値が 0 になっていることが原因のようだ。本来 linux_version_code は init_Linux_version でセットされるはずだが、init_Linux_version と init_libproc が呼ばれる順番が定まっていないために問題が生じていた。通常はこの順番が違っていたとしても、その後のold_Hertz_hack で設定された Hertz 値によってそれなりの値を返してくれるので問題に気がつかなかったのだろう。(後で知ったのだが、本件は既に debian の方で調べられているようでパッチも用意されていた。)
というわけで一応、 init_Linux_version を先に呼び出すような修正と Makefile の修正をまとめたものを置いておく → procps328.patch (上述の debian の patch と本質的に同じですが)
cd procps-3.2.8/ patch -p1 < ../procps328.patch make && make install
64bit firefox
plamo 製の firefox binary ではなく、mozilla が配布している 64bit firefox を入れる。
64bit binary は、ftp.mozilla.org/pub/mozilla.org/firefox/releases/ 以下に置いてあるので、それを取ってきて、/usr/lib64 以下に展開し、/usr/bin/firefox の symbolic link を修正。
plugin については、plamo 謹製の 64bit plugin module が /usr/lib64/mozilla/plugins/ 以下に設置してあるので、これらをリンクしておく。
scim-bridge と pinentry-gtk2
scim を Input Method として使っていて、emacs で gpg 暗号化/復号化をしようとしたとき、画面に出てくる pinentry-gtk2 のダイアログに文字が入力できない症状がでた
とりあえず以下のようにして、GTK_IM_MODULE 環境変数を scim-bridge から scim にすれば、pinentry のダイアログにキー入力できた(他のアプリケーションでも同じだと思う)
GTK_IM_MODULE=scim emacs -nw hogehoge.gpg
ちなみに scim じゃなくて ibus の時には、このような問題は生じなかった(esecanna を使いたかったので scim にしている。ibus で canna が使えればいいんだけど。)
texlive2011
texlive2009 が default で /opt 以下に入っているが、texlive2011 も入れてみることにした。同じところに入れるとややこしいので、/usr/local/texlive2011 以下に入れた。インストール後の総容量は 3.1GB。(でかっ)
Crucial M4 SSD ドライブの firmware update
CT128M4SSD2 の firmware にbugがあったらしいので update した(0309になった)
先日購入した仮想光学ドライブになる Zalman ZM-VE200SE を利用。やはりこれは便利。
kernel update
3.2.5 + tuxonice (github)
google chrome
64bit rpm パッケージを取ってきて、rpm2targz で tar.gz にし、システム領域に入れる。(展開したファイルの owner を root にして、/opt/google/chrome/chrome-sandbox を 4755 にすること。)
実行すると libpng12.so.0 が無いとか言われたので、libpng-1.2.48 を取ってきて、適当な場所(例えば /opt/lib64 )に入れた後、
ln -s /opt/lib64/lib /opt/google/chrome/
ぐらいをしておけば良い。
imageindex-1.1
撮った写真を web に上げるのに、imageindex という(perl script)のがシンプルで良さそうなので入れてみた。
これを動かすには、ImageMagick の perl module が必要だったので --with-perl を付けて ImageMagick を rebuild
./configure --prefix=/usr/local LDFLAGS=-L/usr/lib64 --with-perl make && make install
また、imageindex は charset を ISO-8859-1 に固定されているので、
sed -i -e 's/ISO-8859-1/EUC-JP/g' imageindex
として、EUC-JP でタイトルを書けるようにした。
Perl で exif 情報を取り扱うために、CPAN から Image::Info を入れる。
perl -MCPAN -e shell
として幾つか質問に答えた後、
cpan[1]> install Image::Info
とすることで ok
ちなみに imageindex は exif 情報を表示してくれるけれど、自動回転はしないので、必要があれば
jhead -autorot -ft hogehoge.jpg
で自動回転しておくこと。
evince と .fonts.conf
evince は非常に便利に使っているのだけれど、表示・印刷に使われる日本語フォントが気に入らなかったので、(深い考えなしに古いシステムからそのまま使っていた) ~/.fonts.conf を新たに書き直した→ dot.fonts.conf
ついでに、xfce のフォントも IPA にする。
3年ちょい経過して
2009年3月に購入して、3年とひと月経過した。 この note は本当に良い!この間、MacBook Air 2台も併用したが、X200s の使用頻度がダントツ。
ヘビーに使い続けた結果、たくさんの傷が付いているが、動作には一切問題無い。これからもまだまだ使い続けることができるだろう。仕事に使うのに ThinkPad ほど頼もしい相棒はないですね。
液晶パネル破損
イヤホンが間にあることに気付かず液晶パネルを閉じてしまい、液晶を破損してしまった。なんてうかつなことを。。。 パネルの右 1/4 くらいサイケな模様が表示されている...(2012/12/04夜)
WXGA+ 液晶の交換パーツは入手困難(製造してない?)という記事を何処かで見た気がする。ThinkPad X1 Carbon 購入に伴い、ほぼ退役状態だったので、さてどうしたものか?仮にパネルが手に入っても安くはないだろうし...
液晶手配中
輸入代行を依頼している方から「検品したら大きなヒビが入っていたのでもうしばらくお待ちください」との連絡あり。(2013/01/12)これも一種のチャイナリスクか?
後日、今度は偽物の LCD パネルが!(2012/01/24)TMD液晶(fru:42T0480)のシールが貼ってあるが、実は中身は LG製のLP121WX3-TLC1 。画面表示はするけど解像度が低い orz... 中国では偽のラベルを貼ったものが多く出回っているという話は、様々な業界(機械ものだけでなく、例えばワイン業界とかでも)で聞くけれど、偽物の実物を見たのは初めて。(それにしても、ここまで面倒くさいことになるとは思っていなかった。輸入代行をしてくださっている方に少々申し訳なく...)
上が偽物、下が(割ってしまった)本物の液晶パネル(↓)
この偽物LCDパネルで気付いたことを覚えているうちに書いておこう。この手の偽物を扱う連中は、何処かに(自分たちが偽物だと分かるような)目印を付けているという。もしかすると偽物を判別する役に立つかもしれない(見当違いの可能性もあるので決して鵜のみにしないでね)
- 幅が1mmくらい狭い
- Toshiba Mobile Display Co., Ltd. と記載されている下に Made in Japan (本物は Toshiba Matsushita Display Technology Co.,Ltd. の下に Made in China)
- シール上に RU マーク(R は反転)が無い。但し基板上には有る。(RUマークとは、UL Recognized Component Mark)
このパネルを作っている TMD の工場が日本にある(or あった)のかどうか知らないが、もしかしたら "Made in Japan" が目印かもしれない(?)
ちなみに、TMD は 2009 年に株式買い取りにより Toshiba Matsushita Display から Toshiba Mobile Display になったので、TMD の表記が違うこと自体は尤もらしそうだ。問題は、2009 年以降に国内にある Toshiba Mobile Display の工場で、この 12.1inch WXGA+ パネルを製造していたかどうか?(国内でこのパネルは入手困難なことを考えると、多分このパネルは国内製造していないのではないか、というのが私の推測。とはいえ所詮推測なので、繋いでみて確認するしかないですね、今のところ...)
液晶交換完了
ちょっと訳あって確認&交換作業が遅れたのだけど、 輸入代行をお願いしていた方から3/18に届いた液晶パネルで交換確認作業を行った。(2013/03/31)今回はバッチリ。これで X200s が復活!(^-^)/
今後この WXGA+ 液晶を手に入れるのは至難だと思うので大事に使わなくては。ThinkPad X1 Carbon を使うにつれ、この X200s の出来の良さを実感しているので、キーボードユニットも新調して前線復帰させようかと考えている。
にしても、何故 Lenovo は高解像度な X200 系を出さないのだろう。ユーザのニーズを理解していないのだろうか。正直なところ今のラインナップには、仕事で使う上で欲しい!と思えるものがないのですよね。ThinkPad は ThinkPad であり続けてほしいのですが、、、
復活
注文しておいたキーボード(fru:42T3671)が届いたので交換。(2013/04/11)
ついでにバッテリーも交換した。
液晶とキーボードを新調したので、まるで新品のように感じますね! キータッチが無茶苦茶気持ち良い〜。
(X200s のキーボードを新調したので分かったけど、X1 Carbon のアイソレーションキーボードはやはり今イチかな。まぁ、我慢できる範囲ではあるけど。)
kernel update
3.10.2 + tuxonice
CONFIG_INTEL_MEI_ME=y にすると suspend/resume 時に嵌るので注意。Device Drivers -> Misc devices -> ME Enabled Intel Chipsets で N に。
バッテリー、死亡
唐突にバッテリーが死んだ。(2013.Sep.21)充電も全くできない。挙動からみてリチウムイオンバッテリの制御周りが壊れたのではないかと思う。購入したのは今年の春なので購入業者に交換を依頼。
バッテリー自主回収
以前使っていたバッテリーがバッテリー自主回収に当っていたので、Web 経由で連絡。数日後交換バッテリーが届く。(2014/04/14)
kernel update
3.14.2 + tuxonice config-3.14.2
polkituser
Xfce を使っていると何故か動きが引っかかる時が、、、どうも変だなぁと思って調べてみたら upowerd が動いてない。手で起動してみたら、 polkit がどうのこうのと言って落ちてしまう。 /home/polkituser のコピーを忘れてたのが原因。
xfce4-session が落ちる
何がトリガーなのか分からないが、作業中に xfce4-session が落ちてしまう
[21991.713319] xfce4-session[6676]: segfault at ffffffff00000000 ip 00007f66f8d765ba sp 00007fff0f1dbb20 error 5 in libglib-2.0.so.0.3600.4[7f66f8d14000+f8000]
これかな?
とりあえず、ここから xfce4-session-4.11.0.tar.bz2 を取ってきて make install した。しばらく様子を見てみよう。→問題発生せず。どうやらこの対応で ok みたい。
kernel update
3.14.4 + tuxonice, config-3.14.4
Keyword(s):[Linux] [note pc] [ThinkPad] [X200s]
References:[Linux] [MacBook Air 11inch] [ThinkPad X1 Carbon]