ThinkPad X60s

2006年 3月、ThinkPad X60s (1702-C6E)を入手しました。Dual Core CPU である Intel Core Duo processor L2300 を搭載した B5 サブノート。もちろん Linux を入れて使います。

ということで、Linux のインストール & 設定作業をメモすることにしました。(原則、時系列に沿って記載します。下に行くほど新しいです。)

いつものように、あくまで私的な memo ですので、詳細の全ては記載していません。あしからず。

いくつかの情報

下準備

まず、partition をどう切るか。Windoze なんぞを使うつもりは毛頭無いが、BIOS アップデート等は Windoze 依存のことが多いので、いつものように Windoze 用に最小限の領域を残しておくこととする。

Windoze のファイルシステムは NTFS であるが、qtparted を使えばシステムを壊さずにパーティション分割することが可能。qtparted は Knoppix 4.02のものを利用した。

さて、Knoppix で起動する際に、

azx_get_response timeout

というエラーがコンソール上に流れ続けるというエラーが。 boot option で lang=us とかすると起動できた(たまたまかもしれない)ので、qtparted でWindozeの入った NTFS な第一パーティションを分割する。Windoze 用に 10GB。

以下はインストールした SuSE10.1 上での fdisk の結果。1st partition は10GB に切り詰めた WindozeXP 領域、2nd partition はリカバリ用データ領域。残りを extended partition とし、その中を適当に切って linux を入れている。(sda5:Plamo, sda7:SuSE)

Command (m for help): p

Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 0 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        1275    10241406    7  HPFS/NTFS
/dev/sda2            9123        9729     4868640   12  Compaq diagnostics
Partition 2 does not end on cylinder boundary.
/dev/sda3            1276        9122    63031027+   5  Extended
/dev/sda5            1276        2492     9775521   83  Linux
/dev/sda6            2493        2617     1004031   82  Linux swap / Solaris
/dev/sda7            2618        3892    10241406   83  Linux

Partition table entries are not in disk order

テストインストール

Plamo4.2beta2

Plamo 4.2beta2 をインストール後、システム起動時に前述の azx_get_response timeout がぞろぞろ出てきた。 google ってみたら sound 周りが関連していそう。(Intel の HD audio chip関連) とりあえず、murasaki を使わないようにしてやって、エラーを抑制。 NICは認識してないし、CPUも片肺状態。^-^;; 弄りがいがあるなー。

SuSE 10.1 beta8

network install を試す。ftp.novell.co.jp を使おうとしたがネットワークアクセスが遅い上に image が一致してないといったエラーが出てインストールできない。最新開発版なので、インストール用 boot イメージと network 上のデータに差異があるためだろう。

そこで CD image (CD1-CD5)を ftp.kddilabs.jp から取得し、 suse10.0 machine (Athlon64 desktop machine) を install server (yast2-instserver)に仕立てて、network install することに。

sound 回りのazx_get_response timeoutエラーをのぞいて、Gigabit ethernet もグラフィックチップもちゃんと認識しているだけでなく、二つの CPU clock 制御も働いているし、Fn キーを押すことで swsusp の hibernation もできるようになっている。 この簡単さはとても素晴らしいんだけど、らくちん過ぎて面白くないな。:-p

SuSE と Plamo

SuSE は簡単便利なんだけど、フルチャージでせいぜい 3時間ちょいとバッテリーの持ちがあまり良くない。これはGnomeだのKDEだの大物を使っているのに加えて、あれこれ裏方プログラムが動いているからだろう。(そのおかげで簡単に使えるんですけどね)

で、Plamo の方で WindowMaker を入れて試してみると、、、フルチャージで4時間ちょいくらい持ちそうな感じです。カスタマイズしたらどこまで伸ばせるか、これは期待できそうです。wmacpi.png

やはり常に持ち歩くノートパソコンに付いては、自分で make & setup して自分の手に馴染むようにカスタマイズする Plamo の方が性に合ってます。(一方で私の管理するサーバには SuSE を採用することが多いですけど。)

というわけで、Plamo-4.2 をベースにする。

X60s のサスペンド

サスペンドについては、suspend (ThinkPad X60s) にまとめる。

software suspend & software suspend2 共に ok です。

kinput2

Mac の日本語変換切り替えと合わせるために、.Xdefaults を書き換える。

--- .Xdefaults~ 2006-04-11 17:10:06.000000000 +0900
+++ .Xdefaults  2006-04-17 09:55:09.000000000 +0900
@@ -56,13 +56,7 @@
 ! 日本語入力モード切り替えキーの設定
 ! Ctrl + o を無効にしたい場合は .canna で設定してください
 Kinput2*ConversionStartKeys: \
