查看: 47|回复: 0

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

[复制链接]

主题

好友

153

积分

童生

  • TA的每日心情
    奋斗
    2013-7-22 20:26
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2014-8-22 18:20:53 |显示全部楼层
    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软件包下载:       
            下载地址:https://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 https://archive.canonical.com/ lucid partner"       
    • $ sudo add-apt-repository "deb-src https://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!
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

    站长推荐上一条 /4 下一条

    手机版|电路城

    GMT+8, 2019-7-20 01:33 , Processed in 0.096253 second(s), 15 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz!

    返回顶部