ThinkPad T22 のチップセットまわりを調べてみることにした。Vine Linux 3.1 がスピードステップで動作するようになるかも知れない。
■ ■ ■
サーバに使用している機種は ThinkPad T22 (2647-9EJ)。OS は Vine Linux 3.1 で,このマシン上ではスピードステップとして動作しないことが分かった(nlog(n): cpufreq は未対応だった)。
しかし,まだ望みはある。SpeedStep and cpufreq. によると,チップセットのサウスブリッジが PIIX4 のときkernel-2.4, 2.5, 2.6-test で動作するという報告がある。Vine Linux 3.1 の現在のカーネルは kernel-2.4.27 なので,いけるかも! という期待が膨らむ。
まずはチップセット周りの調査が必要である。恐らくは speedstep-smi モジュールを使うことになるだろうが,それを調べるプログラムが公開されている。SpeedStep and cpufreq. から speedstep-detect をダウンロードして展開。make してから root になって実行してみた。
# cd speedstep-detect-0.01
# ./speedstep-detect
dmi_scan: return:
DMI 2.3 present.
46 structures occupying 1585 bytes.
DMI table at 0x1FFF0000.
BIOS Vendor: IBM
BIOS Version: 16ET32WW (1.12 )
BIOS Release: 04/27/2004
System Vendor: IBM
Product Name: 26479EJ
Version: Not Available
Board Vendor: IBM
Board Name: 26479EJ
Board Version: Not Available
Trying Intel's int15 GSIC:
BIOS support GSIC call:
signature: GSIC
command port = 0x00b2
command = 0x0082
event port = 0x00c000b3
flags = 0x07d00000
probing chipsets: Found PIIX4
pmbase at 0x1000
Dumping PM IO register for this southbridge:
PMCNTRL (0x1004): 0x1401
(0x1006): 0x0000
GPEN (0x100e): 0x0200
PCNTRL (0x1010): 0x00003200
(0x1016): 0x0000
DEVSTS (0x101c): 0x00000000
GLBLEN (0x1020): 0x0400
(0x1022): 0x00000000
GLBCTL (0x1028): 0x03011f05
DEVCTL (0x102c): 0x02000000
GPIs: (0x1030): 0x070862
(0x1033): 0x00
GPOs: (0x1034): 0x7f7786ff
(0x1038): 0x62 0x08 0x07 0x00 0xff 0x86 0x77 0x7f
You need to boot on AC and battery and see if GPOs change.
Then, see if one bit change in between, you have then to note the number
of this bit. This will be the gpo_hilo= number kernel option for
enabling the speedstep-piix4 module under Linux.
..28..24..20..16..12...8...4...0
GPOs: (0x1034): 0x7f7786ff 01111111011101111000011011111111
機種名やら BIOS のバージョンやらが全部出てきて,少し公開するのが恥ずかしいような気になるくらい。最後のメッセージに「AC とバッテリーをつないで GPO が変わるかどうかを調べろ」というのがある。上は AC アダプタだけを接続し,バッテリーは外した状態での実行結果である。バッテリーをつけっぱなしにしておくと,バッテリーが死んでしまうので外してあるのだ。着色した部分については後述。
AC アダプタとバッテリーの両方を接続し,リブートした後に speedstep-detect を実行してみる。
# ./speedstep-detect
dmi_scan: return:
DMI 2.3 present.
46 structures occupying 1585 bytes.
DMI table at 0x1FFF0000.
BIOS Vendor: IBM
BIOS Version: 16ET32WW (1.12 )
BIOS Release: 04/27/2004
System Vendor: IBM
Product Name: 26479EJ
Version: Not Available
Board Vendor: IBM
Board Name: 26479EJ
Board Version: Not Available
Trying Intel's int15 GSIC:
BIOS support GSIC call:
signature: GSIC
command port = 0x00b2
command = 0x0082
event port = 0x00c000b3
flags = 0x07d00000
probing chipsets: Found PIIX4
pmbase at 0x1000
Dumping PM IO register for this southbridge:
PMCNTRL (0x1004): 0x1401
(0x1006): 0x0000
GPEN (0x100e): 0x0200
PCNTRL (0x1010): 0x00003200
(0x1016): 0x0000
DEVSTS (0x101c): 0x00000000
GLBLEN (0x1020): 0x0400
(0x1022): 0x00000000
GLBCTL (0x1028): 0x03011f05
DEVCTL (0x102c): 0x02000000
GPIs: (0x1030): 0x070862
(0x1033): 0x00
GPOs: (0x1034): 0x7f7786fe
(0x1038): 0x62 0x08 0x07 0x00 0xfe 0x86 0x77 0x7f
You need to boot on AC and battery and see if GPOs change.
Then, see if one bit change in between, you have then to note the number
of this bit. This will be the gpo_hilo= number kernel option for
enabling the speedstep-piix4 module under Linux.
..28..24..20..16..12...8...4...0
GPOs: (0x1034): 0x7f7786fe 01111111011101111000011011111110
最後の方の赤色の行が微妙に違っている(最初の行はコマンドラインなので別)。この違いを控えておけというのである。
2005年9月23日追記:
Vine Linux 3.2 で動作するようになりました (nlog(n): カーネルの再構築でスピードステップに対応)。
Posted by n at 2005-08-23 01:07 | Edit | Comments (0) | Trackback(0)