雑記 - ThinkPad X60s Diff
- Added parts are displayed like this.
- Deleted parts are displayed
like this.
2006年 3月、ThinkPad X60s (1702-C6E)を入手しました。Dual Core CPU である Intel Core Duo processor L2300 を搭載した B5 サブノート。もちろん Linux を入れて使います。
ということで、Linux のインストール & 設定作業をメモすることにしました。(原則、時系列に沿って記載します。下に行くほど新しいです。)
いつものように、あくまで私的な memo ですので、詳細の全ては記載していません。あしからず。
!いくつかの情報
*[[スペック|X60sのスペック]]
*{{attach_anchor('devcon_hwids_.txt')}}
!下準備
まず、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時間ちょいくらい持ちそうな感じです。カスタマイズしたらどこまで伸ばせるか、これは期待できそうです。{{attach_view('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." とか書いてあるなぁ。
[[この辺りの話|http://www.tgdaily.com/2006/01/28/toms_hardware_uncovers_power_drain_issue/page2.html]]と関係あるかもしれないしないかもしれない。
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 を入れた。{{attach_anchor('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 すれば良かった。
[[こっち|http://ult.riise.hiroshima-u.ac.jp/~nagato/?Xorg7.3+binary+packages+for+Plamo-4.22]]を参照。
!消費電力
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 -> {{attach_anchor('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|http://ult.riise.hiroshima-u.ac.jp/~nagato/make381.tgz]])
!ffmpeg
というわけで、git-8b87733 を Plamo-4.22 上で make した。
固めたものは→[[ffmpeg.tgz|http://ult.riise.hiroshima-u.ac.jp/~nagato/ffmpeg.tgz]] /usr/local に展開される。適当に make しただけなので、ちゃんと使えるかどうかはテストしてません ;p
!ffmpeg に関するメモ
[[FFmpeg FAQ|http://fixedpoint.jp/ffmpeg/faq.html]]
!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 が必要なので、[[ここ|http://wireless.kernel.org/en/users/Drivers/iwlegacy]]からダウンロードして、/lib/firmware/ の中に ucode ファイルを設置。これで無線アダプタが利用できるようになる。
!kernel update
3.8.6 + tuxonice
!SDカードやUSBメモリ
自動的にマウントできるのだが、/run の permission が 700 のために一般ユーザが中身を見ることができない。/run を 755 に。
!powertop
[[ここ|https://01.org/powertop/downloads]]から取ってきて入れる
!geeqie-1.1, Image-ExifTool-9.25, jhead-2.97
入れる
*[[http://sourceforge.net/projects/geeqie/files/]]
*[[http://www.sno.phy.queensu.ca/~phil/exiftool/]]
*[[http://www.sentex.net/~mwandel/jhead/]]
!volume up, volume down, mute ボタン
うーん、なぜ効かない? → (OSDは出ないけど)ボタン自体は効いていた
!Tpb
特殊キー(volume ボタンとか輝度調整ボタンとか)を押したときに OSD を表示する tpb という小さなプログラムを入れてみる。それに必要な xosd も入れる。
*[[libxosd|http://sourceforge.net/projects/libxosd/files/?source=navbar]]
*[[Tpb|http://www.nongnu.org/tpb/]]
/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
[[こじまみつひろさんの記事|http://gihyo.jp/lifestyle/serial/01/ganshiki-soushi/0025]]を眺めながら試してみるものの、、、
あれれ? うまくいかない?? 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
[[Laptop Mode Tools|http://samwel.tk/laptop_mode/packages/tarball]]
!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 に。
後はちょこちょこ設定しただけ。
ということで、Linux のインストール & 設定作業をメモすることにしました。(原則、時系列に沿って記載します。下に行くほど新しいです。)
いつものように、あくまで私的な memo ですので、詳細の全ては記載していません。あしからず。
!いくつかの情報
*[[スペック|X60sのスペック]]
*{{attach_anchor('devcon_hwids_.txt')}}
!下準備
まず、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時間ちょいくらい持ちそうな感じです。カスタマイズしたらどこまで伸ばせるか、これは期待できそうです。{{attach_view('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." とか書いてあるなぁ。
[[この辺りの話|http://www.tgdaily.com/2006/01/28/toms_hardware_uncovers_power_drain_issue/page2.html]]と関係あるかもしれないしないかもしれない。
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 を入れた。{{attach_anchor('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 すれば良かった。
[[こっち|http://ult.riise.hiroshima-u.ac.jp/~nagato/?Xorg7.3+binary+packages+for+Plamo-4.22]]を参照。
!消費電力
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 -> {{attach_anchor('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|http://ult.riise.hiroshima-u.ac.jp/~nagato/make381.tgz]])
!ffmpeg
というわけで、git-8b87733 を Plamo-4.22 上で make した。
固めたものは→[[ffmpeg.tgz|http://ult.riise.hiroshima-u.ac.jp/~nagato/ffmpeg.tgz]] /usr/local に展開される。適当に make しただけなので、ちゃんと使えるかどうかはテストしてません ;p
!ffmpeg に関するメモ
[[FFmpeg FAQ|http://fixedpoint.jp/ffmpeg/faq.html]]
!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 が必要なので、[[ここ|http://wireless.kernel.org/en/users/Drivers/iwlegacy]]からダウンロードして、/lib/firmware/ の中に ucode ファイルを設置。これで無線アダプタが利用できるようになる。
!kernel update
3.8.6 + tuxonice
!SDカードやUSBメモリ
自動的にマウントできるのだが、/run の permission が 700 のために一般ユーザが中身を見ることができない。/run を 755 に。
!powertop
[[ここ|https://01.org/powertop/downloads]]から取ってきて入れる
!geeqie-1.1, Image-ExifTool-9.25, jhead-2.97
入れる
*[[http://sourceforge.net/projects/geeqie/files/]]
*[[http://www.sno.phy.queensu.ca/~phil/exiftool/]]
*[[http://www.sentex.net/~mwandel/jhead/]]
!volume up, volume down, mute ボタン
うーん、なぜ効かない? → (OSDは出ないけど)ボタン自体は効いていた
!Tpb
特殊キー(volume ボタンとか輝度調整ボタンとか)を押したときに OSD を表示する tpb という小さなプログラムを入れてみる。それに必要な xosd も入れる。
*[[libxosd|http://sourceforge.net/projects/libxosd/files/?source=navbar]]
*[[Tpb|http://www.nongnu.org/tpb/]]
/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
[[こじまみつひろさんの記事|http://gihyo.jp/lifestyle/serial/01/ganshiki-soushi/0025]]を眺めながら試してみるものの、、、
あれれ? うまくいかない?? 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
[[Laptop Mode Tools|http://samwel.tk/laptop_mode/packages/tarball]]
!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 に。
後はちょこちょこ設定しただけ。