I want to build an Ubuntu kernel from scratch for beaglebone black. I have been searching for where I can download the kernel source code for more than two days but haven't found anything.

So, please tell me from where I can get the kernel source code.

  • 1
    Do you want to compile the Ubuntu kernel specifically or the normal Linux kernel? How exactly did you search? The first result for ubuntu kernel source code tells you how to get the Ubuntu sources and the first result for linux kernel source code is where you can download the stock kernel. – terdon Jun 20 '14 at 15:40
  • Actually I want to run Ubuntu on beaglebone black , but for this I don't want to use pre-build image. So, i need uboot, rootfs, kernel sourced code every thing so that i can compile my own image. – tabish Jun 20 '14 at 16:24

The first result for ubuntu kernel source code in duckduckgo.com is https://wiki.ubuntu.com/Kernel/SourceCode which explains the process of getting and compiling an Ubuntu kernel. I reproduce it here:

All of the Ubuntu Kernel source is maintained under git. The source for each release is maintained in its own git repository on kernel.ubuntu.com. These can be browsed in gitweb, the official Ubuntu trees are in the ubuntu/ directory. The Ubuntu Linux kernel git repository is located at git://kernel.ubuntu.com/ubuntu/ubuntu-.git or http://kernel.ubuntu.com/git-repos/ubuntu/ubuntu-.git. To obtain a local copy you can simply git clone the repository for the release you are interested in as below. The git command is part of the git-core package:

git clone git://kernel.ubuntu.com/ubuntu/ubuntu-<release>.git

For example to obtain the maverick tree:

git clone git://kernel.ubuntu.com/ubuntu/ubuntu-maverick.git

This will download several hundred megabytes of data. If you plan on working on more than one kernel release you can save space and time by downloading the upstream kernel tree. Note that once these two trees are tied together you cannot remove the virgin Linus tree without damage to the Ubuntu tree:

git clone git://kernel.ubuntu.com/ubuntu/linux.git
git clone --reference linux git://kernel.ubuntu.com/ubuntu/ubuntu-karmic.git
git clone --reference linux git://kernel.ubuntu.com/ubuntu/ubuntu-maverick.git

In each case you will end up with a new directory ubuntu- containing the source and the full history which can be manipulated using the git command from within each directory.

By default you will have the latest version of the kernel tree, the master tree. You can switch to any previously released kernel version using the release tags. To obtain a full list of the tagged versions in the release as below:

$ git tag -l Ubuntu-*

To look at the 2.6.27-7.13 version you can simply checkout a new branch pointing to that version:

git checkout -b temp Ubuntu-2.6.27-7.13

You may then manipulate the release for example adding new commits.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.