スタッフのブログです。個以上あるコメントは受け付けない設定になってます。SDKのgoldfishのCPUをarm1136に置き換える方法AndroidのSDKではgoldfishという仮想ハードウェアをqemuで動作させています。この環境は実際のハードウェアがなくても動作させることができるのでとても便利です。goldfishはCPUがARMv5TEアーキテクチャのarm926なのですが、これをARMv6アーキテクチャのarm1136に置き換える実験をしてみたところ意外にすんなり動きました。その手順をここで紹介します。2009年11月のEclairのソースリリースでだいぶ状況が変わっています。こちらも参照してください。9.04上で行いました。Androidのビルドの方法はこちら(http://d.hatena.ne.jp/embedded/20090510/p1)を参照してください。ねこさんのページ(http://d.hatena.ne.jp/kinneko/20090526/p5)を参考にさせてもらってgoldfish用のカーネルソースをとってきます。korg/android-goldfish-2.6.27繰り返しの作業が楽になるようにビルドの手順をスクリプトにしておきます。カーネルをビルドします。2>&1今ビルドしたカーネルに差し替えて動作することを確認します。オプションで圧縮されたカーネルイメージの場所を指定します。donut1次にカーネルソースに以下の修正を加えます。オプションを与えて起動します。ARMv6で動作していることが確認できました。以下のようになっていました。この実験でわかったことはgoldfishはCPUコアの依存性は少なく、CPUコアの変更は容易。arm1136にしてもユーザーランドは無変更で動く。いうオプションを与えるだけでよい。ユーザーランドはこれからarm1136用にチューニングしていくと、いろいろと面白いことができそうです。調子に乗って、同じような方法でARMv7アーキテクチャであるcortex-a8も試したのですが、こちらはうまくいきませんでした。いろいろな部分を最新版に差し替えていく必要があるようですが、腕に自信のある方はぜひ挑戦してみてください。追記)coretex-a8への置き換えもうまくいきました。http://blog.kmckk.com/archives/1427864.html(追記)最近repoのマニュフェストファイルが更新されて、デフォルトではkernelのソースはダウンロードされなくなりました。kernelのソースを取得することができます。09:26前回はgoldfishのCPUをarm1136に置き換えました。今度はarmv7アーキテクチャのcortex-A8への置き換えに成功したのでその方法を紹介します。armv7だとNEONのSIMD命令とかThumb2とか色々と面白そうです。最新コメント「最新トラックバック」は提供を終了しました。(2)タグクラウドABCadbaidlAndroidARMarmv7asmbinderbionicBootbuildbuildrootbuiltinbusyboxcccacheCELFcelfjpClangcortex-a8Cortex-A9cpuinfodalvikvmDebiandebuggerdDMAelcembeddedemulatorEventexeGCCFlashfpufroyogccGDBGingerbreadgoldfishIceCreamSandwichinitinitrdinterpreterJAVAjavacjavapjitK&Rkernelkeykzm-a9-dualKZM-A9-GTkzm-ca9-01LinarolinuxLLVMloglogcatltsimingwMIPSmultiarchndkneonnetinstallnfsnon-stopobjdumppartnerPARTNER-JetportingpowermanagementprintfpropertyPyMitepythonqemuQTQTextCodecrootstockrubysdServiceSHsimdsmpTCGtuninguartubootUbuntuuclibcUNIXUSBv8vlinkwakelockwirelessx86zygote計測QRコード京都マイクロコンピュータ。