Group: Linux-libre Kernel

From LibrePlanet
Jump to: navigation, search
m (moved Libre Kernel Group to LibreKernel: http://libreplanet.org/wiki/Group:LibreKernel seems to be better linked on www)
(Redirected page to Group:Linux-libre)
 
(85 intermediate revisions by 6 users not shown)
Line 1: Line 1:
'''''current_status''''' Active
+
#REDIRECT [[Group:Linux-libre]]
 
 
'''''irc''''' #libre-kernel
 
 
 
'''''contact''''' [[User:aurelien|Aurélien DESBRIÈRES]]
 
 
 
'''''note''''' LK group for Libre Kernel activists
 
 
 
'''''website''''' http://www.fscorsica.org
 
 
 
'''''members''''' [[User:aurelien|Aurélien DESBRIÈRES]]
 
 
 
 
 
 
 
 
 
 
 
''''' Welcome in the Libre Kernel Group - Every One is Free to Join!'''''
 
 
 
 
 
''''' The Libre Kernel Group as been created to help people to construct and compile their own Libre Kernel from http://www.fsfla.org '''''
 
 
 
 
 
''''' 1st goal establish a working compilation recipe '''''
 
 
 
''''' 2nd goal offer a Libre Kernel Optimization Solution - LKOS '''''
 
 
 
 
 
 
 
One of the simply way to compile your own Libre Kernel for your distribution is ( This example as been made on a Full Libre Debian)
 
 
 
 
 
 
 
YOU CAN FIND THE .DEB OF THIS LIBRE KERNEL AT :: http://www.fscorsica.org/kernel-en.html
 
 
 
 
 
 
 
How-To-compile-your-own-free-kernel-on-free-debian-based
 
 
 
Libre-Kernel version :: 2.6.36
 
 
 
Last edit Tuesday the 22 october 2010.
 
 
 
Type: GNU documentation
 
 
 
License: GNU Free Documentation License
 
 
 
Made on Operating System : Debian with free software only
 
 
 
Distribution: GNU / linux
 
 
 
 
 
''''' Important change on the receipe :: have a look at make olconfig part '''''
 
 
 
 
 
This part is important and long (depending on the computers you have got)
 
 
 
If you are running on a fresh install or if you never made that type of operation before, you will need to install packages needed for kernel compilation. First, make sure your apt database is updated
 
 
 
 
 
 
 
All command must be made under root.
 
 
 
 
 
 
 
su
 
 
 
aptitude update
 
 
 
 
 
Install the needed packages
 
 
 
 
 
aptitude install fakeroot kernel-package libncurses5-dev libqt3-mt-dev bzip2 wget build-essential
 
 
 
 
 
In a web browser go to last free kernel release
 
 
 
 
 
http://www.linux-libre.fsfla.org/pub/linux-libre/releases/
 
 
 
 
 
Copy the link adress of the free kernel version you want.
 
 
 
 
 
In a terminal go to /usr/src and get the source :
 
 
 
 
 
wget http://www.linux-libre.fsfla.org/pub/linux-libre/releases/2.6.36-libre/linux-2.6.36-libre.tar.bz2
 
 
 
 
 
Uncompress the archive file
 
 
 
 
 
tar xvjf linux-2.6.36-libre.tar.bz2
 
 
 
 
 
Go to the newly created directory of the uncompressed source
 
 
 
 
 
cd linux-2.6.36
 
 
 
Enter
 
 
 
 
 
you have to edit a file in the kernel source before compiling
 
 
 
Edit on > linux-2.6.36/Documentation/lguest/Makefile
 
 
 
 
 
emacs Documentation/lguest/Makefile
 
 
 
all: lguest
 
 
 
to
 
 
 
all:
 
 
 
save and close (under emacs C-x C-s)
 
 
 
 
 
 
 
Now you can start the compilation of the last free kernel
 
 
 
normaly at this point you are already in /usr/src/linux2.6.36
 
 
 
make clean mrproper
 
 
 
 
 
 
''''' OBSOLET FROM THE 2.6.35 :: You don't need anymore this part ''''
 
 
 
Now, you will need to have a base .config file that will control the build process. If you don't have a specific .config file, you can use the default
 
file in the /boot directory. Just copy that into the source directory.
 
cp /boot/config-* /usr/src  (if you have already compile another kernel before, import just the last one in /usr/src from /boot)
 
 
 
'''''this part stay here the time of 2.7 will be available'''''
 
 
 
Why we decide to not use this part :: Because if you don't use this part, the step after will create a clean one, optimized for the kernel itself.
 
some old version of .config-* on your machine can done a wrong result at the end of compilation.
 
 
 
''''' CONTINUE DIRECTLY HERE '''''
 
 
 
 
 
Now, you can review and change config variables. First, update your config file to the new options of the kernel source
 
 
 
make oldconfig
 
 
 
and answer the configuration questions there. Enter yes for the module to be built into the kernel, m for it to be build modularly which will only load if needed and no to exclude the module.
 
 
 
Now you are able to revise your decisions in the next step.
 
 
 
Next, enter
 
 
 
make xconfig
 
 
 
(make menuconfig is an alternative .config editing tool)
 
 
 
 
 
This will open an application that classifies and explains the properties and available modules you can either 'build into' the kernel, make modularly available or disable. When you are done, save it and exit.
 
 
 
 
 
make-kpkg clean
 
 
 
 
 
Now you have to create a file ::
 
 
 
create the version.h file in the linux-2.6.36/include/linux containing ::
 
 
 
emacs include/linux/version.h
 
 
 
 
 
#define UTS_RELEASE "2.6.36-libre-planet"  <- (here change libre-planet by what you want)
 
 
 
C-x C-s save the file in /usr/src/linux-2.6.36/include/linux/version.h
 
 
 
 
 
Now, you can build your kernel, enter
 
 
 
 
 
fakeroot make-kpkg --initrd --append-to-version=-planet kernel_image kernel_headers kernel_source
 
 
 
 
 
You can change "planet" by the value you have choose when you have create the utsrelease.h file. Optionally, you can add kernel_source at the end, if you want to build a source pack. You can also put CONCURRENCY_LEVEL=N (where N should be replaced by the number of CPU cores your computer has) at the beginning of the command to make the building process take advantage of multiple core systems.
 
 
 
The last command will take some time to complete. At the end, you will have linux-image and linux-headers (and linux-source if you chose) installation files.
 
 
 
 
 
go to linux-image and linux-headers files to the directory you want. Then, either go to that directory in terminal with cd command and install the two .deb packages:
 
 
 
 
 
If the compilation goes wrong, just re-edit the file ::
 
 
 
Now you have to edit this file ::
 
 
 
 
 
edit the version.h file in the linux-2.6.36/include/linux containing ::
 
 
 
emacs include/linux/version.h
 
 
 
#define UTS_RELEASE "2.6.36-libre-planet"  <- (here change libre-planet by what you want)
 
 
 
 
 
C-x C-s save the file in /usr/src/linux-2.6.36/include/linux/version.h
 
 
 
and launch again ::
 
 
 
 
 
fakeroot make-kpkg --initrd --append-to-version=-planet kernel_image kernel_headers kernel_source
 
 
 
 
 
Now you've got your own libre-kernel files in /usr/src
 
 
 
 
 
dpkg -i linux-image-2.6.36-libre-planet.deb
 
 
 
dpkg -i linux-headers-2.6.36-libre-planet.deb
 
 
 
dpkg -i linux-source-2.6.36-libre-planet.deb
 
 
 
 
 
Or, just double-click on the two files and click on the Install Package button.
 
 
 
Restart and choose free-planet kernel from your GRUB.
 
 
 
 
 
 
 
'''''Special Thanks to'''''
 
 
 
The Free Technologie Academy :: http://www.ftacademy.org
 
Linux advanced administration manual :: first version of the receipe
 
 
 
Ali Gundunz http://www.aligunduz.org/articles/buildkernel.html participation on the receipe 2.6.32
 
ali gundunz :: gndz.ali(at)gmail(dot)com
 
 
 
For the modification part on the /linux-2.6.32.5/lguest/Makefile
 
Damian Fossi damianfossi(at)gmail(dot)com
 
 
 
 
 
This document is under GNU Free Documentation License
 
Last modification bring Tuesday the 12 October 2010.
 

Latest revision as of 09:10, 18 September 2012

Redirect to: