Page 1 sur 1

[Compilation] noyau à la Gentoo ?

Publié : sam. 26 mai 2007, 08:44
par d2_racing
Salut tout le monde, j'aimerais savoir s'il est possible de partir à partir d'un .config et ensuite de monter un noyau avec make && make modules_install.

Car j'aimerais bien installer un noyau minimaliste sans me servir du wiki qui a déjà un script d'écrit pour moi..

Publié : sam. 26 mai 2007, 10:16
par warnaud
Heu oui, c'est pas "à la gentoo" c'est juste une compilation de noyau ... c'est 4 sujets plus bas : http://forums.archlinux.fr/topic317.html
+ sur le wiki : http://wiki.archlinux.fr/howto:kernel:custom

voilou n'oublie pas qu'il te faudra recompiler les drivers vidéos (sur le repo [archlinuxfr] y'a nvidia-driver de wain qui se charge de recompiler le module pour ces noyaux customs)

Bonne chance

Publié : sam. 26 mai 2007, 13:23
par wain
le PKGBUILD surnommé "kernel custom" revient réellement au même que faire à la main un make xconfig && make modules_install etc...
En lançant le makepkg tu as le choix d'utiliser un des .config proposés, ou de modifier le tiens soit avec menuconfig, soit avec xconfig (qt), soit avec gconfig (gtk), soit avec ton éditeur de texte préféré.
C'est avec ce script que je compile mes noyaux minimalistes. Les avantages sont nombreux:
- les modules sont automatiquement copiés au bon endroit
- l'image vmlinuz est nomée toujours de la même manière, ce qui évite de manipuler le bootloader à chaque recompilation
- le dernier numéro de version du kernel est supprimé: c'est 2.6.20-morph-perso et nom 2.6.20.5 par exemple. Cela évite de devoir recompiler tous les drivers satellites à chaque mise à jour mineure.
- il suffit de déinstaller le paquetage pour supprimer toutes traces du kernel

voilou :)

Publié : dim. 27 mai 2007, 01:14
par d2_racing
Est-ce qu'il y a moyen de faire ceci :

Code : Tout sélectionner

[root@ArchLinux src]# ls -la
total 12
drwxr-xr-x  3 root root 4096 mai 26 16:18 .
drwxr-xr-x 11 root root 4096 mai 26 17:07 ..
drwxr-xr-x 18 root root 4096 mai  6 12:39 linux-2.6.21-ARCH
[root@ArchLinux src]# ln -sfn /usr/src/linux-2.6.21-ARCH /usr/src/linux
[root@ArchLinux src]# cd linux
[root@ArchLinux linux]# make menuconfig
  HOSTCC  scripts/kconfig/lxdialog/checklist.o
  HOSTCC  scripts/kconfig/lxdialog/inputbox.o
  HOSTCC  scripts/kconfig/lxdialog/menubox.o
  HOSTCC  scripts/kconfig/lxdialog/textbox.o
  HOSTCC  scripts/kconfig/lxdialog/util.o
  HOSTCC  scripts/kconfig/lxdialog/yesno.o
  HOSTCC  scripts/kconfig/mconf.o
  HOSTLD  scripts/kconfig/mconf
scripts/kconfig/mconf arch/i386/Kconfig


*** End of Linux kernel configuration.
*** Execute 'make' to build the kernel or try 'make help'.

[root@ArchLinux linux]# make menuconfig
scripts/kconfig/mconf arch/i386/Kconfig
#
# configuration written to .config
#


*** End of Linux kernel configuration.
*** Execute 'make' to build the kernel or try 'make help'.

[root@ArchLinux linux]# make && make modules_install
scripts/kconfig/conf -s arch/i386/Kconfig
  CHK     include/linux/version.h
  CHK     include/linux/utsrelease.h
