拿到MTK 6516的源码
-----6516-------
首先运行
./makeMtk --help
可以看到包含的project_name
然后运行
./makeMtk project_name new
-----6573-------
./mk generic new
此时会检查本地环境,不符合编译条件的软件版本会被列出在checkenv.log文件中。
比如6516情况下,打开这个文件,可以看到:
Suggested Linux OS and Tool Chain to install
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ Build System Requirment:
+ Linux OS : RedHat Enterprise Linux Server 5.4 or Ubuntu 9.10/Ubuntu 10.04
+ arm-eabi-gcc : Version 4.4.0
+ Perl : Version 5.8.X
+ Python : Version 2.5.X
+ Gcc : Version 4.1.2
+ JDK : Version 1.5 (1.6 is Not Supported)
+ Wine : Version 1.1 or above
+ Make : GNU Make 3.81 or above
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
在此案中,我没有安装arm-eabi-gcc,Wine;另外GCC版本过高(4.2.2),JDK版本也过高。
这两点我分别写了两个文章
《Andriod源码编译时的GCC版本问题解决》,《Andriod源码编译时的JDK版本问题解决》。
这里只记录arm-eabi-gcc,Wine的问题。
1. 安装Wine
sudo apt-get install wine1.2
2. 安装arm-eabi-gcc
在项目原文件根目录下输入:
find -name arm-eabi-gcc
显示:
./prebuilt/darwin-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-gcc
./prebuilt/darwin-x86/toolchain/arm-eabi-4.3.1/bin/arm-eabi-gcc
./prebuilt/darwin-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-gcc
./prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-gcc
./prebuilt/linux-x86/toolchain/arm-eabi-4.3.1/bin/arm-eabi-gcc
./prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-gcc
根据checkenv.log中的suggestion,选用arm-eabi-4.4.0,即把这个bin目录的绝对路径加入到环境变量的PATH中。
export PATH="$PATH:/source_files_path/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/"
3. 编译
当一切就绪后,就可以编译代码了。
我采用的开发模式是编译出ramdisk.img,system.img,userdata.img并拷到SDK中,运行模拟器来查看效果。
编译这几个img的命令是
-----6516-------
-----6573-------
至于如何编译SDK,等总结完了再补充...
-----6516-------
首先运行
./makeMtk --help
可以看到包含的project_name
然后运行
./makeMtk project_name new
-----6573-------
./mk generic new
此时会检查本地环境,不符合编译条件的软件版本会被列出在checkenv.log文件中。
比如6516情况下,打开这个文件,可以看到:
Suggested Linux OS and Tool Chain to install
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ Build System Requirment:
+ Linux OS : RedHat Enterprise Linux Server 5.4 or Ubuntu 9.10/Ubuntu 10.04
+ arm-eabi-gcc : Version 4.4.0
+ Perl : Version 5.8.X
+ Python : Version 2.5.X
+ Gcc : Version 4.1.2
+ JDK : Version 1.5 (1.6 is Not Supported)
+ Wine : Version 1.1 or above
+ Make : GNU Make 3.81 or above
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
在此案中,我没有安装arm-eabi-gcc,Wine;另外GCC版本过高(4.2.2),JDK版本也过高。
这两点我分别写了两个文章
《Andriod源码编译时的GCC版本问题解决》,《Andriod源码编译时的JDK版本问题解决》。
这里只记录arm-eabi-gcc,Wine的问题。
1. 安装Wine
sudo apt-get install wine1.2
2. 安装arm-eabi-gcc
在项目原文件根目录下输入:
find -name arm-eabi-gcc
显示:
./prebuilt/darwin-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-gcc
./prebuilt/darwin-x86/toolchain/arm-eabi-4.3.1/bin/arm-eabi-gcc
./prebuilt/darwin-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-gcc
./prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-gcc
./prebuilt/linux-x86/toolchain/arm-eabi-4.3.1/bin/arm-eabi-gcc
./prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-gcc
根据checkenv.log中的suggestion,选用arm-eabi-4.4.0,即把这个bin目录的绝对路径加入到环境变量的PATH中。
export PATH="$PATH:/source_files_path/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/"
3. 编译
当一切就绪后,就可以编译代码了。
我采用的开发模式是编译出ramdisk.img,system.img,userdata.img并拷到SDK中,运行模拟器来查看效果。
编译这几个img的命令是
-----6516-------
./mk emulator new
-----6573-------
./mk generic new
至于如何编译SDK,等总结完了再补充...