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

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