iPod Touch を JailBreak してみた。

iPod Touch をアップルストアーで予約して 10/2 に手もとに届いた。その後ずっと利用していて、ファームウェアの Version1.1.2 が出た所でアップデートしたんだけど、JailBreak してみたくなったので試してみた。

iPod Touch の無線 LAN はすごい便利なんだけど、メールが読めない点や GoogleMap が欲しかったりしたので「二月まで待っていられない。JailBreak するしかないかー。」とか思い試してみた。

今回やる作業は以下の通り。

・ファームウェアを Ver.1.1.2 から Ver.1.1.1 にデグレード
・jailbreakme.com にアクセス
・JailBreak を 実行
・iPhone の Ver.1.1.2 のファームウェアからメールとGoogleMapを抜きだし

情報を集めてみると以下のような URL 見ると比較的容易に行える。

http://japan.zdnet.com/security/story/0,3800079245,20358777,00.htm
http://japan.zdnet.com/security/story/0,3800079245,20359973-7,00.htm
http://d.1555.info/2007/10/12/ipodtouch-jailbreak/
http://kitaj.no-ip.com/tdiary/20071113.html

で、JailBreak が成功した iPod Touch はこんな感じ。メールと GoogleMap は iPod Phone の最新のファームウェアから抜き取って、scp とかで iPod Touch に持って行く。ってのが凄い技だなぁ。

snap_071958.jpg

iPod Touch は二つのパーティションに別れているんだけど、大体以下みたいな感じ。もう / パーティションの容量が無い・・。

root@/var/root > df -k
Filesystem     1K-blocks      Used  Available Use%  Mounted on
/dev/disk0s1     307200   288500      15628  95%   /
/dev/disk0s2   7622368 5073916  2548452   67%  /private/var

 
まぁ、色々いじってみたけど、非常に楽しい。UNIX が PDA の中に入った。と言う感じ。フツーの PDA の中に Linux や NetBSD をインストールして hoge るのと違って最初から UNIX が入っているのでタッチパッドのキーボードとか使えちゃうとか、インターフェースが全部使えちゃうので凄い嬉しい。もう NotePC 持ち歩く必要ないかなぁ。とか思ってしまう。

と、言う事で iPod Touch の UNIX らしい情報をちょっと書いておきますね。気がついた点としては

・IPv6 スタックありません。
・Bluetooth は内蔵していなさそう。

って感じでしょうかか。

kern.ostype = Darwin
kern.osrelease = 9.0.0d1
kern.osrevision = 199506
kern.version = Darwin Kernel Version 9.0.0d1:
Wed Oct 10 00:07:50 PDT 2007;
root:xnu-933.0.0.204.obj~7/RELEASE_ARM_S5L8900XRB
kern.maxvnodes = 2880
kern.maxproc = 52
kern.maxfiles = 12288
hw.machine = iPod1,1
hw.model = N45AP
hw.ncpu = 1
hw.byteorder = 1234
hw.physmem = 121634816
hw.usermem = 98885632
hw.busfrequency = 103000000
hw.cpufrequency = 412000000
hw.cachelinesize = 32
hw.l1icachesize = 16384
hw.l1dcachesize = 16384
hw.tbfrequency = 6000000
hw.memsize = 121634816
hw.availcpu = 1
hw.busfrequency: 103000000
hw.busfrequency_min: 103000000
hw.busfrequency_max: 103000000
hw.cpufrequency: 412000000
hw.cpufrequency_min: 412000000
hw.cpufrequency_max: 412000000
hw.cachelinesize: 32
hw.l1icachesize: 16384
hw.l1dcachesize: 16384
hw.memfrequency: 137333333
hw.memfrequency_min: 137333333
hw.memfrequency_max: 137333333
hw.prffrequency: 51500000
hw.prffrequency_min: 51500000
hw.prffrequency_max: 51500000
hw.fixfrequency: 24000000
hw.tbfrequency: 6000000

 
ちなみにバイナリは Mach-O executable arm でユニバーサルバイナリではなく ARM のバリナリでした。

