Group: Linux-libre Kernel

From LibrePlanet
Jump to: navigation, search
(correction)
(correction + update)
Line 1: Line 1:
====''''' Welcome in the Libre Kernel Group - Every One is Free to Join!'''''====
+
====''''' Welcome in the Linux Libre Kernel Group - Every One is Free to Join!'''''====
  
  
Line 11: Line 11:
 
'''''contact''''' [[User:aurelien|aurelien]]
 
'''''contact''''' [[User:aurelien|aurelien]]
  
'''''note''''' LK group for Libre Kernel activists
+
'''''note''''' LK group for Linux Libre Kernel activists
  
'''''NEWS''''' ''''2.6.36.2 libre kernel .deb available from December the 13 2010''''
+
'''''LAST OUT''''' ''''2.6.37 linux libre kernel .deb available from January the 5 2011''''
 
               ''''You work on différent type of architecture and/or operating systeme please join''''
 
               ''''You work on différent type of architecture and/or operating systeme please join''''
  
 
'''''website''''' http://www.fscorsica.org
 
'''''website''''' http://www.fscorsica.org
(At the time you have build a libre kernel without modification on the base configuration you are welcome to link your website to share your works)
+
(At the time you have build a linux libre kernel without modification on the base configuration you are welcome to link your website to share your works)
  
 
'''''members''''' [[User:aurelien|aurelien]] [[User:parsifal|parsifal]]
 
'''''members''''' [[User:aurelien|aurelien]] [[User:parsifal|parsifal]]
Line 29: Line 29:
  
  
''''' The Libre Kernel Group as been created to help people to construct and compile their own Libre Kernel from http://www.fsfla.org '''''
+
''''' The Linux Libre Kernel Group as been created to help people to construct and compile their own Linux Libre Kernel from http://www.fsfla.org '''''
  
  
  
''''' 1st goal establish a working compilation recipe (without change from the basic kernel configuration distributions)'''''
+
''''' 1st goal establish a working compilation recipe (without change from the basic linux kernel configuration distributions but free as in freedom)'''''
  
''''' 2nd goal offer a Libre Kernel Optimization Solution - LKOS ''''' a guide to bring some optimizations on your own libre kernel
+
''''' 2nd goal offer a Linux Libre Kernel Optimization Solution - LKOS ''''' a guide to bring some optimizations on your own linux libre kernel
  
  
  
One of the simply way to compile your own Libre Kernel for your distribution is
+
One of the simply way to compile your own Linux Libre Kernel for your distribution is
(This example as been made on a Full Libre Debian)
+
(This example as been made on a Full Libre GNU / Linux Debian Operating System)
  
  
  
You can find the .deb of this libre kernel at :: http://www.fscorsica.org/kernel-en.html
+
You can find the .deb of this linux libre kernel at :: http://www.fscorsica.org/kernel-en.html
  
 
You can find the .deb of an LKOS example at :: http://www.fscorsica.org/libre-kernel-optimization-solution.html
 
You can find the .deb of an LKOS example at :: http://www.fscorsica.org/libre-kernel-optimization-solution.html
Line 50: Line 50:
  
  
===''''How-To-compile-your-own-free-kernel-on-free-debian-based''''===
+
===''''How-To-compile-your-own-linux-libre-kernel-on-free-debian-based''''===
  
Libre-Kernel version :: 2.6.36.2
+
Linux Libre-Kernel version :: 2.6.37
  
Last edit Tuesday the 13 December 2010.
+
Last edit Tuesday the 5 January 2011.
  
 
Type: GNU documentation
 
Type: GNU documentation
Line 70: Line 70:
 
This part is important and long (depending on the computers you have got)
 
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
+
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 linux libre kernel compilation. First, make sure your apt database is updated
  
  
Line 77: Line 77:
  
  
 +
Get the root power with su or sudo
  
 
  su
 
  su
Line 88: Line 89:
  
  
In a web browser go to last free kernel release you can launch from another buffer of your emacs or terminal if you use tty
+
In a web browser go to last linux libre kernel release you can launch from another buffer of your emacs or terminal if you use tty
  
  
Line 94: Line 95:
  
  
Copy the link adress of the free kernel version you want.
+
Copy the link adress of the linux libre kernel version you want.
  
  
Line 100: Line 101:
  
  
  wget http://www.linux-libre.fsfla.org/pub/linux-libre/releases/2.6.36.2-libre/linux-2.6.36.2-libre.tar.bz2