-       Shift<Key>space \n\
-       <Key>Zenkaku_Hankaku \n\
-       Alt<Key>Zenkaku_Hankaku \n\
-       Shift<Key>Zenkaku_Hankaku \n\
-       <Key>Kanji \n\
-       Alt<Key>Kanji \n\
-       Shift<Key>Kanji
+       Alt<Key>space
 Kinput2*sendbackKeyPress:      True
 Kinput2*background:    #c0c0c0
 Kinput2*foreground:    black
@@ -75,13 +69,7 @@
 Kinput2*auxShell.input: false
 ! 以下2つのリソースは kinput2-canna の場合のみ有効
 Kinput2*ConversionEndKeys: \
-       Shift<Key>space \n\
-       <Key>Zenkaku_Hankaku \n\
-       Alt<Key>Zenkaku_Hankaku \n\
-       Shift<Key>Zenkaku_Hankaku \n\
-       <Key>Kanji \n\
-       Alt<Key>Kanji \n\
-       Shift<Key>Kanji
+       Alt<Key>space
 ! キーボード右下の backslash は常に“_”にする(かな入力で必須)
 Kinput2*keyBackslashAlwaysShifted:     True

これで、Alt+Space で On/Off ができる。ついでに kinput2 での Ctrl+O を抑制するために .canna を修正。

acpiw-0.75 を入れてみる

acpi な情報を一覧できて、結構おもしろい。

high pitch noise

バッテリー使用時の high pitch noise (ピーピー音)であるが、 Processor の max_cstate を変えることで抑制できる。 max_cstate を変えるには、起動時の kernel parameter で与えるか、

echo 2 > /sys/module/processor/parameters/max_cstate

とすればよい。

dual core cpu を片肺にするには

ひとつは BIOS 設定。その他に、

echo 0 > /sys/devices/system/cpu/cpu1/online

とすれば良い。dual に戻すには、1 を set する。(ただし消費電力がどうなるかは要検証。enhanced intel speedstep との絡みにも注意。)

usb と消費電力

usb modules を外すと、バッテリー稼働可能時間がグンと伸びる。 フルチャージ状態で CPU を 1GHz x 2 で稼働すると、

usb modules loaded   -> 239 min
usb modules unloaded -> 264 min

のようにバッテリー稼働可能時間が伸びることが確かめられた。 USB device は非接続なので外部デバイスへの給電は関係ないだろうから、USB controller の電源制御まわりの問題なのかな? kernel を見ると、"UHCI has no power switching." とか書いてあるなぁ。

この辺りの話と関係あるかもしれないしないかもしれない。

murasakiを止めた上で、usb 関連の modules を load/unload してみたところ、uhci_hcd を外すのが効果的みたい。 modprobe -r uhci_hcd すると同時に high pitch noise も消えた。

high pitch noise (2)

BIOS を 1.06 に上げると、high pitch noise が抑制されるという情報が thinkwiki.org に書いてあった。

lenovo のサイトを見てみると、なるほど 2006/05/30 付けで、BIOS update が出ている。そこには、

バッテリーモードで USB1.1デバイスをシステムに接続した時、
本体よりノイズが発生する場合がある問題を修正しました。

という記述が! 上述の uhci_hcd module を外したときの挙動と合致していますね。

で、BIOS update してみました。その結果、uhci_hcd module を load したままで battery 駆動時の high pitch noise は消えることを確認。 しかし残念ながら、uhci_hcd module を load したままの状態でバッテリー駆動時間が短くなるという事象には、何の変化もありませんでした。 uhci_hcd module の電力管理について調べてみるしかないなぁ。。。

high pitch noise(3)

(どの kernel version からか不明だが)現在使っている kernel 2.6.18-rc2 で high pitch noise が再発していることに気づいた。んー?なんでだろう?

wireless

Intel Pro/Wireless 3945ABG。http://ipw3945.sourceforge.net/ に従って設定することで利用可能。

ieee80211-1.1.14, ipw3945-1.0.12, ipw3945-ucode-1.13, ipw3945d-1.7.22

security hole があったりするので、最新のものを入れるべき。

vje3.0 + esecanna, scim + scim-canna

日本語入力を改善するために、vje + esecanna を入れる。

さらに、kinput2 の代わりに scim を試してみることにする。

VGA外部出力

ok。Xorg-7.1 を入れた。xorg.conf

snd_hda_intel

音も ok。snd_hda_intel を使えば良い。

