Building Android for Pandaboard - 準備編 なのに長すぎ...

本家omappedia版、Linaro版、sola版があるようだ。
solaさんがすでにビルド可能なアーカイブをまとめているのだけど、改変点とかわかりにくいので、自分でやってみることに。
Linaroのは、めんどくさいことをバッサリやってくれるツールが入っていて、見通し悪そう。
というわけで、本家版で進める。
pandroid
http://code.google.com/p/pandroid/
http://git.omapzoom.org/
http://www.omappedia.com/wiki/Release_Notes
2011年4月の L27.12.1-P2が最新のよう。
April 2011: L27.INC1.12.1-P2_OMAP4_Gingerbread_ES2_Release_Notes
PandaBoard L27.12.1-P2 Release Notes
http://www.omappedia.com/wiki/PandaBoard_L27.12.1-P2_Release_Notes
これに従ってフルビルドしてみる。
ビルド環境は先日構築したUbuntu11.04のものをそのまま使う。

作業ディレクトリを作成

kinneko@BuildSV:~$ mkdir panda
kinneko@BuildSV:~$ cd panda/
kinneko@BuildSV:~/panda$ mkdir -p L27.12.1-P2/mydroid L27.12.1-P2/build_tools L27.12.1-P2/wlan L27.12.1-P2/wlan_firmware


ドキュメントでは、こんな風に続くけど、存在しないディレクトリにはcdできないんだけどな...

cd L27.12.1-P2/mydroid
export MYDROID=`pwd`
cd $YOUR_PATH/L27.12.1-P2/build_tools/arm-2010q1

とりあえずここはパス。

toolchainのダウンロード

作成したL27.12.1-P2/build_tools/にtoolchainをダウンロードする。
codesourceryの提供しているものを使用する。
バージョンは、arm-2010q1-202。
アーカイブで79Mと結構でかい。
落としたら展開する。

kinneko@BuildSV:~/panda$ cd L27.12.1-P2/build_tools/
kinneko@BuildSV:~/panda/L27.12.1-P2/build_tools$ wget http://www.codesourcery.com/sgpp/lite/arm/portal/package6488/public/arm-none-linux-gnueabi/arm-2010q1-202-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
kinneko@BuildSV:~/panda/L27.12.1-P2/build_tools$ tar jxvf arm-2010q1-202-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 
kinneko@BuildSV:~/panda/L27.12.1-P2/build_tools$ cd ..
kinneko@BuildSV:~/panda/L27.12.1-P2$ 

ここでも、ドキュメントではPATHの指定したりしてるけど、後で行うので放置する。

cd arm-2010q1/
export PATH=$PATH:$YOUR_PATH/L27.12.1-P2/build_tools/arm-2010q1/bin

ソースコードの取得

repoのインストールと、ソースコードの取得を行う。

kinneko@BuildSV:~/panda/L27.12.1-P2$ cd mydroid/
kinneko@BuildSV:~/panda/L27.12.1-P2/mydroid$ wget http://android.git.kernel.org/repo
kinneko@BuildSV:~/panda/L27.12.1-P2/mydroid$ chmod +x repo 
kinneko@BuildSV:~/panda/L27.12.1-P2/mydroid$ ./repo init -u git://git.omapzoom.org/platform/omapmanifest.git -b 27.x -m RLS27.12.1-P2_Gingerbread.xml

manifestは、gitで配布なのね。
おっと、kernel.orgがhackされてダウンしているので、repoのオンライン更新が取りに行けず先に進めない。
他のリポジトリから、.repo以下をコピーして切り抜ける。

kinneko@BuildSV:~/panda/L27.12.1-P2/mydroid$ ./repo init -u git://git.omapzoom.org/platform/omapmanifest.git -b 27.x -m RLS27.12.1-P2_Gingerbread.xml
remote: Counting objects: 1229, done.
remote: Compressing objects: 100% (690/690), done.
remote: Total 1213 (delta 505), reused 1184 (delta 480)
Receiving objects: 100% (1213/1213), 856.51 KiB | 325 KiB/s, done.
Resolving deltas: 100% (505/505), done.
From git://git.omapzoom.org/platform/omapmanifest
 * [new branch]      25.14M.x   -> origin/25.14M.x
 * [new branch]      25.inc2.x  -> origin/25.inc2.x
 * [new branch]      25.inc3.x  -> origin/25.inc3.x
 * [new branch]      25.x       -> origin/25.x
 * [new branch]      25E.x      -> origin/25E.x
 * [new branch]      27.x       -> origin/27.x
   3baccb4..7b6a40b  android-1.6_r1 -> origin/android-1.6_r1
 + 840e351...bc7567a cupcake    -> origin/cupcake  (forced update)
   afd2eb5..b8f29ed  donut      -> origin/donut
   f1c5b55..63d29c2  eclair     -> origin/eclair
   186b4bd..40045c1  froyo      -> origin/froyo
   f212935..ee5fb5a  gingerbread -> origin/gingerbread
   dc01e28..b56ceb3  master     -> origin/master
   bcf4005..4f6aebf  release-1.0 -> origin/release-1.0
 * [new tag]         RLS25.INC2.7P2rc0 -> RLS25.INC2.7P2rc0
 * [new tag]         RLS25.INC3.4P5DB407rc0 -> RLS25.INC3.4P5DB407rc0
