wiki:Android/Tegra/NotionInk/Adam/GitRepositories

git Repositories

The Adam kernel is a complex combination of patches from several sources. Tracking the multitude of remote branches is challenging. As an active kernel developer that tracks Linus' main-line, the changes introduced for and by Android, Nvidia Tegra, Malata and Notion Ink make the task of reconciling incompatibilities extremely challenging.

Main-line versus Android

The best kernel patches are those submitted to and accepted into the main-line kernel maintained by Linus Torvalds because they then become available to every distribution as part of the standard kernel. Unfortunately at the present time many of the Android-specific patches are not acceptable and work is under-way to re-factor and sometimes change the entire design of key elements of the Android patches (e.g. the  Suspend Blockers issue).

This conflict between the Android kernel and main-line means that instead of Android being able to use the very latest main-line kernels that support new devices and provide better functionality and bug-fixes, the Android kernel developers have to maintain a separate tree (a fork) that contains the Android-specific patches. Individual Android releases (Eclair, Froyo, Gingerbread, Honeycomb) have each to be based on specific kernel versions and cannot be re-based to the latest main-line. This means that the Linux kernel used in new Android devices can often be a year or more behind main-line.

Codename Android Released Linux Committed
Eclair 2.0/2.1 26 October 2009 2.6.29 23 March 2009
Froyo 2.2 20 May 2010 2.6.32 2 December 2009
Gingerbread 2.3.4 6 December 2010 2.6.35 1 August 2010
Honeycomb 3.01 22 February 2011 2.6.36 20 October 2010
2.6.37 4 January 2011
2.6.38 14 March 2011
2.6.39 18 May 2011

The table shows how far behind main-line the Android kernel is.

Creating a Local Working Repository Based on Main-Line with Remote Tracking of Ubuntu and Android

To create a single working repository where local branches can be used to forward-port Android, Tegra, and device-specific patches by re-basing and cherry-picking, I've put together a shell script that automates the process. Since my ultimate aim is to allow current and development versions of Ubuntu to be used on the Adam the script can also add tracking of the Ubuntu kernel trees. It will only add the Ubuntu tracking if the environment variable UBUNTU is set. The script is attached Download to this article for download.

When run, the script will detect if the current directory is the root of a linux-2.6 main-line git repository clone and if so only fetch the most recent commits. If the current directory is not a git repository the script will clone the main-line tree and change into the newly created git repository when it has fetched it.

The script will then add several remote tracking config settings to other relevant git repositories that contain patches of use to the Adam and then fetch from those remotes.

The resulting local repository will then contain all the latest Linux/Android/Tegra patches. The developer can then create new working branches based on any combination of the remotes, and proceed to merge other remote branches, resolve conflicts, cherry-pick individual upstream commits, and most importantly build-test work-in-progress. Using git branches allows the developer to create multiple trees based off one-another. This makes it almost trivial to trial re-basing of a particular set of patches in one branch onto another branch - just what is needed to forward-port Android/Tegra patches to main-line.

$ UBUNTU=1; ./kernel-repository-init.sh

git fetch origin

git fetch ubuntu-lucid

remote: Counting objects: 84324, done.
remote: Compressing objects: 100% (17471/17471), done.
remote: Total 70112 (delta 54377), reused 67334 (delta 51894)
Receiving objects: 100% (70112/70112), 91.30 MiB | 369 KiB/s, done.
Resolving deltas: 100% (54377/54377), completed with 5027 local objects.
From git://kernel.ubuntu.com/ubuntu/ubuntu-lucid
 * [new branch]      ec2        -> ubuntu-lucid/ec2
 * [new branch]      fsl-imx51  -> ubuntu-lucid/fsl-imx51
 * [new branch]      lts-backport-maverick -> ubuntu-lucid/lts-backport-maverick
 * [new branch]      lts-backport-natty -> ubuntu-lucid/lts-backport-natty
 * [new branch]      master     -> ubuntu-lucid/master
 * [new branch]      master-next -> ubuntu-lucid/master-next
 * [new branch]      mvl-dove   -> ubuntu-lucid/mvl-dove
 * [new branch]      ti-omap    -> ubuntu-lucid/ti-omap
 * [new tag]         Ubuntu-2.6.31-608.25 -> Ubuntu-2.6.31-608.25
 * [new tag]         Ubuntu-2.6.32-216.33 -> Ubuntu-2.6.32-216.33
 * [new tag]         Ubuntu-2.6.32-32.62 -> Ubuntu-2.6.32-32.62
 * [new tag]         Ubuntu-lts-2.6.35-28.50 -> Ubuntu-lts-2.6.35-28.50
 * [new tag]         Ubuntu-lts-2.6.38-8.42 -> Ubuntu-lts-2.6.38-8.42
