基于Android系统的家庭体感娱乐平台

  引言

  本文基于TI公司的OMAP3515开源平台设计了一款客厅游戏主机,开源软件平台使用Linux系统,独立移植了更流行、界面更友好的Android系统,开发了平台软件SDK,研发了hopoplayer播放器,支持Flash格式的游戏,并建立了友好的移植框架,可方便地移植到其他平台使用,主机使用体感手柄控制显示界面和操控体感游戏。完整的家庭体感娱乐平台如图1所示。

  基于Android系统的家庭体感娱乐平台

  图1 家庭体感娱乐平台

  1 客厅游戏主机

  客厅游戏主机基于TI公司的OMAP3515开源平台设计。软件上,可以选择Android系统,也可以选择Linux系统。Android系统也是基于开源Linux系统内核,所以设计网卡驱动、HDMI驱动、音频驱动、显示驱动、NAND Flash驱动、USB驱动原理相同。硬件上,更换了网卡芯片、电源管理芯片、音频解码芯片、USB芯片和NAND Flash芯片,增加了HDMI驱动芯片。

  Linux系统和Android系统使用相同的引导程序xloader、uboot,设计不同的kernel和文件系统,修改不同的启动参数即可选择Linux系统或Android系统。

  移植Android系统到嵌入式Linux平台设备,主要有两种方法:一种是在使用的内核里打Android补丁,补丁量比较大,出错的机会也大,移植时间也会很长;另一种是使用开源的Android系统,将平台的驱动和配置等打补丁,添加到Android系统中,本文采用了这种方法。

  1.1 下载Android源码和建立编译环境

  主机系统: Linux Fedora 10.

  (1) 下载Android源码

  $ yum install git?core

  $ curl http://android.git.kernel.org/repo 》~/bin/repo

  $ chmod a+x ~/bin/repo

  $ mkdir rowboat?android

  $ cd rowboat?android

  $ repo init ?u git://gitorious.org/rowboat/manifest.git ?m rowboat?donut.xml

  $ repo sync

  (2) 建立编译环境

  ① 准备需要的开发包:

  Git 1.5.4 or newer and the GNU Privacy Guard.

  JDK 5.0, update 12 or higher. Java 6 is not supported, because of incompaTIbiliTIes with @Override.

  flex, bison, gperf, libsdl?dev, libesd0?dev, libwxgtk2.6?dev (optional), build?essential, zip, curl, minicom, tftp?server, uboot?mkimage

  ② 对于Fedora 10使用如下命令:

  $ yum install bison gperf flex xorg?x11?proto?devel readline?devel

  下载jdk?1_5_0_22?linux?i586.bin,安装在/usr/local/hualu/android/rowboat?android/jdk1.5.0_22下。

  基于Android系统的家庭体感娱乐平台

  图2 主机框架

  修改java环境变量:

  export JAVA_HOME=/usr/local/hualu/android/rowboat?android/jdk1.5.0_22

  export PATH=$JAVA_HOME/bin:$PATH

  export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH

  For Ubuntu 32?bit use such command:

  $ sudo apt?get install git?core gnupg sun?java5?jdk flex bison gperf libsdl?dev libesd0?dev libwxgtk2.6?dev build?essential zip curl libncurses5?dev zlib1g?dev minicom tftpd uboot?mkimage

  Ubuntu Intrepid (8.10) users may need a newer version of libreadline:

  $ sudo apt?get install lib32readline5?dev

  下载jdk?1_5_0_22?linux?i586.bin,安装在/usr/local/hualu/android/rowboat?android/jdk1.5.0_22下。

  修改java环境变量:

  export JAVA_HOME=/usr/local/hualu/android/rowboat?android/jdk1.5.0_22

  export PATH=$JAVA_HOME/bin:$PATH

  export CLASSPATH=$JAVA_HOME/ lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH

  ③ 建立rootfs:

  $ make TARGET_PRODUCT=omap3?evm TARGET_BUILD_VARIANT=tests ?j8

  $ cd out/target/product/omap3evm

  $ 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

  ④ 建立kernel:

  $make ARCH=arm omap3_evm_android_defconfig

  1.2 移植Android系统的主要流程

  ① 首先到http://code.google.com/p/rowboat/wiki/Source网站,参考说明下载2.6.29 kernel和omap3evm?donut?2009?12?22.tar.bz2 文件系统。

  如果只下载TI OMAP3EVM 内核,可以使用git clone git://gitorious.org/rowboat/kernel.git.

  ② 修改uboot的启动参数:

  setenv bootargs ?mem=128M console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw init=/init rootwait?。

  ③ 把平台上在TI OMAP3EVM中修改的内容打补丁,移植到步骤①下载的内核中,重点是针对平台的驱动和显示部分。

  ④ 拷贝修改后内核的uImage和文件系统到的SD卡中,从SD卡启动Android系统。

  ⑤ 启动后首先出现机器人LOGO,然后出现“android”字体LOGO,最后出现Android主界面。

  ⑥ 优化、修改启动界面,如需要从NAND Flash启动则修改相应的启动参数和文件系统等。

技术专区

  • Alexa语音服务软件扩展STM32Cube
  • 结合DNN API驱动未来神经网络应用的解决方案
  • 针对于高端移动通信和汽车市场的四集群设计
  • 一款基于帧捕捉的开源图形调试器应用设计
  • 即将成为标准配置的最新安全技术:后视摄像系统
  • 基于Android系统的家庭体感娱乐平台已关闭评论
    A+
发布日期:2019年07月14日  所属分类:物联网