+
  wget http://www.linux-libre.fsfla.org/pub/linux-libre/releases/2.6.37-libre/linux-2.6.37-libre.tar.bz2
  
  
Line 106: Line 107:
  
  
  tar xvjf linux-2.6.36.2-libre.tar.bz2
+
  tar xvjf linux-2.6.37-libre.tar.bz2
  
  
Line 112: Line 113:
  
  
  cd linux-2.6.36.2
+
  cd linux-2.6.37
  
 
Enter
 
Enter
  
  
you have to edit a file in the kernel source before compiling
+
you have to edit a file in the linux libre kernel source before compiling
  
Edit on > linux-2.6.36.2/Documentation/lguest/Makefile
+
Edit on > linux-2.6.37/Documentation/lguest/Makefile
  
  
Line 131: Line 132:
  
  
Now you can start the compilation of the last free kernel
+
Now you can start the compilation of the last linux libre kernel
  
normaly at this point you are already in /usr/src/linux2.6.36.1
+
normaly at this point you are already in /usr/src/linux2.6.37
  
 
  make clean mrproper
 
  make clean mrproper
Line 142: Line 143:
 
  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
 
  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.
 
  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)
+
  cp /boot/config-* /usr/src  (if you have already compile another linux kernel before, import just the last one in /usr/src from /boot)
  '''''this part stay here the time of 2.7 will be available'''''