scripts/Makefile.build:17: /usr/src/linux-2.6.21-ARCH/init/Makefile: Aucun fichier ou répertoire de ce type
make[1]: *** Pas de règle pour fabriquer la cible « /usr/src/linux-2.6.21-ARCH/init/Makefile ». Arrêt.
[root@ArchLinux linux]# 2                                                   
Je veux compiler et installer mon noyau avec le fichier bzImage qui doit surement se retrouver dans arch/i386/boot/bzImage

Publié : dim. 27 mai 2007, 01:26
par d2_racing
J'ai lu ici qu'on peut prendre ABS...

http://bbs.archlinux.org/viewtopic.php?id=33207

Alors, quelqu'un sait comment s.v.p ???

Publié : dim. 27 mai 2007, 13:32
par wain
d2_racing a écrit :J'ai lu ici qu'on peut prendre ABS...

http://bbs.archlinux.org/viewtopic.php?id=33207

Alors, quelqu'un sait comment s.v.p ???

La méthode ABS consiste à récupérer le PKGBUILD du paquetage kernel26, et de lancer makepkg. Sauf qu'au lieu de prendre le .config par défaut, tu utilises le .config que tu veux.
Le pkgbuild se trouve sur http://archlinux.org/packages/4197/ ou alors en tapant la commande "abs".

Pardon d'insister, mais je ne comprends pas en quoi le pkgbuild kernelcustom te dérange ? j'aimerai bien que tu nous expliques ce qui ne te conviens pas, pour qu'on puisse l'améliorer :D

Publié : dim. 27 mai 2007, 17:51
par d2_racing
bon, suite à la lecture de ce howto : http://wiki.archlinux.org/index.php/Ker ... rom_Source

on voit qu'on se rapproche d'une compilation à la main :

Ça doit faire bientôt 2 ans que je compile mes kernels à la main, que ce soit dans Debian ou Gentoo.

Par exemple, si je veux installer un kernel sous Gentoo :

Code : Tout sélectionner

# emerge gentoo-sources (exemple kernel-2.6.21-Gentoo-r1)
# cd /usr/src
# ln -sfn /usr/src/kernel-2.6.21-Gentoo-r1 /usr/src/linux
# cp /usr/src/kernel-2.6.20-Gentoo-r8/.config /usr/src/linux/.config
# cd /usr/src/linux
# make oldconfig
# make && make modules_install
# cp arch/i386/boot/bzImage /boot/kernel-2.6.21-Gentoo-r1
# cp .config /boot/config-kernel-2.6.21-Gentoo-r1.config
# cp System.map /boot
Edition de Grub pour ajouter une entrée ou carrément en remplacer une vieille :)

Donc, dans le howto que j'ai trouvé, on doit downloader les sources à partir de kernel.org.

Par contre, sous Arch

Code : Tout sélectionner

# wget -c ftp://ftp.us.kernel.org/pub/linux/kernel/v2.6/linux-2.6.21.tar.bz2
# cp linux-2.6.21.tar.bz2 /usr/src/

# cd /usr/src
# tar jxfv linux-2.6.21.tar.bz2
# cd /usr/src/linux-2.6.21
# zcat /proc/config.gz > .config
# rm /usr/src/linux     
# ln -s /usr/src/linux-2.6.21 /usr/src/linux
# cd /usr/src/linux
# make oldconfig         (only if you've copied the old .config file)
# make menuconfig
# make clean bzImage modules modules_install
# cp -v arch/i386/boot/bzImage /boot/vmlinuz-2.6.21-revision1
# cp -v arch/i386/Kconfig /boot/Kconfig-2.6.21-revision1
# cp -v System.map /boot/System.map-2.6.21-revision1
Éditer Grub et on est parti pour la gloire...


Alors, pouvez-vous me dire qu'est-ce qu'il manque dans le répertoire /usr/src, car je viens tout juste d'installer Arch Duke et j'ai vraiment un répertoire kernel- quelque chose qui indique que j'ai les sources du kernel 2.6.21 version Arch.

Publié : dim. 27 mai 2007, 17:54
par d2_racing
wain a écrit :
d2_racing a écrit :J'ai lu ici qu'on peut prendre ABS...

http://bbs.archlinux.org/viewtopic.php?id=33207