invalid argument とかエラーが出たが、module を unload & load したら直った。

ヘマ

忙中に閑あり。思いつきでシステムを入れ替えようとして、 誤ってホームディレクトリのパーティションを消してしまった。 間抜けすぎ。。。

Plamo 4.21 に

環境の再構築。/dev/sda5 を / 、/dev/hda6 を swap 、/dev/sda8 を /home に。/dev/sda7 は古い Plamo 4.2 システム。

wireless (2)

kernel 2.6.18? あたりから、linux/config.h が linux/autoconf.h になった。これに伴い、ipw3945-x.x.x の make で「linux/config.h が無い」とかいうエラーが出る。ipw3945-1.x.x/ipw3945.h の 32 行目あたり、

#include <linux/config.h>

を次のように修正すればよい。

#include <linux/autoconf.h>

vje + esecanna + uim

という組み合わせを試す。terminal での uim-fep による入力、gtk program における uim-xim での入力、共に ok。~/.xinitrc へ以下のように記述

XIM="uim-xim"
export GTK_IM_MODULE=uim
export XMODIFIERS="@im=uim"
if [ -x /usr/local/bin/uim-xim ]; then
    /usr/local/bin/uim-xim &
fi

uim & gtk

Firefox などを起動する際に

/usr/lib/gtk-2.0/2.4.0/immodules/im-uim.so が見つからない

といった警告が出て、uim での入力ができない場合には、 /usr/etc/gtk-2.0/gtk.immodules の中の im-uim.so に関するエントリを削るとうまくいくこともある。(対症療法的)

uim-canna の on/off キー割り当て変更

Ctrl + \ という uim-canna の on/off 切り替えのキー割り当てが気に入らない。 というわけで、~/.uim に以下のように書いてカスタマイズ。(uim-1.4.x の場合)

(define-custom 'canna-on-key '("<Alt> " generic-on-key)
               '(canna-keys2)
               '(key)
               (_ "[Canna] on")
               (_ "long description will be here"))

(define-custom 'canna-off-key '("<Alt> " generic-off-key)
               '(canna-keys2)
               '(key)
               (_ "[Canna] off")
               (_ "long description will be here"))

(古い uim では、"<Alt>\ " のようにスペースの前に \ を付加すること)

これで、 Alt + Space で on/off できるようになります。(Mac風:p)

/usr/local/share/uim/canna-key-custom.scm の該当箇所を上記のように修正することでも良いでしょう。

firefox と uim-xim

google 検索窓で入力中に firefox が応答しなくなることがある。とりあえず、uim-xim --async で起動すれば逃げられるらしい。

wireless (3)

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.17

make
make install

driver - ipw3945-1.2.0

ln -s /usr/bin/grep /bin/
IEEE80211_IGNORE_DUPLICATE=y make
make install

iw commands - wireless_tools.28

make
make install

memory suspend

考えてみると、どこにもメモをしておかなかった気がするので、ここに書いておく。ハイバネーションではなくメモリーサスペンドするには、

echo "mem" > /sys/power/state

これでメモリーサスペンドする。LCDを開けるとメモリーサスペンドから復帰できる。

HDD の代わりに SSD にシステムインストール

Mtron MSD3000 を入手(2008/May/15)。5GB ほど領域確保して、Ubuntu 8.04 Desktop 版を入れてみた。楽ちんですねぇ、Ubuntu は。細かい調整はこれから。

TZ90 から Plamo の環境を移植

Ubuntu は便利だけれど、軽い環境を作るにはやはり Plamo ということで、とりあえず TZ90 のシステムを移植することにした。SSD を TZ につなぎ、えいやっと、ディスクコピー。その後、x60s の環境に合わせた設定変更などを行う。 TZ90 で構築していた環境は、Plamo4.22 base で、kernel は 2.6.25.4 + tuxonice-3.0-rc7、iwl3945 driver、Xorg7.3 などなど。kernel option 等は、X60s に合わせたものに変更。

輝度調整キーが効かない

Xorg7.3 で、輝度調整キー Fn+Home, Fn+End が効かない。結論としては、かつて作った xf86-video-intel driver を update すれば良かった。 こっちを参照。

消費電力

uhci_hcd を modprobe -r すると、消費電力が下がる。今のところ 9W 程度。(無線は有効にしていて。)

xfce-4.4.2

make して入れてみた。なるほど、これは使いやすいですね。 xfce-4.4.2 binary

kernel 2.6.25.6 + tuxonice-3.0-rc7

kernel update

kernel 2.6.25.8 + tuxonice-3.0-rc7

kernel update

