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)