Zero が一般会員に開放されたことや、また某生主さんのコミケデビューなどを記念して、ニコニコ生放送で生主が延長しているかを確認できるツールをひっそりと公開してみます。まぁ、そこまでは需要ないでしょうけど…。
詳しくはこちらのページからどうぞ。
~日々発見したことを書き留める Geek な備忘録~
Zero が一般会員に開放されたことや、また某生主さんのコミケデビューなどを記念して、ニコニコ生放送で生主が延長しているかを確認できるツールをひっそりと公開してみます。まぁ、そこまでは需要ないでしょうけど…。
詳しくはこちらのページからどうぞ。
少し躓いたので、メモメモ。まとめると次の3点が要点となる。
詳細について。まず、シェルスクリプトの書き方から。これは Linux と同様 Shebang ではじめ、通常通りコードを書いていく。
このスクリプトファイルをダブルクリックした時にターミナルを起動するように設定する必要がある。Mac 上で拡張子の関連付けを行えばよいことになるが、10.6 (Snow Leopard) では、デフォルトで ".command" という拡張子がターミナルに関連付けられいることを確認した。"install.command" のような感じで拡張子をつけて保存するとよい。(もちろん別の拡張子を利用したい場合はその拡張子をターミナルに関連付けておく)
また、Linux と同様にスクリプトには実行権限を付加しておく必要がある。これは Mac 標準の Finder からは設定できないようなので、ターミナルから実行権限を付加する。例えばコードが install.command だった場合、
もちろん、ファイルがホームディレクトリに無い場合は、該当のディレクトリに移動するか、フルパス指定で実行。
ただし、Mac ではダブルクリックで起動した場合、ホームディレクトリをカレントディレクトリとしてコードが実行されてしまう。例えば、ユーザー名が hoge、コードが /Users/hoge/abc/install.command においてある場合、Mac は自動的にホームディレクトリでコードを実行してしまう(下の太字の部分が Mac が実際に実行しているコマンド)。
コード内で相対パスを利用している場合、コードの置いてあるディレクトリにカレントディレクトリを移動させないと不具合が出る場合がある。これを行うためには、例えば "cd `dirname $0`" というコードをシェルスクリプトの冒頭に入れておけばいい(シングルではなくバッククオートであることに注意)。これは、コードのパスからディレクトリを dirname で取得し、その結果を cd に渡すことでカレントディレクトリを適切なところに移動するコードである。
結局、スクリプトは次のように書けばよいことになる。
今回は android-x86.org を参考にして、Android を ubuntu 10.04 でコンパイルし、インストールディスクを作成してみます。ただし、記事のままだとマウスが動かないなどの状態だったので、実用的に使えるレベルで動作させるには、このブログ記事の内容に加えてカーネルをカスタマイズしていく必要がありそうです。
コンパイルを行う環境として、ハードディスクドライブは20GB、メモリとしては最低でも1GBぐらい必要です。特に VMware や VirtualBox 等仮想環境でコンパイルする場合は割り当てるリソース量を多めにしてください。
まず、Java について躓いたのでメモ。Ubuntu 10.04 では、OpenJDK を標準化したいらしく、sun による実装がパッケージマネージャに含まれていないらしい。まず、Java のリポジトリを追加する。次の % までが1行ですので、お気をつけ下さい(出力は書いていません)。
ちなみに、Java 1.5 JDK でのコンパイル環境を想定しているらしいが、最近最新版の 1.6 でもコンパイルできるようにパッチがあてられたらしいので問題なし。
コンパイル等に必要なパッケージをインストール。
ソースコードの管理は git で行われているが、Android 用にこれをラッピングする repo というスクリプトがあるのでそれを ~bin にインストールし、実行権限とパスを設定。
JAVA_HOME を設定する必要があるようなので、設定。
(Java のバージョンは変わるので、各自調整してください。Ubuntu のデフォルトのシェルである bash の場合、java-6-sun-1.6. まで入力したら[TAB]キーでその後ろを補完してくれます)
ホームディレクトリの直下に android-x86 というディレクトリを作成し、そこにリポジトリからソースコードをダウンロード。
repo init の行で、名前とメールアドレスを聞かれるので、入力する。その次の repo sync を実行した時点で、ソースコードのダウンロードが始まる。結構時間かかります。ちなみに、執筆時では実際にダウンロードした全容量は 4.6 GB でした。
ダウンロードが完了したら、コンパイルして iso イメージを作成。USB イメージも作成できるようですが、今回はより簡単な Live CD を作成してみます。Live CD を作成するには、make のターゲットを iso_img とします。OSを構築するので、このコンパイル作業には数時間かかります。
以上の作業で、~/android/out/target/product/generic_x86/generic_x86.iso が作成されているはずです。これが Live CD 本体ですので、このファイルを CD に焼き、CD からブートしてみてください。BIOS で CD から起動できる設定にするのをお忘れなく。なお、Live ディスクからハードディスクへのインストールも可能のようです。
なお、USB イメージの作成だけでなく、iso データを圧縮するかオプションで設定したり、マルチプロセッサによる並列化等ができるようですが、これについては公式ページを参照してください(英語)。
コンパイルやインストールはできましたが、やはり一部カスタマイズしないとマウスなどが使えなかったりしました。もう少し調べる必要がありそうです。
参考ページ: