进入kernel/common,这里不需要用到repo,直接用Git即可。
git clone git://android.git.kernel.org/kernel/common.git
这可能需要不少的时间,因为它会把整个Linux Kernel的代码复制下来。
如果需要某个branch的代码,用git checkout即可。比如我们刚刚拿了kernel/common.git的代码,那就先进入到common目录,然后用下面的命令:
git checkout origin/android-goldfish-2.6.27 -b goldfish
这样我们就在本地建立了一个名为goldfish的android-goldfish-2.6.27分支,代码则已经与android- goldgish-2.6.27同步。我们可以通过git branch来列出本地的所有分支。

root@localhost mydroid]#git clone git://android.git.kernel.org/kernel/common.git kernel

//把服务器上的所有kernel都下载到本地kernel目录,想只下载一个版本的kernel是不可能的因为服务器上只有一个包含kernel的common.git文件,而没有单个版本kernel的.git文件

[root@localhost mydroid]#cd kernel

[root@localhost kernel]# ls
arch CREDITS drivers include Kbuild MAINTAINERS net samples sound
block crypto firmware init kernel Makefile README scripts usr
COPYING Documentation fs ipc lib mm REPORTING-BUGS security virt
[root@localhost kernel]# git branch -a
* android-2.6.27
diff
remotes/origin/HEAD -> origin/android-2.6.27
remotes/origin/archive/android-2.6.25
remotes/origin/archive/android-2.6.27
remotes/origin/archive/android-2.6.29
remotes/origin/archive/android-2.6.32

我们想要2.6.29内核,只要最后执行一下git checkout -b android-2.6.29 origin/android-2.6.29 把origin/archive/android-2.6.29
检出到本地android-2.6.29分支,至此就可以复制当前目录kernel里面的内核代码了,当然里面有一个隐藏的.git目录不要复制,那是用于管理版本代码的。

---------------------------------------------------

下面是其它作者的文章,对理解很有帮助:

使用git获取Android源码的时候一般需要使用repo脚本,但是使用repo脚本得到的源码并不带kernel内核的,所以如果需要下载kernel内核还必须使用git手动下载。。。

使用git的clone命令,把内核下载下来,到kernel文件夹

git clone git://android.git.kernel.org/kernel/common.git kernel

下载完之后,进入kernel文件夹,然后可以查看所有的分支,以及当前源码版本分支

在这里需要提一下的就是,git有本地的分支跟远程服务器分支两个概念,当clone整个common.git的时候,本地只有android-2.6.36这个分支的,

使用下面命令可以查看当前目录的本地分支

git branch

在哥电脑上面,已经下载了32和35的源代码,所以分支有三个,前面带星号是当前版本的分支

bing@bing-laptop:~/android/kernel$ git branch

android-2.6.32

android-2.6.35

* android-2.6.36

然后加入-r参数可以查看远程服务器的分支
bing@bing-laptop:~/android/kernel$ git branch -r
origin/HEAD -> origin/android-2.6.36
origin/android-2.6.35
origin/android-2.6.36
origin/android-2.6.37
origin/android-2.6.38
origin/android-2.6.39
origin/archive/android-2.6.25
origin/archive/android-2.6.27
origin/archive/android-2.6.29
origin/archive/android-2.6.32
origin/archive/android-gldfish-2.6.29
origin/archive/android-goldfish-2.6.27
origin/linux-bcm43xx-2.6.39
origin/linux-wl12xx-2.6.39

使用-a参数则显示本地和远程服务器的分支,并且远程服务器分支会加前缀"remotes/"

bing@bing-laptop:~/android/kernel$ git branch -a

android-2.6.32

android-2.6.35

* android-2.6.36

remotes/origin/HEAD -> origin/android-2.6.36

remotes/origin/android-2.6.35

remotes/origin/android-2.6.36

remotes/origin/android-2.6.37

remotes/origin/android-2.6.38

remotes/origin/android-2.6.39

remotes/origin/archive/android-2.6.25

remotes/origin/archive/android-2.6.27

remotes/origin/archive/android-2.6.29

remotes/origin/archive/android-2.6.32

remotes/origin/archive/android-gldfish-2.6.29

remotes/origin/archive/android-goldfish-2.6.27

remotes/origin/linux-bcm43xx-2.6.39

remotes/origin/linux-wl12xx-2.6.39

git checkout -b "A" 表示新建一个名为“A”的本地分支,并且切换到该分支上
把指定的远程分支切换到你新建的一个本地分支的,命令格式如下:
git checkout -b "本地分支名" "你所需要下载的分支"
例如我要下载2.6.38的内核到我新建的本地分支为:
git checkout -b android-2.6.38 origin/android-2.6.38
则我本机的分支结构为:
bing@bing-laptop:~/android/kernel$ git branch
android-2.6.32
android-2.6.35
android-2.6.36
* android-2.6.38

