博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux下android内核编译
阅读量:4052 次
发布时间:2019-05-25

本文共 1952 字,大约阅读时间需要 6 分钟。

按步骤来吧!

一,安装Linux

     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 environment

           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命令看看是否有版本信息输出

二,内核编译环境搭建

       1,下载交叉编译工具,地址 选择Linux版本的,我下的是-2008q3-66-arm-none-eabi-i686-pc-linux-gnu.tar.bz2

       2,下载Android源代码, 现在好像挂墙了 我下了个linux-2.6.25-android-1.0_r1.tar.gz

       3,下载Android linux版本,主要是用到里面的一个配置文件,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类型  

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

       3,运行模拟器,././emulator -avd myAVD  在SecureCRT上使用SSH 登录后运行emulator出错:

      SDL init 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

      #mv config .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 SDK tool目录下执行./emulator @myAVD -kernel /home/soft/kernel.git/arch/arm/boot/zImage命令,

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

转载地址:http://twpci.baihongyu.com/

你可能感兴趣的文章
nodejs内存控制
查看>>
nodejs Stream使用中的陷阱
查看>>
MongoDB 数据文件备份与恢复
查看>>
数据库索引介绍及使用
查看>>
MongoDB数据库插入、更新和删除操作详解
查看>>
MongoDB文档(Document)全局唯一ID的设计思路
查看>>
mongoDB简介
查看>>
Redis持久化存储(AOF与RDB两种模式)
查看>>
memcached工作原理与优化建议
查看>>
Redis与Memcached的区别
查看>>
redis sharding方案
查看>>
程序员最核心的竞争力是什么?
查看>>
Node.js机制及原理理解初步
查看>>
linux CPU个数查看
查看>>
分布式应用开发相关的面试题收集
查看>>
简单理解Socket及TCP/IP、Http、Socket的区别
查看>>
利用HTTP Cache来优化网站
查看>>
利用负载均衡优化和加速HTTP应用
查看>>
消息队列设计精要
查看>>
分布式缓存负载均衡负载均衡的缓存处理:虚拟节点对一致性hash的改进
查看>>