せっかくなので、kldstat(MacOSX 風に言うと kextstat) の結果もつけておきます。実に 65 個ものカーネルモジュールがロードされています。

Index Name
1     com.apple.kernel
2     com.apple.kpi.bsd
3     com.apple.kpi.dsep
4     com.apple.kpi.iokit
5     com.apple.kpi.libkern
6     com.apple.kpi.mach
7     com.apple.kpi.unsupported
8     com.apple.iokit.IONVRAMFamily
9     com.apple.driver.AppleNMI
10   com.apple.iokit.IOSystemManagementFamily
11   com.apple.iokit.ApplePlatformFamily
12   com.apple.kernel.6.0
13   com.apple.kernel.bsd
14   com.apple.kernel.iokit
15   com.apple.kernel.libkern
16   com.apple.kernel.mach
17   com.apple.driver.FairPlayIOKit
18   com.apple.iokit.IOCoreSurface
19   com.apple.driver.AppleSerialKDP
20   com.apple.iokit.IOStorageFamily
21   com.apple.AppleDiskImageController
22   com.apple.driver.AppleS5L8900X
23   com.apple.iokit.IOHIDFamily
24   com.apple.driver.AppleM68Buttons
25   com.apple.iokit.IOSerialFamily
26   com.apple.driver.AppleOnboardSerial
27   com.apple.iokit.IOUSBDeviceFamily
28   com.apple.iokit.IOAccessoryManager
29   com.apple.driver.AppleARMPL192VIC
30   com.apple.driver.AppleARMPL080DMAC
31   com.apple.iokit.IOCryptoAcceleratorFamily
32   com.apple.driver.AppleS5L8900XCrypto
33   com.apple.driver.AppleS5L8900XUSBWrangler
34   com.apple.iokit.IOStreamFamily
35   com.apple.iokit.IOAudio2Family
36   com.apple.driver.AppleAMC
37   com.apple.iokit.IOFlashStorage
38   com.apple.driver.AppleS5L8900XFMC
39   com.apple.iokit.IOMobileGraphicsFamily
40   com.apple.driver.AppleH1CLCD
41   com.apple.iokit.IOSDIOFamily
42   com.apple.driver.AppleS5L8900XSDIO
43   com.apple.driver.AppleJPEGDriver
44   com.apple.driver.AppleMPVDDriver
45   com.apple.driver.AppleH1CameraInterface
46   com.apple.driver.AppleH264BPD
47   com.apple.driver.AppleMBX
48   com.apple.driver.AppleS5L8900XSerial
49   com.apple.driver.AppleImage2NORAccess
50   com.apple.driver.AppleMerlotLCD
51   com.apple.driver.AppleEmbeddedAccelerometer
52   com.apple.driver.AppleEmbeddedLightSensor
53   com.apple.iokit.AppleARMIISAudio
54   com.apple.driver.AppleWolfsonAudio
55   com.apple.driver.AppleWM8758Audio
56   com.apple.driver.ApplePCF50635PMU
57   com.apple.driver.AppleReliableSerialLayer
58   com.apple.driver.AppleMultitouchSPI
59   com.apple.driver.AppleS5L8900XIpodHAL
60   com.apple.driver.AppleNANDFTL
61   com.apple.iokit.IONetworkingFamily
62   com.apple.iokit.IO80211Family
63   com.apple.driver.AppleMRVL868x
64   com.apple.driver.AppleUSBMike
65   com.apple.driver.AppleUSBDeviceMux

 

全然話題が変わるのですが、GoogleMap で tokyo で検索したら以下が出ました。赤いまち針があるところが「tokyo」みたいなんですが、ふむー。オペラシティ辺りをさしてないかい? Apple Japan のあるところなんですけど・・;-)。

snap_072348.jpg

それにしても、技術者(クラッカか)の皆さんには感激します。お疲れ様でした。と、言うのも、以下の URL を読むとある意味凄いな。とか思ってしまったからです・・。こう言うネタって本当は褒めてはダメだんだよねぇ・・。


