剛拿到pandaboard, 照例對於這些開發板, 需要先準備需要用到的開發環境.
下面以linaro上對於pandaboard的支持爲例, 記錄下如何把linaro提供的最新的android系統在板子上跑起來.
環境準備
- 下載所需的資源及代碼
參照https://wiki.linaro.org/Platform/Android/GetSource - 編譯源代碼
export PATH=$PATH:[your path to toolchain]/android-toolchain-eabi/bin:/[your linaro android src path]/out/target/product/pandaboard/obj/u-boot/tools
這兩個path,一個是爲了找到對應的linaro toolchain,一個是用來找到編譯過程要用到的mkimage(由u-boot中生成)
make TARGET_PRODUCT=pandaboard TARGET_TOOLS_PREFIX=../android-toolchain-eabi/bin/arm-linux-androideabi- HOST_CC=gcc-4.5 HOST_CXX=g++-4.5 HOST_CPP=cpp-4.5 boottarball systemtarball userdatatarball
updated 2012/04/25: 這裏注意,雖然這裏的compile指定到的是linaro提供的arm-linux-androideabi-, 但是編譯其中的u-boot的時候,從uboot.mk中可以看出,它使用的是系統中指定的arm-none-eabi-系列的toolchain, 在我的機器中使用的Codesourcery提供的toolchain。 大家可以單獨編譯u-boot, 如果使用linaro的android-toolchain,則彙編失敗:)
以下很重要, 參照最新的11.12的release, 還需要動手爲上步製作好的文件系統的system區加一些panda所用到的專有的圖形庫,(如果使用11.10的代碼來編譯, 就可以略過這一步了)
參見: http://releases.linaro.org/11.12/android/leb-panda/$ wget http://releases.linaro.org/11.12/android/images/landing-panda/install-binaries.sh $ chmod a+x install-binaries.sh $ ./install-binaries.sh /dev/sdX2 "device node of system partition"
這個腳本中用到了一些特殊的so, 如下: (這些都是pandaboard上面用的圖形芯片供應商提供的庫, 在linaro的代碼中是沒有包含的, 但是在TI的pandaboard的git 庫中就有pandaboard/android_platform/device/ti/proprietary-open/graphics/omap4/system/vendor/lib)
vendor/imgtec/panda/proprietary/pvrsrvinit
vendor/imgtec/panda/proprietary/libEGL_POWERVR_SGX540_120.so
vendor/imgtec/panda/proprietary/libGLESv1_CM_POWERVR_SGX540_120.so
vendor/imgtec/panda/proprietary/libGLESv2_POWERVR_SGX540_120.so
vendor/imgtec/panda/proprietary/gralloc.omap4.so
vendor/imgtec/panda/proprietary/libglslcompiler.so
vendor/imgtec/panda/proprietary/libIMGegl.so
vendor/imgtec/panda/proprietary/libpvr2d.so
vendor/imgtec/panda/proprietary/libpvrANDROID_WSEGL.so
vendor/imgtec/panda/proprietary/libPVRScopeServices.so
vendor/imgtec/panda/proprietary/libsrv_init.so
vendor/imgtec/panda/proprietary/libsrv_um.so
vendor/imgtec/panda/proprietary/libusc.so
這裏還需要注意, linaro對AOSP的build體系做了必要的擴充, 主要是支持MLO, u-boot, kernel及一些硬件相關的編譯, 具體的相關配置, 參照devices/linaro/目錄下的common和pandaboard目錄. - 製作rootfs
./linaro-android-media-create --mmc /dev/sdf --dev panda --system ../../android_platform_4.0.1/out/target/product/pandaboard/system.tar.bz2 --userdata ../../android_platform_4.0.1/out/target/product/pandaboard/userdata.tar.bz2 --boot ../../android_platform_4.0.1/out/target/product/pandaboard/boot.tar.bz2
關於linaro-android-media-create工具, 還是比較方便的, 所以對它進行了下分析,參見<玩轉pandaboard之rootfs製作及啓動>
- 下載所需的資源及代碼
其它,
購買pandaboard
能從國外購買是最好了,省錢:)
國內的同學也能通過chipsee這個ti在國內的官方合作伙伴來買嘍. 具體各位自己上網查一下即可.
驗證板子
沒什麼多說的, 拿到chipsee附送的dvd, 按照說明做好一個sd的image, 插入板子, 上電,即可正常啓動.
pandaboard的相關資源
https://wiki.linaro.org/Platform/Android