本帖最后由 zhangmangui 于 2017-5-31 23:33 编辑  
 
 Beaglebone外围电路设计之Android4.0.3 ICS的移植  
 
起初打算使用QT来做界面,但是随着NOKIA的衰落,QT的前景也变得暗淡,关于这方面的资料也不多。 
Android不仅界面华丽,而且它的功能库包含了众多开源产品,包括WebKit,OpenCore,SQlite等。 
Opencore除了能解析一般的本地多媒体文件外,还提供了对网络i流媒体的解码功能。网络流媒体主要有HTTP,RTP和RTSP等。 
 而小车的视频传输正是基于RTSP协议。基于此,在Beaglebone上改用Android。其实Android也是基于Linux的,Android内核 
 的编译和编译一般的linux并没有区别。但是Linux内核仅是Android架构中的一层。整个Android框架如下: 
 
 
 整个开发过程包括每个层之间的框架接口编写,涉及C,C++,JAVA编程。 
  
 
$ sudo apt-get update $ sudo apt-get install git-core gnupg sun-java6-jdk flexbison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curllibncurses5-dev zlib1g-dev minicom tftpd uboot-mkimage expect  
步骤:   $ mkdir $HOME/rowboat-android  $ cd $HOME/rowboat-android  $ chmod a+x TI-Android-ICS-4.0.3_AM335x_3.0.1.bin  $ ./TI-Android-ICS-4.0.3_AM335x_3.0.1.bin 
 
 
 
 之后得到包括U-boot源码,Linux源码以及android文件系统源码。 
 
 编译源码前,得先安装好交叉编译工具。 
 工具的位置:$HOME/rowboat-android/TI-Android-ICS-4.0.3_AM335x_3.0.1/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin 
可以在/etc/environment之内加入也可以用如下方式: 
$ export PATH=$HOME/rowboat-android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin:$PATH 
 
编译Bootloader:  $ cd <android source path>/u-boot 
• Execute following commands: 
   $ make CROSS_COMPILE=arm-eabi- distclean 
   $ make CROSS_COMPILE=arm-eabi- am335x_evm_config 
   $ make CROSS_COMPILE=arm-eabi-  
 
编译内核: 
• Change directory to kernel 
   $ cd <android source path>/kernel 
• Execute following commands 
   $ make ARCH=arm CROSS_COMPILE=arm-eabi- distclean 
   $ make ARCH=arm CROSS_COMPILE=arm-eabi- am335x_evm_android_defconfig 
   $ make ARCH=arm CROSS_COMPILE=arm-eabi- uImage 
 
编译Android文件系统稍微复杂一点: 
1 配置好java环境  
 
安装插件: sudo apt-getinstall sun-java6-jdk 可以通过下面的方法设置机器的默认jdk版本: sudoupdate-alternatives --config java 选auto java 2.编辑:/etc/environment 文件, 用命令 sudogedit/etc/environment 打开 environment文件,修改: PATH="/usr/lib/jvm/bin:$PATH" CLASSPATH="/usr/lib/jvm/lib" JAVA_HOME="/usr/lib/jvm" 根据系统的具体路径修改。  
3 给文件系统 Integration RowboPERF• 在android源码中下载: 
  git clone git://gitorious.org/rowboat/rowboperf.git 
 
 4 开始编译: 
make TARGET_PRODUCT=<product-name> OMAPES=4.x -j<N>   
注:N为编译所在主机的处理器数量乘以2。 
 
 最后,经过漫长的等待,约6到7个小时后编译完成。 
 
制作用于启动的SD卡: 
1 得到 rootfs.tar.bz2: 
cd out/target/product/<product-name> 
 mkdir android_rootfs 
 cp -r root/* android_rootfs 
 cp -r system android_rootfs 
 ../../../../build/tools/mktarball.sh ../../../host/linux-x86/bin/fs_get_stats android_rootfs . rootfs rootfs.tar.bz2 
 
2 制作 
 
mkdir image_folder 
 cp uEnv.txt image_folder 
 cp kernel/arch/arm/boot/uImage image_folder 
 cp u-boot/u-boot.img image_folder 
 cp u-boot/MLO image_folder 
 cp out/target/product/<product-name>/rootfs.tar.bz2 image_folder 
 cp Media_Clips image_folder 
 sudo ./mkmmc-android.sh /dev/sd<mount-point> MLO u-boot.img uImage uEnv.txt rootfs.tar.bz2 Media_Clips 
 
 |