您的位置:首页 > 移动开发 > Android开发

Android编译环境的配置

2014-11-08 11:08 190 查看
r9/myandroidr9/bootable/bootloader/uboot-imx#
source /opt/android-env

root@ubuntu:/mnt/vdisk/software/imx-android-
r9/myandroidr9/bootable/bootloader/uboot-imx#
make distclean
root@ubuntu:/mnt/vdisk/software/imx-android-
r9/myandroidr9/bootable/bootloader/uboot-imx#
make mx51_bbg_android_config
root@ubuntu:/mnt/vdisk/software/imx-android-
r9/myandroidr9/bootable/bootloader/uboot-imx#
make
当编译完成后,会生成
u-boot.bin
文件。

The above u-boot.bin has 1024KB padding at the head of file,for example first
executable instruction is at the offset 1KB. If you want to generate a no-padding
image, you need do below dd command in host.
root@ubuntu:/mnt/vdisk/software/imx-android-
r9/myandroidr9/bootable/bootloader/uboot-imx#
sudo dd if=./u-boot.bin of=./u-
boot-no-padding.bin bs=1024 skip=1
root@ubuntu:/mnt/vdisk/software/imx-android-
r9/myandroidr9/bootable/bootloader/uboot-imx#
sudo sync

(9).
编译
Kernel Image:

[1].
转到相应目录:

root@ubuntu:/mnt/vdisk/software/imx-android-
r9/myandroidr9/bootable/bootloader/uboot-imx#
cd /mnt/vdisk/software/imx-
android-r9/myandroidr9/kernel_imx/

[2].
设置
mkimage
的路径
:
root@ubuntu:/mnt/vdisk/software/imx51-android-r9/myandroidr9/kernel_imx#
export PATH=/mnt/vdisk/software/imx51-android-
r9/myandroidr9/bootable/bootloader/uboot-imx/tools:$PATH

[3].
开启编译
:
root@ubuntu:/mnt/vdisk/software/imx51-android-
r9/myandroidr9/kernel_imx#
make imx5_android_defconfig
root@ubuntu:/mnt/vdisk/software/imx51-android-
r9/myandroidr9/kernel_imx#
make uImage

[4].
当编译完成时:

With a successful build in either of the above case, the generated kernel image is
/mnt/vdisk/software/imx51-android-
r9/myandroidr9/kernel_imx/arch/arm/boot/uImage.

Generate uImage to be loaded by u-boot

T
o generate uImage from the built zImage, generate a uImage based on the above
zImage as follows:

root@ubuntu:/mnt/vdisk/software/imx-android-r9/myandroidr9/kernel_imx# cd
arch/arm/boot/
root@ubuntu:/mnt/vdisk/software/imx-android-
r9/myandroidr9/kernel_imx/arch/arm/boot#
/mnt/vdisk/software/imx51-android-
r9/myandroidr9/bootable/bootloader/uboot-imx/tools/mkimage -A arm -O linux -T
kernel -C none -a 0x90008000 -e 0x90008000 -n "Android Linux Kernel" -
d ./zImage ./uImage

(10).
编译
Android image


[1].
跳转到相应目录
:
root@ubuntu:/mnt/vdisk/software/imx-android-
r9/myandroidr9/kernel_imx/arch/arm/boot#
cd /mnt/vdisk/software/imx-android-
r9/myandroidr9/

[2].
开始编译
:
root@ubuntu:/mnt/vdisk/software/imx-android-r9/myandroidr9#
make PRODUCT-
imx51_bbg-eng 2>&1 | tee build_imx51_bbg_android.log

[3].
等待编译完成。

For i.MX51 BBG build, the following outputs are generated as default under
myandroid/out/target/product/imx51_BBG:



root/
: root file system (including init, init.rc, etc). Mounted at
/



system/
: Android system binary/libraries. Mounted at
/system



data/
: Android data area. Mounted at
/data

Above three folders can be used to create your Android file system for NFS
mounting, i.e.
root/
>
/
,
system/
>
/system
,
data/
>
/data



recovery/
: root file system when booting in "recovery" mode. Not directly
used.