From git://kernel.ubuntu.com/ubuntu/ubuntu-lucid
 * [new tag]         Ubuntu-2.6.31-10.31 -> Ubuntu-2.6.31-10.31
 * [new tag]         Ubuntu-2.6.31-10.32 -> Ubuntu-2.6.31-10.32
 * [new tag]         Ubuntu-2.6.31-10.33 -> Ubuntu-2.6.31-10.33
 * [new tag]         Ubuntu-2.6.31-10.34 -> Ubuntu-2.6.31-10.34
 * [new tag]         Ubuntu-2.6.31-10.35 -> Ubuntu-2.6.31-10.35
 * [new tag]         Ubuntu-2.6.31-11.36 -> Ubuntu-2.6.31-11.36
 * [new tag]         Ubuntu-2.6.31-11.37 -> Ubuntu-2.6.31-11.37
 * [new tag]         Ubuntu-2.6.31-11.38 -> Ubuntu-2.6.31-11.38
 * [new tag]         Ubuntu-2.6.31-12.39 -> Ubuntu-2.6.31-12.39
 * [new tag]         Ubuntu-2.6.31-12.40 -> Ubuntu-2.6.31-12.40
 * [new tag]         Ubuntu-2.6.31-12.41 -> Ubuntu-2.6.31-12.41
 * [new tag]         Ubuntu-2.6.31-13.42 -> Ubuntu-2.6.31-13.42
 * [new tag]         Ubuntu-2.6.31-13.43 -> Ubuntu-2.6.31-13.43
 * [new tag]         Ubuntu-2.6.31-13.44 -> Ubuntu-2.6.31-13.44
 * [new tag]         Ubuntu-2.6.31-13.45 -> Ubuntu-2.6.31-13.45
 * [new tag]         Ubuntu-2.6.31-14.46 -> Ubuntu-2.6.31-14.46
 * [new tag]         Ubuntu-2.6.31-14.47 -> Ubuntu-2.6.31-14.47
 * [new tag]         Ubuntu-2.6.31-14.48 -> Ubuntu-2.6.31-14.48
 * [new tag]         Ubuntu-2.6.31-15.49 -> Ubuntu-2.6.31-15.49
 * [new tag]         Ubuntu-2.6.31-15.50 -> Ubuntu-2.6.31-15.50
 * [new tag]         Ubuntu-2.6.31-16.51 -> Ubuntu-2.6.31-16.51
 * [new tag]         Ubuntu-2.6.31-17.53 -> Ubuntu-2.6.31-17.53
 * [new tag]         Ubuntu-2.6.31-17.54 -> Ubuntu-2.6.31-17.54
 * [new tag]         Ubuntu-2.6.31-18.55 -> Ubuntu-2.6.31-18.55
 * [new tag]         Ubuntu-2.6.31-19.56 -> Ubuntu-2.6.31-19.56
 * [new tag]         Ubuntu-2.6.31-20.57 -> Ubuntu-2.6.31-20.57
 * [new tag]         Ubuntu-2.6.31-608.22 -> Ubuntu-2.6.31-608.22
 * [new tag]         Ubuntu-2.6.31-608.23 -> Ubuntu-2.6.31-608.23
 * [new tag]         Ubuntu-2.6.31-608.24 -> Ubuntu-2.6.31-608.24
 * [new tag]         Ubuntu-2.6.32-10.14 -> Ubuntu-2.6.32-10.14
 * [new tag]         Ubuntu-2.6.32-11.15 -> Ubuntu-2.6.32-11.15
 * [new tag]         Ubuntu-2.6.32-12.16 -> Ubuntu-2.6.32-12.16
 * [new tag]         Ubuntu-2.6.32-12.17 -> Ubuntu-2.6.32-12.17
 * [new tag]         Ubuntu-2.6.32-13.18 -> Ubuntu-2.6.32-13.18
 * [new tag]         Ubuntu-2.6.32-14.19 -> Ubuntu-2.6.32-14.19
 * [new tag]         Ubuntu-2.6.32-14.20 -> Ubuntu-2.6.32-14.20
 * [new tag]         Ubuntu-2.6.32-15.21 -> Ubuntu-2.6.32-15.21
 * [new tag]         Ubuntu-2.6.32-15.22 -> Ubuntu-2.6.32-15.22
 * [new tag]         Ubuntu-2.6.32-16.23 -> Ubuntu-2.6.32-16.23
 * [new tag]         Ubuntu-2.6.32-16.24 -> Ubuntu-2.6.32-16.24
 * [new tag]         Ubuntu-2.6.32-16.25 -> Ubuntu-2.6.32-16.25
 * [new tag]         Ubuntu-2.6.32-17.26 -> Ubuntu-2.6.32-17.26
 * [new tag]         Ubuntu-2.6.32-18.27 -> Ubuntu-2.6.32-18.27
 * [new tag]         Ubuntu-2.6.32-19.28 -> Ubuntu-2.6.32-19.28
 * [new tag]         Ubuntu-2.6.32-20.29 -> Ubuntu-2.6.32-20.29
 * [new tag]         Ubuntu-2.6.32-20.30 -> Ubuntu-2.6.32-20.30
 * [new tag]         Ubuntu-2.6.32-21.31 -> Ubuntu-2.6.32-21.31
 * [new tag]         Ubuntu-2.6.32-21.32 -> Ubuntu-2.6.32-21.32
 * [new tag]         Ubuntu-2.6.32-22.33 -> Ubuntu-2.6.32-22.33
 * [new tag]         Ubuntu-2.6.32-22.35 -> Ubuntu-2.6.32-22.35
 * [new tag]         Ubuntu-2.6.32-22.36 -> Ubuntu-2.6.32-22.36
 * [new tag]         Ubuntu-2.6.32-23.37 -> Ubuntu-2.6.32-23.37
 * [new tag]         Ubuntu-2.6.32-24.38 -> Ubuntu-2.6.32-24.38
 * [new tag]         Ubuntu-2.6.32-24.39 -> Ubuntu-2.6.32-24.39
 * [new tag]         Ubuntu-2.6.32-24.40 -> Ubuntu-2.6.32-24.40
 * [new tag]         Ubuntu-2.6.32-24.41 -> Ubuntu-2.6.32-24.41
 * [new tag]         Ubuntu-2.6.32-24.42 -> Ubuntu-2.6.32-24.42
 * [new tag]         Ubuntu-2.6.32-24.43 -> Ubuntu-2.6.32-24.43
 * [new tag]         Ubuntu-2.6.32-25.43 -> Ubuntu-2.6.32-25.43
 * [new tag]         Ubuntu-2.6.32-25.44 -> Ubuntu-2.6.32-25.44
 * [new tag]         Ubuntu-2.6.32-25.45 -> Ubuntu-2.6.32-25.45
 * [new tag]         Ubuntu-2.6.32-26.46 -> Ubuntu-2.6.32-26.46
 * [new tag]         Ubuntu-2.6.32-26.47 -> Ubuntu-2.6.32-26.47
 * [new tag]         Ubuntu-2.6.32-26.48 -> Ubuntu-2.6.32-26.48
 * [new tag]         Ubuntu-2.6.32-27.49 -> Ubuntu-2.6.32-27.49
 * [new tag]         Ubuntu-2.6.32-28.52 -> Ubuntu-2.6.32-28.52
 * [new tag]         Ubuntu-2.6.32-28.53 -> Ubuntu-2.6.32-28.53
 * [new tag]         Ubuntu-2.6.32-28.54 -> Ubuntu-2.6.32-28.54
 * [new tag]         Ubuntu-2.6.32-28.55 -> Ubuntu-2.6.32-28.55
 * [new tag]         Ubuntu-2.6.32-28.56 -> Ubuntu-2.6.32-28.56
 * [new tag]         Ubuntu-2.6.32-29.57 -> Ubuntu-2.6.32-29.57
 * [new tag]         Ubuntu-2.6.32-29.58 -> Ubuntu-2.6.32-29.58
 * [new tag]         Ubuntu-2.6.32-30.59 -> Ubuntu-2.6.32-30.59
 * [new tag]         Ubuntu-2.6.32-31.60 -> Ubuntu-2.6.32-31.60
 * [new tag]         Ubuntu-2.6.32-31.61 -> Ubuntu-2.6.32-31.61
 * [new tag]         Ubuntu-2.6.32-316.30 -> Ubuntu-2.6.32-316.30
 * [new tag]         Ubuntu-2.6.32-7.9 -> Ubuntu-2.6.32-7.9
 * [new tag]         Ubuntu-2.6.32-8.12 -> Ubuntu-2.6.32-8.12
 * [new tag]         Ubuntu-2.6.32-9.13 -> Ubuntu-2.6.32-9.13
 * [new tag]         Ubuntu-2.6.33-500.1 -> Ubuntu-2.6.33-500.1
 * [new tag]         Ubuntu-2.6.33-500.2 -> Ubuntu-2.6.33-500.2
 * [new tag]         Ubuntu-2.6.33-500.3 -> Ubuntu-2.6.33-500.3
 * [new tag]         Ubuntu-2.6.33-500.4 -> Ubuntu-2.6.33-500.4
 * [new tag]         Ubuntu-2.6.33-500.5 -> Ubuntu-2.6.33-500.5
 * [new tag]         Ubuntu-2.6.33-500.6 -> Ubuntu-2.6.33-500.6
 * [new tag]         Ubuntu-2.6.33-501.7 -> Ubuntu-2.6.33-501.7
 * [new tag]         Ubuntu-2.6.33-502.8 -> Ubuntu-2.6.33-502.8
 * [new tag]         Ubuntu-2.6.33-502.9 -> Ubuntu-2.6.33-502.9
 * [new tag]         Ubuntu-M-base -> Ubuntu-M-base
 * [new tag]         Ubuntu-M-sync -> Ubuntu-M-sync
 * [new tag]         Ubuntu-lucid-base -> Ubuntu-lucid-base
 * [new tag]         Ubuntu-lucid-sync -> Ubuntu-lucid-sync