From git://git.omapzoom.org/platform/omapmanifest
 * [new tag]         L27.10.2-P1_Froyo -> L27.10.2-P1_Froyo
 * [new tag]         RLS-12.2   -> RLS-12.2
 * [new tag]         RLS-25.2   -> RLS-25.2
 * [new tag]         RLS-25.3   -> RLS-25.3
 * [new tag]         RLS25.10   -> RLS25.10
 * [new tag]         RLS25.11rc3 -> RLS25.11rc3
 * [new tag]         RLS25.11rc4 -> RLS25.11rc4
 * [new tag]         RLS25.11rc5 -> RLS25.11rc5
 * [new tag]         RLS25.11rc7 -> RLS25.11rc7
 * [new tag]         RLS25.11rc8 -> RLS25.11rc8
 * [new tag]         RLS25.12   -> RLS25.12
 * [new tag]         RLS25.12rc1 -> RLS25.12rc1
 * [new tag]         RLS25.12rc2 -> RLS25.12rc2
 * [new tag]         RLS25.12rc3 -> RLS25.12rc3
 * [new tag]         RLS25.12rc5 -> RLS25.12rc5
 * [new tag]         RLS25.12rc6 -> RLS25.12rc6
 * [new tag]         RLS25.12rc7 -> RLS25.12rc7
 * [new tag]         RLS25.13   -> RLS25.13
 * [new tag]         RLS25.13rc0 -> RLS25.13rc0
 * [new tag]         RLS25.13rc1 -> RLS25.13rc1
 * [new tag]         RLS25.13rc2 -> RLS25.13rc2
 * [new tag]         RLS25.14   -> RLS25.14
 * [new tag]         RLS25.14M.1_RC0 -> RLS25.14M.1_RC0
 * [new tag]         RLS25.14M.2_RC1 -> RLS25.14M.2_RC1
 * [new tag]         RLS25.14M.3_RC1 -> RLS25.14M.3_RC1
 * [new tag]         RLS25.14rc0 -> RLS25.14rc0
 * [new tag]         RLS25.14rc1 -> RLS25.14rc1
 * [new tag]         RLS25.14rc2 -> RLS25.14rc2
 * [new tag]         RLS25.14rc3 -> RLS25.14rc3
 * [new tag]         RLS25.14rc4 -> RLS25.14rc4
 * [new tag]         RLS25.14rc5 -> RLS25.14rc5
 * [new tag]         RLS25.14rc6 -> RLS25.14rc6
 * [new tag]         RLS25.14rc7 -> RLS25.14rc7
 * [new tag]         RLS25.14rc8 -> RLS25.14rc8
 * [new tag]         RLS25.14rc9 -> RLS25.14rc9
 * [new tag]         RLS25.5    -> RLS25.5
 * [new tag]         RLS25.5rc2 -> RLS25.5rc2
 * [new tag]         RLS25.5rc3 -> RLS25.5rc3
 * [new tag]         RLS25.6    -> RLS25.6
 * [new tag]         RLS25.6rc0 -> RLS25.6rc0
 * [new tag]         RLS25.6rc2 -> RLS25.6rc2
 * [new tag]         RLS25.6rc3 -> RLS25.6rc3
 * [new tag]         RLS25.6rc4 -> RLS25.6rc4
 * [new tag]         RLS25.6rc7 -> RLS25.6rc7
 * [new tag]         RLS25.6rc8 -> RLS25.6rc8
 * [new tag]         RLS25.7    -> RLS25.7
 * [new tag]         RLS25.7rc0 -> RLS25.7rc0
 * [new tag]         RLS25.7rc1 -> RLS25.7rc1
 * [new tag]         RLS25.7rc2 -> RLS25.7rc2
 * [new tag]         RLS25.7rc3 -> RLS25.7rc3
 * [new tag]         RLS25.8    -> RLS25.8
 * [new tag]         RLS25.8rc0 -> RLS25.8rc0
 * [new tag]         RLS25.8rc0b -> RLS25.8rc0b
 * [new tag]         RLS25.8rc1 -> RLS25.8rc1
 * [new tag]         RLS25.8rc1b -> RLS25.8rc1b
 * [new tag]         RLS25.8rc1c -> RLS25.8rc1c
 * [new tag]         RLS25.8rc3 -> RLS25.8rc3
 * [new tag]         RLS25.9    -> RLS25.9
 * [new tag]         RLS25.9rc1 -> RLS25.9rc1
 * [new tag]         RLS25.9rc2 -> RLS25.9rc2
 * [new tag]         RLS25.9rc3 -> RLS25.9rc3
 * [new tag]         RLS25.9rc4 -> RLS25.9rc4
 * [new tag]         RLS25.INC2.2rc1 -> RLS25.INC2.2rc1
 * [new tag]         RLS25.INC2.2rc2 -> RLS25.INC2.2rc2
 * [new tag]         RLS25.INC2.3 -> RLS25.INC2.3
 * [new tag]         RLS25.INC2.3rc1 -> RLS25.INC2.3rc1
 * [new tag]         RLS25.INC2.5 -> RLS25.INC2.5
 * [new tag]         RLS25.INC2.5rc0 -> RLS25.INC2.5rc0
 * [new tag]         RLS25.INC2.5rc2 -> RLS25.INC2.5rc2
 * [new tag]         RLS25.INC2.6 -> RLS25.INC2.6
 * [new tag]         RLS25.INC2.6rc0 -> RLS25.INC2.6rc0
 * [new tag]         RLS25.INC2.7RC0 -> RLS25.INC2.7RC0
 * [new tag]         RLS25.INC2.7rc0 -> RLS25.INC2.7rc0
 * [new tag]         RLS25.INC3.2rc0 -> RLS25.INC3.2rc0
 * [new tag]         RLS25.INC3.3rc0 -> RLS25.INC3.3rc0
 * [new tag]         RLS25.INC3.3rc1 -> RLS25.INC3.3rc1
 * [new tag]         RLS25.INC3.4DB178rc0 -> RLS25.INC3.4DB178rc0
 * [new tag]         RLS25.INC3.4P1DB203rc0 -> RLS25.INC3.4P1DB203rc0
 * [new tag]         RLS25.INC3.4P2DB218rc0 -> RLS25.INC3.4P2DB218rc0
 * [new tag]         RLS25.INC3.4P3DB237rc0 -> RLS25.INC3.4P3DB237rc0
 * [new tag]         RLS25.INC3.4P4DB250rc0 -> RLS25.INC3.4P4DB250rc0
 * [new tag]         RLS25E.16  -> RLS25E.16
 * [new tag]         RLS25E.16rc0 -> RLS25E.16rc0
 * [new tag]         RLS25E.17  -> RLS25E.17
 * [new tag]         RLS25E.17rc0 -> RLS25E.17rc0
 * [new tag]         RLS25E.18_RC00 -> RLS25E.18_RC00
 * [new tag]         RLS27-GB-ENG-1_Gingerbread -> RLS27-GB-ENG-1_Gingerbread
 * [new tag]         RLS27.1    -> RLS27.1
 * [new tag]         RLS27.10.1-P1_Froyo -> RLS27.10.1-P1_Froyo
 * [new tag]         RLS27.10.1_Froyo -> RLS27.10.1_Froyo
 * [new tag]         RLS27.10.2_Froyo -> RLS27.10.2_Froyo
 * [new tag]         RLS27.11.1_Gingerbread -> RLS27.11.1_Gingerbread
 * [new tag]         RLS27.12.1-P1_Gingerbread -> RLS27.12.1-P1_Gingerbread
 * [new tag]         RLS27.12.1_Gingerbread -> RLS27.12.1_Gingerbread
 * [new tag]         RLS27.1rc0 -> RLS27.1rc0
 * [new tag]         RLS27.2    -> RLS27.2
 * [new tag]         RLS27.2rc0 -> RLS27.2rc0
 * [new tag]         RLS27.3    -> RLS27.3
 * [new tag]         RLS27.3p2  -> RLS27.3p2
 * [new tag]         RLS27.3rc0 -> RLS27.3rc0
 * [new tag]         RLS27.3rc1 -> RLS27.3rc1
 * [new tag]         RLS27.4rc0 -> RLS27.4rc0
 * [new tag]         RLS27.5.1_Froyo_RC0 -> RLS27.5.1_Froyo_RC0
 * [new tag]         RLS27.5.2_Froyo -> RLS27.5.2_Froyo
 * [new tag]         RLS27.5.3_Froyo -> RLS27.5.3_Froyo
 * [new tag]         RLS27.5rc0 -> RLS27.5rc0
 * [new tag]         RLS27.6.1_Froyo -> RLS27.6.1_Froyo
 * [new tag]         RLS27.6.2_Froyo -> RLS27.6.2_Froyo
 * [new tag]         RLS27.7.0_Froyo -> RLS27.7.0_Froyo
 * [new tag]         RLS27.7.1_Froyo -> RLS27.7.1_Froyo
 * [new tag]         RLS27.7.2_Froyo -> RLS27.7.2_Froyo
 * [new tag]         RLS27.8.0_Froyo -> RLS27.8.0_Froyo
 * [new tag]         RLS27.8.2_Froyo -> RLS27.8.2_Froyo
 * [new tag]         RLS27.9.0_Froyo -> RLS27.9.0_Froyo
 * [new tag]         RLS27.9.0_Froyo_RC0 -> RLS27.9.0_Froyo_RC0
 * [new tag]         RLS27.9.1_Froyo -> RLS27.9.1_Froyo
 * [new tag]         Test       -> Test
