NXP LX2K/Cubox/HummingBoard
Marvell ClearFog/MACCHIATObin
  • ホーム
  • アーティクル
  • 製品情報
  • イベント情報
  • Petapico コラム
  • ダイレクトショップ
  • DL
  • 英徳社について
  • 問い合わせ

ソフトウェア TIPS (13)

CuBox-i にKitKat を載せてみる(ソースからのビルドに挑戦)


現在はCuBox-iに標準としてついてくるのがAndroid4.3(Jelly Bean) ですが、最新のAndroid4.4(KitKat)はどうなんだろう、と思う人もいらっしゃるのではないでようか。

今回は、一足先にちょっと趣味でビルドを味わってみようという企画です。

やりたいことの基本は、Android 4.4 KitKat on CuBox-i sources for developers

http://www.solid-run.com/community/topic1091.html

で紹介されています。このコラムはこのページの追記ということでもなく、全体を通してのチェックリストのように利用していただけます。一度経験しておくとアップデート版が出てきたりしたときも、ドライバ追加とか、自分カスタマイズをかけたりすることもできるようになります。今回のものは、

https://github.com/rabeeh/android-imx6-kitkat

から、パッチを含むアプデータを落としてきます。curl でソースをおとしてきて先のパッチをあててビルドし、最終的にできたイメージをSDに書き込む、ということになります。紹介記事には注意書きがあって、対応できていない事項や未修正バグがあります。あくまで先取りを趣味として行うということで理解ください。完全を期す実用用途には向きません。

実際にやってみてあらためて感じたことですが、基本的にAndroidのソースからのコンパイルとなるので、それなりの武装と訓練が必要です。

まずは武装。これは環境作り。

以前にコラムで、古いXPマシンをUBUNTUマシンにするお勧めをしたことがあります。ところがコンパイル環境に使う場合にはそれ相当のマシンが必要になります。64ビットCPUでなくてはならないし、メモリも4GB以上、8GBは欲しい。新しいWin7/8のマシンとかMacをデュアルブートにすればハードウェアのスペック的には問題ありません。しかしながら、実際に作業をすすめるとなると、環境を整えるのにも時間がかかるし、一つのダウンロードやビルドで何時間もかかったりすることがあります。常用マシンでのデュアルブートでは大変不便なことになります。VirtualMachineにすると性能面で不満がでます。贅沢ではあるが専用Linuxマシンが理想となります。ビルドが走っているとマウスの動きがおかしくなり、他のウィンドウがなかなか開かなくなるほどCPUを使います。

PCが決まればツール群など環境の整備をします。

今回は、最終的にAndroidをソースからコンパイルするので、Androidの基本に従って準備をします。特にツール群不足でのエラーメッセージは直接的でない表現になるので最初に対応しておきたい。また、UBUNTUのjavaはOpenJDKだ、というような「固定観念」を持つといきなりはまります。今回の場合にはjava6でなくてはならない。それも、適当に自己流でインストールするとこれまたエラーメッセージ攻めにあうことになります。まずは基本のツールからインストールしていきます。OSはUbuntu 12.04と仮定します。

 

Python 2.6 -- 2.7

GNU Make 3.81 -- 3.82

Git 1.7 or newer

JavaSDK6

Java6はかつてのレポジトリからのインストールが削除されているのですが、WEB UPD8を見たらJava6SDKをPPAからインストールすることができると分かりました。https://launchpad.net/~webupd8team/+archive/ubuntu/java

というわけでこれでOK。(ただしこれとて、何時使えなくなるかわからないですが、とりあえず助かります)

 

$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java6-installer 
他に必要とされるツールをいっぺんにインストールします。すでにインストールされていたりツール間の依存で問題が発生すればそれをかたづけます。
$ sudo apt-get install git gnupg flex bison gperf build-essential \
  zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
  libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
  libgl1-mesa-dev g++-multilib mingw32 tofrodos \
  python-markdown libxml2-utils xsltproc zlib1g-dev:i386
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
以上でインストールするものは終了です。gitを初めて使うようであれば、自分のユーザ名とメールアドレスを登録します。(この作業はインストール後の初回のみ)
 
$ git config --global user.name "<your_name>"
$ git config --global user.email your_mailaddress@example.com
としておきます。
 

次は訓練と実践。これはツール関連の知識と鍛錬です。

