编译linux kernel :

首先,要编译手机平台上的内核镜像,需要交叉编译工具,而一般主流的手机上的交叉编译环境都很完备了,只要把它纳入PATH目录,基本都可以make成功。

假设交叉编译环境工具路径:~/ANDROID_CROSS_TOOL/

把交叉编译环境的bin目录加入/etc/profile

PATH=~/ANDROID_CROSS_TOOL/bin:PATH

使得开机时自动运行。

把交叉编译环境加入PATH环境变量以后,就可以make。

make成功以后,在kernel/kernel/arch/arm/boot/目录下会生成一个zImage的镜像文件,这个就是编译内核生成的内核镜像。

然后,通过./out/host/linux-x86/bin/目录下的mkbootimg命令制作boot镜像:

$./out/host/linux-x86/bin/mkbootimg --kernel

kernel/arch/arm/boot/zImage --ramdisk

out/target/product/kt501/ramdisk.img --output

out/target/product/kt501/boot.img

可见在这里,通过mkbooting命令把kernel和ramdisk打包成了一个boot镜像。

有了boot.img镜像,就可以在手机中烧录编译好的内核了。

烧录手机,有两种烧录方式:

1.卡烧

2.机烧

1.卡烧

卡烧相对容易,首先要熟悉一下手机烧录SD卡和普通SD卡的区别。烧录所用的SD卡是有一个标志文件,文件名为:“auto_flag.txt”(也许不同的手机型号标志文件不同),而且我们可以打开这个文件,其实里面是空的,说明,这个文件只起标志作用。当手机检测到了这个标志文件,就开检索需要烧录的系统文件,因为我只是重新编译了kernel,因此只需要重新烧录kernel。这时,把当时编译内核时打包生成的boot.img烧录到SD卡上。然后把SD卡装到手机上,只要开机,因为该SD卡含有“auto_flag.txt”标志文件,所以检测需要烧录的系统镜像,接着把我们自己编译的boot.img烧录到手机系统中。

2.机烧

机烧相对麻烦,而且不能被打断,曾经有一个工程师在烧录手机的时候碰了以下连接线,于是,手机的FLASH被洗空,然后就怎么都烧不上去了。

机烧的话,先进入手机的fast_boot模式,用USB连接手机和电脑,执行烧录脚本burn_linux.sh。下面是butn_linux脚本的内容:

#!/bin/bash

TARGET_PATH=.

echo "$TARGET_PATH"

./fastboot devices

./fastboot flash xloader $TARGET_PATH/MLO

./fastboot flash bootloader $TARGET_PATH/u-boot.bin

./fastboot flash environment $TARGET_PATH/u-boot.env

./fastboot flash boot $TARGET_PATH/boot.img

./fastboot flash logo $TARGET_PATH/logo.bmp

./fastboot flash userdata $TARGET_PATH/userdata.img

./fastboot erase cache

./fastboot flash system $TARGET_PATH/system.img

./fastboot flash recovery $TARGET_PATH/recovery.img

./fastboot flash auto_install

$TARGET_PATH/auto_install.iso

./fastboot reboot

可见,它就是把编译好的kernel,system等等用fastboot命令烧录到手机上。所以像我这样,只是烧录内核的话,就只要执行:

$./fastboot flash boot $TARGET_PATH/boot.img

就可以了,可以节省时间。

最后提醒,在烧录过程中,尽量不要打断它。

