Ubuntu 虚拟机android平台搭建

一、       ubuntu虚拟机的安装和配置

第一步:下载ubuntu

下载ubuntu地址:

        LINUX3个版本,分别是serverdesktopalternate,server版本是没有图形界面服务器安装版本。alternate适合专业个性化定制安装版本,不推荐初学者用这个版本desktop是定制好的,傻瓜型安装,简单方便。

http://releases.ubuntu.com/12.04/

        或者

http://mirrors.ustc.edu.cn/ubuntu-releases/

        选择的是64位的镜像:

ubuntu-12.04-desktop-amd64.iso

http://releases.ubuntu.com/12.04/ubuntu-12.04-desktop-amd64.iso

        或者

http://mirrors.ustc.edu.cn/ubuntu-releases//precise/ubuntu-12.04-desktop-amd64.iso

        我选的是64位的

 

第二步:在虚拟机上安装ubuntu

1、安装vmware8.0.2

2、安装ubuntu

        下载ubuntu-ubuntu-12.04-desktop-amd64,file-->new virtualmachine菜单VM--》setting-->hardware--》CD/DVD-->use ISO image file选择ubuntu-12.04-desktop-amd64,一步一步安装(切记,先创建虚拟机,然后启动之后在安装ubuntu),安装过程要输入主机名字XXXX和登录用户名XXXX和登录密码,创建虚拟机可以使用20G硬盘,之后再挂载50G硬盘的大分区(后面详细介绍),大概两个小时安装完成。

 

第三步:ubuntu的配置

1、配置root登陆

        Ubuntu 系统默认 root 用户是不能登录的,密码也是空的。如果要使用 root 用户登录,必须先为 root 用户设置密码。

        1、打开终端,输入:sudo passwd root 然后按回车。此时会提示你输入密码,在 password: 后输入你现在登录的用户的密码,然后系统提示你输入新的 UNIX 密码,Enter new UNIX password: 这里输入你想为 root 设置的密码,要输入两次,此时系统会出现密码设置成功的提示

        2、root 登陆,su root

        3、备份一下lightgdm:   cp-p /etc/lightdm/lightdm.conf /etc/lightdm/lightdm.conf.bak

        4、vi/etc/lightdm/lightdm.conf

        5、增加:greeter-show-manual-login=true修改后为:

[SeatDefaults]

greeter-session=unity-greeter

user-session=ubuntu

greeter-show-manual-login=true

        重启登陆即可。已经可以输入root

 

2Ubuntu root登录没有声音

        这个问题的根本原因是使用root登录后pulseaudio没有启动。

        将root加到pulse-access组:

        sudo usermod -a -G pulse-access root然后修改配置文件/etc/default/pulseaudio,将PULSEAUDIO_SYSTEM_START设为1

 

3、vi无法正常使用改成vim

        sudo apt-get install vim

 

4、安装nfs服务器

#sudo apt-get install nfs-kernel-server

#sudo mkdir /nfsroot

#sudo chmod 777 /nfsroot -R

#sudo chown nobody /nfsroot -R

#sudo /etc/exports添加如下一行:

/nfsroot*(rw,sync,no_root_squash)

#sudo /etc/init.d/nfs-kernel-server restart

至此,NFS服务器安装成功

 

5、安装samba

sudoapt-get install samba samba-common

        点击菜单ubuntusoftware center, 地址栏输入samba,选择samba软件,点击install进入安装samba,安装好samba后,在菜单有个samba图标,点击弹出samba设置菜单,samba--》add a samba share (+号)--》 create sambashare basic--》directory browser --》file system --》home --》zhenwx /home/zhenwx文件夹共享给zhenwx用户,设置为可以读写(writable visable 打勾)access--》only allow access specific user 前面打勾--》在zhenwx前面打勾sudo smbpasswd -a zhenwx 为samba用户设置密码,否则win7不能够访问

        ifconfig看看ip地址192.168.241.136

        在windos的地址栏\\192.168.241.136 可以看到zhenwx目录,弹出widows安全对话框,输入samba用户名和密码

 

6、安装ssh(如果不安装可能会导致win7上的串口登陆连接不上虚拟机)

        sudoapt-get install openssh-server openssh-client

 

7、安装SVN

        sudoapt-get install subversion

 

8、更新

        点击下拉菜单dashhome打开dash home,地址栏输入update,弹出菜单 update manager---->install updates下载安装更新。下载150M的更新包和安装,慢慢等待。要打开terminal,按快捷键: Ctrl + Alt + t 即可。

 

9、创建新的硬盘

        1)、启动 VMware Workstation,在菜单中选择【VM】‐>【Setting】,弹出 Virtual Machine Setting 对话框,选中”Hard Disk (SCSI 0:0) ”, 点击下方的【Add】 按钮。 在Add Hardware Wizard对话框中选择【下一步】

        2)、在Hardware Type 对话框中选择”HardDisk”选项,并选择【下一步】 ;选择”Create a new virtual disk”,选择【下一步】

        3)、在Select a Disk Type对话框中选择”SCSI”,选择【下一步】;在 Specify Disk Capacity对话框中选择 Disk Size 为 8GB,并选择”Al l o c a te all disk space now”,选择【下一步】

        4)、在Specify Disk File 对话框中,默认选项,选择【完成】;出现创建硬盘进度条

        5)、创建完成后,选择 OK。在 VMware Workstation 中可以看到已经增加了 Hard Disk2。

        6)、启动虚拟机,并检测新硬盘。 

        #fdisk –l

        查看是否找到新的硬盘,查看新硬盘代号为/dev/sdb

        7)、用fdisk 为新硬盘创建分区,设置分区号为 sdb1

fdisk /dev/sdb

disk 是用来磁盘分区的程序,它采用传统的问答式界面。除下面命令外其它均为回车。 

Command (m for help): p <=显示分区信息;  

Command (m for help): n <=新建分区 

Command action 

e extended 

p primary partition (1‐4) 

p <=新建主分区 

Partition number (1‐4): 1 <=分区号为 1,即/dev/sdb1  

Command (m for help): p <=显示分区信息;  

Command (m for help): w <=保存退出

8)、将新硬盘格式化为 ext3 文件系统

mkfs –t ext3 /dev/sdb1

查看系统的存储设备信息 fdisk –l出现sdb1即为创建成功

 

10挂载新的硬盘

1)、创建挂载点,设置为/home/disk1

cd / home

mkdir disk1

2)、手动挂载分区,将新硬盘挂载到/ home /disk1目录

mount /dev/sdb1 / home /disk1

3)、设置开机自动挂载分区

vi /etc/fstab

        再最下面增加/dev/sdb1    / home /disk1    ext3  defaults  0  0

        保存退出

        4)、用NFS共享挂载的新硬盘/mnt/disk1。

        vi/etc/exports

        在最下面添加/mnt/disk1  *(rw,no_root_squash),保存退出,切记,编译博通的android需要no_root_squash选项

        重启nfs服务sudo /etc/init.d/nfs-kernel-server restart

       

11、增加交换分区

        1)、首先用命令free查看系统内 Swap 分区大小。
        free –m

        2)、创建一个 Swap 文件。
        mkdir /swap

        cd /swap

        sudo ddif=/dev/zero of=swapfile bs=1024 count=10000000

        上面命令中的 count 即代表swap文件大小。

        把生成的文件转换成 Swap 文件
        sudo mkswap -f  swapfile

        3)、激活 Swap 文件

        sudo swapon swapfile

        4)、如果需要一直保持这个 swap ,可以把它写入 /etc/fstab 文件。

        /swapfile/swapfilenone swapfile defaults 0 0

 

        /proc是一个虚拟文件系统,我们可以通过对它的读写操作做为与kernel实体间进行通信的一种手段。也就是说可以通过修改/proc中的文件,来对当前kernel的行为做出调整。那么我们可以通过调整/proc/sys/vm/drop_caches来释放内存。操作如下:

        # cat/proc/sys/vm/drop_caches
        0
        首先,/proc/sys/vm/drop_caches的值,默认为0。

        # sync
        手动执行sync命令(描述:sync 命令运行 sync 子例程。如果必须停止系统,则运行sync 命令以确保文件系统的完整性。sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件)

        # echo 3 >/proc/sys/vm/drop_caches
        # cat /proc/sys/vm/drop_caches
        3
        将/proc/sys/vm/drop_caches值设为3

        再来运行free -m命令,会发现现在有效的释放了buffer和cache

二、       Andorid环境的配置

第一步、安装软件编译环境

        以下步骤都是在ubuntu系统下进行了。

        因为是做android开发,一般需要的编译环境除了常规的gcc等外,还需要装能编译java的jdk,安装原理和windows类似,只是在ubuntu下装软件的方法不一样。简单说明一下,ubuntu系统里有一个软件中心,里面列举了服务器上的所有软件,你需要什么软件在里面找到就可以下载安装了,不需要像windows一样到处找软件,而且ubuntu下还可以用命令行安装软件:sudoapt-get install + 软件名称,系统就可以自动去查找软件安装了。

        下面步骤是详细的编译环境安装,都在终端(输命令行的地方)里进行:

        1、打开终端:CTRL+ALT+T

 

        2、安装常规软件包:

        输入:sudoapt-getinstallgitgitkgit-guivalgrindssh

 

        3、安装JDK:

        可以到官网去下载,地址是

        http://www.oracle.com/technetwork/java/javase/downloads/index.html

        sudoadd-apt-repository"debhttp://archive.canonical.comlucidpartner"

        sudoapt-getupdate

        sudoapt-getinstallsun-java6-jdk

        可能需要确认一些协议,按TAB键切换焦点,回车键确定.如果安装的是64位虚拟机,请下载对应的64位软件。

        如果自动安装不行的话就手动安装,下面是详细步骤:

        sun官网上下载jdk-6u27-linux-x64.bin

                     移到/opt目录下(opt在文件系统根目录下)

                     执行chmod +x/opt/jdk-6u27-linux-x64.bin 使该文件变为可执行文件

        开始安装    sudo./jdk-6u27-linux-x64.bin

 

4、添加环境变量:

                     sudo gedit /etc/profile

                     在文件最后添加                 

#set java environment

exportJAVA_HOME=/opt/jdk1.6.0_27

exportJRE_HOME=/opt/jdk1.6.0_27/jre

export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH        exportPATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

保存退出。

                     在终端执行. /etc/profile 使环境变量生效(注意.后有个空格)

在终端输入java -version检测是否已经安装好,如果一切顺利将看到下面信息:

                     $ java –version

                     java version "1.6.0_27"

                     Java(TM) SE Runtime Environment(build 1.6.0_27-b07)

                     Java HotSpot(TM) Server VM (build20.2-b06, mixed mode)

 

5、安装常用编译器

这个步骤是关键,必须安装,否则编译会报莫名其妙的错误!!!!!!!!!!!!!!!!

64位系统要安装gcc-multilibg++-multilib,32位系统不需要装

sudoapt-getinstallgit-coregnupgflexbisongperfbuild-essentialzipcurlzlib1g-devlibc6-devlib32ncurses5-devia32-libsx11proto-core-devlibx11-devlib32z-devlibgl1-mesa-devlibc6-dev-i386g++-multilibmingw32tofrodospython-markdownlibxml2-utilslib32readline-gplv2-devgcc-4.5g++-4.5gcc-4.5-multilibg++-4.5-multilib

至此,编译环境搭建完成,接下来是安装集成开发工具

 

第二步、安装集成开发工具

这里需要两个工具:eclipseandroid_sdk,这两个工具不用从ubuntu的软件中心里找,去官网下,注意选对版本就行了,ubuntu64位的版本

/home/disk1下面创建android文件夹

1、 eclipse

下载地址:

http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/indigo/SR2/eclipse-jee-indigo-SR2-linux-gtk-x86_64.tar.gz

解压eclipse: tar -zvxf eclipse-jee-indigo-SR2-linux-gtk-x86_64.tar.gz

 

2、  android_sdk

下载地址:

http://www.eoeandroid.com/sdk/4.0/android-sdk_r17-linux.tgz

解压android sdk : tar -xvf android_sdk.tgz

        设置环境变量:

        1)打开profile文件

        vi/etc/profile

    2)在最后加入

export ANDROID_HOME=/home/disk1/android/android-sdk-linux

export PATN=$PATH:$ANDROID_HOME/tools

保存退出。

3)在终端执行. /etc/profile 使环境变量生效(注意.后有个空格)

在终端输入export如果能看到:

declare-x ANDROID_HOME="/home/disk1/android/android-sdk-linux"

PATH里有/home/disk1/android/android-sdk-linux/tools即为配置成功。

 

第三步、博通android开发环境的搭建(适用于broadcom芯片)

       在上面几步已经搭建好普通android编译环境的同时,博通环境需要做一下操作:

 

1、安装需要使用的软件

sudoapt-get install git-core gnupg flex bison gperf libsdl-dev libesd0-devlibwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev

如果是64位系统还需要

sudoapt-get install libc6-dev-i386 (libc6-dev-amd64 if AMD CPU)

sudoapt-get install g++-multilib lib32ncurses5-dev lib32z1-dev

 

2、更改ubuntu的shell

Ubuntu系统的默认shell是dash,需要修改成bash。

sudodpkg-reconfigure dash,然后在弹出的窗口中选择“no”

           

3、安装博通的交叉编译环境

cd/opt/

mkdir toolchains

chmod777 -R toolchains/

cp/home/disk1/android-bcm/MIPSAndroid_Phase2.0/stbgcc-4.5.3-1.3.tar.bz2/opt/toolchains/

cdtoolchains/

tarjxvf stbgcc-4.5.3-1.3.tar.bz2

 

4、InstallKernel Source(如果不需要编译,此步可以跳过)

1)、

cd/opt/

mkdirkernel

cd/opt/kernel

mkdirandroid

cd/opt

chmod777 -R *

cp/home/disk1/android-bcm/MIPSAndroid_Phase2.0/stblinux-2.6.37-2.8.tar.bz2/opt/kernel/andorid/

cd kernel/android

tar jxvf stblinux-2.6.37-2.8.tar.bz2

 

cp/home/disk1/android-bcm/MIPSAndroid_Phase2.0/uclinux-rootfs-2.6.37-2.8.tar.bz2/opt/kernel/andorid/

cd /opt/kernel/android

tar jxvfuclinux-rootfs-2.6.37-2.8.tar.bz2

exportPATH=/opt/toolchains/stbgcc-4.5.3-1.3/bin:$PATH

cd uclinux-rootfs/

make vmlinuz-7231b0-android

编译完之后生成的文件(vmlinuz-7231b0-android)在uclinux-rootfs/images/下面

 

5、编译android

首先在/home/disk1下面创建public文件夹,

cd/home/disk1

mkdir public

chmod 777 -R public/

cd public/

cp/home/disk1/android-bcm/MIPSAndroid_Phase2.0/bcm_mipsgingerbread20120321.tar.bz2/home/disk1/public/

tar jxvfbcm_mipsgingerbread20120321.tar.bz2

 

把7231的底层代码copy到/home/disk1/public/bcm_mipsics20120321下面,解压

cp refsw_release_97231_20120312.src.tgz/home/disk1/public/bcm_mipsics20120321/

tar xvfrefsw_release_97231_20120312.src.tgz

            

开始编译

cdAppLibs/opensource/android/build/

修改build-prescript文件,使各项路径都符合要求

如果使用之前编译好的nexus,USE_PREBUILT_NEXUS=y前的#号去掉

保存退出

然后,输入

source build-prescript

make install

此过程会生成android-rfs,文件系统,在

Applibs/opensource/android/android-rfs路径

初次编译,因为要解压很多东西,时间会比较长,中间不要间断,如果间断,会导致编译出错。

无觅关联推荐,快速提升流量