ramdisk.img
: Ramdisk image generated from "root/". Not directly used.



system.img:
EXT3 image generated from "system/". Can be programmed to
"SYSTEM" partition on SD card with "dd"



userdata.img:
EXT3 image generated from "data/".



recovery.img:
EXT3 image generated from "recovery/". Can be programmed
to "RECOVERY" partition on SD card with "dd"

[4].
Generate uRamdisk to be loaded by uboot

The following steps generate a RAMDISK image recognized by uboot:

root@ubuntu:/mnt/vdisk/software/imx-android-r9/myandroidr9#
cd
/mnt/vdisk/software/imx-android-r9/myandroidr9/out/target/product/imx51_bbg/
root@ubuntu:/mnt/vdisk/software/imx-android-
r9/myandroidr9/out/target/product/imx51_bbg#
mnt/vdisk/software/imx-android-
r9/myandroidr9/bootable/bootloader/uboot-imx/tools/mkimage
-
A arm -O linux -T
ramdisk -C none -a 0x90308000 -n "Android Root Filesystem" -
d ./ramdisk.img ./uramdisk.img

至此,编译完成。


.
远程操作需要安装的软件

1.Ubuntu
默认是没有安装
SSH2
软件的,所以我们要想远程登陆,必须首先安装
SSH2:
root@ubuntu:/#
sudo apt-get install ssh2
安装完成后,系统将打开
22
端口,这样就可以在远程登陆操作系统了。

2.
为了在远程操作服务器上的共享文件,我们安装了
samba
软件:

root@ubuntu:/#
sudo apt-get install samba smbfs samba-common smbclient


ubuntu10.04
上要想启动
samba,
我们必须再安装
samba4:
root@ubuntu:/#
sudo apt-get install samba4

3.
安装完成后,我们必须更改
samba
的配置文件:

root@ubuntu:/#
vim /etc/samba/smb.conf

(1).
修改
security
属性:
security = user

(2).
添加共享文件的显示属性:

[vdisk]

comment = Android SoftWare

path = /mnt/vdisk

browseable = yes

read only = no

guest ok = no

create mask = 0x700
[opt]

comment = Android Environment

path = /opt

browseable = yes

read only = no

guest ok = no

create mask = 0x700
(3).
创建
smaba
用户:

root@ubuntu:/#
smbpasswd -a root
系统要求输入密码,这里设置的密码跟
linux
超级用户是一致的,当然也可以不一致。

(4).
重新启动
samba


root@ubuntu:/#sudo /etc/init.d/samba4 restart
至此,
samba
服务器已经设置完成,可以在远程
window
下登陆服务器并查看和修改共享

文件夹里面的文件了。远程登陆的时候需要用户名和密码,匿名用户不能登陆。

Window
下登陆方式为
;\\+(ip
地址
).

4.
为了使服务器的
IP
不会自动变更,必须给服务器配置静态的
IP
地址。

(1).
首先备份系统默认的配置文件
:

root@ubuntu:/# cp -i /etc/network/interfaces

/etc/network/interfaces_backup

(2).
更改此配置文件
:

root@ubuntu:/#
vim /etc/network/interfaces

把此文件的内容更改为如下所示:

#auto lo
#iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.105
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.1.255
gateway 192.168.1.1

(3).
重新启动
network:

root@ubuntu:/# sudo /etc/init.d/networking restart

注意:如果你采用远程登陆操作,将会自动断开连接。

Android

ubuntu10.04
编译环境的配置


.
软件的安装

1.Linux
系统是安装在
Vmware
中,所以必须下载
Vmware
,这里采用的版本为

Vmware.Workstation.v7.1.0.Lite.rar
下载地址:
(
暂时没有找到
)
安装完
vmware
后,可以让它自动检测新版本并升级。

2.
下载
Ubuntu
,这里采用的版本是
10.04
,文件名为

ubuntu-10.04-desktop-i386.iso
下载地址为:
http://releases.ubuntu.com/lucid/