ビルドをやろうとすると、どうしても「書かれている通りにやった」としても同じように動かないことがよくあります。エラーがでると先に進めなくなる。それでくじけていては何も進みません。同じOSのつもり、同じバージョンだったとしても実際の設定やファイルの置場は微妙に違っているためなのですが、エラーを踏み越えていくだけのテクニカルな訓練とくじけない精神的な鍛錬が必要です。

それでは、"Android 4.4 KitKat on CuBox-i sources for developers"をはじめましょう。

ビルドインストラクションがあるので、それに従ってステップを実行します。

 

最初に http://www.solid-run.com/community/topic1091.html

から 「Clone in Desktop」を使ってこれから作業しようとするディレクトリに入れます。もし、ZIPダウンロードで持ってきた場合は、ディレクトリ名の最後が.masterとなっているのでandroid-imx6-kitkat としておきます。

ここからビルドを行っていきます。原文のインストラクションの文中にコメントをいれてみます。

 

  Build instructions

  ------------------

  The instructions are mainly tested on Ubuntu 12.04 build machine (64bit)

 +

  1. curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

〜は自分のマシンの環境にあわせてください。直下の /bin/repo でOK

  2. chmod a+x ~/bin/repo

実行権をあたえます

  3. mkdir myandroid

“myandroid”は自分の好きな名前で。

  4. cd myandroid

  5. ~/bin/repo init -u https://android.googlesource.com/platform/manifest -b android-4.4.2_r1

repoのイニシャライズです

  6. ~/bin/repo sync

syncをかけると実際のソースが落とされます。これには時間がかかります

  7. source < git tree location >/android-imx6-kitkat/and_patch.sh

  最初に落としてきたディレクトリ内のパッチスクリプトを走らせます

     Now you should have the c_patch function available

  8. c_patch < git tree location >/android-imx6-kitkat/ imx_kk4.4.2_1.0.0-ga

  先のシェルスクリプトを走らせると、こちらのスクリプトが使えるようになります。

     imx_kk4.4.2_1.0.0-ga is the name of the branches which will be automatically created

     If everything OK then you should be getting the following message -

     Success: Now you can build the Android code from FSL i.MX6 platform

このようなメッセージが出たら、ここまではOKです。このメッセージを見てからでなければ、この先の作業へは進んでも無駄になります。

  9. git clone git://git.freescale.com/imx/linux-2.6-imx.git kernel_imx

Linuxカーネルをダウンロードしてきてkernel_imx 内に入れます

     cd kernel_imx; git checkout kk4.4.2_1.0.0-ga

     Alternative, until Freescale updates their tree tags, the kernel can be downloaded from -

     http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/tag/?id=kk4.4.2_1.0.0-ga