Alors, quelqu'un sait comment s.v.p ???

La méthode ABS consiste à récupérer le PKGBUILD du paquetage kernel26, et de lancer makepkg. Sauf qu'au lieu de prendre le .config par défaut, tu utilises le .config que tu veux.
Le pkgbuild se trouve sur http://archlinux.org/packages/4197/ ou alors en tapant la commande "abs".

Pardon d'insister, mais je ne comprends pas en quoi le pkgbuild kernelcustom te dérange ? j'aimerai bien que tu nous expliques ce qui ne te conviens pas, pour qu'on puisse l'améliorer :D
Bon, vu que je connais pas trop ABS, peux-tu me montrer comment compiler ou recompiler le noyau 2.6.21 à partir de ABS, car je dois activer le DRI et le module AGP est en module dans le kernel, donc l'option pour le i865 n'est pas disponible.....

Merci à l'avance :)

Publié : dim. 27 mai 2007, 18:00
par d2_racing
Ah oui sous Debian, j'ai fait un howto pour une installation de etch et là aussi j'ai mis la compilation d'un noyau.

Tu vas voir qu'à quelques exceptions, c'est toujours les mêmes commandes qui reviennent.

http://forum.debian-fr.org/viewtopic.php?t=7487

Publié : dim. 27 mai 2007, 18:03
par wain
si vraiment tu veux passer par une méthode manuelle tu peux reprendre exactement la méthode de gentoo.
Remplaces juste les lignes

Code : Tout sélectionner

# emerge gentoo-sources (exemple kernel-2.6.21-Gentoo-r1) 
# cd /usr/src 
par

Code : Tout sélectionner

# cd /usr/src/
# wget -c ftp://ftp.us.kernel.org/pub/linux/kernel/v2.6/linux-2.6.21.tar.bz2
# tar jxfv linux-2.6.21.tar.bz2
et pour le lien symbolique biensûr, la ligne devient:

Code : Tout sélectionner

# ln -sfn kernel-2.6.21 linux

Ca reste du linux, la seule différence entre les distros est le moyen de récupérer les sources. Effectivement arch ne prévoit pas cette possibilité.
Je te conseille quand même encore une fois ce PKGBUILD :D

Publié : lun. 28 mai 2007, 00:18
par d2_racing
bon, je vais regarder ton script :)

En fin de compte, si j'ai bien compris, à minute qu'il va y avoir une nouvelle version de noyau, il faut aller sur ton sujet et redownloader les fichiers pour avoir un script à jour...

Est-ce que c'est ça ?

Publié : lun. 28 mai 2007, 12:59
par wain
d2_racing a écrit :bon, je vais regarder ton script :)

En fin de compte, si j'ai bien compris, à minute qu'il va y avoir une nouvelle version de noyau, il faut aller sur ton sujet et redownloader les fichiers pour avoir un script à jour...

Est-ce que c'est ça ?
Oui c'est ça. Avant le PKGBUILD allait tout seul chercher la dernière version sur le site respectif de chaque patchset. Mais les changements de structure sur ces sites étaient tellement nombreux que je devais de toutes façons recréer à chaque fois un PKGBUILD.
Pour l'instant je préfère uploader ainsi un nouveau PKGBUILD.
Je prévois d'en faire un paquetage type kernelcustom-sources. Ainsi pacman/yaourt pourra se charger de la mise à jour automatique du script PKGBUILD.

Publié : lun. 28 mai 2007, 13:45
par d2_racing
Merci pour les infos, c'est super clair :)

Publié : lun. 28 mai 2007, 13:45
par d2_racing
Et la création d'un package, ça va être vraiment ça le best :)

Publié : jeu. 07 juin 2007, 13:36
par d2_racing
Est-ce que les sources du kernel fournit par Arch est disponible ?

Genre celui qui vient avec quand on fait pacman -Syu ?

Publié : jeu. 07 juin 2007, 14:37
par warnaud
oui dans abs ( /var/abs/kernels/kernel26 )