git fetch ubuntu-natty

remote: Counting objects: 47708, done.
remote: Compressing objects: 100% (9119/9119), done.
remote: Total 38062 (delta 30460), reused 35676 (delta 28152)
Receiving objects: 100% (38062/38062), 26.04 MiB | 471 KiB/s, done.
Resolving deltas: 100% (30460/30460), completed with 3652 local objects.
From git://kernel.ubuntu.com/ubuntu/ubuntu-natty
 * [new branch]      master     -> ubuntu-natty/master
 * [new branch]      master-next -> ubuntu-natty/master-next
 * [new branch]      ti-omap4   -> ubuntu-natty/ti-omap4
 * [new tag]         Ubuntu-2.6.38-1209.13 -> Ubuntu-2.6.38-1209.13
 * [new tag]         Ubuntu-2.6.38-9.43 -> Ubuntu-2.6.38-9.43
From git://kernel.ubuntu.com/ubuntu/ubuntu-natty
 * [new tag]         Ubuntu-2.6.38-1208.12 -> Ubuntu-2.6.38-1208.12
 * [new tag]         Ubuntu-2.6.38-8.40 -> Ubuntu-2.6.38-8.40
 * [new tag]         Ubuntu-2.6.38-8.41 -> Ubuntu-2.6.38-8.41
 * [new tag]         Ubuntu-2.6.38-8.42 -> Ubuntu-2.6.38-8.42
 * [new tag]         Ubuntu-O-sync -> Ubuntu-O-sync


git fetch ubuntu-oneiric

remote: Counting objects: 2533, done.
remote: Compressing objects: 100% (832/832), done.
remote: Total 2259 (delta 1483), reused 2140 (delta 1383)
Receiving objects: 100% (2259/2259), 3.48 MiB | 456 KiB/s, done.
Resolving deltas: 100% (1483/1483), completed with 267 local objects.
From git://kernel.ubuntu.com/ubuntu/ubuntu-oneiric
 * [new branch]      master     -> ubuntu-oneiric/master
 * [new branch]      master-next -> ubuntu-oneiric/master-next


git fetch linux-tegra

remote: Counting objects: 4621, done.
remote: Compressing objects: 100% (882/882), done.
remote: Total 4333 (delta 3601), reused 4042 (delta 3310)
Receiving objects: 100% (4333/4333), 746.85 KiB | 315 KiB/s, done.
Resolving deltas: 100% (3601/3601), completed with 167 local objects.
From git://git.kernel.org/pub/scm/linux/kernel/git/olof/tegra-2.6
 * [new branch]      boards-for-next -> linux-tegra/boards-for-next
 * [new branch]      master     -> linux-tegra/master
 * [new branch]      tegra-2.6.37-only_video -> linux-tegra/tegra-2.6.37-only_video
 * [new branch]      tegra-2.6.38-no_video-no_otg -> linux-tegra/tegra-2.6.38-no_video-no_otg
 * [new branch]      tegra-2.6.38-only_video -> linux-tegra/tegra-2.6.38-only_video
 * [new branch]      tegra-2.6.38-with_video-no_otg -> linux-tegra/tegra-2.6.38-with_video-no_otg


