12月 252007
 

インプレスの「インターネットマガジン」の PDF が無料で公開されることになったらしい。

http://internet.watch.impress.co.jp/cda/news/2007/12/25/17997.html
http://i.impressrd.jp/bn

創刊号は確か N+I インターロップの第一回目だったと記憶している。懐かしさのあまり、PDF を検索してしまったではないか。何を検索したかと言うと、その昔、Compaq に吸収される前に日本 DEC が公開していた「荻窪ラーメンマップ」。

いやぁ、ちゃんと PDF の中にそれがありまましたよーー。URL だけなんだけど、以下のファイルに掲載されています。

http://i.impressrd.jp/files/images/bn/pdf/im199506-153-yellow.pdf

で、当然日本 DEC のサイトはもう無いわけで、ちょっとだけ google で検索してみたら当時のコンテンツを公開しているサイトを発見。うそー。懐かしいっ!!って感じで非常に感慨深かったです。

http://www.dec-j.jp/noodle/ra-men_map.html

1993,4 年頃と言えば Windows95 が出る前、IIJ が ISP を始める前、Linux は Slackware-1.3 がリリースされた頃、FreeBSD は2.0.0-RELEASE がリリースされた頃で、会社もしくは学校で JUNET に接続している環境にいる人しか見られなかった。日本には一般に公開しているウェブサイトが(分割前の) NTT とか 10 個程度しか無くて、その中でもこの「荻窪ラーメンマップ」は日本で初めてクリッカブルマップを利用したサイトなので驚きもまたひとしおなのでした。

僕は当時 NEC の職場から EWS4800 を利用しモザイク(ウェブブラウザ)を利用してインターネットの大波を泳いでいた。当時のモザイクはシングルタスクプログラムだったのでファイルをダウンロードしている時は他のウェブサイトを閲覧することができなかった。なので、Netscape が出てきた時の感動は今でもよぉーく覚えている。

Netscape はファイルをダウンロードしはじめるとバックグラウンドで始めて、ウェブの閲覧はメインの画面で引続き行えると言う、今では当り前なんだけど、当時は画期的なブラウザだった。

話を元に戻すとして。しかし、今、あの「荻窪ラーメンマップ」が当時の姿でまた見られるとは思っていなかった。インプレスが PDF を公開した。と言うニュースを耳にしなければきっと google でも検索しなかっただろう。ちなみに google で検索した文字列は「ra-men_map.html」。

いやぁ。日本のインターネットの歴史を語る上でこのサイト抜きで語ることはできない、と、僕個人的には思っているので再会できて本当に良かったです。

今となってはどーと言うことは無いコンテンツですが、歴史的意義が大きいサイトに再会できて本当に感動です。はい。

12月 132007
 

前回のブログで iPod Touch を JailBreack したと書いた。でもってメールソフトは iPhone のファームから抜いて iPodTouch にインストールした。

メールソフトも利用できて大変嬉しいのだけど、うちのメールサーバは ssl に対応していないので POP もしくは IMAP4 の時に生パスワードが流れてしまう。

iPod Touch の性格上、野良 AP (そこいらに落ちているアクセスポイントのこと)を利用する場合も多々有るわけで、そう言うのを利用するとアクセスポイントを置いた人が tcpdump を仕掛けていないとも限らないし、ポートスキャンしてくるかもしれない。なので、POP/IMAP4 の時は是非とも暗号化して利用したいものです。

幸い、JailBreack した iPod Touch には ssh が入っているのでこれを利用して POP サーバ、もしくは IMAP4 サーバに ssh トンネルを掘ることが可能です。

と、言うことで簡単に ssh トンネルを掘るスクリプトを書いてみました。利用方法は以下の通り。

1. POP/IMAP4 サーバ上に自分のアカウントが存在し ssh ログインできること。
2. メールのアカウント設定で POP/IMAP4 サーバではなく localhost に接続するようにすること。
3. ターミナルから stun.sh が実行できること。

これだけです。まぁ、1. はちょっと敷居が高いかも。けど、それがクリアできれば特に問題は無いでしょう。以下の URL からダウンロードできます。

http://www.icmpv6.org/Prog/MacOSX/stun.sh

利用方法ですが、以下の通り。

1. コマンドオプションは三つ。s(start) t(stop) c(check)。
2. s オプションで Mail を kill してから ssh トンネルを掘りますが、接続できた時はパスフレーズを聞いて来るので入力。
3. t オプションで Mail と ssh トンネルのプロセスを殺します。
4. c オプションで Mail と ssh のプロセス番号を表示します。

注意点としては、ssh トンネルを掘る前に Mail が起動していると POP/IMAP4 サーバに接続できません。なので、s オプションの時に Mail を kill しています。c オプションで ssh プロセスの番号が Mail より若いことを確認します。
後、一回スリープしたら ssh セッションが切れるので毎回 t して s してあげる必要があります。

こんな所でしょうか。ダウンロードしたら stun.sh の上の環境変数にサーバ名とユーザ名を指定してください。default で localhost の port:143 を使うようにしています。

もしダウンロードした人がいたらコメントなど頂ければと思います。

11月 262007
 

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

11月 152007
 

さて、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 に降ってくるんだろうねぇ。

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

11月 082007
 

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 はもうインストールしたんだけどねー。

11月 062007
 

前回、「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 が動作しないマザーボードを買ってしまったのでしょーがないですけど・・。

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

10月 192007
 

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 のフルパワーは使っていただけたのでしょうか・・。

10月 172007
 

僕は 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 で取れるようになるぞぉー。

10月 162007
 

前回は 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 がいつも同じ値しか返さない所もなんとかせねばならんのだった・・。

10月 052007
 

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