http://amegan.com/blog/mtarchives/003940.html

ASUS M2A-VM HDMI の続き。そのさん。

さて、ASUS M2A-VM HDMI で FreeBSD を楽しむスレッドのそのさんです。前回は acpi_ppc.ko で Cool’n’Quiet を有効にするお話でした。

今回は IXP SB600 Serial ATA Controller のお話です。ちょっと google していたら、以下の URL を発見。

http://lists.freebsd.org/pipermail/freebsd-bugs/2007-May/024410.html

今まで ASUS M2A-VM HDMI マザーボードと言うか、AMD690G チップセットは UDMA33 で HDD を認識して忌んだけど、上のパッチを適用すると ATA150 で認識するようになってくれた。

こっちがパッチ適用前のメッセージ。

ad4: 239372MB  at ata2-master UDMA33

 
こっちがパッチ適用後のメッセージ。

ad4: 239372MB  at ata2-master SATA150

 
S-ATA なので ad4 と認識されてしまうんだけど、それにしても ようやっと SATA150 になった。僕の 環境は FreeBSD/amd64 6.3-PRERELEASE なんだけど、まだ、CURRENT から降ってきていないみたい。なので、STABLE で利用したい人は上記のパッチを手バッチで自分のソースに当てましょう;-)。

まぁ、一応パッチを書いておきましたけど・・。

http://www.icmpv6.org/Prog/FreeBSD_patches/IXP_SB600SATA-6.3-PRERELEASE.patch

けど、すぐに STABLE に降ってくるんだろうねぇ。

後は、グラフィックチップだなぁ。

MacOSX 上で KDE4。

MacOSX 10.5、Darwin9.0.0。別の名を Leopard と言うんですけど、10/26 に秋葉ヨドバシに 18:20 位に行って、並んで買って来てしまった。この時に貰ったモノは T シャツ・iTMS の 1,500yen 分のクーポン券。後、ポイントも 700ポイント位ついたかなぁ。

でもって、こないだの週末に、バックアップして一旦全部消してからサラでインストールしてみた。現在利用ている最中ですけど・・。

・Safari が emacs のキーバインドを捨てたのはちょっとショックが大きい。
・ターミナルはせっかくタブに対応したんだけど、タブを移動するショートカットが無い。
・Space の使い方がいまいち解らない。アプリケーションを別のスペースに移動できないし・・。
・Doc は下にないとけっこうつまらないもの。

などなど、ちょっといじっただけでこれだけの不満が・・。まだ使い込んでないので本当は上記の問題は解決できるのかもしれないけどねぇ。今後の課題と言うことで。

で、今回の本題。

http://ranger.users.finkproject.org/kde/index.php/Home

MacOSX で KDE4 がネーテブに動作する。と言うもの。 FreeBSD で KDE3 を使っている僕にとっては素晴らしいことなんだけど、これの凄いのが、qt/Mac を利用しているので X11 が必要無い。なので MacOSX ネーテブに動作する。と言う点。

ターミナル・ブラウザ・オフィスアプリ・ゲームなどが利用できるようになる。凄いねぇー。