.repo/manifests/: manifest switched android-2.3.4_r1...27.x
.repo/manifests/: discarding 89 commits removed from upstream

Your Name  [kinneko]: 
Your Email [kinneko@gmail.com]: 

Your identity is: kinneko <kinneko@gmail.com>
is this correct [y/n]? y

Testing colorized output (for 'repo diff', 'repo status'):
  black    red      green    yellow   blue     magenta   cyan     white 
  bold     dim      ul       reverse 
Enable color display in this user account (y/n)? y

repo initialized in /home/kinneko/panda/L27.12.1-P2/mydroid


リポジトリを取得する。初回なので、とりあえずきれいなログを取るので-jで並列化しない。
とはいっても、すでに他のリポジトリをコピーしてるので、アレだが。


ってか、長すぎてポストできずに、途中で切れてしまうよ... orz
httpの限界かな...

kinneko@BuildSV:~/panda/L27.12.1-P2/mydroid$ ./repo sync
remote: Counting objects: 225, done.
remote: Compressing objects: 100% (68/68), done.
remote: Total 115 (delta 74), reused 86 (delta 47)
Receiving objects: 100% (115/115), 41.33 KiB, done.
Resolving deltas: 100% (74/74), completed with 36 local objects.
From git://git.omapzoom.org/platform/bionic
 * [new branch]      cdma-import -> omap-mirror/cdma-import
 * [new branch]      cupcake    -> omap-mirror/cupcake
(大量に略)


できたディレクトリは、こんな感じ。

kinneko@BuildSV:~/panda/L27.12.1-P2/mydroid$ ls
Makefile       bootable  dalvik       external    libcore   prebuilt  system
README.kernel  build     development  frameworks  ndk       repo
bionic         cts       device       hardware    packages  sdk

PandaBoard用のディレクトリを最新に変更する

kinneko@BuildSV:~/panda/L27.12.1-P2/mydroid$ cd device/ti/pandaboard/
kinneko@BuildSV:~/panda/L27.12.1-P2/mydroid/device/ti/pandaboard$ git fetch http://review.omapzoom.org/p/device/ti/pandaboard refs/changes/12/13612/1 && git cherry-pick FETCH_HEAD
From http://review.omapzoom.org/p/device/ti/pandaboard
 * branch            refs/changes/12/13612/1 -> FETCH_HEAD
