VAIO TZ90
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のページに書いた情報も参考に。)
Knoppix による起動
iPod Shuffle に入れた Knoppix で簡単に起動。USB メモリーからの起動のために BIOS 設定を変更。Sony VAIOは起動時に F2 を押せば BIOS setup に入れます。
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 を入れておくこと。
ACPI DSDT
Intel のサイト等から、acpica や pmtools などを取ってきて、TZ90 の DSDT をみてみた。DSDT.dsl
DSDT を見るのは Libretto L2 の時以来かな。
lspci -v 他
lspci -v > lspci-v.txt
lspci -vv > lspci-vv.txt
lsdev -v > lsdev-v.txt
lshal -tl > lshal-tl.txt
lsusb -v > 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)-> config_2.6.22+suspend2
xorg.conf -> xorg.conf
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の方に書いてある手順と同じ。
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 のものらしい。ということで、今は諦めて、のんびり期待することにする。
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 は停止。
Wireless 設定
ipw3945 に関する設定は、基本的に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
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。消費電力もわずかに減ったような。
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 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 を試してみないとなぁ。
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 が非常に便利です。頑張った甲斐があったな。
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 を超えてしまう。うーん、、、何を変えたらいいのやら。ちょっと時間がないんだよなぁ。
XKB error
Couldn't load XKB keymap てなエラーが出ていることに気づいて修正。xkb/rules/ 以下のリンク漏れの模様。詳しくは→Xorg7.3 binary packages for Plamo-4.22
kernel 2.6.25.3 + tuxonice-3.0-rc7
ちょっと時間ができたので、久しぶりに kernel をあげてみた。
kernel 2.6.24 あたりから、Intel の 3945 driver (無線) が kernel に merge された。ipw3945d を削除したりして、 iwlwifi の Microcode image (firmware) iwlwifi-3945-ucode-2.14.1.5 を /usr/lib/murasaki/firmware.d/ に。(Plamo は murasaki を使っているので。) あとちょこちょことネットワーク設定を修正して完了。
2.6.22 と比較すると、他にもいろいろ変わっているようで、まだ手探り中。(省電力化を含めて)
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
無償点検修理
本体の電源差し込み口周辺または液晶枠部分が異常発熱するという問題があるらしく、無償点検修理のアナウンスあり。(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
Keyword(s):[Linux] [note pc] [] [] [VAIO] [TZ90]
References:[Linux]