git fetch android-tegra

remote: Counting objects: 39231, done.
remote: Compressing objects: 100% (6571/6571), done.
remote: Total 33726 (delta 29044), reused 31091 (delta 26582)
Receiving objects: 100% (33726/33726), 6.89 MiB | 467 KiB/s, done.
Resolving deltas: 100% (29044/29044), completed with 1038 local objects.
From git://android.git.kernel.org/kernel/tegra
 * [new branch]      android-tegra-2.6.33 -> android-tegra/android-tegra-2.6.33
 * [new branch]      android-tegra-2.6.33-rc8 -> android-tegra/android-tegra-2.6.33-rc8
 * [new branch]      android-tegra-2.6.34-rc2 -> android-tegra/android-tegra-2.6.34-rc2
 * [new branch]      android-tegra-2.6.34-rc4 -> android-tegra/android-tegra-2.6.34-rc4
 * [new branch]      android-tegra-2.6.34-rc5 -> android-tegra/android-tegra-2.6.34-rc5
 * [new branch]      android-tegra-2.6.34-rc6 -> android-tegra/android-tegra-2.6.34-rc6
 * [new branch]      android-tegra-2.6.34-rc7 -> android-tegra/android-tegra-2.6.34-rc7
 * [new branch]      android-tegra-2.6.35 -> android-tegra/android-tegra-2.6.35
 * [new branch]      android-tegra-2.6.36 -> android-tegra/android-tegra-2.6.36
 * [new branch]      android-tegra-2.6.36-honeycomb -> android-tegra/android-tegra-2.6.36-honeycomb
 * [new branch]      android-tegra-2.6.36-honeycomb-mr1 -> android-tegra/android-tegra-2.6.36-honeycomb-mr1
 * [new branch]      for-linus  -> android-tegra/for-linus
 * [new branch]      for-next   -> android-tegra/for-next
 * [new branch]      for-next-i2c -> android-tegra/for-next-i2c
 * [new branch]      for-review -> android-tegra/for-review
 * [new branch]      linus/for-linux -> android-tegra/linus/for-linux
 * [new branch]      linux-tegra-2.6.34-rc1 -> android-tegra/linux-tegra-2.6.34-rc1
 * [new branch]      linux-tegra-2.6.34-rc2 -> android-tegra/linux-tegra-2.6.34-rc2
 * [new branch]      linux-tegra-2.6.35 -> android-tegra/linux-tegra-2.6.35
 * [new branch]      linux-tegra-2.6.35-rc2 -> android-tegra/linux-tegra-2.6.35-rc2
 * [new branch]      linux-tegra-2.6.36 -> android-tegra/linux-tegra-2.6.36
 * [new branch]      linux-tegra-2.6.37 -> android-tegra/linux-tegra-2.6.37
 * [new branch]      master     -> android-tegra/master
 * [new branch]      tegra/for-next -> android-tegra/tegra/for-next