kernel 2.6.26 + tuxonice-3.0-rc7(git)

kernel update

kernel config -> config-2.6.26+tuxonice3.0rc7

make-3.81

git で取ってきた ffmpeg を make しようとすると

make: *** virtual memory exhausted. (仮想メモリが足りないよ)

といって、make できない。make の version を 3.81 に上げれば解決する。(Plamo 4.22 上で作った make-3.81 のバイナリ→make381.tgz)

ffmpeg

というわけで、git-8b87733 を Plamo-4.22 上で make した。 固めたものは→ffmpeg.tgz /usr/local に展開される。適当に make しただけなので、ちゃんと使えるかどうかはテストしてません ;p

ffmpeg に関するメモ

gnuplot 4.2.3

この子(x60s)だけ 4.2.2 だったので 4.2.3 に上げる。

kernel 2.6.26.2 + tuxonice-3.0-rc7(git)

kernel update

kernel 2.6.26.3 + tuxonice-3.0-rc7(git)

kernel update

kernel config を変えて、cgroup を試してみることに。

cgroup (その1)

root になって、

# mkdir /cgroup
# mount -t cgroup -o memory none /cgroup
# cd /cgroup/
# mkdir /cgroup/hogehoge
# echo '10014' > /cgroup/hogehoge/task
# echo '16M' > /cgroup/hogehoge/memory.limit_in_bytes

ここで 10014 というのは firefox-bin の PID 。これで firefox-bin の使用メモリを 16MB に制限することができるのかなと思ったのだが、ps や top で調べると、16MB 以上使っているみたいにみえる。単位が違うのか、何か勘違いしているのか。時間をさがして、もうちょっと調べてみよう。

kernel 2.6.26.5 + tuxonice-3.0-rc7(git)

kernel update

Plamo 4.5rc1

4.22 から 4.5rc1 へ。何事もなくインストール完了。

kernel 2.6.26.6 + tuxonice

kernel update

wireless まわり

wireless_tools を version 29 に上げ、iwlwifi-3945-1.ucode を /lib/firmware ディレクトリに入れる。これで 3945 は ok。

xfce4-battery-plugin

入れる。

省電力

echo 5 > /sys/bus/pci/drivers/iwl3945/0000:03:00.0/power_level
echo min_power > /sys/class/scsi_host/host0/link_power_management_policy
echo 5 > /proc/sys/vm/laptop_mode
ethtool -s eth0 wol d
echo 1500 > /proc/sys/vm/dirty_writeback_centisecs

kernel 2.6.27.2 + tuxonice-3.0rc7

kernel update。resume 時に X が落ちる?

...
(II) ThinkPad Extra Buttons: On
(II) Video Bus: On
(EE) Read error: No such device (19, -1 != 16)
(II) TPPS/2 IBM TrackPoint: Off
(II) TPPS/2 IBM TrackPoint: Off
(II) UnloadModule: "evdev"
(II) Video Bus: On
(II) <default pointer>: ps2EnableDataReporting: succeeded

Backtrace:
0: X(xf86SigHandler+0x73) [0x80c67f3]
1: [0xffffe400]

Fatal server error:
Caught signal 4.  Server aborting

resume 時の video 周りのタイミングの問題かな。 /etc/hibernate/common.conf の 16行目あたりの

HibernateVT 15

を生かせば良さそう。hibernate の前後で sleep を入れることでも回避可能。

ImageMagick 6.4.4

build して install

gnuplot 4.2.4

configure は、こんなかんじ。

./configure --prefix=/usr --with-x --with-readline=gnu --enable-history-file

省電力(2)

ちょっと変えてみた

#!/bin/bash
echo 5 > /sys/bus/pci/drivers/iwl3945/0000:03:00.0/power_level
echo 5 > /proc/sys/vm/laptop_mode
ethtool -s eth0 wol d
echo 1500 > /proc/sys/vm/dirty_writeback_centisecs
echo min_power > /sys/class/scsi_host/host0/link_power_management_policy
mount -o remount,noatime /
/bin/echo 5 >/sys/module/usbcore/parameters/autosuspend
for i in /sys/bus/usb/devices/*/power/autosuspend; do /bin/echo 1 > $i; done
for i in /sys/bus/usb/devices/*/power/level; do /bin/echo auto > $i; done
/bin/echo 5 > /sys/module/snd_hda_intel/parameters/power_save

kernel 2.6.27.4 + tuxonice3.0-rc7(git)

kernel を上げた。 気づいたら ks2io (kernel thread?) process が CPU 100% になっていた。何か塩梅が悪いかんじ。 kernel 2.6.27.2 + tuxonice3.0-rc7(git) に戻す。