linux内核烧制,手机烧录自己编译的linux kernel相关推荐

  1. linux内核的配置过程,linux内核的配置机制及其编译过程

    linux内核的配置机制及其编译过程. 一.配置系统的基本结构 Linux内核的配置系统由三个部分组成,分别是: 1.Makefile:分布在 Linux 内核源代码根目录及各层目录中,定义 Linu ...

  2. (编译适用于ARM的linux内核并进行QEMU仿真)Compile Linux kernel 3.2 for ARM and emulate with QEMU

    译者序 作为第一篇翻译文档,一方面对于翻译经验不足.措辞不当,另一方面对于linux我也是初学者,很多东西尚处于待学阶段,而翻译此文的动机就是我要学习如何跨平台进行文件系统的编译,所以翻译的结果肯定有 ...

  3. Linux内核学习之路_1_编译Linux内核

    1.准备工作 1.1 学习环境 1.2 下载Linux内核源码 1.3 解压Linux内核 1.4 目录结构介绍 1.2.2 Linux内核配置 1.1 学习环境 本系列教程使用的环境如下: 操作系统 ...

  4. LINUX - 实时LINUX内核(PREEMPT_RT)的编译安装以及测试

    目录 1.什么是实时性操作系统? 2.怎么实现实时性系统? 3.PREEMPT_RT 4.使用方法 4.1下载linux内核源码 4.2下载RT patch 4.3 使用方法 5.测试 6.总结 7. ...

  5. linux内核_Linux驱动编程的本质就是Linux内核编程

    由于Linux驱动编程的本质属于Linux内核编程,因此我们非常有必要熟悉Linux内核以及Linux内核的特点. 这篇文章将会帮助读者打下Linux驱动编程的基础知识. 本篇文章分为如下三个小节进行 ...

  6. linux内核精髓:精通linux内核必会的75个绝技,Linux内核精髓精通Linux内核必会的75个绝技 PDF 高清扫描版...

    经过近20年的发展,Linux操作系统已经成为当今最成功的开源软件之一,使用广泛,影响深远.随着Linux操作系统功能的不断丰富和完善,Linux内核的源代码也从最初的几万行增加到如今的数百万行,庞大 ...

  7. Linux内核精选文章向读者汇报 | 相遇Linux

    本微信公众号精选人气文章向各位读者汇报: 人气最火: Linux实时补丁即将合并进Linux 5.3 投资自己: OS部门Linux死锁/hungtask/soft_hard/lockup分享视频报名 ...

  8. Linux源代码逐条解释,Linux内核源代码解释让你真正了解linux.ppt

    Linux内核源代码解释让你真正了解linux.ppt 解读Linux内核源代码让您真正明白Linux操作系统 序 一些基本概念 操作系统的基本概念 I386系统的基本概念 Linux简介 源码阅读和 ...

  9. linux内核映像查看,RockPI 4A 查看Linux内核映像编译信息

    在Linux内核调试时,经常会遇到下面的情况: 1.明明已经修改过代码,为什么功能没生效? 2.明明自己验证的功能没有问题,别人验证就出问题了呢? 遇到事情,不要慌,也不用先拿手机拍个照. 我们先看下 ...

最新文章

  1. [整合] 解决 Dell T640 安装显卡后风扇转速不降低
  2. Oracle报错TNS-12532: TNS:invalid argument
  3. arduino代码运行时间测试函数,代码性能运行时间测试方法
  4. [心得分享] 产品规划思考
  5. Python :给类或者类的对象添加打印内容 def __repr__(self)
  6. 如何去找一些还没有完全上市的 在私募投资的公司 D轮左右 财经媒体
  7. 科大星云诗社动态20210818
  8. java.nio.DirectByteBuffer管理堆外内存
  9. C#ORM系统 Moon.ORM使用方法
  10. 定时器函数执行原理揭秘
  11. SVN遗漏so文件的解决办法
  12. Voicemeeter Potato —— Windows 平台下的终极虚拟音频混音器
  13. Winform支付宝扫码支付
  14. <一起JS(基础篇)>4.标识符、字符串、Number、波尔值、Null和Undefined
  15. php 微信公号授权登入,WordPress 微信公众号授权登录
  16. WPS(word)批量给所有表格添加题注(标题)
  17. 阿里IOT云飞燕平台的使用和感悟。
  18. Java代码获取网络和本地视频时长等信息
  19. 【亲测】后期特效合成软件:Nuke 13 Mac版(支持m1)
  20. 基于android的运动app,毕业设计(论文)-基于Android的手机运动的APP设计与实现.doc...

热门文章

  1. 原来,我们的时间这样被科技巨头们瓜分(转)
  2. spring获取webapplicationcontext,applicationcontext几
  3. Lync 小技巧-17-查询Lync 2013聊天记录
  4. Android 中文API (65) —— BluetoothClass[蓝牙]
  5. 吴裕雄--天生自然 高等数学学习:两类曲线积分之间的联系
  6. MyBatis中![CDATA[ ]]的使用
  7. Linux下 对文件行数打乱(乱序排列)
  8. mysql字段冲突报错
  9. 【推荐】2016年不得不读的九本好书
  10. BZOJ2388: 旅行规划