git fetch nvidia-tegra

remote: Counting objects: 30029, done.
remote: Compressing objects: 100% (10719/10719), done.
remote: Total 28202 (delta 22476), reused 22558 (delta 17167)
Receiving objects: 100% (28202/28202), 9.54 MiB | 398 KiB/s, done.
Resolving deltas: 100% (22476/22476), completed with 1274 local objects.
From git://nv-tegra.nvidia.com/linux-2.6
 * [new branch]      android-2.6.29 -> nvidia-tegra/android-2.6.29
 * [new branch]      android-2.6.32 -> nvidia-tegra/android-2.6.32
 * [new branch]      android-tegra-2.6.29 -> nvidia-tegra/android-tegra-2.6.29
 * [new branch]      android-tegra-2.6.32 -> nvidia-tegra/android-tegra-2.6.32
 * [new branch]      android-tegra-2.6.36 -> nvidia-tegra/android-tegra-2.6.36
 * [new branch]      android-tegra-2.6.36-release -> nvidia-tegra/android-tegra-2.6.36-release
 * [new branch]      eclair-9.12.13 -> nvidia-tegra/eclair-9.12.13
 * [new branch]      master     -> nvidia-tegra/master
 * [new branch]      rel-11.2   -> nvidia-tegra/rel-11.2
 * [new tag]         tegra-10.11.8 -> tegra-10.11.8
 * [new tag]         tegra-10.9.9 -> tegra-10.9.9
 * [new tag]         tegra-11.2.3 -> tegra-11.2.3
 * [new tag]         tegra-11.2.5 -> tegra-11.2.5
 * [new tag]         tegra-9.12.13 -> tegra-9.12.13
 * [new tag]         tegra-9.12.13.1 -> tegra-9.12.13.1
