ラベル lion の投稿を表示しています。 すべての投稿を表示
ラベル lion の投稿を表示しています。 すべての投稿を表示

2012年4月9日月曜日

Mac OS X LionでAndroid ICSをビルドする

メモ。

とにかくはまるしわからない。何がいけなかもわからない。
http://blog.sola-dolphin-1.net/archives/4059847.html
ここらへんを参考に。

途中ビルドにこけて一番はまったところは
https://groups.google.com/forum/#!topic/android-building/yd8I2aMbZZE
のlibbccを少し前のバージョンに戻すことで解決。

結局ビルドしたROMはカーネルを再コンパイルしないと上手く動かないそうなので、カーネルコンパイル中。

その他はまったら試すこと

  1. エミュレーターをコンパイルしない
    • 実機で確認するのであれば、どうせエミュレーターはいらないだろうってことで、external/qemu/Android.mkの中身をざっくりコメントアウト。行数はあまりないので、楽々コメントアウトできます。
  2. libSDLをがんばってインストールしてみる
    • libSDLの1.2.15では、Lionでのビルドができるようになっているので、ちゃんとやればインストールできます。
    • macportsからインストールしようとして、glib2でこける場合は、sudo port clean glib2で一度消してから、再インストールしましょう。
    • さらにそのあと、libelfをdeactivateしろと言われる場合には、sudo port deactivate libelfで一旦無効にして、正常にインストールしてからsudo port activate libelfで元に戻せます
  3. 何回かコンパイルしてみる
    • 理由はよくわかりませんが、実際のROMを作るところ以外でこけている場合は、分散ビルドでビルドがいろんな順番で進むため(?)何度もコンパイルしているといつの間にかROMができています。もしかしたら自分のその間の試行錯誤でうまくいったのかもしれませんが。。
    • とりあえず、成功した人は最後までやめなかった人だ、ということなので。
    • 少なくとも自分は成功しているので、Mac OS X LionでAndroid ICSをビルドすることは不可能ではありません

2011年8月25日木曜日

Mac OS X LionからN-06C Mediasにadbで接続する方法

Snow Leopardでは特に何もせずにadbで接続できていた
Mediasが、Lionにしたとたんに急にadbでつなぐことができなく
なってしまったので、Lion対応Medias用USBドライバ(もどき)の
カーネルエクステンションを作ってみました。

※2012/03/01 変更
めんどいので、とりあえず
http://8kpx.com/android/archive/download.php
からダウンロードしてください。

で、ちゃんと使えたらカンパください。
オプション



このカーネルエクステンションを解凍して
/System/Library/Extensions/
以下に配置し、ターミナルから

$sudo chown -R root:wheel /System/Library/Extensions/N06CADBDriver.kext
$sudo kextload /System/Library/Extensions/N06CADBDriver.kext

と実行すると、Snow Leopardと同じようにMediasがadbから繋がる
ようになります。ちょーべんり。

/System/Library/Extensionsをいじるのは、あっさりカーネルパニックになったりするので、
自己責任で導入してください。


-------以下詳細---------
この問題の原因は、MediasのUSBデスクリプタのbDeviceClassが、本来0のはずが、2になっており、
正しいドライバが読み込めなくなってしまっていたことでした。

なので、このカーネルエクステンションでは、bDeviceClassが2でかつデバイスがMediasの場合に、
本来のドライバ(IOUSBCompositeDriver)を読み込むという設定をしております。(実際にはplistに書いただけ)

デバイスの判定には、具体的にはidProduct, idVendorという二つのパラメータを利用しており、
この値を書き換えることで、Medias以外のデバイスで、同様の問題が発生した場合にも対応可能です。