僕はまだインストールしてないんだけどね(^^;;。今晩早速試してみることにするですよー。

ってか、もっと MacOSX をたくさん触らないとなぁ。sendmail-8.14.2 はもうインストールしたんだけどねー。

SMP カーネルと uptime と CPU クロック。そのに。

前回、「SMP カーネルと uptime と CPU クロック。」で書いたことの続き。

SMPカーネルで acpi_ppc を利用した場合、CPU速度が上がらないと言う状態になっていた。ちょっとまとめてみると大体以下のような感じ。

・OS は FreeBSD/amd64 6.2-STABLE。
・cpufreq.ko を使わないで acpi_ppc.ko のみを kldload した場合。
・CPU が DualCore な環境。SMP カーネルであるのだが、 DualCPU ではない環境。

上記の状態の時に発生する現象。

1.make buildworld したとき CPU クロックが Cool’n’Quiet の一番低い速度で動作する。
2.make -j2 buldworld したとき CPU クロックは Cool’n’Quiet の一番高い速度で動作する。

つまり、上の場合はどんなに速い CPU を買って来ても全くもって CPU のフルスペックが利用できない状態に陥る。

ちなみに、シングルプロセスの非常に重いプログラムを動作させた場合も 1. の動作となる。しかし、マルチタスク・マルチスレッドな非常に重いプログラムを実行すると二つの Core を使ってくれるので 2. の状態になる。

これらの情報をもとに acpi_ppc.ko の作者である 福田さん にお伺いしてみました。そしたらその回答として以下の情報を頂きました。

・acpi_ppc.ko はマルチコアな環境に対応していない。
・acpi_ppc は top(1) と同じ動作をする。

との事でした。「top(1) と同じ動作」について少し書いてみたいと思います。

acpi_ppc は cp_time[] という kernel 変数から CPU 使用率を算出しクロックの制御を行なっているそうです。acpi_ppc における Cool’n’Quiet の CPU 速度のアップは CPU 使用率が 98% を超えたら一つ上のクロック設定に上げるようにしているそうなので、シングルプロセッサの場合は特に問題なく Cool’n’Quiet の機能が動作します。

しかし、マルチプロセッサの場合、シングルプロセスの重いプログラムを実行しても top で見る CPU 使用率は 50% のため、いつまで経っても Cool’n’Quiet の一つ上のクロック設定に上がることは無いそうです。当然シングルプロセスの重いプログラムを二つ実行した場合は一つ上のクロック設定に上がるようになります。

以上により acpi_ppc は SMP 環境ではちょっともったいないと言うことになります。しかし、まぁ、言われてみればその通りだなぁ。と言う気はしますが・・。

と、言うことで、僕は色々な場面で make -j2 を付けるようにしました。後、シングルプロセスの重いプログラムを実行する場合は kldunload acpi_ppc することにしました。kldunload acpi_ppc すると CPU 速度は最高速で動作するのでシングルプロセスの場合でも最高速で利用できます;-)。

ちなみに cpufreq.ko はマルチコアに対応していてシングルプロセスの重いプログラムを実行しても CPU 速度は変わるらしいです。まぁ、今回は cpufreq.ko が動作しないマザーボードを買ってしまったのでしょーがないですけど・・。

最後にですが、色々教えてくださった 福田さん。有り難うございました。

SMP カーネルと uptime と CPU クロック。

FreeBSD/amd64 6.2-STABLE で cvsup した後に make buildkernel するんだけど、その時に掛かった時間を /usr/bin/time で計ってみた。

Athlon X2 な CPU なので make buildkernel と make -j2 buildkernel の結果を比べてみた。結果は以下の通り。まぁ、2CPU で処理すると大体 1.5 倍の速度と言うことか・・。ちなみにこの時に利用したカーネルは SCHED_4BSD なスケジューラを利用。

1CPU 1380.26 real / 1006.97 user / 362.58 sys
2CPU 864.76 real / 708.34 user / 348.38 sys

で、なんで、こんなことをしたかと言うと、以下の疑問が出てきたから。

・2CPU で make した時の CPU ロードアベレージはちゃんと上がるの?
・1CPU で make しても Cool’n’Quiet の CPU 速度上がらないんだけど・・。

で、これらの疑問を持ちつつ、make 時に -j2 有り、無しを試してみました。その結果、解ったこと。

・2CPU で make -j2 したときの CPU 速度は大体いつも 2GHz 出ている。1CPU の場合は make に時間が掛かるけど Cool’n’Quiet の下の方の CPU 速度で make している。
・2CPU で make -j2 した時の CPU ロードアベレージは 2.6 辺りなんだけど、1CPU での make 時は1.4 位。

ふむぅ・・。つまり、デアルコアな CPU を買って来た場合 SMP カーネル作るけど、何かしらを make する時には -j2 オプション付けないと CPU の能力は半分しか使われていないと言うことがすごーーく良く分かった。

