インプレスの「インターネットマガジン」の 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」。
いやぁ。日本のインターネットの歴史を語る上でこのサイト抜きで語ることはできない、と、僕個人的には思っているので再会できて本当に良かったです。
今となってはどーと言うことは無いコンテンツですが、歴史的意義が大きいサイトに再会できて本当に感動です。はい。
前回のブログで 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 を使うようにしています。
もしダウンロードした人がいたらコメントなど頂ければと思います。
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 に持って行く。ってのが凄い技だなぁ。
iPod Touch は二つのパーティションに別れているんだけど、大体以下みたいな感じ。もう / パーティションの容量が無い・・。
|
まぁ、色々いじってみたけど、非常に楽しい。UNIX が PDA の中に入った。と言う感じ。フツーの PDA の中に Linux や NetBSD をインストールして hoge るのと違って最初から UNIX が入っているのでタッチパッドのキーボードとか使えちゃうとか、インターフェースが全部使えちゃうので凄い嬉しい。もう NotePC 持ち歩く必要ないかなぁ。とか思ってしまう。
と、言う事で iPod Touch の UNIX らしい情報をちょっと書いておきますね。気がついた点としては
・IPv6 スタックありません。
・Bluetooth は内蔵していなさそう。
って感じでしょうかか。
|
ちなみにバイナリは Mach-O executable arm でユニバーサルバイナリではなく ARM のバリナリでした。
せっかくなので、kldstat(MacOSX 風に言うと kextstat) の結果もつけておきます。実に 65 個ものカーネルモジュールがロードされています。
|
全然話題が変わるのですが、GoogleMap で tokyo で検索したら以下が出ました。赤いまち針があるところが「tokyo」みたいなんですが、ふむー。オペラシティ辺りをさしてないかい? Apple Japan のあるところなんですけど・・;-)。
それにしても、技術者(クラッカか)の皆さんには感激します。お疲れ様でした。と、言うのも、以下の URL を読むとある意味凄いな。とか思ってしまったからです・・。こう言うネタって本当は褒めてはダメだんだよねぇ・・。
http://amegan.com/blog/mtarchives/003940.html
さて、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 で認識するようになってくれた。
こっちがパッチ適用前のメッセージ。
|
こっちがパッチ適用後のメッセージ。
|
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 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カーネルで 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 が動作しないマザーボードを買ってしまったのでしょーがないですけど・・。
最後にですが、色々教えてくださった 福田さん。有り難うございました。
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 のフルパワーは使っていただけたのでしょうか・・。
僕は 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 を実行。うひひ。
|
これで設定完了。後は以下のようにすれば良いでしょう;-)。実際にロードされたかは kldstat、カーネルモジュールを外す時は kldunload。おー。FreeBSD と一緒だ;-)。
|
さて、 speedit.kext を kextload すると新しい sysctl MIB が増えます。
|
Intel の SpeedStep が有効になっていたならば speedit.currentfreq の値が変わってもよさそうなものなのに変わらないねぇ・・。困ったよ。このカーネルモジュールが本当に有効になって、CPU 速度が可変になっているのかちょっと解らない・・。まぁ、けど、取り敢えずは動いているみたい。あぁ・・。
で、しばらく運用してみたけど、どうも動いているっぽいけど、やはりちゃんと CPU 速度は知りたいものだ。で、僕はハタと考えた。ここいら辺りに書いた日記では FreeBSD/amd64 において Cool’n’Quiet を有効にするための FreeBSD 謹製ではないカーネルモジュールがあるんだけど acpi_ppc と言うのね。この中に chkfreq と言うコマンドがあって、これが MacOSX で使えるのではないか。と。
と、言うとこで早速 acpi_ppc をダウンロードしてきて、ソースを展開。すかさず chkfreq のディレクトリに移って bsdmake と叩いてみました。おーー。make までちゃんと通るじゃん;-)。できたバイナリはこんな感じ。
|
さて、バイナリができたので早速使ってみましょう。 chkfreq 200 とかしてコマンドを実行すれば一秒置きに 200 回、 CPU 速度を表示してくれます。FreeBSD/amd64 上で正しく動作していたのですが、なんとなーーっ!! MacOSX 上でも正常に動作するじゃないのさーーーっ!!
僕の MacBook で試した所一番遅いクロックで 435851232 で約 435MHz でしょうか。で、大きなプログラムを make している時に計測したら 1994984316 で約 2GHz と言う値を示してくれました。
いやぁ。MacOSX って UNIX なんだなぁ。そして FreeBSD なんだなぁ。と再確認した瞬間なのでした;-)。
まぁ、どーでも良いのだけど、今回の発見は FreeBSD/amd64 と MacOSX の両方を使っている人でないと発見できないワザだったかもしれんですねぇ。これで CPU 速度が SNMP で取れるようになるぞぉー。
前回は 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 速度が取れます。
|
しかし、今回は cpufreq.ko はロードせず acpi_cpp.ko をロードするので必要な sysctl MIB は以下になります。
|
これだと、実際に動作しているクロックが表示されないので、その場合は acpi_cpp.ko に付属の chkfreq コマンドで実クロックを知ることができます。
いやぁ、それにしても一個問題解決して良かった。後は AMD の 690G が X11 で使えるようになるだけだなぁ。あ、後もう一個あった・・。hw.acpi.thermal.tz0.temperature がいつも同じ値しか返さない所もなんとかせねばならんのだった・・。
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 してから再起動すれば良いでしょう。
|
ちなみにこの時 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