Pandaboard使用手册

来源:互联网 发布:轻钢房屋设计软件 编辑:程序博客网 时间:2024/06/08 07:32

HaiPeng(lzuzhp@gmail.com)

      最近的实验需要在移动平台上来做,通过调研发现大多数开发板不能进行DVFS,手机和平板又不能随心所欲的修改内核,好在米国的开发板PandaBoard是可以调频的开发板,拿到手的是OMAP4430 双核1G的处理器,下面就简单介绍一下,如何在这个开发板上移植ubuntu和android。

1. 移植ubuntu到pandaboard

      Ubuntu的移植比较简单,先将ubuntu安装到SD卡中,然后在编译相关内核,替换掉SD卡中的镜像文件以及驱动就行了,跟在x86上编译内核的流程类似,下面简述一下。

安装ubuntu到pandaboard

1.      在http://omappedia.org/wiki/Prebuilt_ubuntu_binaries选择自己需要的版本,下载二进制镜像文件,如11.04-desktop;

2.      使用gunzip解压镜像,如gunzip ubuntu-11.04-preinstalled-desktop-armhf+omap4.img.gz

3.      插入sd卡,要求sd卡是没有任何文件系统的(将sd卡插入linux主机,没有只有/dev/sdb,没有/devsdb1)。可以使用linux下的disk utility工具删除sd卡上的文件系统;

4.      使用dd命令,将ubuntu镜像拷贝到sd卡中,如ddbs=4M if=ubuntu-11.04-preinstalled-desktop-armhf+omap4.img of=/dev/sdb

5.      拷贝完成后,将sd卡插入pandaboard,启动,便开始将ubuntu装入sd卡中;

6.      装入完成后,sd卡被分为两个分区:boot分区与文件系统分区。

参考:https://wiki.ubuntu.com/ARM/OmapDesktopInstall

接下来介绍,如何运行自己编译的内核

1.      下载专门为omap准备的ubuntu的内核源代码(与上面的匹配或者是内核版本高于上面的,就像在ubuntu 11.04编译高版本的内核一样):

网址:https://launchpad.net/ubuntu/oneiric/+source/linux-ti-omap4/;

2.      安装交叉编译工具:

apt-get install gcc-arm-linux-gnueabi

apt-get install uboot-mkimage

3.      修改Makefile

ARCH=arm

CROSS_COMPILE=arm-linux-gnueabi-

4.      使用默认的config文件:

cp ./arch/arm/configs/omap4_defconfig.config

5.      自行配置:

make menuconfig

6.      编译内核和模块

make uImage –j  4

make modules

7.      挂载sd卡的boot分区,以及rootfs分区

mount /dev/sdb1 /media/boot/

mount /dev/sdb2 /media/rootfs/

8.      拷贝uImage到挂载点(先将之前的uImage备份一下)

mv /media/boot/uImage/media/boot/uImage.bak

cp ./arch/arm/boot/uImage/media/boot/

9.      安装模块到sd卡中

export INSTALL_MOD_PATH=/media/rootfs

cd ../ubuntu-natty

make modules_install

10.   卸载/dev/sdb1,并将sd卡插入pandaboard中。

2. 移植android到pandaboard

      android到pandaboard的移植麻烦一点,从网上下载的已经编译好的镜像文件烧写到SD卡上,发现进入android后很卡,根本没法使用,还是一步步从android的源码开始编译吧。

1.      配置编译android源码的主机环境

android必须在64位的机器上编译,我使用的操作系统是ubuntu 11.04。然后根据http://source.android.com/source/initializing.html安装必要的软件包:

sudo apt-getinstall git-core gnupg flex bison gperf build-essential \

  zip curl zlib1g-dev libc6-devlib32ncurses5-dev ia32-libs \

  x11proto-core-dev libx11-dev lib32readline5-devlib32z-dev \

  libgl1-mesa-dev g++-multilib mingw32 tofrodospython-markdown \

  libxml2-utils xsltproc

然后配置usb的访问控制,不然ubuntu无法识别pandaboard开发板,我使用的是root用户所以username被替换成了root:

# adbprotocol on passion (Nexus One)

SUBSYSTEM=="usb",ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e12",MODE="0600", OWNER="<root>"

# fastbootprotocol on passion (Nexus One)

SUBSYSTEM=="usb",ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff",MODE="0600", OWNER="<root>"

….

Jdk的安装参见http://hi.baidu.com/designhouse/item/0dbece7c4f6af0376e29f6c1。

 2.      准备一块大的空闲分区

     要求必须大于30G(仅仅同步一个分支),100G是最好的(同步整个android源码),不然会报磁盘空间不足的错误。

 3.      下载android源码

     这个工作最好是在睡觉的时候下载,因为实在是太慢了。这个可以参见http://source.android.com/source/downloading.html,该网页默认源码代码放在根分区的WORKING_DIRECTORY,自己根据自己的实际情况修改一下就行。我的磁盘只有30G的空余,所以只初始化同步一个分支,我使用的是最新的android 4.04(repo init -u https://android.googlesource.com/platform/manifest-b android-4.0.4_r1)

 4.      下载pandaboard对应的驱动

      网址:https://developers.google.com/android/nexus/drivers?hl=zh-CN,下载完解压,然后执行解压后的脚本,最后将生成的verdor目录拷贝到android源代码的根目录下面,默认就是那个WORKING_DIRECTORY目录下面。

 5.      编译android内核源码

      在android源码根目录下面执行

sourcebuild/envsetup.sh

lunch full_panda-eng

make –j 4

这期间有可能还会出错,google吧!

 6.      编译完成后,将相关文件烧写到sd卡中

这个可以参见 http://fosiao.com/content/build-android-4-pandaboard。

 

其他注意事项:

1.      错误网上一般都能找到答案,有一个是需要换一下HDMI的插口的(pandaboard有两个HDMI接口,我用的是远离网卡的那个,但是ubuntu使用离网卡近的那个);

2.      通过pandaboard的串口来使用linux命令是没有root权限的,要root使用权限需要用adb shell。adb shell在第6步少写sd卡的时候已经用过了,使用root,先adb root,然后adb shell就行了;

3.      我使用android已经编译好的镜像启动pandaboard花了一天时间(实验证明发现只有http://releases.linaro.org/12.01/android/leb-panda/用起来还行,而且是采用有三个文件的那种方法,单纯的镜像也是不行的),下载android源码花了一天时间,编译android源码花了一天时间,总共花了3天时间,希望各位能比我快的多;

4.      要使用自己编译的内核,参加http://blog.chinaunix.net/uid-495571-id-3071261.html,当前个人还用不着,等用找了在将这一块补充上;

5.      网上已经有人用pandaboard来玩愤怒的小鸟了,支持重力感应,牛人真多啊http://v.ku6.com/show/RtbrEkBr-85lyyjp.html。

原创粉丝点击