2012/05/01(Tue)
○[NetBSD][Hardware] HP mini 5103
いろいろ *1ストレスが溜まってたので HP mini 5103を今年の1月末くらいに衝動買いしました。
お約束。
HP mini 5103のATOMのN455載ってる、先月在庫処分で25k前後で投げ売りしてたから見た瞬間に即決した。 カッコイイ、マジで。そして速い。電源を入れると起動する、マジで。ちょっと感動。 しかもx86_32なのにUEFIだから操作も簡単で良い。ATOMは力が無いと言われてるけど個人的には速いと思う。 Corei3と比べればそりゃちょっとは違うかもしれないけど、そんなに大差はないって店員も言ってたし、それは間違いないと思う。 ただbuild.sh releaseとか流すとちょっと怖いね。寝る前に仕掛けても朝になっても終わってないし。 速度にかんしては多分Corei3もATOMも変わらないでしょ、前使ってたのがMobile Pentium3 600MHzだから知らないけど 同じIntelでそんなに変わったらアホ臭くてだれもネットブックなんて買わないでしょ。個人的にはATOMでも十分に速い。 嘘かと思われるかも知れないけど東北新幹線車中で275キロ位でマジで34GTRを抜いた。 つまりはGTRですらATOMのN455には勝てないと言うわけで、それだけでも個人的には大満足です。
ここんとこNetBSDをVMware Workstation上でしか動かしてなかったことを深く反省し、Windows7 Starterを抹殺して-current入れてみました
(dmesgは
こちら)
@ドライバサポート状況
LANは有線(Marvell Yukon 88E8059)無線(Broadcom 43224AGN)ともに認識しません。とりあえずそこらに転がってたrum(4)でしのいでます。
前者はOpenBSDではmsk(4)で動いてるみたいなのでなんとかしたいところ、単純にid足せば動くと思ったんだけどなんか足りてないみたい。
XについてはNのbaseのintel driverでは動きません、xorg.confでdriverにvesaを指定しましょう。
Section "Device" ... Driver "vesa" EndSection
まぁネットブックなんで動画とかそも無理ゲーだし、これまで
NeoMagicとか
Silicon Motionみたいな伝説のウンコdriverを使い続けてきた
後遺症により、Xに速度なんてものは求めてないので
netbsd-drmgemを試すまでもないかなーと(白目
@不具合など
ひとつ大きな悩みの種が。このクソ寒かった1~2月に暖房器具レスな私の部屋であっても空冷ファンが謎の常時回転状態で
バッテリ寿命も公称の4~5時間駆動とか不可能なレベル。そして何より窓から投げ捨てたくなる程度に騒々しいのですよな。
ということで こうなる前に静音化してみました。
1. acpidump(1)でHP mini 5103のDSDTをASL(ACPI Source Language)ファイルに落とします。
# acpidump -dt >hp_mini_5103.asl
acpidump(1)は今時だとbaseに入ってますので、昔のようにpkgsrc/sysutils/acpidumpは不要です。
2. ASLファイルのファンの温度制御周りをエディタで編集します。
$ cp -p hp_mini_5103.asl hp_mini_5103.asl.orig
$ vi hp_mini_5103.asl
ググると HP mini 5102/5103では
Name (CPFS, Package(0x06)
{
0x64,
0x5A,
0x50,
0x46,
0x2D,
0x00
})
このCPFSの部分がファン制御とのことですので、こいつを適宜編集します。この記事によると
Name (CPFS, Package(0x06)
{
0x64,
0x5A,
- 0x50,
- 0x46,
- 0x2D,
+ 0x36,
+ 0x24,
+ 0x12,
0x00
})
とすることで低温時のファンの回転速度を落とせるようです。具体的には
acpitz0: active cooling level 0: 83.0C acpitz0: active cooling level 1: 73.0C acpitz0: active cooling level 2: 63.0C acpitz0: active cooling level 3: 56.0C acpitz0: active cooling level 4: 43.0C
のそれぞれの温度に対応するファンの回転数、ということみたい。
2. 編集したASLファイルをAML(ACPI Machine Language)に変換(-tcスイッチでCコード向けのhexデータを出力)します。
$ iasl -tc hp_mini_5103.asl
Intel ACPI Component Architecture
ASL Optimizing Compiler version 20110623-32 [Apr 22 2012]
Copyright (c) 2000 - 2011 Intel Corporation
...
Compilation complete, 2 Errors, 7 Warnings, 3 Remarks, 3895 Optimizations
$ ls *.hex
hp_mini_5103.hex
iasl(1)も今時だとbaseに入ってますので、pkgsrc/sysutils/acpica-utilsは不要。
致命的エラーとか警告なんかがワラワラ出ますが、村上春樹風に「やれやれ」と肩をすくめてやり過ごしましょう。 hexファイルが出力されてれば気にしなーい。
3. 2で生成したDSDTファイルを組み込んだkernelを作成します、手順はacpi(4)に書いてありますが、要はkernel configに
options ACPI_DSDT_OVERRIDE options ACPI_DSDT_FILE="\"hp_mini_5103.hex\""
の2行を追加するだけです。AML(hp_mini_5103.hex)はsrc/sys/dev/acpi/acpica/OsdMisc.cと同じディレクトリに放り込んでおけばOK。
$ cp hp_mini_5103.hex /usr/src/sys/dev/acpi/acpica/
$ cd /usr/src/sys/arch/i386/conf
$ cat >HP_MINI_5103
include "arch/i386/conf/GENERIC"
options ACPI_DSDT_OVERRIDE
options ACPI_DSDT_FILE="\"hp_mini_5103.hex\""
^D
$ cd /usr/src
$ ./build.sh kernel=HP_MINI_5103
$ cd sys/arch/i386/compile/obj/HP_MINI_5103
$ su
# make install
kernelを入れ替えて再起動すればOKです(くれぐれも自己責任でおながいいたします)。