Kernel sourceが公開されたのでビルドして実機で動かしてみた。
sourceはここ
ここに書いてあるとおりにビルドすればOK…だけど面倒くさいのでhttps://github.com/turl/linux-razr-i
turlさんがgithubにあげてくれてるコレを使う。
作業はUbuntu 11.04 32bitで行った、64bitでは「cast from pointer to integer of different size」が沢山出てきて修正すんの面倒くさいので32bitで…
git clone git://github.com/turl/linux-razr-i.gitとりあえずsourceをローカルに
それとhardware_ti_wlan.tar.gzとvendor_authentec_vpndriver.tar.gzも必要になるのsourceforgeからダウンロードしておく。
toolchainにAndroidのソースのprebuiltに入ってるものを使用するのでそれもrepo syncするなりしておく。
んでビルド
export PATH=/home/meyskld/android/xt890_kernel/prebuilt/linux-x86/toolchain/i686-android-linux-4.4.3/bin:$PATH export ARCH=i386 export CROSS_COMPILE=i686-android-linux- export ARCH_BUILD_FLAGS="ANDROID_TOOLCHAIN_FLAGS=-mno-android" make i386_mfld_moto_defconfig time make -j4 export INSTALL_MOD_PATH=/home/meyskld/android/xt890_kernel/modules/ make modules_installKernelだけのビルドなので数分で終わる。
Kernelは下記ディレクトリにbzImageという名前で保存される。
/arch/x86/boot/
make modules_installを実行するとINSTALL_MOD_PATHで指定したディレクトリにドライバたちが保存される。
WlanとVPNのドライバは下記URLに書かれている手順で別途ビルドする。
http://sourceforge.net/projects/razr-i.motorola/files/razr-i/8.7.1I-110_IFW-31/
Build compat.ko & wl12xx-sdio.ko~ってところ見れば分かると思う。
"apwr3_0.ko","pax.ko","sep3_7.ko"の3つがビルドされないのだがどーすればええねん?
ビルドした.koをramdiskのlib/modulesにコピー
ramdiskのunpack、repackは以前書いたこのエントリ通りに行えばOK
あれ - Motorola RAZR i XT890: rooted
cpio.gz作るところまでやっておく。
bzImageとramdisk.cpio.gzをくっつける作業をする。
mkbootimg的なツールがあれば良いのだが無いのでバイナリエディタで結合させた…とりあえず動けばいいやなノリ
オリジナルのboot.imgをバイナリエディタで開く。
アドレス0x2000までがheaderでその後ろにbzImage(kernel)をくっつける。
bzImage(kernel)の後ろにramdisk.cpio.gzをくっつける。この際、開始位置をオリジナルと同じにしておく。
headerの0x400にramdiskの開始位置とramdiskのサイズが書かれているのでここを書き換えるのでもOK
最後にオリジナルのfooterを張り付けて保存
物凄い無理やり感ありますけど…
あとはfastbootで焼いて起動するのを確認
fastboot flash boot boot_mod.img
さて、オーバークロックして遊ぶかー