[detached HEAD 90a92dd] panda: Device Directory for PandaBoard
 Author: Omar Barron <o-barron@ti.com>
 13 files changed, 9669 insertions(+), 9291 deletions(-)
 create mode 100644 apns.xml
 mode change 100644 => 100755 boot/u-boot.bin
 rewrite boot/zImage (68%)
 mode change 100644 => 100755
 create mode 100644 env.txt
 create mode 100644 full_pandaboard.mk
 create mode 100644 media_profiles.xml
 create mode 100644 vold.fstab
kinneko@BuildSV:~/panda/L27.12.1-P2/mydroid/device/ti/pandaboard$ cd ../../..

キーボードとマウス対応を追加する

frameworks/baseのリポジトリにrowboatを加えて、そこからcherry-pickでパッチを取得。
[detached HEAD 6a29312] Gingerbread mouse cursor patch
[detached HEAD 5e5aa89] Fix Mouse cursor build failure
の2つ。

kinneko@BuildSV:~/panda/L27.12.1-P2/mydroid$ cd frameworks/base
kinneko@BuildSV:~/panda/L27.12.1-P2/mydroid/frameworks/base$ git remote add rowboat git://gitorious.org/rowboat/frameworks-base.git
kinneko@BuildSV:~/panda/L27.12.1-P2/mydroid/frameworks/base$ git fetch rowboat
remote: Counting objects: 11011, done.
remote: Compressing objects: 100% (2918/2918), done.
remote: Total 8169 (delta 5141), reused 7320 (delta 4479)
Receiving objects: 100% (8169/8169), 12.84 MiB | 150 KiB/s, done.
Resolving deltas: 100% (5141/5141), completed with 743 local objects.
From git://gitorious.org/rowboat/frameworks-base
 * [new branch]      master     -> rowboat/master
 * [new branch]      rowboat-eclair -> rowboat/rowboat-eclair
 * [new branch]      rowboat-eclair-dsp -> rowboat/rowboat-eclair-dsp
 * [new branch]      rowboat-froyo -> rowboat/rowboat-froyo
 * [new branch]      rowboat-froyo-dsp -> rowboat/rowboat-froyo-dsp
 * [new branch]      rowboat-gingerbread -> rowboat/rowboat-gingerbread
 * [new branch]      rowboat-gingerbread-dsp -> rowboat/rowboat-gingerbread-dsp
 * [new branch]      rowboat-gingerbread-ti81xx-mc-dsp -> rowboat/rowboat-gingerbread-ti81xx-mc-dsp
kinneko@BuildSV:~/panda/L27.12.1-P2/mydroid/frameworks/base$ git cherry-pick 17128d44ab04c5b7cb2911e8b1c9f837aa9b36a5
[detached HEAD 6a29312] Gingerbread mouse cursor patch
 Author: Amit Pundir <amitpundir@ti.com>
 9 files changed, 399 insertions(+), 9 deletions(-)
kinneko@BuildSV:~/panda/L27.12.1-P2/mydroid/frameworks/base$ git cherry-pick 174cb50436065dc092114d69fb40d5a7712e3ca0
[detached HEAD 5e5aa89] Fix Mouse cursor build failure
 Author: Syed Mohammed Khasim <khasim@beagleboard.org>
 1 files changed, 2 insertions(+), 0 deletions(-)
 kinneko@BuildSV:~/panda/L27.12.1-P2/mydroid/frameworks/base$ cd ../..

オーディオ対応を追加する

kinneko@BuildSV:~/panda/L27.12.1-P2/mydroid$ cd hardware/ti/omap3/
kinneko@BuildSV:~/panda/L27.12.1-P2/mydroid/hardware/ti/omap3$ git fetch http://review.omapzoom.org/p/platform/hardware/ti/omap3 refs/changes/76/13276/5
remote: Counting objects: 329, done
remote: Finding sources: 100% (6/6)
Unpacking objects: 100% (6/6), done.
From http://review.omapzoom.org/p/platform/hardware/ti/omap3
 * branch            refs/changes/76/13276/5 -> FETCH_HEAD
kinneko@BuildSV:~/panda/L27.12.1-P2/mydroid/hardware/ti/omap3$ git cherry-pick FETCH_HEAD
[detached HEAD 38509f7] add panda support using new alsa_panda source file
 Author: Chris Kelly <c-kelly@ti.com>
 2 files changed, 762 insertions(+), 2 deletions(-)
 create mode 100644 modules/alsa/alsa_panda.cpp
kinneko@BuildSV:~/panda/L27.12.1-P2/mydroid/hardware/ti/omap3$ cd ../../../

ALSA関連に手パッチ。

kinneko@BuildSV:~/panda/L27.12.1-P2/mydroid/hardware/ti/omap3$ vi panda.patch
diff --git a/modules/alsa/Android.mk b/modules/alsa/Android.mk
index 31d4890..b2c1e6b 100644
--- a/modules/alsa/Android.mk
+++ b/modules/alsa/Android.mk
@@ -39,6 +39,7 @@ ifeq ($(strip $(BOARD_USES_ALSA_AUDIO)),true)
   endif
   ifeq ($(strip $(TARGET_BOARD_PLATFORM)), omap4)
     ifeq ($(strip $(TARGET_BOOTLOADER_BOARD_NAME)), pandaboard)
+      LOCAL_CFLAGS += -DOMAP4_PANDA
       LOCAL_SRC_FILES:= alsa_panda.cpp
     else
       LOCAL_SRC_FILES:= alsa_omap4.cpp

