Linux User Group of Mauritius Promoting open source software in our beautiful island

16Jun/093

Hier j’ai compilé mon OS

Les distributions pourraient se disposer sur les rayons des supermarchés tellement elles sont nombreuses. On en trouve pour tous les gouts et toutes les couleurs.

Gentoo Distrib

Gentoo Distrib


D'une classique Ubuntu, installable les yeux fermés à une LFS qui nécessite de faire un peu d'assembleur avant de démarrer. Pour ma part je pense que Gentoo propose une bonne alternative pour les Geeks en mal de pouvoir de compilation avec des ordinateurs toujours plus puissants.
Mais pourquoi se priver du plaisir de la compilation !

Pour gentoo:

  • Stage 1 système standard
  • Stage 2 compilateur adapté au besoin + base
  • Stage 3 Système adapté et utilisable

First

/!\ Attention: vous pouvez tout péter !. Il est conseillé:

  • de faire une sauvegarde.
  • d'avoir un accès à internet
  • un modem Ethernet si vous ne voulez pas avoir de problème avec l'Usb.
  • Savoir un minimum ce que vous faites

Le Boot

Tout d'abord il faut booter sur un système minimal. Un liveCD Ubuntu peut largement faire l'affaire.
Il faut ensuite récupérer le stage1 /x86/2008.0/stages/stage1-x86-2008.0.tar.bz2...

  • partitionnement des disques => cfdisk/fdisk ... ([vi pour les plus geek])
  • un mkfs.ext3, xfs ...
  • un petit bunzip/tar
  • une synchronisation des sources pour être à jour
  • chroot

Et les portes du stage1 sont à vous.

Ca compile

engrenage
Le but de stage1 est de :

  • compiler GCC pour compiler une Glibc clean.
  • Une fois que Glibc est adapté à votre machine... on recompile GCC et Glibc

Il faut pour cela définir les paramètres de compilation dans le fichier make.conf.
A coup de :

  • CHOST="i686-pc-linux-gnu"
  • CFLAGS="-O2 -march=pentiumX -pipe -fomit-frame-pointer"
  • MAKEOPTS="-j5" (oui j'ai une grosse machine)
  • USE="toutes les options que vous souhaitez"

Il faut supprimer l'option de c++ pour la première phase de compilation, et lancer le bootstrap.sh qui se charge de passer de stage1 à presque stage2 (il manquera les utilitaires systèmes).
export USE="nocpp"
/usr/portage/scripts/bootstrap.sh
unset USE

Tout dépend de votre machine, mais il faut compter le temps de téléchargement des sources + compilation.

Une fois que les briques de base sont toutes belles, il n'y a plus qu'a recompiler tout le reste et le monde sera à vous.
Il ne faut pas oublier quelques éléments essentiels.

  • emerge -e system
  • le kernel
  • iproute2
  • un boot loader
  • Fstab
  • X (dbus/hal)
  • emerge -e world

Pour ceux qui veulent tenter, il y a des packages à masquer (man-pages) lors de la première installation. Je conseille aussi de rebooter juste après l'installation du kernel/boot loader.

Stage 1 vs Stage 3

Certains petits malins pensent que le stage1 est bien meilleur et plus rapide que le stage3. D'autres ne jurent que par le stage 3 (cf: http://badpenguins.com/gentoo-build-test).

J'ai téléchargé environ 300Mo de sources au lieu de 697Mo de packages... pour un système adapté à ma machine. Mais personnellement, le plus important: rien ne vaut le plaisir et la satisfaction d'avoir fait marcher son OS depuis 0.

24h de compilation pour avoir un full système:
Juste make it, or emerge it ;

Dominique Derrier

Ref

Choisir les Cflags: http://en.gentoo-wiki.com/wiki/Safe_Cflags
Documentation Gentoo: Handbook Gentoo

Posted by Dominique Derrier

Comments (3) Trackbacks (0)
  1. Excellent article, Dominique!

    Je fus un utilisateur de Gentoo vers 2005 mais je suis passé à Ubuntu (+ Mint) et CentOS depuis. Mais à cause de ton article, je pense que je vais m’y remettre 🙂

  2. Je ne sais pas trop à quoi cela correspond mais j’ai un CFLAGS à faire jalouser toutes les distributions 🙂

    CFLAGS=”-march=prescott -fomit-frame-pointer -O2 -pipe -mno-tls-direct-seg-refs
    -frerun-loop-opt -frerun-cse-after-loop -falign-functions=4
    -march=pentium4 -mfpmath=sse -msse2 -mmmx”

  3. Hello, tres interessant l’article.. Pour ma part, etant un paresseux de premiere en ce qui concerne la compilation (24hr c’est trop pour moi :/), j’ai essaye Sabayon (Gentoo-based bien entendu et commence il y a quelques annees deja et je l’ai repris a 4.2 jusqu’a 5.0). Vous pourriez y jetter un coup d’oeil, il est presque aussi elegant que Mint.

    Pour l’instant je suis a me servir de Debian (Lenny – mon os primaire) et mint / Chakra pour le plaisir de voir autre chose 😉


Leave a comment

No trackbacks yet.