Please note that User Registration has been temporarily disabled due to a recent increase in automated registrations. If anyone needs an account, please request one here: RequestAccount. Thanks for your patience!--Wmat (talk)
Please email User:Wmat if you experience any issues with the Request Account form.

Difference between revisions of "Rpi kernel compilation"

From eLinux.org
Jump to: navigation, search
(Adding template)
(Transferred to RPi Kernel Compilation, intentionally blanking and redirecting)
 
Line 1: Line 1:
= Raspberry PI kernel compilation =
+
#REDIRECT [[RPi Kernel Compilation]]
 
+
You can compile the kernel on the board itself, but because of the limited resources it will take a lot of time. Alternatively you can crosscompile the kernel on another machine running Linux, Windows or OS X.
+
 
+
== Compiling on the Raspberry pi itself ==
+
 
+
TODO: write the rest of this section.
+
 
+
== Cross compiling on a foreign machine==
+
 
+
=== Ubuntu Linux ===
+
 
+
==== getting the compiler ====
+
 
+
On Ubuntu Oneiric getting the arm cross compiler can be as easy as:
+
 
+
sudo apt-get install gcc-4.6-arm-linux-gnueabi
+
 
+
(TODO: Is this the right one? More packages required? I did this a while ago! TODO: Other distributions?)
+
 
+
==== getting the sources ====
+
 
+
create a directory where you can work on  the raspberry pi software. I called mine "raspberrypi". Then clone the git repository.
+
 
+
mkdir raspberrypi
+
cd raspberrypi
+
git clone https://github.com/raspberrypi/linux.git
+
cd linux
+
 
+
==== compiling ====
+
 
+
Next you have to configure the kernel:
+
cp arch/arm/configs/bcmrpi_cutdown_defconfig .config
+
make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- oldconfig
+
 
+
Then building the kernel:
+
make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- -k
+
 
+
You can use the "-j" flag to improve compilation time. If you have a dual core machine you can use "-j 3", for a quad core machine you can use "-j 6", and so on.
+
 
+
If you get the error messages that arm-linux-gnueabi-gcc cannot be found when running make, run the following command:
+
 
+
sudo ln -s /usr/bin/arm-linux-gnueabi-gcc-4.6 /usr/bin/arm-linux-gnueabi-gcc
+
 
+
this creates a symbolic link to the 4.6 gcc binary
+
 
+
=== Gentoo Linux ===
+
 
+
==== getting the compiler ====
+
 
+
Build the cross toolchain:
+
crossdev -v -t arm-unknown-linux-gnueabi
+
 
+
This command will most certainly fail on your machine. What you have to do to make it work, is to adjust the cross tools versions with the "--b", "--g", "--k" and "--l" flags. For the exact usage refer to the crossdev manpage. A good starting point for figuring out the right versions are those which are stable for the arm architecture.
+
 
+
==== getting the sources ====
+
 
+
create a directory where you can work on  the raspberry pi software. I called mine "raspberrypi". Then clone the git repository.
+
 
+
mkdir raspberrypi
+
cd raspberrypi
+
git clone https://github.com/raspberrypi/linux.git
+
cd linux
+
 
+
==== compiling ====
+
 
+
Next you have to configure the kernel:
+
cp arch/arm/configs/bcmrpi_cutdown_defconfig .config
+
make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- oldconfig
+
 
+
Then building the kernel:
+
make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- -k
+
 
+
You can use the "-j" flag to improve compilation time. If you have a dual core machine you can use "-j 3", for a quad core machine you can use "-j 6", and so on.
+
 
+
=== Windows ===
+
 
+
TODO
+
 
+
=== OS X ===
+
 
+
TODO
+
 
+
 
+
 
+
{{Template:Raspberry Pi}}
+
[[Category: RaspberryPi]]
+

Latest revision as of 20:28, 28 January 2012