diff --git a/modules/alsa/alsa_omap4.h b/modules/alsa/alsa_omap4.h
index cde2a3e..40bb63f 100644
--- a/modules/alsa/alsa_omap4.h
+++ b/modules/alsa/alsa_omap4.h
@@ -26,12 +26,18 @@
 #endif
 
 // alsa devices
+#ifdef OMAP4_PANDA
+#define MM_DEFAULT_DEVICE     "plughw:0,4"
+#define MM_LP_DEVICE          "hw:0,4"
+#define HDMI_DEVICE               "plughw:0,6"
+#else
 #define MM_DEFAULT_DEVICE     "plughw:0,0"
 #define BLUETOOTH_SCO_DEVICE  "plughw:0,0"
 #define FM_TRANSMIT_DEVICE	  "plughw:0,0"
 #define FM_CAPTURE_DEVICE     "plughw:0,1"
 #define MM_LP_DEVICE          "hw:0,6"
 #define HDMI_DEVICE	          "plughw:0,7"
+#endif
 
 // omap4 outputs/inputs
 #define OMAP4_OUT_SCO      (\
 ||<
テストして、適用する。
>||
 kinneko@BuildSV:~/panda/L27.12.1-P2/mydroid/hardware/ti/omap3$ git apply --check panda.patch
 kinneko@BuildSV:~/panda/L27.12.1-P2/mydroid/hardware/ti/omap3$ git apply panda.patch

なんにも反応ないので、確認しておく。

kinneko@BuildSV:~/panda/L27.12.1-P2/mydroid/hardware/ti/omap3$ git diff
diff --git a/modules/alsa/Android.mk b/modules/alsa/Android.mk
index 31d4890..b2c1e6b 100644
--- a/modules/alsa/Android.mk
+++ b/modules/alsa/Android.mk
@@ -39,6 +39,7 @@ ifeq ($(strip $(BOARD_USES_ALSA_AUDIO)),true)
   endif
   ifeq ($(strip $(TARGET_BOARD_PLATFORM)), omap4)
     ifeq ($(strip $(TARGET_BOOTLOADER_BOARD_NAME)), pandaboard)
+      LOCAL_CFLAGS += -DOMAP4_PANDA
       LOCAL_SRC_FILES:= alsa_panda.cpp
     else
       LOCAL_SRC_FILES:= alsa_omap4.cpp
diff --git a/modules/alsa/alsa_omap4.h b/modules/alsa/alsa_omap4.h
index cde2a3e..40bb63f 100644
--- a/modules/alsa/alsa_omap4.h
+++ b/modules/alsa/alsa_omap4.h
@@ -26,12 +26,18 @@
 #endif
 
 // alsa devices
+#ifdef OMAP4_PANDA
+#define MM_DEFAULT_DEVICE     "plughw:0,4"
+#define MM_LP_DEVICE          "hw:0,4"
+#define HDMI_DEVICE               "plughw:0,6"
+#else
 #define MM_DEFAULT_DEVICE     "plughw:0,0"
 #define BLUETOOTH_SCO_DEVICE  "plughw:0,0"
 #define FM_TRANSMIT_DEVICE       "plughw:0,0"
 #define FM_CAPTURE_DEVICE     "plughw:0,1"
 #define MM_LP_DEVICE          "hw:0,6"
 #define HDMI_DEVICE              "plughw:0,7"
+#endif
 
 // omap4 outputs/inputs
 #define OMAP4_OUT_SCO      (\

問題なく当たっている。

kinneko@BuildSV:~/panda/L27.12.1-P2/mydroid/hardware/ti/omap3$ cd ../../..

無線LAN対応を追加する

kinneko@BuildSV:~/panda/L27.12.1-P2/mydroid$ cd ..
kinneko@BuildSV:~/panda/L27.12.1-P2$ git clone git://git.omapzoom.org/platform/hardware/ti/wlan.git
Cloning into wlan...
remote: Counting objects: 4873, done.
remote: Compressing objects: 100% (1618/1618), done.
remote: Total 4873 (delta 3107), reused 4858 (delta 3101)
Receiving objects: 100% (4873/4873), 5.15 MiB | 96 KiB/s, done.
Resolving deltas: 100% (3107/3107), done.
kinneko@BuildSV:~/panda/L27.12.1-P2$ cd wlan
kinneko@BuildSV:~/panda/L27.12.1-P2/wlan$ git reset --hard 456971003aaa94a6b863b7a368aac8415ff32f8c
HEAD is now at 4569710 WLAN - wl1283: remove iniactivity timer for releasing host
kinneko@BuildSV:~/panda/L27.12.1-P2/wlan$ cd ../mydroid/

Google appsのクラッシュ対応パッチを追加する

これは一行なので手パッチで。