+
  '''''this part stay here the time of 3.0 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.
+
  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 linux libre kernel itself.
 
  some old version of .config-* on your machine can done a wrong result at the end of compilation.
 
  some old version of .config-* on your machine can done a wrong result at the end of compilation.
 
  ''''' * CONTINUE DIRECTLY HERE '''''
 
  ''''' * CONTINUE DIRECTLY HERE '''''
  
  
Now, you can review and change config variables. First, update your config file to the new options of the kernel source
+
Now, you can review and change config variables. First, update your config file to the new options of the linux libre kernel source
  
 
  make oldconfig
 
  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.
+
and answer the configuration questions there. Enter yes for the module to be built into the linux libre 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.
 
Now you are able to revise your decisions in the next step.
Line 164: Line 165:
  
  
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.
+
This will open an application that classifies and explains the properties and available modules you can either 'build into' the linux libre kernel, make modularly available or disable. When you are done, save it and exit.
  
  
Line 172: Line 173:
 
Now you have to create a file ::
 
Now you have to create a file ::
  
create the version.h file in the linux-2.6.36.2/include/linux containing ::
+
create the version.h file in the linux-2.6.37/include/linux containing ::
  
 
  emacs include/linux/version.h
 
  emacs include/linux/version.h
  #define UTS_RELEASE "2.6.36.2-libre-planet"  <- (here change libre-planet by what you want)
+
  #define UTS_RELEASE "2.6.37-libre-planet"  <- (here change libre-planet by what you want)
  
C-x C-s save the file in /usr/src/linux-2.6.36.2/include/linux/version.h
+
C-x C-s save the file in /usr/src/linux-2.6.37/include/linux/version.h
  
  
Now, you can build your kernel, enter
+
Now, you can build your linux libre kernel, enter
  
  
Line 199: Line 200:
  
  
edit the version.h file in the linux-2.6.36.2/include/linux containing ::
+
edit the version.h file in the linux-2.6.7/include/linux containing ::
  
 
  emacs include/linux/version.h
 
  emacs include/linux/version.h
  #define UTS_RELEASE "2.6.36.2-libre-planet"  <- (here change libre-planet by what you want)
+
  #define UTS_RELEASE "2.6.37-libre-planet"  <- (here change libre-planet by what you want)
  
  
C-x C-s save the file in /usr/src/linux-2.6.36.2/include/linux/version.h
+
C-x C-s save the file in /usr/src/linux-2.6.37/include/linux/version.h
  
 
and launch again ::
 
and launch again ::
Line 216: Line 217:
  
  
  dpkg -i linux-image-2.6.36.2-libre-planet.deb
+
  dpkg -i linux-image-2.6.37-libre-planet.deb
  dpkg -i linux-headers-2.6.36.2-libre-planet.deb
+
  dpkg -i linux-headers-2.6.37-libre-planet.deb
  dpkg -i linux-source-2.6.36.2-libre-planet.deb
+
  dpkg -i linux-source-2.6.37-libre-planet.deb
  
  
Line 229: Line 230:
 
Or, just double-click on the two files and click on the Install Package button.
 
Or, just double-click on the two files and click on the Install Package button.
  
Restart and choose free-planet kernel from your GRUB.
+
Restart and choose libre-planet kernel from your GRUB.
  
  
Line 242: Line 243:
  
 
This document is under GNU Free Documentation License
 
This document is under GNU Free Documentation License
Last modification bring december the 13 2010.
+
Last modification bring december the 5 2011.

Revision as of 10:38, 5 January 2011

Welcome in the Linux Libre Kernel Group - Every One is Free to Join!

current_status Active

irc #linux-libre

contact aurelien

note LK group for Linux Libre Kernel activists

LAST OUT '2.6.37 linux libre kernel .deb available from January the 5 2011'

              'You work on différent type of architecture and/or operating systeme please join'

website http://www.fscorsica.org (At the time you have build a linux libre kernel without modification on the base configuration you are welcome to link your website to share your works)

members aurelien parsifal


architecture 32 bits

operating system Debian on fully free repositories



The Linux Libre Kernel Group as been created to help people to construct and compile their own Linux Libre Kernel from http://www.fsfla.org


1st goal establish a working compilation recipe (without change from the basic linux kernel configuration distributions but free as in freedom)

2nd goal offer a Linux Libre Kernel Optimization Solution - LKOS a guide to bring some optimizations on your own linux libre kernel


One of the simply way to compile your own Linux Libre Kernel for your distribution is (This example as been made on a Full Libre GNU / Linux Debian Operating System)


You can find the .deb of this linux libre kernel at :: http://www.fscorsica.org/kernel-en.html

You can find the .deb of an LKOS example at :: http://www.fscorsica.org/libre-kernel-optimization-solution.html


'How-To-compile-your-own-linux-libre-kernel-on-free-debian-based'

Linux Libre-Kernel version :: 2.6.37

Last edit Tuesday the 5 January 2011.

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 linux libre kernel compilation. First, make sure your apt database is updated


All command must be made under root

Get the root power with su or sudo

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 linux libre kernel release you can launch from another buffer of your emacs or terminal if you use tty


links http://www.linux-libre.fsfla.org/pub/linux-libre/releases/


Copy the link adress of the linux libre 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.37-libre/linux-2.6.37-libre.tar.bz2


Uncompress the archive file


tar xvjf linux-2.6.37-libre.tar.bz2


Go to the newly created directory of the uncompressed source


cd linux-2.6.37

Enter


you have to edit a file in the linux libre kernel source before compiling

Edit on > linux-2.6.37/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 linux libre kernel

normaly at this point you are already in /usr/src/linux2.6.37

make clean mrproper


 OBSOLET FROM THE 2.6.35 :: You don't need anymore this part | Follow the * '
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 linux kernel before, import just the last one in /usr/src from /boot)
this part stay here the time of 3.0 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 linux libre 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 linux libre kernel source

make oldconfig

and answer the configuration questions there. Enter yes for the module to be built into the linux libre 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 linux libre 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.37/include/linux containing ::

emacs include/linux/version.h
#define UTS_RELEASE "2.6.37-libre-planet"  <- (here change libre-planet by what you want)

C-x C-s save the file in /usr/src/linux-2.6.37/include/linux/version.h


Now, you can build your linux libre 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.7/include/linux containing ::

emacs include/linux/version.h
#define UTS_RELEASE "2.6.37-libre-planet"  <- (here change libre-planet by what you want)


C-x C-s save the file in /usr/src/linux-2.6.37/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.37-libre-planet.deb
dpkg -i linux-headers-2.6.37-libre-planet.deb
dpkg -i linux-source-2.6.37-libre-planet.deb


Or


dpkg -i *.deb


Or, just double-click on the two files and click on the Install Package button.

Restart and choose libre-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
For the participation on the receipe 2.6.32 :: Ali Gundunz http://www.aligunduz.org/articles/buildkernel.html 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 december the 5 2011.