このように書いてますが、「別途ダウンロードしてきたもの」を使うと次のステップで git am が使えるようにするのに苦労します。git clone を使いましょう

  10. Manually patch kernel_imx -

     cd kernel_imx

     git am < git tree location >/android-imx6-kitkat/kernel_imx/3.0.35/*

kernel_imxは実際にはkernel_imx.gitでした。これでソースへのパッチをあてることができます。

     cd ..

  11. git clone https://github.com/SolidRun/u-boot-imx6 bootable/bootloader/uboot-imx

起動用のU-Bootをダウンロードしておきます

 -11. source build/envsetup.sh

 -12. Config Android by either 'lunch cuboxi-eng' or 'choosecombo'

Config が済むといよいよmake です。これにはすごい時間がかかります。macbook Pro + UBUNTU12.04 で7時間程度でした。エラーで止まった場合はメセージを参考に一つずつ原因を地道に取り除く必要があります。一通り通った実績はあるので、原因はgit などでおいたファイルの位置が悪いとかツールの不備とかが考えられます。

 -13. make

ちゃんとmake が通れば、イメージが作成されているはずです。それをSDカードに書き込みます。SDカードをPCに差し込んだ時に、mount をチェックして、SDがどこに割り当てられたかを見ます。/deb/sdc のようになっているはずです。ここでは /deb/sdX と表記しています。

  

  Flashing instructions

  ---------------------

  1. Insert a micro SD into your Linux PC

  2. Determine the block device name of your micro SD (for instance /dev/sdc)

  3. Make sure all partitions of your micro SD are unmounted

unmount /dev/sdc1 のようにします(複数パーティションがあるようならすべてをアンマウントします)

  4. In the Android sources tree, run the following command (replace /dev/sdX with your SD card block device)-

  5. sudo < git tree location >/tools/create-sdcard.sh -f /dev/sdX

正確には< git tree location >/android-imx6-kitkat/tools/create-sdcard.sh -f /dev/sdX

 

どうでしょうか。書き込みが終わったらドキドキしながらCuBox-iへ挿してみましょう。

KitKatは立ち上がったでしょうか? 成功したらおめでとうございます。

 

ここまで、苦労してビルドに成功して得られたKitKatではありますが、GooglePlayもなし、Youtubeもなし、というようなことなので本当に評価版でしかありません。

 

このあと、以前4.3がGooglePlayがまだ入っていないときにアプリを足した方法があったと思い出しました。

それが4.4でも有効かどうか。

結果OKでした。

HOW-TO: Install GApps (incl. Google Play) on Android 4.3

http://www.solid-run.com/community/viewtopic.php?f=6&t=416

 

pa_gapps-modular-full-4.4.4-20140804-signed.zipを落としてきて、あたらしいディレクトリを作って、その中に解凍しておきます。そのディレクトリに入って、system以下のファイルをシステムパーティションにコピーするだけです。

 

できたSDを再度PCに挿入するとパーティションがたくさん作られています。その中で/dev/sd*5としてマウントされているドライブに注目します。mountで確認すると/media/57f8f4bc-abf4-655f-bf67-946fc0f9f25b (あるいは /media/[username]/57f8f4bc-abf4-655f-bf67-946fc0f9f25b)としてマウントされているはずです。

$sudo cp -r system/* /media/57f8f4bc-abf4-655f-bf67-946fc0f9f25b
下にスクリーンの写真を紹介しておきます。
 

 

Kernel version にコンパイルしたMacBookProと入っている

アプリはとりあえずこれだけしか入っていない

アプリとPlayStoreが入りました。次のページにYoutubeもちゃんとあります。動作OKでした。

コメント: 0
  • HomeBridgeとSiriで irMagicianを使う
  • Deep Learning on CuBox-i
  • HummingBoard-GateとMikroBUS クリックボード
  • HummingBoardをクラウドサービスMyThingsにつなぐ
  • Android+ WiFi Mini PCI カード
  • HummingBoard + WiFi Mini PCI カード
  • セキュアな無制限ストレージ ownCloud を CuBox-iで動かす
  • Android Appプログラミング入門
  • CuBox-iで動く各種サーバー
  • DebianをmSataから起動する
  • HummingBoardのaudio jackをAndroidから使ってみる
  • オフィシャル版Android4.4(Kitkat)のroot取得の仕方
  • HummingBoardのI2Cに温度センサーをつなぎデータをグラフ表示する
  • CentOSの兄弟 RedSleeve Linuxでサーバーを作る
  • Cu-Box-i/HBにmjpg-streamerストリーミング配信を載せる
  • SoftEther VPNで外から irMagician を制御してエアコンをつける
  • CuBox-i Androidのroot取得とadbの使い方
  • HummingBoardのSPIでLCDパネルへの表示をする
  • 旧CuBoxのメンテナンス情報について
  • 小型赤外線リモコン irMagician をつなぐ
  • wiringXをインストールする
  • kali linuxでセキュリティスキャンマシンにする
  • Debianでmicro-home-serverを作る(1)
  • 電子工作キットとGPIOピンアサイン
  • ArchLinuxにLXDEデスクトップを載せる
  • CuBox-i/HummingBoardの簡単インストーラー Ignition が登場
  • HummingBoardでUbuntu12.04(Linaro)
  • CuBox-i にUbubtu14.04, LXDEをインストールする
  • SqueezeboxでPandoraを聴こう(2)
  • SqueezeBoxがWebインストーラーになって簡単になりました
  • SqueezeboxでRadikoを聴こう(1)
  • GeeXboXをプレインストールしたCuBox-i1を使いこなす
  • アプリケーションと機種依存関係
  • CuBox-iのKitKat でWiFiのUSBを使えるようにする
  • CuBox-i にタッチパネルをつなぐ(Android Kitkat)
  • CuBox-i にKitKat を載せてみる(ソースからのビルドに挑戦)
  • CuBox-i でUSBのWiFiアダプタを利用する
  • Cubox-i4のFedora20にKDEデスクトップを載せる
  • Cubox-i4をFedora20マシンにする
  • CuBox-iにBluetooth機器接続に成功
  • CuBox-i にOpenELECが登場
  • ZoneMinder までの下準備とインストール
  • Debian 7.0 WheezyをCubox-iにインストールする
  • CuBox-i用のカーネル作成について
  • CuBox-iにUbuntu12.04をインストールする
  • MuBox on CuBox-i インストール基礎入門編
  • mjpg-streamerでストリーミング配信
  • CuBox-i でメディアプレーヤーXbian を楽しむ
  • CuBox-iでSDカードの容量いっぱいにイメージを拡張するには
  • CuBox-i でミュージックサーバーvolumio を試してみる
  • ZoneMinder でできる監視カメラシステムとは
  • GeeXboxをTVのリモコンで操作してみる
  • CuBox-iでradikoを外部スピーカーに流す
  • 基本のシリアル通信環境を整えておく
  • CuBoxにWebカメラを接続してMotionを使おう
  • CuBoxをメディアサーバにする
  • Apache Webサーバ / MySQLデータベース・サーバ / PHP
  • jQueryを使ってスライドショウを作る
  • 今、注目の超小型コンピュータたち(5) CuBoxをメディアプレーヤーにして楽しむ
  • 基本のサーバーを構築してみる
  • 今、注目の超小型コンピュータたち(4) ミュージックサーバーを組んでみた
  • 今、注目の超小型コンピュータたち(3) ミュージックサーバーをt作ってみよう
  • 今、注目の超小型コンピュータたち(6) ミュージックサーバーVoyage MuBox を完成させる
  • プラグコンピュータで「プロの開発」を始めてみませんか(2)
  • プラグコンピュータで「プロの開発」を始めてみませんか(1)
  • スカイプカメラ GTCAMってなんだ?
  • ARMとRaspberry Pi
  • Marvellのプロセッサとプラグコンピュータ
  • 今、注目の超小型コンピュータたち(2) サイネージを作ってみよう
  • 今、注目の超小型コンピュータたち(1) XBMCを載せてみよう

お問合わせフォームはこちら

メールはpetapicoshop@petapico.bizまで


英徳社ホームページはこちら


1 日本国内への配送に適用されます。その他の国についてはこちらをご参照ください
概要 | 利用規約 | 返金条件と返品取消申請書 | 配送/支払い条件 | プライバシーポリシー | サイトマップ
ログイン ログアウト | 編集
  • ホーム
    • ショップからのお得情報
    • CuBox-i Seriesの情報
    • MicroSDの作り方
    • HummingBoard Seriesの情報
    • HummingBoard Edge/Gateの情報
    • IntelSoliPCの情報
    • windows10 IOTの情報
    • ClearFogの情報
    • MacchiatoBinの情報
    • fromSolidRunWebsite
  • アーティクル
  • 製品情報
  • イベント情報
  • Petapico コラム
    • KODI
    • Cobox-i
    • HummingBoard
    • ソフトウェアTips
    • 外付け
    • カメラ
  • ダイレクトショップ
    • ダイレクトショップ iMX SoC
      • CuBox-Mセット
      • iMX8M Plus
      • iMX8M Plus Mate
      • CuBox-i1 OpenELECWiFi model
      • HummingBoard Pulseセット
      • CuBox-i1 OpenELEC セット
    • WAI WAIセール
      • Sheeva
      • D3
      • SMILE Plug
      • 第1世代CuBox|CuBox-PRO
      • CuBox-i1 セット
    • ダイレクトショップ LX2K
      • LX2160Aファミリー
    • ダイレクトショップ Marvell SoC
      • CEx7 CN9132
      • ClearFog
      • ClearFog Base
      • ClearFog Pro
      • MacchiatoBin Double|Single Shot
      • ClearFog GT 8K
      • MACCHIATObin ClearCloud 8K
      • SolidSense スターターセット
    • ダイレクトショップ intel SoC
    • ダイレクトショップ eRemote
      • eRemote
      • eSensor
    • 12V AC アダプター(PSE対応)
    • CuBox-i1 GeeXboXセット
    • CuBox-i1 OpenELEC+plugin
    • HummingBoard-Gate i1セット
    • HummingBoard-i2eX セット
    • HummingBoard-i4pro セット
    • CuBox-i2 セット
    • CuBox-i2 WiFiセット
    • CuBox-i2eX セット
    • CuBox-i2eX WiFiセット
    • CuBox-i4 Pro セット
    • HummingBoard-i2 セット
    • HummingBoard-i1セット
    • Application microSD Card for CuBox-i
    • Android microSD Card for CuBox-i
    • SolidPC
    • SolidPC SSD 32G
  • DL
    • Media Exposure
  • 英徳社について
  • 問い合わせ
閉じる