From git://nv-tegra.nvidia.com/linux-2.6
 * [new tag]         tegra-10.11.0 -> tegra-10.11.0
 * [new tag]         tegra-10.11.1 -> tegra-10.11.1
 * [new tag]         tegra-10.11.1.1 -> tegra-10.11.1.1
 * [new tag]         tegra-10.11.2 -> tegra-10.11.2
 * [new tag]         tegra-10.11.3 -> tegra-10.11.3
 * [new tag]         tegra-10.11.4 -> tegra-10.11.4
 * [new tag]         tegra-10.11.5 -> tegra-10.11.5
 * [new tag]         tegra-10.11.6 -> tegra-10.11.6
 * [new tag]         tegra-10.11.7 -> tegra-10.11.7
 * [new tag]         tegra-10.11.ER1 -> tegra-10.11.ER1
 * [new tag]         tegra-10.11.ER2 -> tegra-10.11.ER2
 * [new tag]         tegra-10.7.1 -> tegra-10.7.1
 * [new tag]         tegra-10.7.1-ER -> tegra-10.7.1-ER
 * [new tag]         tegra-10.7.2 -> tegra-10.7.2
 * [new tag]         tegra-10.8.1 -> tegra-10.8.1
 * [new tag]         tegra-10.8.2 -> tegra-10.8.2
 * [new tag]         tegra-10.8.3 -> tegra-10.8.3
 * [new tag]         tegra-10.9.1 -> tegra-10.9.1
 * [new tag]         tegra-10.9.2 -> tegra-10.9.2
 * [new tag]         tegra-10.9.3 -> tegra-10.9.3
 * [new tag]         tegra-10.9.4 -> tegra-10.9.4
 * [new tag]         tegra-10.9.5 -> tegra-10.9.5
 * [new tag]         tegra-10.9.6 -> tegra-10.9.6
 * [new tag]         tegra-10.9.7 -> tegra-10.9.7
 * [new tag]         tegra-10.9.8 -> tegra-10.9.8
 * [new tag]         tegra-11.2.0 -> tegra-11.2.0
 * [new tag]         tegra-11.2.0-hotfix -> tegra-11.2.0-hotfix
 * [new tag]         tegra-11.2.1 -> tegra-11.2.1
 * [new tag]         tegra-11.2.2 -> tegra-11.2.2
 * [new tag]         tegra-11.2.4 -> tegra-11.2.4
 * [new tag]         tegra-11.2.ER1 -> tegra-11.2.ER1
 * [new tag]         tegra-9.12.10 -> tegra-9.12.10
 * [new tag]         tegra-9.12.11 -> tegra-9.12.11
 * [new tag]         tegra-9.12.12 -> tegra-9.12.12
 * [new tag]         tegra-9.12.12.1 -> tegra-9.12.12.1
 * [new tag]         tegra-9.12.13.ER -> tegra-9.12.13.ER
 * [new tag]         tegra-9.12.14 -> tegra-9.12.14
 * [new tag]         tegra-9.12.15 -> tegra-9.12.15
 * [new tag]         tegra-9.12.3 -> tegra-9.12.3
 * [new tag]         tegra-9.12.4 -> tegra-9.12.4
 * [new tag]         tegra-9.12.5 -> tegra-9.12.5
 * [new tag]         tegra-9.12.6 -> tegra-9.12.6
 * [new tag]         tegra-9.12.7 -> tegra-9.12.7
 * [new tag]         tegra-9.12.8 -> tegra-9.12.8
 * [new tag]         tegra-9.12.9 -> tegra-9.12.9


git fetch tj-tegra-adam

remote: Counting objects: 846, done.
remote: Compressing objects: 100% (200/200), done.
remote: Total 735 (delta 530), reused 727 (delta 524)
Receiving objects: 100% (735/735), 324.54 KiB | 509 KiB/s, done.
Resolving deltas: 100% (530/530), completed with 86 local objects.
From git://tjworld.net/linux-2.6-tegra-adam
 * [new branch]      smba1002_10.9.7 -> tj-tegra-adam/smba1002_10.9.7


Keeping Repository Current

Part of a developers daily routine is to ensure the local repository is up-to-date with the remote tracking branches. It is good practice to fetch the latest commits from the remotes and reviewing the new commits for interesting patches before getting down to coding since upstream patches may affect the developers own work-in-progress and require some changes as a result.

git checkout master && git pull

remote: Counting objects: 3401, done.
remote: Compressing objects: 100% (704/704), done.
remote: Total 1847 (delta 1516), reused 1384 (delta 1136)
Receiving objects: 100% (1847/1847), 303.64 KiB | 574 KiB/s, done.
Resolving deltas: 100% (1516/1516), completed with 452 local objects.
From git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
   fafc992..693d92a  master     -> origin/master
 * [new tag]         v2.6.39-rc7 -> v2.6.39-rc7
From git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
 * [new tag]         v2.6.39-rc6 -> v2.6.39-rc6
Updating fafc992..693d92a
Fast-forward
# ... output removed for brevity


git fetch ubuntu-lucid


git fetch ubuntu-natty

remote: Counting objects: 458, done.
remote: Compressing objects: 100% (60/60), done.
remote: Total 334 (delta 273), reused 334 (delta 273)
Receiving objects: 100% (334/334), 59.76 KiB, done.
Resolving deltas: 100% (273/273), completed with 122 local objects.
From git://kernel.ubuntu.com/ubuntu/ubuntu-natty
   3abb35a..4047431  master-next -> ubuntu-natty/master-next


git fetch ubuntu-oneiric

