![]() |
running-dog.net。しかし、自分が一番落ち着かない。かけまわっている子犬のような状態。そんな毎日をブログで綴ってみました。 FreeBSD・PC・UNIX・プログラム・MacOSX・iPhone3G ネタなど技術的・趣味的なネタについて色々書いてみたいと思います。 また、最近は Microsoft Windows ネタも増えてきたかなぁ。などとも思っておりますが、併せて宜しくお願いします。 |
|
« 2007年10月 | メイン | 2007年12月 »
2007年11月のアーカイブ
検索
カテゴリー
フィードを取得
Special Thanks.
Please click now!!
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 に持って行く。ってのが凄い技だなぁ。

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 のあるところなんですけど・・;-)。

それにしても、技術者(クラッカか)の皆さんには感激します。お疲れ様でした。と、言うのも、以下の URL を読むとある意味凄いな。とか思ってしまったからです・・。こう言うネタって本当は褒めてはダメだんだよねぇ・・。
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 |
こっちがパッチ適用後のメッセージ。
|
ad4: 239372MB |
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 が動作しないマザーボードを買ってしまったのでしょーがないですけど・・。
最後にですが、色々教えてくださった 福田さん。有り難うございました。