雑記 - VAIO TZ90 Diff

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

2007年6月末、VAIO TZ90 を手に入れた。はじめての VAIO 。
64bit CPU である Core2Duo U7600 1.2GHz、32GB の SSD と 160GB の 2.5" SATA HDDを搭載する軽量でスリムな 11.1 inch ワイド液晶(1366x768)のノート。有線無線LAN、Bluetooth、IEEE1394、USB2.0、ExpressCard、等をテンコモリの上、標準バッテリーで12時間(カタログ値)動くというすぐれもの。(たぶん)

例のごとく、system resource を食い潰し鈍重な Windoze には目もくれず、Linux を入れて使います。(OS なしモデルを出してくれたらいいのにな。)

このページは、基本的に時系列に沿って記述するするつもりですが、時に遡って追記することもあります。
なお私的メモですので詳細のすべては記載していません。あしからず。
([[X60sのページ|http://ult.riise.hiroshima-u.ac.jp/~nagato/?ThinkPad+X60s]]に書いた情報も参考に。)

!いくつかの情報
*[[スペック|VAIO TZのスペック]]

!Knoppix による起動
iPod Shuffle に入れた Knoppix で簡単に起動。USB メモリーからの起動のために BIOS 設定を変更。Sony VAIOは起動時に F2 を押せば BIOS setup に入れます。
{{attach_view('20070629_5.jpg')}}

Sound、LAN、X、など何の設定もしなくて使えます。

!partition 分割
10GB も resource を食い潰す Windoze Vista なんて捨ててしまいたいが、BIOS アップデートとかのことを考えて、残しておくことにする。
とりあえず、SSD 上にインストールされた Vista の領域 /dev/hda2 とリカバリーのための隠しドライブ /dev/hda1 を dd を使って、SATA ドライブの方にイメージを書き出しておく。
その後 Knoppix 上の Qparted を使って、SSD 上の Vista の領域をぶった切る。

!Ubuntu 7.04
せっかくの 64bit CPU なので、Ubuntu-7.04-amd64 を入れてみることにする。USB 接続の外部 CD-ROM ドライブを用い、Ubuntu を起動してみた。

最初からワイド画面をフルサイズで認識してくれるじゃないか。なんとまぁ、手間いらず。SSD の空き領域に 5GB 程度のシステムインストール領域を確保(/dev/sda3)して、インストールしてみることに。

あ、そうそう SSD であるが、Knoppix 5.1.1 では /dev/hda として、Ubuntu 7.04 では /dev/sda として認識していた。メモ。

Ubuntu はすごいですね。ほとんど何の設定もしないで使えています。X の設定はもちろん、Sound から有線 LAN & 無線 LAN も難なく使えています。うぅむ、極めて完成度が高いですね。

Ubuntuはとても良いのですが、やはりnote pc の環境は自分で構築したいので Plamo ベースでいきます。

!Plamo 4.21
Plamo 4.21 を外付け CD-ROM ドライブからインストール。
まずは、160GB のディスクの第二パーティションにインストール。ある程度セットアップをした後に、SSDの第四パーティションに丸ごとコピーする方針。
Ubuntu とかについては、特に記載することもない(設定することがない)と思うので、以下の記述は特に断らない限り全て Plamo に関するものとする。

!X の設定
Plamo 4.21 のそのままのもの(Xorg-6.9)では xfplamoconfig で設定しようにもうまく起動しなかった。Plamo/Update/4.2/contrib/Xserver の中の 4 つの tgz ファイル(Xorg 7.1)をインストールすることで、X が立ち上がるようになった。設定時に解像度を指定しなくてもワイド画面で X が立ち上がる。

(追記)実は X の root 画面が 1368x768 として認識されていた。つまり 2pt 横長。正しくは 1366x768 である。これは Ubuntu でもそうなっていた。1368=2^3*3^2*19 と 8 の倍数になるからだろうか。

!kernel の入れ替え
kernel 2.6.21.5 + software suspend2 2.2.10.1 な kernel に差し替える。
Sound は Intel HD Audio な module を、有線 Gigabit Ethernet は Marvell を enable に。

!synaptics touchpad driver
synaptics-0.14.6 を入れる。make した synaptics.o を /usr/X11R7/lib/X11/xorg/modules/input/ の中に入れて、xorg.conf を若干書き換える。kernel に evdev module を入れておくこと。

!suspend用のスクリプト
suspend2-userui-0.7.1 と hibernatescript-1.95 を入れる。きわめて簡単。

!WindowMaker など
Window Manager はいつものように軽快な WindowMaker にする。そのほか、wmacpi、wmclock、ng、MPlayer などを入れる。

!ACPI DSDT
Intel のサイト等から、acpica や pmtools などを取ってきて、TZ90 の DSDT をみてみた。{{attach_anchor('DSDT.dsl')}}

DSDT を見るのは Libretto L2 の時以来かな。

!lspci -v 他
lspci -v > {{attach_anchor('lspci-v.txt')}}

lspci -vv > {{attach_anchor('lspci-vv.txt')}}

lsdev -v > {{attach_anchor('lsdev-v.txt')}}

lshal -tl > {{attach_anchor('lshal-tl.txt')}}

lsusb -v > {{attach_anchor('lsusb-v.txt')}}

!sony-laptop
Sony 固有(?)の ACPI device (SNY5001, SNY6001)を制御する為の kernel driver には、sony-laptop と sonypi というのがあるらしい。SNY5001 な device は sony-laptop を、SNY6001 な device を制御するには sonypi driver を使わないといけなかったっぽいのだが、kernel 2.6.22-rc? 以降 sony-laptop driver に SNY6001 制御用のコードが入ったみたい。というわけで、最新の kernel 2.6.22-rc7 を入れてみることに。

!kernel 2.6.22-rc7 で音が出ない?
2.6.22-rc7 を make した。
あれ???音が出ないぞ?

alsa-{lib,util,oss}を 1.0.14 に上げてみたが状況は変わらず音は出ない。

2.6.22-rc? になってから、snd-hda-intel に snd-hda-codec が merge されているようなのでそれが原因かと思ったがどうやら関係なさそう。

もうちょっと kernel source code を漁ってみると sound/pci/hda/patch_realtek.c というファイルがあるのに気づく。この TZ90 は RealTek ALC262 というchip を使っていることに注意して code を斜め読みしていると、2.6.22-rc? に sony-assamd という model が付け加わっていることに気づいた。
そこで snd-hda-intel driver の option で model 名を指定してやれば良いかなと思い、/etc/modprobe.conf に以下の 1行を追加。これで鳴るようになりました。:-)
options snd-hda-intel model=sony-assamd
source code を自由に読むことができるって、ほんといいですよねぇ。

!省電力
kernel で tickless system (dynamic ticks)にしてみた。

あと Intel が配布している PowerTop というツールも試してみる。省電力のために、いろいろ suggest してくれる(noatime で mount しろとか、scaling_governor を ondemand にしろとか...)ので参考になりそうです。何の process が食っているかも分かりますし。
不要なプロセスを止めたりして、現時点で idle 時に 7.5W 程度。まだまだいけるはず。

!kernel 2.6.22 + suspend2-2.2.10.2
kernel 2.6.22 released。
kernel config (2.6.22 + suspend2-2.2.10.2)-> {{attach_anchor('config_2.6.22+suspend2')}}

xorg.conf -> {{attach_anchor('xorg.conf')}}

!SSD
現時点まで構築した Plamo の環境を SSD のパーティションに移してみる。

!acpid, laptop-mode
acpid-1.0.6 と laptop-mode-tools-1.34 を入れる。/etc/laptop-mode/laptop-mode.conf を適当に設定して start

ついでに、 modprobe sony-laptop debug=1 し、いくつかの device power を off にしてみたところ、、、アイドル状態で 6.6W 程度に。

!vje-3.0、esecanna、uim-1.4.0
日本語入力のエンジンとして、vje-3.0 を esecanna 経由で。
この辺の設定は、[[x60s|http://ult.riise.hiroshima-u.ac.jp/~nagato/?ThinkPad+X60s]]の方に書いてある手順と同じ。

!xrandr -- X の設定
画面解像度が 1368x768になってしまっている件であるが、
xrandr コマンドを使うことで、X を起動したまま解像度を変更できる。
option 無しで実行すると、
nagato@tz:~$ xrandr
SZ:    Pixels          Physical       Refresh
  0   1366 x 768    ( 463mm x 260mm )   60  
  1   1360 x 768    ( 463mm x 260mm )   60  
  2   1024 x 768    ( 463mm x 260mm )   60  
  3   1064 x 600    ( 463mm x 260mm )   60  
  4    800 x 600    ( 463mm x 260mm )   60  
  5    640 x 480    ( 463mm x 260mm )   60  
*6   1368 x 768    ( 463mm x 260mm )  *60  
Current rotation - normal
Current reflection - none
Rotations possible - normal left inverted right
Reflections possible - none
いくつかの解像度を認識しているようで(しかも 1366x768 もあるじゃないか)、例えば
xrandr -s 0
のようにすれば、0 番のサイズに変更してくれる。このほか、画面を回転させたりすることもできるらしい。

Xrandr-1.2.x で VGA output の制御ができるらしいので、入れてみようかと思ったのだが、どうやら Xrandr-1.2.x は Xorg7.3 のものらしい。ということで、今は諦めて、のんびり期待することにする。

!motion eye メモ
||Sony Visual Communication Camera VGP-VCC7||
||Device ID: 05ca:183a||
||製造元: Ricoh、 R5U870 ||

!sky2
有線LANのMarvell 88E8055であるが、時々使えなくなってしまうことがある。kernel module の sky2 に問題があるようで、この sky2 を load し直せば (modprobe -r sky2; modprobe sky2)、とりあえず使えるようになるのだが、、、

!wmacpi, wmpower, wmclock, wmCalClock
powertop で負荷状況を調べた。
wmacpi よりも wmpower の負荷の方がずっと低い。
wmclock よりも wmcalclock の負荷の方がずっと低い。
wmcalclock -S
wmpower -no-cpufreq -no-noflushd

powertop による計測結果。(抜粋)
  19.2% ( 64.8)         bubblemon : do_nanosleep (hrtimer_wakeup)
   5.9% ( 20.0)           wmclock : do_nanosleep (hrtimer_wakeup)
   3.0% ( 10.0)            wmacpi : do_nanosleep (hrtimer_wakeup)
   0.5% (  2.0)           wmpower : do_nanosleep (hrtimer_wakeup)
   0.5% (  2.0)        wmcalclock : do_nanosleep (hrtimer_wakeup)
これに基づき、bubblemon, wmclock, wmacpi は停止。

!gcc-4.2.1 installed
/usr/local 以下に入れる。

!Wireless 設定
ipw3945 に関する設定は、基本的に[[X60sのページ|http://ult.riise.hiroshima-u.ac.jp/~nagato/?ThinkPad+X60s]]に記載したものと同じで以下のようなもの。

!!firmware - ipw3945-ucode-1.14.2
cp ipw3945.ucode /usr/lib/murasaki/firmware.d/

!!ipw3945 daemon - ipw3945d-1.7.22
cp x86/ipw3945d /sbin/

!!modules - ieee80211-1.2.18
make
make install

!!driver - ipw3945-1.2.1
ln -s /usr/bin/grep /bin/
IEEE80211_IGNORE_DUPLICATE=y make
make install

!!iw commands - wireless_tools.28
make
make install

!ipw3945 の省電力設定についてメモ
iwpriv eth1 set_power [0-5]
5にすると最も省電力。0は省電力にしない。

!GSL-1.9, TNT3.0.6
数値計算ライブラリ。/usr/local 以下に。

!kernel 2.6.22.3, 2.6.22.4, 2.6.22.5, 2.6.22.6 + suspend2-2.2.10.2
kernel version をあげただけ。

2.6.22.5 で sky2 の backport。消費電力もわずかに減ったような。
{{attach_view('batt0.png')}}

!TuxOnIce
suspend2 -> tuxonice   変わりました。 http://www.tuxonice.net/

!powertop-1.8
version 1.8 が release されていたので入れてみる。suggest 項目が増えたようだ。:-)

usbcore.autosuspend=1 とかしろと suggest されるのだが、grub.conf に書いても反映しないみたい。(何でだ?私だけ?)

source を見た感じでは /sys/bus/usb/devices/usb?/power/autosuspend を見ているようなので、これを以下のようにしてみる。
echo 1 > /sys/bus/usb/devices/usb[1-5]/power/autosuspend
これでよさそうな感じ。

!SSD と SATA HDD
SSD にすることで Windoze の起動時間がかなり短縮されるという記事が多くありますが、SSD と SATA HDD とで Linux の起動時間に差があるのかどうか調べてみることにしました。
SSD と HDD に、ほぼ同じ構成の Plamo Linux 4.21 が入っているので、それを起動して login prompt が現れるまでの時間を壁時計で計測。

結論。どちらも 27sec 程で起動完了。壁時計で測る程度では、SSD と HDD 差がわかりませんでした。

DLL のかたまりの鈍重な Windoze と違って、Linux では OS の起動時間短縮にはつながらないようですね。
もちろん Linux でも、cache ファイルの多い Web ブラウザのようなソフト、 shared library を使いまくるソフトウェアでは効果があるでしょうね。

!ncurses と w3m
powertop を入れる際に libncursesw が必要だったので、ncurses-5.7 を --enable-widec で make してインストールした。
その後、w3m の表示が崩れることに気づいたので、調べてみたところどうやら ncurses lib があやしい。そこで libncurses を元のものに戻してやり、w3m の表示問題はクリア。powertop の方も libncursesw を static にリンクしていたようで、特に問題なし。

===ncurses-5.7 を --enable-widec オプション無しで make したものにしてみたところ、w3m が正常に表示されることを確認。=== 間違いかも。要確認。

!openssl-0.9.8e & openssh-4.7p1
Plamo の環境に合わせて、
cd openssl-0.9.8e
./config shared --prefix=/usr --openssldir=/usr/ssl
make && make install

cd openssh-4.7p1
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam
make && make install
大体こんなもんかな。

!benchmark
自前の数値計算プログラム(超流動ヘリウム薄膜の spin 帯磁率)で、計算速度を比較してみた。並列プログラムではなく、1 core での計算です。
比較用に、Athlon64 X2 4600+ ([[Regin|http://www.regin.co.jp/]] BTO PC)と Core Duo L2300 (ThinkPad X60s)の計測結果も。(compiler option が適切かどうかは自信ありません:-)

||System||CPU||実行時間 real time||gcc version||compiler option||
||Plamo Linux 4.21 (32bit)||TZ90, Core2Duo U7600(1.2GHz)|| 57.753 sec|| gcc 4.2.1 (32bit)|| -O3 -march=nocona -msse3 -pipe -fomit-frame-pointer -funroll-loops -fno-math-errno||
||Ubuntu 7.4(x86_64)||TZ90, Core2Duo U7600(1.2GHz)|| 49.885 sec|| gcc 4.1.2 (64bit)|| -O3 -m64 -march=nocona -msse3 -pipe -fomit-frame-pointer -funroll-loops -fno-math-errno||
||SuSE10.1(x86_64)||Athlon64 X2 4600+(2.4GHz)|| 21.365 sec || gcc 3.3.5 (64bit) || -O3 -m64 ||
||Plamo Linux 4.2 (32bit)||X60s, Core Duo L2300(1.5GHz)|| 54.431 sec|| gcc 3.4.3 (32bit)|| -pipe -O3 -march=pentium-m -msse3 -fomit-frame-pointer||

64bit な gcc-4.3 で -mtune=core2 を試してみないとなぁ。

!kernel 2.6.22.8, 2.6.22.9 + tuxonice-2.2.10.3
tuxonice というのは suspend2 の新しい名前です。念のため。

!Plamo 4.22
Ubuntu を入れていた /dev/hda3 に Plamo 4.22 をインストール。

Gnome や KDE は入れず、できるだけスリムに。その上で、
Xorg 7.3 を入れてみることに。

!Xorg-7.3 のインストール
source からのインストール。なんぞ script があるので、それを使うことに。インストールするディレクトリは /usr/X11R7.3 とする。

build 中に、あちこちで引っかかる。なかなか==面倒くさい==手強いなぁ。

一応 7.3 の build できました。kbd 回りに不可解なことが? →
xkeyboard-config を入れてなかったせいでした。解決。

X を再起動しなくても解像度を変えられる xrandr が非常に便利です。頑張った甲斐があったな。

[[Plamo 4.22 への Xorg7.3 のインストール]]

!kernel 2.6.23.8 + TuxOnIce-3.0-rc2
kernel 等を update した。

!network 設定
ipw3945関連のインストール、設定ファイル/etc/network.{conf,mode,fixed} 修正

!不要な service 等を停止

!powertop-1.9
powertop-1.9 がリリースされていたので、入れた。

!kernel 2.6.22.14 と 2.6.23.8
私の kernel の configuration が悪いのか、kernel 2.6.23.8 で消費電力が多くなってしまった。

2.6.22.x だったら無線も使っていて 7W程なのに、2.6.23.x だと 9W を超えてしまう。うーん、、、何を変えたらいいのやら。ちょっと時間がないんだよなぁ。

!LessWatts org
[[http://www.lesswatts.org/|http://www.lesswatts.org/]]

!uim-1.4.1
Alt + Space で日本語変換するように設定。

!XKB error
Couldn't load XKB keymap てなエラーが出ていることに気づいて修正。xkb/rules/ 以下のリンク漏れの模様。詳しくは→[[Xorg7.3 binary packages for Plamo-4.22]]

!kernel 2.6.22.15 + tuxonice-3.0-rc3
updated

!kernel 2.6.25.3 + tuxonice-3.0-rc7
ちょっと時間ができたので、久しぶりに kernel をあげてみた。

kernel 2.6.24 あたりから、Intel の 3945 driver (無線) が kernel に merge された。ipw3945d を削除したりして、
[[iwlwifi の Microcode image (firmware)|http://intellinuxwireless.org/?n=downloads]] iwlwifi-3945-ucode-2.14.1.5 を /usr/lib/murasaki/firmware.d/ に。(Plamo は murasaki を使っているので。)
あとちょこちょことネットワーク設定を修正して完了。

2.6.22 と比較すると、他にもいろいろ変わっているようで、まだ手探り中。(省電力化を含めて)

!2.6.25.4 + tuxonice-3.0rc7
update。手探り中。

!memo
!!resume 時に hang する
resume 時に "suspending console" で hang する。nohz=off とすると大丈夫っぽいけれども、dynamic ticks が off になるため、CPU が C0 のままで idle にならない。でもそれでは省電力的に問題あり。

ehci_hcd を unload して、suspend 時に chvt 1 するようにしたら、nohz=off とかしなくても==固まらなくなったみたい。ehci_hcd を unload したことが効いたのか、chvt したことが効いたのかは、よくわからない。== やっぱりだめ、固まるなぁ。どうすりゃいいんだろう?
suspend するときに full speed で動いていればいいのかなと思い、hibernate script の中で
FullSpeedCPU yes
とかしてみた。今のところ、これでうまく suspend/resume できている。

!!無線周りが変な感じ
echo 1 > /sys/bus/pci/drivers/iwl3945/????/power_level
とかすることで無線の省電力設定を変えられるはずだが、何故か「リソースが一時的に利用できない、うんぬん」と蹴られ、無線が enable にならない。(wlan0 device は見えている。が、dhclient で ip が取れない。)
ifconfig wlan0 up
とかすると使えるようになったけど、、、なんのこっちゃ???
ただ、以前から無線の basestation が変なので、原因はこちらではないのかもしれない。
あ、前のセッションでの dhclient process が残っていたのが原因かも?

!motion eye メモ2
別件の調べものをしていたら偶然発見。
http://wiki.mediati.org/Supported_Devices
TZ についている 183a が ok になってますね。これはいけるんじゃないかな。(試す時間はないけど。)

!xfce-4.4.2
なかなか軽いかも。[[xfce-4.4.2 binary]]

!無償点検修理
本体の電源差し込み口周辺または液晶枠部分が異常発熱するという問題があるらしく、[[無償点検修理のアナウンス|http://vcl.vaio.sony.co.jp/iforu/hotnews/2008/09/001/index.html]]あり。(2008/09/04付け)

各ニュースソースによれば、去年の夏には問題を把握していたらしい。
発表が一年後になるというのは全く頂けない。対応が悪すぎ。VAIO 10 周年モデルがこれか。。。がっかりである。

!Plamo-4.5b3
修理から戻ってきたので、この機会にリリースされたばかりの Plamo 4.5b3 にシステムを入れ替える。(Ubuntu 8.04.1 も入れたけど、そちらの話は割愛。)

特に問題なくインストールは完了。gnome や KDE は入れず、Xfce までを入れた。

kernel を 2.6.26.5 + tuxonice 3.0-rc7 に入れ替える。


!iwl3945
wireless に関しては、以下の点を修正。
*wireless_tools.29 を入れる
*/lib/firmware ディレクトリを作成し、その中に iwlwifi-3945-ucode-2.14.1.5 の firmware ファイルをコピー。
*もちろん kernel 内の iwl3945 module も忘れずに。
これくらいすれば無線も無事に使えるようになった。注意点はふたつめの firmware ファイル。Plamo 4.5 では murasaki を使わなくなった。/lib/udev/firmware.sh スクリプトを参照のこと。

!grub2
いろいろ機能が増えた grub2 を入れてみる。grub-1.96 を入れる前に、
lzo-2.03 を入れておくこと。
update-grub
grub-install
vi /boot/grub/grub.cfg
以下こちらに → [[grub2 メモ]]

!xfree86-driver-synaptics
タッチパットを使うために synaptics driver を入れる。

!xfce4-battery-plugin
入れた。

!しばらく停止
なんかヤワな印象が拭えない&キーピッチが少し狭くて打ちにくい等の理由から、TZの利用頻度が激減していました。(TZよりも古くてスペックの低い ThinkPad X60s の方が私にとっては使い勝手が良いという何というか。。。)

というわけ(?)で無駄に寝かせておくのも勿体ないので、たびたび職場の仕事を手伝ってくれる k くんに貸すことに。ゆえに、このページの更新はひとまず停止します。