3.
下载完成后,安装
ubuntu10.04,
由于采用
vmware
安装,故只需简单设置即可,其他采
用默认设置安装,需要注意的是
vmware
的空间应该分配大一些(最好是大于
60GB
),不
然,以后要扩展空间时比较麻烦。

4.Ubuntu
的默认安装的用户不是超级用户
root,
因此要使用超级用户
root
,必须通过下面
的命令来开启:

(1).
使用默认用户进入
ubuntu
的界面,打开
shell,

(2).

shell
中输入命令:
sudo passwd root ,
然后按确认键;

(3).
按下确认键后,系统要求你设置
root
用户的密码,连续输入
2
次后,
root
用户的密
码设置成功;

(4).
重新启动系统即可使用超级用户登陆
.

5.
使用超级用户登陆后,开始配置
Android
的编译环境:

(1).
由于
ubuntu
的软件中心提供的


java6
,而编译
Android
需要的是
java5,
为了保
证采用命令安装时系统能够自动找到需要的
java5
,我们必须修改
apt
里面的
sources.list:

root@ubuntu:/#

vim /etc/apt/sources.list

在该文件末添加如下网址:

# update the sun-java5-jdk from as follow:
deb http://ubuntu.srt.cn/ubuntu/
jaunty multiverse
deb http://ubuntu.srt.cn/ubuntu/
jaunty-updates multiverse

(2).
采用命令安装所需软件:

root@ubuntu:/# 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

