Tiny6410Andoid系统开发指南.docx
- 文档编号:2020722
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:18
- 大小:2.72MB
Tiny6410Andoid系统开发指南.docx
《Tiny6410Andoid系统开发指南.docx》由会员分享,可在线阅读,更多相关《Tiny6410Andoid系统开发指南.docx(18页珍藏版)》请在冰点文库上搜索。
Tiny6410Andoid系统开发指南
Tiny6410Android的开发指南
----在Fedora14上搭建Android编译环境
---编译配置Android系统镜像
2011年8月2日
一、建立Android编译环境
说明:
在这里主要介绍如何从源代码编译Android系统并生成可烧写的Images
1.1关于开发平台和交叉编译器
Android开发环境与Linux开发环境主要的区别在于,Android2.3.4需要安装Fedora14开发平台才能编译,而其它例如安装交叉编译器和mktools工具链,其方法与Linux基本相同,它所使用的编译器和标准Linux是相同的。
注意:
编译安装Android整个系统至少需要5G的硬盘空间!
首先,下载Vmwareworkstation虚拟机和Fedora14系统镜像。
然后,在windows下安装虚拟机,并在虚拟机上安装上Fedora14系统。
如果对Vmwareworkstation不熟悉,可以上XX上面问问,在这里我就不详细介绍了,至于它的一些使用技巧我会在用到时提到。
至于怎么安装Fedora14也不详细介绍了,只要你安装过Linux系统我相信你一定会安装。
我们的重点是上面我所说的怎样去搭建和配置Android系统镜像,至于这些工具和系统的安装不在详细说明,网上这样的资料很多,想了解的请自己到网上搜索。
当你安装好了,大体就像下图那样:
一开始,可能你的Fedora系统没有连上网,你可以右击连接,不过这个前提是你的虚拟机网络配置是net,这样你才能连接外网。
如图所示:
Fedora14默认不能用root用户登录GUI,这会造成很大的不便,用以下方法可以使得Fedora14可以使用root用户登录:
1.进入普通用户,在终端输入su
2.输入root密码
3.用vi修改两个文件,把authrequiredpam_succeed_if.souser!
=rootquiet注释掉
vi/etc/pam.d/gdm
vi/etc/pam.d/gdm-password
操作如下:
3.1输入a
3.2在authrequiredpam_succeed_if.souser!
=rootquiet前加上#
3.3按一下Esc
3.4输入":
wq"
4.重新登录
因为我们要向虚拟机上面传送文件,所以我们需要把Fedora14上面的smb服务开启,其实VM上面自带一个工具,但是本人还是喜欢smb服务,下面就简单的介绍下:
常见问题和解决办法:
访问某台计算机“无任何网络提供程序接受指定的网络路径”怎么解决?
网络共享只从主IP的网段查找主机,问题就出在目标IP必须与本地主IP同一网段!
这时你需要将Fedora的IP地址设置成和你windows的IP地址是同一个网段的即可。
注意:
为了使Fedora的IP地址和你的IP地址是同一个网段,请使用桥接模式,如下图所示:
此时我的主机IP是192.168..1.166
我的Fedora的IP地址我设置成192.168.1.167
这样我在window下pingFedora能ping通,这就说明网络已经设置好了
接下来就是配置Smb服务了
如下图所示:
配置共享目录:
添加可访问的用户
你可以看不到可供你选择的用户,你需要首先添加用户:
如果都设置好了,重启网络和smb服务即可,在windows下访问了
注意:
请首先关闭Fedora的防火墙!
!
OK好了,现在可以在windows下像访问windows一样去访问Fedora目录。
1.2.建立交叉编译环境
在Linux平台下,要为开发板编译内核,图形界面Qtopia/Qt4,bootloader,还有其他一些应用程序,均需要交叉编译工具链。
Step1:
将光盘Linux目录中的arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz复制到Fedora14
中的某个目录,如:
/tmp/Linux/。
#cd/tmp/Linux/
#tarxvzfarm-linux-gcc-4.5.1-v6-vfp-20101103.tgz–C/
执行该命令,将把arm-linux-gcc安装到/opt/FriendlyARM/toolschain/4.5.1目录。
说明:
以上的交叉编译器是Tiny6410开发板自带的,所以会解压到以上提到的目录,你也可以在网上下载一个。
Step2:
把编译器路径加入系统环境变量,运行命令
#gedit/root/.bashrc
编辑/root/.bashrc文件,注意“bashrc”前面有一个“.”,修改最后一行为exportPATH=$PATH:
/opt/FriendlyARM/toolschain/4.5.1/bin,注意路径一定要写对,否则将不会有效。
如图:
重新登录系统(不必重启机器,注销下即可),使以上设置生效,在命令行输入arm-linux-gcc–v,会出现如下信息,这说明交叉编译环境已经成功安装。
1.3配置和编译U-boot
说明:
Android所用的U-boot其实和标准Linux是一样的,根据开发板不同的内存(DDRRAM)容量,需要使用不同的U-boot配置项。
1.3.1配置编译支持NAND启动的U-boot
(1)解压安装u-boot源代码
首先创建工作目录/opt/FriendlyARM/Tiny6410/android
在命令行执行
#mkdir–p/opt/FriendlyARM/Tiny6410/android
在工作目录/opt/FriendlyARM/Tiny6410/android中执行:
#cd/opt/FriendlyARM/Tiny6410/android
#tarxvzf/tmp/Android/u-boot-mini6410-20101106.tar.gz
将创建生成u-boot-mini6410目录,里面包含了完整的内核源代码
这里的mini6410和Tiny6410差不多,这是的代码是通用的。
1.3.2配置编译支持NAND启动的U-boot
进入U-boot源代码目录,执行
#cd/opt/FriendlyARM/Tiny6410/linux/u-boot-mini6410
#makemini6410_nand_config-ram256;make
将会在当前目录配置并编译生成支持Nand启动的U-boot.bin
好了看看的确是得到了u-boot.bin文件,在这里为了区分,将其改为u-boot_nand-ram256.bin
1.3.3配置编译支持SD卡启动的U-boot
和上面配置编译支持NAND启动的U-boot一样
只需把最后的make命令修改下即可:
#makemini6410_sd_config-ram256;make
将会在当前目录配置并编译生成支持SD启动的U-boot.bin
重命名得到如下图所示:
1.4配置和编译Linux内核
1.4.1解压安装Android内核源代码
在工作目录/opt/FriendlyARM/Tiny6410/android中执行:
#cd/opt/FriendlyARM/Tiny6410/android
#tarxvzf/tmp/Android/android-kernel-2.6.36-20110517
.tar.gz
将创建生成linux-2.6.36-android目录,里面包含了完整的内核源代码
1.4.2配置和编译Linux内核
Android所用的Linux内核和标准的Linux内核有所不同,但使用的方法和步骤是相似的;如果你对配置Linux内核不熟悉,建议你使用我们提供的缺省内核配置。
我们的板使用的是A70型号的LCD
所以编译时我们需要使用相应的配置文件
#cd/opt/FriendlyARM/mini6410/android/linux-2.6.36-android
#cpconfig_android_a70.config;注意config前面有个”.”
#make
最后会在arch/arm/boot目录下生成zImage,我们把它重新命名为azImage_a70放入光盘中,以便区分。
1.5从源代码中提取Android文件系统
1.5.1解压安装Android系统源代码包
在工作目录/opt/FriendlyARM/mini6410/android中执行:
#cd/opt/FriendlyARM/mini6410/android
#tarxvzf/tmp/Android/android-2.3-fs-20110520.tar.gz
将创建Android-2.3目录。
1.5.2提取Android文件系统
Android系统十分庞大,从网上下载的源文件很难顺利的成功编译,我曾经试过了,出现了很多提醒和错误,而且编译一次需要好长的时间。
为此友善公司专门做了2个脚本build-android、genrootfs.sh帮助我们去编译,具体如下:
在命令行执行:
#cd/opt/FriendlyARM/mini6410/android/Android-2.3
#./build-android
就开始编译Android-2.3系统,你需要等待很长的时间,建议开发Android系统不要虚拟机编译,使用多核的CPU加真实的Linux系统会快一些。
我就是在虚拟机上面编译的,真的好慢。
然后,再执行脚本:
#./genrootfs.sh
就可以从编译完的Android系统提取出我们需要的目标文件系统了,最后会生成rootfs_dir目录。
至此,我们已经从源代码开始,创建了在开发板上运行运行Android所需的所有核心系统文件:
Bootloader,内核和文件系统。
但是我们得到的文件系统部分则是一个目录,这就需要mktools系列工具
先把它制作成单个映像文件,才能方便使用。
1.6制作UBIFS格式的文件系统映像
注意:
针对不同组织结构的NandFlash,分别有不同的压制工具,在此以三星2代
MLCNandFlash为例(如K9GAG08U0E等,以下简称MLC2)。
进入工作目录/opt/FriendlyARM/mini6410/linux,执行以下命令:
#cd/opt/FriendlyARM/mini6410/android/Android-2.3
#mkubimage-mlc2rootfs_dirrootfs_android-mlc2.ubi
稍等片刻,将会在当前目录下生成rootfs_android-mlc2.ubi文件
至此,我们真的得到了我们想要的所有文件了:
BootLoader内核文件系统.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Tiny6410Andoid 系统 开发 指南