--- a/frameworks/base/libs/ui/InputReader.cpp
+++ b/frameworks/base/libs/ui/InputReader.cpp
@@ -426,7 +426,7 @@
     { // acquire state lock
         AutoMutex _l(mStateLock);
 
-        int32_t touchScreenConfig = InputConfiguration::TOUCHSCREEN_NOTOUCH;
+        int32_t touchScreenConfig = InputConfiguration::TOUCHSCREEN_FINGER;
         int32_t keyboardConfig = InputConfiguration::KEYBOARD_NOKEYS;
         int32_t navigationConfig = InputConfiguration::NAVIGATION_NONAV;
         { // acquire device registry reader lock
kinneko@BuildSV:~/panda/L27.12.1-P2/mydroid$ vi frameworks/base/libs/ui/InputReader.cpp

確認。

kinneko@BuildSV:~/panda/L27.12.1-P2/mydroid$ cd frameworks/base/libs/ui
kinneko@BuildSV:~/panda/L27.12.1-P2/mydroid/frameworks/base/libs/ui$ git diff
diff --git a/libs/ui/InputReader.cpp b/libs/ui/InputReader.cpp
index df0174a..30844c4 100644
--- a/libs/ui/InputReader.cpp
+++ b/libs/ui/InputReader.cpp
@@ -426,7 +426,7 @@ void InputReader::updateInputConfiguration() {
     { // acquire state lock
         AutoMutex _l(mStateLock);
 
-        int32_t touchScreenConfig = InputConfiguration::TOUCHSCREEN_NOTOUCH;
+        int32_t touchScreenConfig = InputConfiguration::TOUCHSCREEN_FINGER;
         int32_t keyboardConfig = InputConfiguration::KEYBOARD_NOKEYS;
         int32_t navigationConfig = InputConfiguration::NAVIGATION_NONAV;
         { // acquire device registry reader lock
kinneko@BuildSV:~/panda/L27.12.1-P2/mydroid/frameworks/base/libs/ui$ cd ../../../..

kernelとパッチのダウンロード

kinneko@BuildSV:~/panda/L27.12.1-P2/mydroid$ cd ..
kinneko@BuildSV:~/panda/L27.12.1-P2$ git clone git://git.omapzoom.org/kernel/omap.git kernel/android-2.6.35
Cloning into kernel/android-2.6.35...
remote: Counting objects: 2234872, done.
remote: Compressing objects: 100% (346220/346220), done.
remote: Total 2234872 (delta 1869097), reused 2233228 (delta 1867757)
Receiving objects: 100% (2234872/2234872), 463.66 MiB | 75 KiB/s, done.
Resolving deltas: 100% (1869097/1869097), done.

kinneko@BuildSV:~/panda/L27.12.1-P2$ cd kernel/android-2.6.35/
kinneko@BuildSV:~/panda/L27.12.1-P2/kernel/android-2.6.35$ git checkout ec895072ad0b686d2c130e5d80a3076a03042033
Checking out files: 100% (26639/26639), done.
Note: checking out 'ec895072ad0b686d2c130e5d80a3076a03042033'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

HEAD is now at ec89507... DSS HDMI: HACK for security-violation on HDMI forced suspend-resume
Audio fixes patch
kinneko@BuildSV:~/panda/L27.12.1-P2/kernel/android-2.6.35$ git fetch http://review.omapzoom.org/p/kernel/omap refs/changes/01/13001/2
remote: Counting objects: 36099, done
remote: Finding sources: 100% (15/15)
Unpacking objects: 100% (15/15), done.
From http://review.omapzoom.org/p/kernel/omap
 * branch            refs/changes/01/13001/2 -> FETCH_HEAD
kinneko@BuildSV:~/panda/L27.12.1-P2/kernel/android-2.6.35$ git cherry-pick FETCH_HEAD
[detached HEAD 8c3dfb7] ASoC: omap4panda: Add initial support
 Author: Misael Lopez Cruz <misael.lopez@ti.com>
 Committer: kinneko <kinneko@BuildSV.(none)>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:

    git config --global user.name "Your Name"
    git config --global user.email you@example.com

After doing this, you may fix the identity used for this commit with:

    git commit --amend --reset-author

 4 files changed, 636 insertions(+), 5 deletions(-)
 create mode 100644 sound/soc/omap/omap4panda.c


kinneko@BuildSV:~/panda/L27.12.1-P2/kernel/android-2.6.35$ git fetch http://review.omapzoom.org/p/kernel/omap refs/changes/02/13002/2
From http://review.omapzoom.org/p/kernel/omap
 * branch            refs/changes/02/13002/2 -> FETCH_HEAD
kinneko@BuildSV:~/panda/L27.12.1-P2/kernel/android-2.6.35$ git cherry-pick FETCH_HEAD
[detached HEAD 89507785] ASoC: twl6040: Add auxiliary output support
 Author: Misael Lopez Cruz <misael.lopez@ti.com>
 Committer: kinneko <kinneko@BuildSV.(none)>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:

    git config --global user.name "Your Name"
    git config --global user.email you@example.com

After doing this, you may fix the identity used for this commit with:

    git commit --amend --reset-author

 1 files changed, 11 insertions(+), 0 deletions(-)

configで名前とか登録しろって言われるけど、気にしない。

EHCI fixes patch
kinneko@BuildSV:~/panda/L27.12.1-P2/kernel/android-2.6.35$ git fetch http://review.omapzoom.org/p/kernel/omap refs/changes/17/13617/1
remote: Counting objects: 36095, done
remote: Finding sources: 100% (6/6)
Unpacking objects: 100% (6/6), done.
From http://review.omapzoom.org/p/kernel/omap
 * branch            refs/changes/17/13617/1 -> FETCH_HEAD
kinneko@BuildSV:~/panda/L27.12.1-P2/kernel/android-2.6.35$ git cherry-pick FETCH_HEAD

[detached HEAD 72122fc] arm: omap4: pandaboard: turn on PHY reference clock at init
 Author: Anand Gadiyar <gadiyar@ti.com>
 Committer: kinneko <kinneko@BuildSV.(none)>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:

    git config --global user.name "Your Name"
    git config --global user.email you@example.com

After doing this, you may fix the identity used for this commit with:

    git commit --amend --reset-author

 1 files changed, 11 insertions(+), 0 deletions(-)
DSS patch
kinneko@BuildSV:~/panda/L27.12.1-P2/kernel/android-2.6.35$ git fetch http://review.omapzoom.org/p/kernel/omap refs/changes/22/13722/2
remote: Counting objects: 36099, done
remote: Finding sources: 100% (9/9)
Unpacking objects: 100% (9/9), done.
From http://review.omapzoom.org/p/kernel/omap
 * branch            refs/changes/22/13722/2 -> FETCH_HEAD
kinneko@BuildSV:~/panda/L27.12.1-P2/kernel/android-2.6.35$ git cherry-pick FETCH_HEAD
[detached HEAD 6276951] OMAP4: DSS: support framebuffers with alpha channel
 Author: Parasuraman Ramalingam <x0151836@ti.com>
 Committer: kinneko <kinneko@BuildSV.(none)>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:

    git config --global user.name "Your Name"
    git config --global user.email you@example.com

After doing this, you may fix the identity used for this commit with:

    git commit --amend --reset-author

 5 files changed, 24 insertions(+), 6 deletions(-)
WLAN patches
kinneko@BuildSV:~/panda/L27.12.1-P2/kernel/android-2.6.35$ git fetch http://review.omapzoom.org/p/kernel/omap refs/changes/02/12002/2
remote: Counting objects: 36054, done
remote: Finding sources: 100% (7/7)
Unpacking objects: 100% (7/7), done.
From http://review.omapzoom.org/p/kernel/omap
 * branch            refs/changes/02/12002/2 -> FETCH_HEAD
kinneko@BuildSV:~/panda/L27.12.1-P2/kernel/android-2.6.35$ git cherry-pick FETCH_HEAD
[detached HEAD f2e2b29] OMAP4:WLAN: Add WLAN PowerEnable GPIO for Panda
 Author: Srinivas <x0145110@ti.com>
 Committer: kinneko <kinneko@BuildSV.(none)>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:

    git config --global user.name "Your Name"
    git config --global user.email you@example.com

After doing this, you may fix the identity used for this commit with:

    git commit --amend --reset-author

 2 files changed, 9 insertions(+), 1 deletions(-)
kinneko@BuildSV:~/panda/L27.12.1-P2/kernel/android-2.6.35$ git fetch http://review.omapzoom.org/p/kernel/omap refs/changes/03/12003/1
remote: Counting objects: 36060, done
remote: Finding sources: 100% (13/13)
Unpacking objects: 100% (13/13), done.
From http://review.omapzoom.org/p/kernel/omap
 * branch            refs/changes/03/12003/1 -> FETCH_HEAD
kinneko@BuildSV:~/panda/L27.12.1-P2/kernel/android-2.6.35$ git cherry-pick FETCH_HEAD
[detached HEAD 2633759] CONFIG_WIFI_CONTROL_FUNC  for MACH_OMAP4_PANDA
 Author: srinivas <x0145110@ti.com>
 Committer: kinneko <kinneko@BuildSV.(none)>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:

    git config --global user.name "Your Name"
    git config --global user.email you@example.com

After doing this, you may fix the identity used for this commit with:

    git commit --amend --reset-author

 1 files changed, 2 insertions(+), 2 deletions(-)
kinneko@BuildSV:~/panda/L27.12.1-P2/kernel/android-2.6.35$ git fetch http://review.omapzoom.org/p/kernel/omap refs/changes/64/14064/1

remote: Counting objects: 36091, done
remote: Finding sources: 100% (6/6)
Unpacking objects: 100% (6/6), done.
From http://review.omapzoom.org/p/kernel/omap
 * branch            refs/changes/64/14064/1 -> FETCH_HEAD
kinneko@BuildSV:~/panda/L27.12.1-P2/kernel/android-2.6.35$ 
kinneko@BuildSV:~/panda/L27.12.1-P2/kernel/android-2.6.35$ git cherry-pick FETCH_HEAD
[detached HEAD 65e78f4] arch/arm/mach-omap2/board-omap4panda.c:Bluetooth platform changes
 Author: Abhijit <x0112741@ti.com>
 Committer: kinneko <kinneko@BuildSV.(none)>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:

    git config --global user.name "Your Name"
    git config --global user.email you@example.com

After doing this, you may fix the identity used for this commit with:

    git commit --amend --reset-author

 1 files changed, 19 insertions(+), 3 deletions(-)
kinneko@BuildSV:~/panda/L27.12.1-P2/kernel/android-2.6.35$ git fetch http://review.omapzoom.org/p/kernel/omap refs/changes/67/14067/1
remote: Counting objects: 36091, done
remote: Finding sources: 100% (6/6)
Unpacking objects: 100% (6/6), done.
From http://review.omapzoom.org/p/kernel/omap
 * branch            refs/changes/67/14067/1 -> FETCH_HEAD
kinneko@BuildSV:~/panda/L27.12.1-P2/kernel/android-2.6.35$ git cherry-pick FETCH_HEAD
[detached HEAD bffc894] arch/arm/mach-omap2/hsmmc.c:Change the clock speed for WL127x
 Author: Abhijit <x0112741@ti.com>
 Committer: kinneko <kinneko@BuildSV.(none)>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:

    git config --global user.name "Your Name"
    git config --global user.email you@example.com

After doing this, you may fix the identity used for this commit with:

    git commit --amend --reset-author

 1 files changed, 9 insertions(+), 1 deletions(-)
kinneko@BuildSV:~/panda/L27.12.1-P2/kernel/android-2.6.35$ git fetch http://review.omapzoom.org/p/kernel/omap refs/changes/68/14068/1
remote: Counting objects: 36091, done
remote: Finding sources: 100% (6/6)
Unpacking objects: 100% (6/6), done.
From http://review.omapzoom.org/p/kernel/omap
 * branch            refs/changes/68/14068/1 -> FETCH_HEAD
kinneko@BuildSV:~/panda/L27.12.1-P2/kernel/android-2.6.35$ git cherry-pick FETCH_HEAD
[detached HEAD e559b20] arch/arm/mach-omap2/board-omap4panda.c: Disable power saving for Panda+WL1271
 Author: Abhijit <x0112741@ti.com>
 Committer: kinneko <kinneko@BuildSV.(none)>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:

    git config --global user.name "Your Name"
    git config --global user.email you@example.com

After doing this, you may fix the identity used for this commit with:

    git commit --amend --reset-author

 1 files changed, 1 insertions(+), 1 deletions(-)
update panda_defconfig

kernelのデフォルト設定を追加。

kinneko@BuildSV:~/panda/L27.12.1-P2/kernel/android-2.6.35$ git fetch http://review.omapzoom.org/p/kernel/omap refs/changes/29/13029/3
From http://review.omapzoom.org/p/kernel/omap
 * branch            refs/changes/29/13029/3 -> FETCH_HEAD
kinneko@BuildSV:~/panda/L27.12.1-P2/kernel/android-2.6.35$ git cherry-pick FETCH_HEAD
[detached HEAD 5ea00ef] panda: Enable ALSA OMAP4 drivers
 Author: Misael Lopez Cruz <misael.lopez@ti.com>
 Committer: kinneko <kinneko@BuildSV.(none)>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:

    git config --global user.name "Your Name"
    git config --global user.email you@example.com

After doing this, you may fix the identity used for this commit with:

    git commit --amend --reset-author

 1 files changed, 46 insertions(+), 3 deletions(-)
kinneko@BuildSV:~/panda/L27.12.1-P2/kernel/android-2.6.35$ git fetch http://review.omapzoom.org/p/kernel/omap refs/changes/61/13861/1
remote: Counting objects: 36119, done
remote: Finding sources: 100% (6/6)
Unpacking objects: 100% (6/6), done.
From http://review.omapzoom.org/p/kernel/omap
 * branch            refs/changes/61/13861/1 -> FETCH_HEAD
kinneko@BuildSV:~/panda/L27.12.1-P2/kernel/android-2.6.35$ git cherry-pick FETCH_HEAD
[detached HEAD d62271f] Update Pandaboard configuration for latest commits.
 Author: X0153562 <X0153562@ti.com>
 Committer: kinneko <kinneko@BuildSV.(none)>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:

    git config --global user.name "Your Name"
    git config --global user.email you@example.com

After doing this, you may fix the identity used for this commit with:

    git commit --amend --reset-author

 1 files changed, 43 insertions(+), 4 deletions(-)
kinneko@BuildSV:~/panda/L27.12.1-P2/kernel/android-2.6.35$ cd ../..  
kinneko@BuildSV:~/panda/L27.12.1-P2$ 

U-Bootソースコードの取得

kinneko@BuildSV:~/panda/L27.12.1-P2$ git clone git://git.omapzoom.org/repo/u-boot.git u-boot
Cloning into u-boot...
remote: Counting objects: 140804, done.
remote: Compressing objects: 100% (25113/25113), done.
remote: Total 140804 (delta 114454), reused 140766 (delta 114424)
Receiving objects: 100% (140804/140804), 42.51 MiB | 210 KiB/s, done.
Resolving deltas: 100% (114454/114454), done.
kinneko@BuildSV:~/panda/L27.12.1-P2$ cd u-boot
kinneko@BuildSV:~/panda/L27.12.1-P2/u-boot$ git checkout 601ff71c8d46b5e90e13613974a16d10f2006bb3
Note: checking out '601ff71c8d46b5e90e13613974a16d10f2006bb3'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

HEAD is now at 601ff71... omap4: blaze: blink led on fastboot entry

kinneko@BuildSV:~/panda/L27.12.1-P2/u-boot$ cd ..
kinneko@BuildSV:~/panda/L27.12.1-P2$ 

これ、fastboot patch入っているのかな?
ちょっと期待。

u-boot patch

BootDelayを追加し、正しいbootargsを設定するパッチ。
これは、今回は適用しない。


http://www.omappedia.com/images/e/e4/Uboot-bootargs.patch.gz

X-loaderソースコードの取得

kinneko@BuildSV:~/panda/L27.12.1-P2$ git clone git://git.omapzoom.org/repo/x-loader.git x-loader
Cloning into x-loader...
remote: Counting objects: 1676, done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 1676 (delta 1245), reused 1650 (delta 1231)
Receiving objects: 100% (1676/1676), 466.85 KiB | 81 KiB/s, done.
Resolving deltas: 100% (1245/1245), done.
kinneko@BuildSV:~/panda/L27.12.1-P2$ cd x-loader
kinneko@BuildSV:~/panda/L27.12.1-P2/x-loader$ git checkout c8855fa6b85bd44073bd1b25dbffa99f02cbeeed
Note: checking out 'c8855fa6b85bd44073bd1b25dbffa99f02cbeeed'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

HEAD is now at c8855fa... OMAP4460: Add identification for OMAP4460

kinneko@BuildSV:~/panda/L27.12.1-P2/x-loader$ cd ..
kinneko@BuildSV:~/panda/L27.12.1-P2$ 

ビルド環境の設定

kinneko@BuildSV:~/panda/L27.12.1-P2$ mkdir mydroid/logs
kinneko@BuildSV:~/panda/L27.12.1-P2$ export JAVA_HOME=/usr/lib/jvm/java-6-sun
kinneko@BuildSV:~/panda/L27.12.1-P2$ export CROSS_COMPILE=arm-none-linux-gnueabi-
kinneko@BuildSV:~/panda/L27.12.1-P2$ pwd
/home/kinneko/panda/L27.12.1-P2
kinneko@BuildSV:~/panda/L27.12.1-P2$ export PATH=/home/kinneko/panda/L27.12.1-P2/build_tools/arm-2010q1/bin:$PATH


うー、長い長い。
でも、まだビルド試したわけじゃないのよ...


ビルド編
http://d.hatena.ne.jp/kinneko/20110908/p1
に続く。