如果需要在本地分支之间切换,则使用
git branch "分支名"
对于不需要的分支可以使用branch命令删除
git branch -dremotes/origin/android-2.6.39
呵呵,由于只是使用checkout的下载功能,没有上传,所以就比较简单,基本就那几个分支的下载跟管理。

怎样用git获取指定的android linux kernel相关推荐

  1. Android/Linux Kernel 内存管理-入门笔记

    Android/Linux Kernel上下層的記憶體管理機制,由於牽涉到基礎,核心與使用者空間的Framework,這系列的文章會分為幾個單元,依據筆者自己的時間安排,逐一分享出來,並希望對各位有所 ...

  2. 線上 Android/Linux Kernel Source Code瀏覽 - Android/Linux Source Code Cross Reference

    線上 Android/Linux Kernel Source Code瀏覽 - Android/Linux Source Code Cross Reference http://hala01.com/ ...

  3. android linux kernel VS standard linux kernel

    在kernel子目录下存放的就是Android的Linux Kernel了, 通过和标准的Linux 2.6.25 Kernel的对比,我们可以发现,其主要增加了以下的内容: 1. 基于ARM架构增加 ...

  4. git获取指定release版本代码

    首先手里必须有release的版本的备份出来的/.repo/manifests/default.xml文件,该文件记录了每个git库的在该版本下的具体的版本情况,整个代码的sync都是依据他来的: 1 ...

  5. Android version and Linux Kernel version

    一.Android版本与Linux内核的关系 英文名 中文名 版本号 API level 发布时间 内核版本     1.1    2008.9    Cucake 纸杯蛋糕 1.5  3 , NDK ...

  6. Linux Kernel Git国内镜像源

    1. Linux Kernel Git 镜像使用帮助 本项目包含三个镜像:linux.git, linux-next.git, linux-stable.git,分别是主分支.稳定版分支和开发分支.在 ...

  7. Android/linux从usb声卡获取音频(使用libusb库)----环境,lsusb命令的介绍(一)

    Android/linux从usb声卡获取音频(使用libusb库)---环境,lsusb命令的介绍(一)        Android/linux从usb声卡获取音频(使用libusb库)---设备 ...

  8. linux下从git获取有权限的代码,linux下从源代码安装git

    之所以有这样的需求,是因为部分预安装的git版本太低,很多功能没有并且安全性存在问题. 比如git submodule add xxx@host:yyy.git必须在父repo的root目录安装,而新 ...

  9. 【Linux 内核】线程调度示例一 ② ( 获取指定调度策略的最大和最小优先级 | 代码示例 )

    文章目录 一.获取指定调度策略的最大和最小优先级函数 二.获取指定调度策略的最大和最小优先级代码示例 一.获取指定调度策略的最大和最小优先级函数 Linux 内核中 , 通过下面 222 个函数 , ...

最新文章

  1. 刷题2个月,终于进了梦寐以求的大厂,数据结构和算法太TM重要了!
  2. matlab 寻找二进制图像边缘
  3. tp5 if 如果有html判断,tp5条件判断,in,notin,between,if等
  4. 科研工作者的神器-zotero论文管理工具
  5. Spring bean 装配
  6. 天地图专题五:在天地图上绘制电子区域并保存数据
  7. Taro+react开发(29)引入固定地址的方式
  8. 西安邮电大学卓越班c语言面试题,西安邮电大学C语言实验报告.docx
  9. Laravel定时任务的每秒执行
  10. 谷歌YouTube算法团队:视频质量评价的集成池化方法
  11. CN DBMove 过程中一些最常见最需要注意的问题
  12. 解决 googel 无法直接跳转网页打开搜索结果
  13. 民航订票管理系统设计
  14. 如何下载macOS Ventura、Monterey、Big Sur、Catalina Mojave完整安装程序
  15. Bitly野心彰显,发布实时热门链接引擎Realtime
  16. java验证字符是否为字母_Java程序检查字符是否为字母
  17. C语言讲义——头文件
  18. STM32学习笔记01---使用仿真器下载程序
  19. 5.4版本内核ufs设备信息查询方式
  20. 搭建公司wiki系统Confluence

热门文章

  1. ansible执行拷贝/脚本/任务计划/yum/service
  2. redis的简单安装和配置文件的参数
  3. QlikView线图高亮选择尺寸
  4. linux下休眠/待机命令
  5. 运用“异或”对原文加密,并解密
  6. Gcc 完全参考手册,参数说明,操作指南-Gcc Complete referene
  7. javascript ~~canvas url blob转换
  8. 20180921 su与sudo命令、限制root用户通过ssh远程登录
  9. JavaScript设计模式之创建型设计模式
  10. 兰州市智慧城市建设再迈出实质性一步