The Linux Kernel Source Finder

And thus it came to pass that Linux was ported to many architectures and platforms, varied and wonderful (or at least interesting) and each needed code and tweaks and general frobbing. Each architecture (and sometimes platforms within architectures) have their own source distributions, with only some of them occasionally making their way back to the main tree, and it became a right-royal-pain to try and find the source for a particular machine. Here is a list to help you find stuff.

The main kernel tree can be found at


Kernel: Normally the main kernel tree works on Alpha.
Binutils: Use H.J. Lu's latest binutils package he tests on Alpha before release..


The ARM kernel sources are normally obtained by taking the main kernel tree and then applying the patches that can be found on the ARM Linux Developer pages (follow the release notes links for the patches and explanation of what has changed recently). Recently a CVS repository has been created by Erik Mouw and is available on his armlinux sourceforge project.


For the netwinder ARM platform there is a CVS repository containing its own source tree; instructions for accessing it are here. There aim is to eventually merge back into the main tree above.

Toolchain: A set of binutils and gcc for the ARM with appropriate patches is available on the ARM Linux ftp site.


The main CRIS Linux developer site has lots of documentation and links to the kernel download directory containing patches.

i386 (aka all x86)

Kernel: Just see the main kernel tree
Binutils: Use H.J. Lu's latest binutils package he tests on x86 before release.
gcc: Use the standard GNU release 2.95.3 available on and your favorite mirrors.


The ia64 kernel is available as a series of patches to the main kernel tree; the patches are available here.


CVS details on: Linux/m68k CVS page.

Mac (68k varients only)

The Linux for 68k Macintoshes project has its own site pointing to its kernel source and boot loaders and associated utilities.

MIPS (and MIPS64)

Kernel: The MIPS ports are documented in Ralf Bächle's Linux/MIPS HOWTO together with pointers to CVS repositories and FTP sites.
Binutils: Use H.J. Lu's latest binutils package he tests on MIPS before release.


Best accessed from the CVS pointed to by PA-RISC Linux CVS Repository page


PenguinPPC lists a number of options for getting kernel source (including patches against the main tree, a bitkeeper archive and rsync) on its Developer kernel page. In addition patches and full source for PowerPCs in 64 bit mode can be found at the Linux for 64 bit PowerPC Processors web page.


IBM's LINUX for S/390 and zSeries page holds links to the latest source for the S390 as well as tools and details of the systems it runs on.


The Linux on SH source is available at the LinuxSH CVS page.

sparc (and sparc64)

The main kernel tree has a good chance on sparc but it is often better to check the Vger CVS repository .


Yes, there is even a port that provides Linux on Vax machines.


x86-64 CVS web page

User Mode Linux (UML)

UML is a special port of Linux that lets you run a Linux kernel under a running Linux system; it can be found on the User Mode Linux sourceforge page.

Microcontroller Linux (uClinux)

uClinux is really a set of ports to various processors without memory management units (MMUs). Fortunatly they have a single CVS repository containing the source for all processors.
binutils and gcc for uClinux on ARM and m68k can be found at this page - yep that has ARM as well. For other platforms look at the uClinux Directory (which currently breaks Javascript for me).

To do

Comments, (constructive) criticism, addition, corrections and chocolate to lksf AT

back to my home page