make buildworld や portupgrade の場合、CPU のフルパワーを使って早く終わって欲しいと思うものです。けど、実際には CPU の半分のパワーで make してたんですねぇ。

この件について /etc/make.conf 内に何かしらの設定をすれば 2CPU で make してくれると言う話を聞いたことがあるんだけど、make 時のスケジューリングの問題で make が途中で止まってしまう ports がある。と、話を聞いたこともあるし・・。まだまだ手動で -j2 と付けるしか手が無さそうですなぁ。

ちなみに、今回利用した FreeBSD は本来はデスクトップとして利用されており、KDE3 が起動しています。今回はテストのために X11、hald を停止しての実行でした。

make のために CPU のフルパワーは使っていただけたのでしょうか・・。

SpeedIt と chkfreq。

僕は Core2Duo 2GMHz な MacBook を持っている。人に教えていただいたのだが SpeedIt なるものが存在するみたい。

どんなものかと言うと、FreeBSD で言う所の cpufreq.ko みたいな感じ。そもそも Core2Duo は SpeedStep に対応しているはずなんだけど MacOSX 自体はこの機能を積んでないみたい。なので、外部から拾って来たカーネルモジュール(MacOSX 風に言うと「カーネルエクステンション」です)を kldload (MacOSX 風に言うと「kextload」です)してしまいましょう。と言う感じ。

さて、実際に MacOSX に SppedIt をインストールしてみましょう。以下の URL から SpeeditOSX10.4.10.zip をダウンロードしてどっかに展開します。

http://www.increw.com/en/downloads/index.php

展開した時にできた speedit.kext と言うディレクトリを root 権限で、/boot/modules/ が無いのでしょーがない。/Applications/ 辺りにコピーします。

FreeBSD ユーザは kextload に慣れていないので、.tcshrc 辺りに以下の設定を書いてしまいましょう;-)。で、source ~/.tcshrc を実行。うひひ。

alias  a       alias
a       kldload 'kextload \!*'
a       kldunload 'kextunload \!*'
a       kldstat 'kextstat \!*'

 
これで設定完了。後は以下のようにすれば良いでしょう;-)。実際にロードされたかは kldstat、カーネルモジュールを外す時は kldunload。おー。FreeBSD と一緒だ;-)。

# kldload /Applications/speedit.kext

 
さて、 speedit.kext を kextload すると新しい sysctl MIB が増えます。

speedit.currentfreq: 1000
speedit.minfreq: 1000
speedit.maxfreq: 2000
speedit.temp_is_valid: 1
speedit.temp: 58

 
Intel の SpeedStep が有効になっていたならば speedit.currentfreq の値が変わってもよさそうなものなのに変わらないねぇ・・。困ったよ。このカーネルモジュールが本当に有効になって、CPU 速度が可変になっているのかちょっと解らない・・。まぁ、けど、取り敢えずは動いているみたい。あぁ・・。

で、しばらく運用してみたけど、どうも動いているっぽいけど、やはりちゃんと CPU 速度は知りたいものだ。で、僕はハタと考えた。ここいら辺りに書いた日記では FreeBSD/amd64 において Cool’n’Quiet を有効にするための FreeBSD 謹製ではないカーネルモジュールがあるんだけど acpi_ppc と言うのね。この中に chkfreq と言うコマンドがあって、これが MacOSX で使えるのではないか。と。

と、言うとこで早速 acpi_ppc をダウンロードしてきて、ソースを展開。すかさず chkfreq のディレクトリに移って bsdmake と叩いてみました。おーー。make までちゃんと通るじゃん;-)。できたバイナリはこんな感じ。

Makefile:  ASCII text
chkfreq:   Mach-O executable i386
chkfreq.c: ASCII C program text
chkfreq.o: Mach-O object i386

 
さて、バイナリができたので早速使ってみましょう。 chkfreq 200 とかしてコマンドを実行すれば一秒置きに 200 回、 CPU 速度を表示してくれます。FreeBSD/amd64 上で正しく動作していたのですが、なんとなーーっ!! MacOSX 上でも正常に動作するじゃないのさーーーっ!!