remote: Counting objects: 3290, done.
remote: Compressing objects: 100% (961/961), done.
remote: Total 2988 (delta 2194), reused 2773 (delta 1982)
Receiving objects: 100% (2988/2988), 5.34 MiB | 463 KiB/s, done.
Resolving deltas: 100% (2194/2194), completed with 262 local objects.
From git://kernel.ubuntu.com/ubuntu/ubuntu-oneiric
 + f36ffff...2dd22ea master     -> ubuntu-oneiric/master  (forced update)
 + 38871fb...0c01e3f master-next -> ubuntu-oneiric/master-next  (forced update)
 * [new tag]         Ubuntu-2.6.39-0.5 -> Ubuntu-2.6.39-0.5
 * [new tag]         Ubuntu-2.6.39-1.6 -> Ubuntu-2.6.39-1.6


git fetch linux-tegra


git fetch android-tegra

remote: Counting objects: 307, done.
remote: Compressing objects: 100% (106/106), done.
remote: Total 164 (delta 132), reused 76 (delta 56)
Receiving objects: 100% (164/164), 81.75 KiB, done.
Resolving deltas: 100% (132/132), completed with 50 local objects.
From git://android.git.kernel.org/kernel/tegra
   2e35e1d..734779e  android-tegra-2.6.36 -> android-tegra/android-tegra-2.6.36
 + abcbb13...c2bee64 android-tegra-2.6.36-honeycomb-mr1 -> android-tegra/android-tegra-2.6.36-honeycomb-mr1  (forced update)
   82e4366..7893334  linux-tegra-2.6.36 -> android-tegra/linux-tegra-2.6.36


git fetch nvidia-tegra

remote: Counting objects: 112, done.
remote: Compressing objects: 100% (79/79), done.
remote: Total 80 (delta 66), reused 0 (delta 0)
Unpacking objects: 100% (80/80), done.
From git://nv-tegra.nvidia.com/linux-2.6
   b6426b9..db7bf5c  android-tegra-2.6.36-release -> nvidia-tegra/android-tegra-2.6.36-release
 * [new tag]         tegra-10.11.9 -> tegra-10.11.9


My Malata/Adam Repository

Following on from the distribution of the Linux kernel source-code for the SMBA1002 as a ZIP archive, I've cleaned up the file permission modifications caused by unzip, re-instated several files that had been deleted in the working directory, and committed the remaining changes into a local git repository.

I've pushed the repository out to my public git server. It can be cloned using:

git clone git://tjworld.net/linux-2.6-tegra-adam.git

It can also be browsed via the web

The repository was last updated in January so there's no telling how up to date it is with current shipping devices, nor whether it accurately reflects the Adam kernels being shipped. The last commit was:

commit 16c1decd0ff03acc4ec7891939d8d0dcee993407
Merge: 3a30f6b 40f12ab
Author: xmlz <xmlz@malata.com>
Date:   Fri Jan 14 18:01:23 2011 +0800

    Merge branch 'smba1002_10.9.7' of file:///users/repository/malata/smb/linux-2.6 into smba1002_10.9.7

Notion Ink

On 29th April 2011  Notion Ink published their kernel source-code to github. However, there is no history because it looks as if they created it from an archive rather than from a local working git repository. This makes it very difficult to work with so I don't recommend using it as a remote tracker for a local working repository yet.

I checked the differences between it and the Malata repository detailed previously and found them to be essentially the same. This source-code has some netfilter files and documentation deleted (the same as the working tree of the Malata source-code dump had) but no significant operational differences.

 git://github.com/notionink/adam-kernel.git

I'm working on incorporating the Notion Ink source dump into my combined repository where most of the patches should already exist somewhere or other. From that I can identify the minimal delta (difference) between what Notion Ink have dumped and what is already released, and if necessary create appropriate commits for the delta's topics.

Stephen Hyde's Gingerbread Repository

Known online as StephenH or DJ_Steve, Stephen works for Notion Ink, currently on the Gingerbread porting. His efforts to get Cyanogenmod 7 working on the Adam have resulted in a very enjoyable experience on the Adam. He has a  repo at gitorious:

git://gitorious.org/notionink-kernel/notionink-kernel.git

Upstream and Manufacturer Repositories

See the Android/Tegra/Linux/SourceCodeRepositoriesAndPatches page for other repositories.

Attachments