LinuxPedia

Wiki libre et indépendant dédié à GNU-Linux et BSD.

Outils pour utilisateurs

Outils du site


frugalware:kernel_perso

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

frugalware:kernel_perso [2018/11/17 13:53] (Version actuelle)
Ligne 1: Ligne 1:
 +====== Compiler son propre kernel ======
  
 +
 +Ce tuto est basé sur [[http://forums.frugalware.org/index.php?t=msg&goto=6361&rid=0#msg_6361|celui de Crazy]] posté sur le forum officiel le dimanche 8 avril 2007.
 +
 +===== Prérequis =====
 +
 +
 +Premièrement, vous n'avez pas besoin du paquet kernel-source car nous allons en créer un pour votre kernel personnalisé.
 +
 +Ensuite vous aurez besoin d'une configuration valide pour le kernel que vous voulez compiler qui n'a pas besoin d'être la dernière version stable. 
 +
 +Prenons les outils nécessaires :
 +
 +  #  pacman -S pacman-tools
 +
 +  #  repoman update
 +
 +Créer un répertoire de travail comme:
 +
 +  $  mkdir ~/kernel
 +  $  cd ~/kernel
 +
 +===== Création du FrugalBuild =====
 +
 +
 +Ecrivez votre FrugalBuild dans ce répertoire
 +
 +exemple pour un kernel stable :
 +
 +  pkgver=2.6.20
 +  pkgrel=1
 +  _F_kernel_name="-multimedia"
 +  _F_kernel_patches=(http://people.redhat.com/mingo/realtime-preempt/older/patch-2.6.20-rt8)
 +  Finclude kernel
 +
 +Ceci va compiler le kernel 2.6.20+rt-patch sans les patchs stable XX. Si vous savez si vos patchs fonctionnent avec les patchs 'stable .XX' alors ajoutez :
 +
 +  _F_kernel_stable=X
 +
 +Où X est le numéro de release STABLE. Par exemple :
 +
 +  _F_kernel_stable=6
 +
 +Ceci va compiler un kernel 2.6.20.6 + vos patchs
 +
 +Lorsque vous compilé un kernel personnalisé, vous devriez le compiler pour votre CPU (que vous devez indiquer dans votre config). Puis ajoutez:
 +
 +  _F_kernel_dontsedarch=1
 +
 +au FrugalBuild.
 +
 +===== Les patchs =====
 +
 +Vous pouvez ajouter plus d'une URL de patchs ou de patchs à to _F_kernel_patches. Comme par exemple:
 +
 +  _F_kernel_patches=(http://baz.org/foo.patch \
 +                          bar1.patch foo2.diff \
 +                        ftp://my.ftp.org/foo/my.patch)
 +
 +**NOTE**: Les patchs sans URL doivent se trouver dans le répertoire de travail. (dans notre exemple ~/kernel ).
 +
 +
 +===== Création de la config du kernel =====
 +
 +Maintenant vous en avez fini avec le FrugalBuild mais il vous reste à faire une config :-).
 +
 +Si vous en avez déjà une, mettez cette config dans le répertoire ~/kernel, dans le cas contraire faites juste:
 +
 +  touch ~/kernel/config
 +
 +Maintenant lancez :
 +
 +  makepkg -Hgdu
 +
 +Ceci va télécharger le tarball du kernel + vos patches.
 +
 +  cd src
 +
 +et décompressez le tout (kernel, patches..etc)
 +
 +  cd linux-*
 +
 +et patchez avec vos_patches.
 +
 +Si vous aviez déjà une config, faîtes:
 +
 +  cp ../config .config && make oldconfig
 +  cp .config ~/kernel/config && cd ~/kernel && rm -rf src pkg
 +
 +Si vous n'en aviez pas, faîtes:
 +
 +  make defconfig && make menuconfig 
 +
 +et créez votre config, sauvegardez la et :
 +
 +  cp .config ~/kernel/config && cd ~/kernel && rm -rf src pkg
 +
 +OK maintenant nous avons ce qu'il faut et nous pouvons compiler le kernel.
 +
 +===== Compilation du kernel =====
 +
 +lancez
 +
 +  makepkg -Hcu
 +
 +et attendez que le kernel soit compilé :-).
 +
 +===== Utiliser votre tout nouveau kernel personalisé =====
 +
 +
 +Une fois terminé, vous aurez 3 fichiers *.fpm dans le répertoire ~/kernel.
 +
 +En tant que root (ou avec sudo) faites:
 +
 +  pacman -U *.fpm
 +
 +Une dernière chose avant de rebooter :-): vous devez ajouter une ligne pour votre kernel au fichier /boot/grub/menu.lst.
 +
 +Comme :
 +
 +  title My New Cool RT Kernel - 2.6.20-multimedia-fw1
 +  kernel (hd0,0)/boot/vmlinuz-2.6.20-multimedia-fw1 root=/dev/XXX ro vga=791
 +
 +Sauvegardez le fichier et vous pourrez rebooter.
 +
 +En cas de problèmes vous pourrez toujours rebootez sur l'ancien kernel et réparer les erreurs, ou demander sur le forum ou reporter un bug au mainteneur du kernel_patcheset.
 +
 +
 +
 +===== Notes concernant les kernels rc ou git =====
 +
 +Pour ce qui est des kernel rc ou git, vous pouvez les compiler également.
 +
 +  *Si vous voulez compiler le dernier patchset rt ( qui est pour le 2.6.21-rc6 au moment de l'écriture de ce tuto) ajoutez ceci au FrugalBuild :
 +
 +  _F_kernel_rc=X
 +
 +Où X est le numéro RC. Exemple :
 +
 +  _F_kernel_rc=6
 +
 +Ceci va compiler le kernel 2.6.21-rc6 + vos patches.
 +
 +**NOTE**: Le kernel est toujours appelé 2.6.20.
 +
 +La cause est que nous utilisons vanilla .20 + le patch rcX ( ce qui vous évitera de télécharger environ 40 Mo à chaque fois que vous compilez ou recompilez ce kernel )
 +
 +  *Si vous voulez le dernier kernel 'git' snaphot, alors ajoutez :
 +
 +  _F_kernel_git=X
 +
 +Où X est le numéro git snapshot. Exemple:
 +
 +  _F_kernel_git=1
 +
 +**NOTE**: Si vous compilez des kernels 'git', les 2 fonctions _F_kernel_rc=X et _F_kernel_git=X *need* doivent être présentes.
 +
 +Dans cet exemple vous compilerez le kernel 2.6.21-rc6-git1
 +
 +En espérant que cela vous aidera à compiler votre kernel perso.I
 +
 +Retrouvez plus d'infos avec 'man kernel.sh' et la page des [[::frugalbuild_kernel|FrugalBuild pour kernel]].
frugalware/kernel_perso.txt · Dernière modification: 2018/11/17 13:53 (modification externe)