IBM Rescue and Recovery with Rapid Restore が起動しない

ちょっと仕事関係で英語版 Windoze XP が必要になったので、オリジナルの HDD を載せ、工場出荷時状態に戻す事にした。ThinkPad には、IBM Rescue and Recovery with Rapid Restore とかいうツールがあって、これを使えばリカバリー領域から工場出荷状態に戻す事ができる。

IBM Rescue and Recovery with Rapid Restore を起動する為に、電源 ON 後に ThinkVantage ボタンを押してみたが、Rescue and Recovery with Rapid Restore を起動する画面にならない。リカバリー領域は消さずに残してあるので、boot sector あたりを grub で書き換えてしまったことが原因かもしれない。とすると、grub の console 画面でリカバリー領域から起動するようにしてしてやればいいはず。で、Windoze を起動する場合を真似して以下のようにしたら rescue and Recovery を起動できた。

rootnoverify (hd0,1)
chainloader +1
boot

ThinkPad のサポートページへ行けば、Rescue and Recovery を起動する為の Floppy disk image とか置いてあるし、それ以外の方法も詳しく説明してあります。さすが ThinkPad、安心して使えますね。

再始動

(2013/Mar/01) Plamo 5.0 (x86) を入れて復活。ぼちぼち設定する。 バッテリーが死んでいるっぽいので、4セルバッテリーを注文中。

network 周り

とりあえず netconfig.tradnet で loopback を選んでおき、必要な時に有線(eth0)や無線(wlan0)を有効にする方針で。

無線(intel pro/wireless 3945abg) に関しては firmware が必要なので、ここからダウンロードして、/lib/firmware/ の中に ucode ファイルを設置。これで無線アダプタが利用できるようになる。

kernel update

3.8.6 + tuxonice

SDカードやUSBメモリ

自動的にマウントできるのだが、/run の permission が 700 のために一般ユーザが中身を見ることができない。/run を 755 に。

powertop

ここから取ってきて入れる

volume up, volume down, mute ボタン

うーん、なぜ効かない? → (OSDは出ないけど)ボタン自体は効いていた

Tpb

特殊キー(volume ボタンとか輝度調整ボタンとか)を押したときに OSD を表示する tpb という小さなプログラムを入れてみる。それに必要な xosd も入れる。

/dev/nvram にアクセスするため、/dev/nvram の permission を変える or tpb コマンドに s-bit を立てる、などをする必要あり。

画面下に表示できることは分かったけど、xfce の OSD を動くようにした方がいいような...

East Asian Ambiguous

Terminal を使って日本語等を表示した際に、ある種の記号文字の幅が正しく扱われず表示が崩れることがあるので、例のごとく ~/.xinitrc に以下の一行を加える

export VTE_CJK_WIDTH=1

unicode な k14 を入れるなど

X11.app 上で使う terminal の中程に記述している unicode な k14 フォントを入れて、

uxterm -u8 -cjk_width -fn a14 -fw k14u -geometry 80x50

とかして uxterm で使えるように設定。

やはり k14 フォントは落ち着くなぁ。

cpufreqd.conf

こじまみつひろさんの記事を眺めながら試してみるものの、、、 あれれ? うまくいかない?? cpufreqd が

get_class_device_attribute: couldn't open /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:00/PNP0C09:00/PNP0C0A:00/power_supply/BAT0/current_now (No such file or directory)
acpi_battery_init        : Couldn't open BAT0 attributes

みたいな log を出力してる...(さっさと諦めて、laptop-mode-tools を使う方向に)

laptop-mode-tools

kernel update

3.8.8 + tuxonice

kernel update

3.8.10 + tuxonice

Olasonic TW-D7WM

/proc/asound/cards の該当部分
 1 [DAC            ]: USB-Audio - USB Audio DAC
                      Burr-Brown from TI USB Audio DAC at usb-0000:00:1d.2-1, full speed

USB 接続で外部スピーカーとして使う。特別なことをする必要はなかった。

kernel update

3.9.5 + tuxonice

kernel update

3.9.6 + tuxonice

kernel update

3.10.33 + tuxonice

kernel update

3.10.53 + tuxonice

Plamo Linux 5.3.1

リリースされた 5.3.1 に上げる。kernel は 3.14.31 + tuxonice に。 後はちょこちょこ設定しただけ。

Last modified:2015/02/05 00:31:26
Keyword(s):[Linux] [note pc] [ThinkPad] [X60s]
References:[Linux] [ThinkPad X200s]