僕の MacBook で試した所一番遅いクロックで 435851232 で約 435MHz でしょうか。で、大きなプログラムを make している時に計測したら 1994984316 で約 2GHz と言う値を示してくれました。

いやぁ。MacOSX って UNIX なんだなぁ。そして FreeBSD なんだなぁ。と再確認した瞬間なのでした;-)。

まぁ、どーでも良いのだけど、今回の発見は FreeBSD/amd64 と MacOSX の両方を使っている人でないと発見できないワザだったかもしれんですねぇ。これで CPU 速度が SNMP で取れるようになるぞぉー。

ASUS M2A-VM HDMI の続き。そのに。

前回は BIOS で Cool’n’Quiet を Enable にしたら FreeBSD はブートしませんよ。って所まで書きました。今回はその続編です。

ASUS のウェブサイトを見ていたら、新しい BIOS が出ていたようなので試してみました。今回試したバージョンは 1301 と 1401。しかし、どちらも Cool’n’Quiet を Enable した場合、やありブートしませんでした。あれま・・。

で、前にも書いた通り、僕は Cool’n’Quiet を有効にするために二つのカーネルモジュールをロードしているのだけど、もしかしたら、カーネルモジュールとの相性かが悪いのかと思い、試してみました。そしたら cpufreq.ko のほうをロードすると FreeBSD がピタっと止まる(つまり凍りつく)ということが解りました。

acpi_ppc.ko のほうは特に問題も無く正常に動作して Cool’n’Quiet が有効になっているような気がします。と、言うことで cpufreq.ko は使わず acpi_ppc.koのみをロードすると無事に FreeBSD は動作します。

ちなみに cpufreq.ko を利用した場合は以下の sysctl MIB で CPU 速度が取れます。

dev.cpu.0.freq: 995
dev.cpu.0.freq_levels: 1791/59000 995/21000

 
しかし、今回は cpufreq.ko はロードせず acpi_cpp.ko をロードするので必要な sysctl MIB は以下になります。

hw.acpi.cpu.px_supported: 2100 2000 1800 1000

 
これだと、実際に動作しているクロックが表示されないので、その場合は acpi_cpp.ko に付属の chkfreq コマンドで実クロックを知ることができます。

いやぁ、それにしても一個問題解決して良かった。後は AMD の 690G が X11 で使えるようになるだけだなぁ。あ、後もう一個あった・・。hw.acpi.thermal.tz0.temperature がいつも同じ値しか返さない所もなんとかせねばならんのだった・・。

NotePC でコンソールを使ってはいけません。

NotePC にインストールしてある FreeBSD にシリアルコンソールから入りたいな。と思った。自宅のサーバはシリアルコンソールを有効にするために /boot.config を置き、その中に「-Dh」と記述してあるので、NotePC でも同じことをやった。ちなみにこの NotePC には FreeBSD/i386 6.2-STABLE がインストールしてある。