(
由于
apt-get
能够自动区分命令,故采用一条命令即可
.
此命令安装的软件有
:

git-core gnupg sun-java5-jdk flex bison;gperf libsdl1.2-dev

libesd0-dev

libwxgtk2.6-dev

build-essential

zip

curl libncurses5-dev zlib1g-dev;
当安装到

sun-java5-jdk
时,需要手动点击协议。

(3).
等待
(2)
完成后,可以再安装一个
Valgrind

meld
软件
(
也可以不安装):

root@ubuntu:/# sudo apt-get install valgrind

root@ubuntu:/# sudo apt-get install meld
至此,编译环境所需软件全部安装完成。


.Android
的编译

1.
由于软件是直接从
Freescale
直接拷贝,故不需要下载和更新
patch
,我们可以进入相
应目录直接编译。

(1).

/mnt
中建立相应文件夹
:

root@ubuntu:/#
mkdir -p /mnt/vdisk/software/imx-android-r9

(2).
拷贝文件:

root@ubuntu:/#
cp -i /mnt/hgfs/LinuxFile/Android/myandroid_r9.tgz
/mnt/vdisk/software/imx51-android-r9/

(3).
解压文件:

root@ubuntu:/#
cd /mnt/vdisk/software/imx51-android-r9/

root@ubuntu:/mnt/vdisk/software/imx51-android-r9#
tar -zvxf myandroid_r9.tgz

(4).
解压完成后,为了方便区分版本,我们需要重新命名下
:

root@ubuntu:/mnt/vdisk/software/imx51-android-r9#
mv myandroid
myandroidr9

(5).
解压文件
imx-android-r9.tar.gz

root@ubuntu:/mnt/vdisk/software/imx51-android-r9#
tar -zvxf

imx-android-
r9.tar.gz

(6).
安装
tools:

root@ubuntu:/mnt/vdisk/software/imx-android-r9#
cd imx-android-r9/tool/

root@ubuntu:/mnt/vdisk/software/imx-android-r9/imx-android-r9/tool#
tar xzvf
gcc-4.1.2-glibc-2.5-nptl-3.tar.gz -C /opt

(7).
编写环境变量:

我们在
opt
上建立一个
android-env
的文件,并把如下内容拷贝到该文件中:

root@ubuntu:/mnt/vdisk/software/imx-android-r9/imx-android-r9/tool#
cd
/opt/

root@ubuntu:/opt#
vim android-env

#!/bin/bash

export ARCH=arm

export CROSS_COMPILE=/opt/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-
gnueabi/bin/arm-none-linux-gnueabi-

export PATH=/opt/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-
gnueabi/bin:$PATH

root@ubuntu:/opt#
chmod

755 android-env

(8).
编译
uboot


root@ubuntu:/opt#
cd /mnt/vdisk/software/imx-android-

r9/myandroidr9/bootable/bootloader/uboot-imx/
root@ubuntu:/mnt/vdisk/software/imx-android-

r9/myandroidr9/bootable/bootloader/uboot-imx#
source /opt/android-env

root@ubuntu:/mnt/vdisk/software/imx-android-
r9/myandroidr9/bootable/bootloader/uboot-imx#
make distclean
root@ubuntu:/mnt/vdisk/software/imx-android-
r9/myandroidr9/bootable/bootloader/uboot-imx#
make mx51_bbg_android_config
root@ubuntu:/mnt/vdisk/software/imx-android-
r9/myandroidr9/bootable/bootloader/uboot-imx#
make
当编译完成后,会生成
u-boot.bin
文件。

The above u-boot.bin has 1024KB padding at the head of file,for example first
executable instruction is at the offset 1KB. If you want to generate a no-padding
image, you need do below dd command in host.
root@ubuntu:/mnt/vdisk/software/imx-android-
r9/myandroidr9/bootable/bootloader/uboot-imx#
sudo dd if=./u-boot.bin of=./u-
boot-no-padding.bin bs=1024 skip=1
root@ubuntu:/mnt/vdisk/software/imx-android-
r9/myandroidr9/bootable/bootloader/uboot-imx#
sudo sync

(9).
编译
Kernel Image:

[1].
转到相应目录:

root@ubuntu:/mnt/vdisk/software/imx-android-
r9/myandroidr9/bootable/bootloader/uboot-imx#
cd /mnt/vdisk/software/imx-
android-r9/myandroidr9/kernel_imx/

[2].
设置
mkimage
的路径
:
root@ubuntu:/mnt/vdisk/software/imx51-android-r9/myandroidr9/kernel_imx#
export PATH=/mnt/vdisk/software/imx51-android-
r9/myandroidr9/bootable/bootloader/uboot-imx/tools:$PATH

[3].
开启编译
:
root@ubuntu:/mnt/vdisk/software/imx51-android-
r9/myandroidr9/kernel_imx#
make imx5_android_defconfig
root@ubuntu:/mnt/vdisk/software/imx51-android-
r9/myandroidr9/kernel_imx#
make uImage

[4].
当编译完成时:

With a successful build in either of the above case, the generated kernel image is
/mnt/vdisk/software/imx51-android-
r9/myandroidr9/kernel_imx/arch/arm/boot/uImage.

Generate uImage to be loaded by u-boot

T
o generate uImage from the built zImage, generate a uImage based on the above
zImage as follows:

root@ubuntu:/mnt/vdisk/software/imx-android-r9/myandroidr9/kernel_imx# cd
arch/arm/boot/
root@ubuntu:/mnt/vdisk/software/imx-android-
r9/myandroidr9/kernel_imx/arch/arm/boot#
/mnt/vdisk/software/imx51-android-
r9/myandroidr9/bootable/bootloader/uboot-imx/tools/mkimage -A arm -O linux -T
kernel -C none -a 0x90008000 -e 0x90008000 -n "Android Linux Kernel" -
d ./zImage ./uImage

(10).
编译
Android image


[1].
跳转到相应目录
:
root@ubuntu:/mnt/vdisk/software/imx-android-
r9/myandroidr9/kernel_imx/arch/arm/boot#
cd /mnt/vdisk/software/imx-android-
r9/myandroidr9/

[2].
开始编译
:
root@ubuntu:/mnt/vdisk/software/imx-android-r9/myandroidr9#
make PRODUCT-
imx51_bbg-eng 2>&1 | tee build_imx51_bbg_android.log

[3].
等待编译完成。

For i.MX51 BBG build, the following outputs are generated as default under
myandroid/out/target/product/imx51_BBG:



root/
: root file system (including init, init.rc, etc). Mounted at
/



system/
: Android system binary/libraries. Mounted at
/system



data/
: Android data area. Mounted at
/data

Above three folders can be used to create your Android file system for NFS
mounting, i.e.
root/
>
/
,
system/
>
/system
,
data/
>
/data
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: