准备:sudo dhclient重新获取ip即可上网 ;
sudo passwd 设置root密码;
源码拷贝到系统本地文件夹,不能放在共享文件夹,否则会导致编译过程被kill(解压,可以通过右键解压)。建议:编译过程,建议使用专门编译服务器,设置成不锁屏不休眠;使用root进行编译,编译过程中不要操作电脑,以免引起异常。
一.准备安装环境
1.安装指令包
sudo apt-get install git-core gnupg flex bison gperf build-essential
zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386
lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev
lib32readline-gplv2-dev lib32z1-dev libusb-1.0-0-dev pkg-config
minicom
sudo apt-get install git-core gnupg flex bison gperf
build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev
ia32-libs x11proto-core-dev libx11-dev
lib32readline-gplv2-dev lib32z1-dev libgl1-mesa-dev gcc-multilib
g++-multilib mingw32 tofrodos python-markdown libxml2-utils
xsltproc
sudo apt-get install sharutils
sudo apt-get install uboot-mkimage
uboot-mkimage是用于生成ramdisk-uboot.img,没有该包会导致生成ramdisk-uboot.img是报错,无法生成ramdisk-uboot.img。 安装以上包结束之后,可以使用dpkg 指令检查各个包是否安装成功(比如:dpkg -p libgl1-mesa-dev)
2.拷贝JDK,并安装JDK,记录下安装路径和环境变量。比如:
安装包路径:/home/snd/jdk-6u29-linux-i586.bin
安装JDK: cd /home/snd
sudo ./ jdk-6u29-linux-i586.bin
安装JDK后环境变量路径:
export JAVA_HOME=/home/snd/jdk1.6.0_29
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
检查JDK是否安装成功: java -version 。成功后会出现如下界面
3. 拷贝交叉编译工具,并安装。记录下安装路径和环境变量名称
如果没有目录/usr/local/arm,则先创建目录/usr/local/arm,并设置目录权限
cd /usr/local
sudo chmod 777 arm
定位到交叉工具链所在目录(比如:/mnt/hgfs/UbuntuShare/tool ),执行sudo tar -jxvf arm-2009q3.tar.bz2 -C /usr/local/arm/把交叉编译工具解压到/usr/local/arm目录。 通过指令ls -l /usr/local/arm/ arm-2009q3 检查安装结果,出现以下界面表示安装成功
环境变量路径:
export PATH=/usr/local/arm/arm-2009q3/libexec/gcc/arm-none-linux-gnueabi/4.4.1:/usr/local/arm/arm-2009q3/bin:$PATH
4.创建swap分区
1)创建一个 Swap 文件
mkdir /swap
cd /swap
sudo dd if=/dev/zero of=swapfile bs=1024 count=2000000
出现下列提示,上面命令中的 count 即代表swap文件大小。
记录了2000000+0 的读入
记录了2000000+0 的写出
2048000000字节(2.0 GB)已复制,63.3147 秒,32.3 MB/秒
2)把生成的文件转换成 Swap 文件
sudo mkswap -f swapfile
3)激活 Swap 文件。
sudo swapon swapfile //Linux系统临时增加交换空间,如果想要永久的话,再到网上找资料看看
4)再次查看 free -m 的结果
在实际搭建环境中,加入swap分区后的情况
二 编译源码
切换到root用户,检查确定导入JDK环境变量、交叉编译工具环境变量,检查确定swap分区大小。
1)编译android源码
cd smdk4x12_android_4.0 (定位到android目录所在源码)
. ./build/envsetup.sh (初始化编译环境,提供了一些开发中非常有用的命令注意:两个点 之间有空格,或者使用: source build/envsetup.sh )
lunch
mm -j8 (8个线程编译,单线程编译可用 make )
编译成功后出现界面
2) 编译内核
cd kernel
make –j4 (也可以用单线程编译 make )