さて、NotePC に /dev/ulpcom 対応な USB のシリアルポートを接続し /boot.config を用意してからリブートしてみた。所が「|」がくるくる回る所でピタッと止まってしまい、FreeBSD がブートすることは無かった・・X-(。10 分待っても 20 分まってもログインプロンプトが表示されることは無かったのである・・。

/dev/ulpcom で認識されるシリアルポートはカーネルがブートしてロードモジュールが認識してから tty が有効になるのだが、ブート直後ではデバイスも認識してくれないのでコンソールに表示された情報がどっかに行ってしまったんでしょうな。

と、言うことで良い子の皆さんは「NotePC に USB シリアルを付けてコンソールにしよう。」など言うことをまねしては行けません。

で、話はここで終わると良いのですが、起動しなくなった FreeBSD をどうやって復旧しようか。と言うことになるわけです。多分、/dev/ad0s1a の /boot.config を削除するだけでブートしてくれるようになるであろうとは思うわけです。ふむぅ。

まずはインストール用の CD-ROM で起動します。起動後の sysinstall 画面で Fixit と言うメニューを選択します。すると以下のようなメニュー画面が出るので 2 CDROM/DVD を選択します。すると /mnt2 に HDD の中身を mount してくれます。後は rm /boot.config してから再起動すれば良いでしょう。

X Exit       Exit this menu (returning to previous)
2 CDROM/DVD  Use the "live" filesystem CDROM/DVD
3 Floppy     Use a floppy generated from the fixit image
4 Shell      Start an Emergency Holographic Shell

 
ちなみにこの時 4 Shell を選択すると Alt-F4 を押した tty4 にプロンプトが現れます。しかし、ls(1) とか mount(8) は無いので随分と難儀します。 ls(1) のかわりに echo * とか echo /bin/* とかすれば ls(1) の代用にはなります。

2 CDROM/DVD を選んで Alt-F4 した後に cd /mnt2 すれば良いでしょう。

しかし、復旧には随分と手間取りました・・(^^;;。うんとふるーーい情報なのに以下の URL がそこはかとなく役に立ちました。

http://www.jp.freebsd.org/QandA/HTML/464.html

ata.ko と atadisk.ko。

僕はカーネルモジュール大好き人間なので、色々なものを kldload しているのだけど、大体 50 個位のモジュールを利用している。

ata.ko と atadisk.ko。この二つはびみょ~。今まで kldload していたのだけど、S-ATA を使ったときや、6.2-STABLE から 7-CURRENT にバージョンアップした時に / パーティションを認識してくれない事態が発生した。

S-ATA を使っている時は /dev/ad0s2a と /dev/ad4s2a を行ったり来たりしているし、cvsup で 7-CURRENT にしたときは全く、どのデバイスを利用すれば良いの?状態になってしまった。

後、注意点としては /boot/kernel.old/kernel をロードしたときは合せて、忘れないで ata.ko と atadisk.ko もロードしないとならないので・・。

と、言うことで ata.ko と atadisk.ko の二つはカーネルに組み込んでおいたほうが便利だなぁ。と最近、思いつつある・・。

ASUS M2A-VM HDMI の続き。

前回、「新しい PC を組み立ててみた。」において、新しいマザーボードと Athlon X2 4000+ を購入して FreeBSD で SMP カーネルを利用してみた。

みたいな所まで書いたんだけど、その後、BIOS を最新の 1101 にしたら突然動作が不安定になった。メモリが不良っぽい動作だったのでメモリチェックしてみてもメモリ自体には特に問題が無いのでふむぅ・・。と言う感じだった。ちなみに WindowsXP x64 は特に問題なく起動する。まぁ、使い込んでないんだけどね。

だけど、FreeBSD はブートもしないで以下のメッセージを出力しつつ panic する。

Kernel panics: failed to create swap_zone

ふむぅ・・。ブート時のメニュー画面で ACPI disable を選択するとなんとかマルチユーザでブートすることを発見。 ACPI 無いし シングルプロセッサだし、UDMA33 な状態のマルチユーザモード。けど、ブートしてくれただけでもありがたいことで options SCHED_4BSD を SCHED_ULE に変更したしりてカーネルの再構築自体はなんとか行える・・。

で、 Google で色々調べてみると

・BIOS で AMD Live! を enable にしていると凍りつく。
・BIOS で Cool’n’Quiet を enable にしていると凍りつく。

などの情報があったのでその二つを disable にしたら無事に起動するようになった。僕の場合、 loader.conf で cpufreq_load=”YES” と acpi_ppc_load=”YES” を書いているのでその影響かなぁ・・。

マルチユーザモードでバリバリと問題無く動くうにはなったのだけど、それにしても Cool’n’Quiet が動かなくなったのは非常に悲しいものがあります。ASUS が悪いのか、はたまた AMD690G が悪いのか・・。

しかし、Socket7 の T2P4、P5A 以来久々に ASUS のマザーボード買ったのだけど、やっぱり外れた部類に入るかなぁ・・。このマザーボード・・。