Linux下android内核编译

来源:互联网 发布:广电网络是什么 编辑:程序博客网 时间:2024/06/06 17:22

按步骤来吧!

一,安装Linux jdk

    1,网上下载jdk(jdk-6u24-linux-i586.bin),64位的需下载另一个jdk-6u24-linux-x64.bin

    2,保存到安装目录下(/usr/local),直接执行./jdk-6u24-linux-i586.bin解压到/usr/local/jdk1.6.0_24目录

    3,配置环境变量

          #vi /etc/profile

          在profile最后面加入

          #set Javaenvironment

          JAVA_HOME=/usr/local/jdk1.6.0_24

          CLASSPATH=.:$JAVA_HOME/lib.tools.jar

          PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

          export JAVA_HOME CLASSPATH PATH

      4,设置文件链接,进入到/usr/bin目录,执行 ln -s -r/usr/local/jdk1.6.0_24/bin/java

      5,测试是否安装成功:执行java -versioin和javac命令看看是否有版本信息输出

二,Android内核编译环境搭建

      1,下载交叉编译工具,地址http://www.codesourcery.com/gnu_toolchains/arm/download.html 选择Linux版本的,我下的是ARM-2008q3-66-arm-none-eabi-i686-pc-linux-gnu.tar.bz2

      2,下载Android源代码,http://code.google.com/p/android/downloads/list 现在好像挂墙了我下了个linux-2.6.25-android-1.0_r1.tar.gz

      3,下载Android linux版本SDK,主要是用到里面的一个配置文件,android-sdk-linux_x86-1.5_r2.zip

      4,搭建编译环境,把arm-2008q3-66-arm-none-eabi-i686-pc-linux-gnu.tar.bz2解压到/usr/local/arm-2008q3下,并将其bin路径添加到PATH中,$export PATH=$PATH:/usr/local/arm-2008q3/bin

      5,将内核源码和SDK解压到/home/android下

三,创建一个avd

      1,到Android SDK For Linux目录下,进入tools子目录可以用./android list targets查看当前的android都提供了哪些target具体可见该文章 Android:如何创建AVD以及选择合适target类型  http://blogold.chinaunix.net/u/20947/showart_1927099.html

   2,执行./android createavd -t2 –n myAVD创建一个avd,这是为了获取编译内核时的一个config文件

      3,运行模拟器,././emulator -avd myAVD  在SecureCRT上使用SSH登录后运行emulator出错:
      SDLinit failure, reason is: No available video device.
           原因是他依赖X11,可以进入图形化界面来运行。

      4,运行后,打开另一个终端,进入到android sdk tools目录下,执行./adb pull /proc/config.gz.命令,该命令从模拟器的/proc/config.gz文件考到当前目录下。好了,模拟器暂时用不到了,可以关闭了。

四,编译android内核

     1,将config.zg考到android内核源码目录,并解压改成.config文件,

            #gunzip config.gz

      #mvconfig .config

  2,修改MakeFile文件

     2.1修改CROSS_COMPILE变量为:
     CROSS_COMPILE=arm-none-eabi-   //具体看将的交叉编译工具目录bin下的文件名

     2.2 注释掉LDFLAGS_BUILD_ID这个变量:
       例如将如下定义:
       LDFLAGS_BUILD_ID = $(patsubst -Wl$(comma)%,%,\$(call ld-option,-Wl$(comma)--build-id,))

       改为

       #LDFLAGS_BUILD_ID = $(patsubst-Wl$(comma)%,%,\$(call ld-option,-Wl$(comma)--build-id,))

  3,执行make命令等待结果

      执行完后在/home/soft/kernel.git/arch/arm/boot下生成一个zImage文件

  4,在Android SDKtool目录下执行./emulator @myAVD -kernel/home/soft/kernel.git/arch/arm/boot/zImage命令,

      OK, android界面出现了,,,,

0 0
原创粉丝点击