BeagleBone学习历程(二):Android移植

作者: ㉿_⊹苏坡_man_
上传时间为: 2014-08-22 06:20 PM
2014-08-22
阅读:

BeagleBone 是仅有信用卡大小的低成本 Linux 计算机,它与 Internet 相连并运行高级操作系统,例如 Android 4.0 和 Ubuntu Linux。Android GingerBread-2.3.4是TI公司提供的一个比较老的Android版本了,不过版本并不太影响移植操作,之所以选择Android GingerBread-2.3.4是因为资料比较齐全,方便入手。

硬件开发平台:BeagleBone A5

软件包:Android GingerBread-2.3.4-DevKit-2.1.1

Android GingerBread-2.3.4是TI公司提供的一个比较老的Android版本了,不过版本并不太影响移植操作,之所以选择Android GingerBread-2.3.4是因为资料比较齐全,方便入手。还没移植Android时我就在想,Android是一个很好的GUI,而我的 BeagleBone又没有HIDM接口,如果没有显示那移植的兴趣就减了一半,所以在网上一搜LCD和cloak,这价格不是一般的贵,我等并非高富帅 也没有个拿得出手的爹,所以只能望而却步。

移植过程:

1、下载开发软件包和工具:

  1>Android GingerBread-2.3.4-DevKit-2.1.1软件包下载:

下载地址:http://software-dl.ti.com/dsps/dsps_public_sw/sdo_tii/TI_Android_DevKit/TI_Android_GingerBread_2_3_4_DevKit_2_1_1/index_FDS.html

在这界面下有很多有用的资料和工具,具体选择看自己个人了,多看资料还是很有好处的,虽然全是英文的,习惯要养成。

 2>Ubuntu 10.04:这个Google一下就OK了,但是版本一定得是10.4以上。

  3>其他的一些开发工具都是Ubuntu里安装的了,用后面的命令操作。

2、移植步骤:  

  1>输入以下命令,安装其中的工具

  • $ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
  • $ sudo add-apt-repository "deb-src http://archive.canonical.com/ubuntu lucid partner"
  • $ sudo apt-get update
  • $ sudo apt-get install git-core gnupg sun-java6-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl  libncurses5-dev zlib1g-dev minicom tftpd uboot-mkimage expect
  • $ sudo update-java-alternatives -s java-6-sun

        其中Android Gingerbread需要java-6,而在ubuntu默认带有java-5,所以需要更新。如果apt-get 命令无法安装的话就需要手动安装,可以Google上搜索到java的官网下载安装,安装帖子网上也有很多,这里就不详细介绍了。    

2>安装和初始化Repo:

Repo是一个工具,一个可以能更好的使用Git的一个工具。首先的确保用户主目录下有个bin文件夹,命令如下:

  • $ mkdir ~/bin
  • $ PATH=~/binPATH
  • $ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
  • $ chmod a+x ~/bin/repo$ mkdir $HOME/rowboat-android
  • $ cd $HOME/rowboat-android
  • $ repo init -u git://gitorious.org/rowboat/manifest.git -m rowboat-gingerbread-am335x.xml
  • $ repo sync

这个过程时间比较长,耐心等待吧,可以去吃个饭喝喝茶什么的了。。。。  

  3>构建代码:

首先就是把Android GingerBread-2.3.4-DevKit-2.1.1解压并改名rowboat-android

设置工具链:$ export PATH=$HOME/rowboat-android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/binPATH       编译MLO和u-boot:

  •        $ cd u-boot
  •        $ make CROSS_COMPILE=arm-eabi- distclean
  • $ make CROSS_COMPILE=arm-eabi- am335x_evm_config
  • $ make CROSS_COMPILE=arm-eabi-

编译通过后将生产MLO和u-boot.img,还有就是从tools文件夹拷贝一份"mkimage"到/usr/bin,这是后面编译uImage所需要的。

  4>内核编译:

  • $ cd kernel
  • $ make ARCH=arm CROSS_COMPILE=arm-eabi- distclean
  • $ make ARCH=arm CROSS_COMPILE=arm-eabi- beaglebone_android_defconfig
  • $ make ARCH=arm CROSS_COMPILE=arm-eabi- uImage

内核编译时间会比较长,需耐心等待,编译通过后将在kernel/arch/arm/boot 中生产内核镜像文件---uImage。

  5>生产文件系统:前面下载的Repo这里就用上了派场,

  • $ git clone -b rowboat-gingerbread git://gitorious.org/rowboat/rowboperf.git
  • $ cd rowboperf

        这命令将会把RowboPERF克隆到rowboat-android中,其中就包含了我们所要的文件等。

        $ make TARGET_PRODUCT=beaglebone OMAPES=4.x 编译通过后将产生Android FS,接下来就是生成文件系统包

  • $ cd out/target/product/beaglebone
  • $ mkdir android_rootfs
  • $ cp -r root/* android_rootfs
  • $ cp -r system android_rootfs
  • $ sudo ../../../../build/tools/mktarball.sh ../../../host/linux-x86/bin/fs_get_stats android_rootfs . rootfs rootfs.tar.bz2

rootfs.tar.bz2就是我们需要的文件系统包了。

6>生产SD卡Android boot:

  • $ cp mkmmc-android.sh image_folder
  • $ cd image_folder

插上SD卡,再执行下面命令

    $ sudo ./mkmmc-android.sh <sd card mounted dev folder example:/dev/sdc> MLO u-boot.img uImage uEnv.txt rootfs.tar.bz2 Media_Clips

其中Media_Clips是软件包自己带的一个媒体文件,拷贝过来就是了,如果这步成功的话,那么这张SD卡就已经可以用来引导 Android了,插到板子上复位下,如果在终端将会打印Android启动的一些信息了,那么你的BeagleBone就已经成功启动Android!

全部评论 ()
条评论
写评论

创建讨论帖子

登录 后参与评论
系统提示