gblend-1
Accueil du site > Doc > Système > Support de reiser4 sur un noyau gentoo ou vanilla

Support de reiser4 sur un noyau gentoo ou vanilla

Publié le mercredi 20 avril 2005, mis a jour le dimanche 21 septembre 2008, par Maxime Brunel

Dans cet article, vous trouverez comment appliquer Reiser4, un système de fichiers encore en développement mais avec des performances impressionnantes, aux noyaux officiels gentoo-sources ou vanilla-sources qui ne possédent pas de support officiel Reiser4.


Introduction

Reiser4 est un système de fichiers, connu par son grand frère, reiserfs 3 qui a de très bonnes performances notamment pour les petits fichiers. Il possède également un système journalisé. L’intégration de reiser4 n’est pas accepté dans le noyau officiel pour une histoire de plugins... enfin il n’est pas prés d’être intégré d’après certains développeurs.

Le support de reiser4 est disponible sur des noyaux non-officiels et patchés ce qui rend parfois le noyau instable, voir très instable. Il est donc préférable de choisir un noyau officiel et conseillé par gentoo où nous ne retrouvons pas le support de reiser4 comme je l’indiquais précèdemment.

Heureusement, il existe un patch pour pouvoir profiter du support de reiser4 sur les noyaux gentoo-dev-sources et vanilla-sources qui sont souvent assez stables. Des ebuilds ont été créés pour pouvoir installer le patch avec le noyau.

Il va maintenant falloir choisir entre un noyau gentoo ou vanilla :

  • un noyau vanilla vient directement de kernel.org, il n’est pas patché.
  • un noyau gentoo est un noyau patché optimisé par les développeurs Gentoo.

Cette approche ne montre pas comment migrer vers ce système de fichiers, ni comment l’utiliser ! Reportez-vous à l’article Migration vers reiser4.

Préparation

Avant de télécharger les ebuilds, nous allons définir la variable PORTDIR_OVERLAY dans /etc/make.conf si ce n’est pas fait.

$ vim /etc/make.conf
PORTDIR_OVERLAY="/usr/local/portage"

Ensuite, nous allons créer les répertoires nécessaires pour les ebuilds :

$ mkdir /usr/local/portage
$ mkdir /usr/local/portage/sys-kernel
  • Pour le noyau vanilla-sources :

$ mkdir /usr/local/portage/sys-kernel/reiser4-sources/

  • Pour le noyau gentoo-sources :

$ mkdir /usr/local/portage/sys-kernel/reiser4-gentoo-sources/

Installation des ebuilds dans Portage

Maintenant, nous pouvons télécharger et installer les ebuilds dans l’arbre portage nommé overlay.

  • vanilla-sources

Dans le répertoire /usr/local/portage/sys-kernel/reiser4-sources, nous allons créer un ebuild que nous appelerons : reiser4-sources-2.6.26.5.ebuild. Editez ce fichier, ci-dessous vous trouverez le code à mettre dans cet ebuild :

K_NOUSENAME="yes"
K_NOSETEXTRAVERSION="yes"
K_SECURITY_UNSUPPORTED="1"
ETYPE="sources"
inherit kernel-2
detect_version

R4V_MAJOR="26"
R4V="26"

DESCRIPTION="Full sources for the Linux kernel"
HOMEPAGE="http://www.kernel.org"
SRC_URI="${KERNEL_URI}"

KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
IUSE=""

UNIPATCH_LIST="${UNIPATCH_LIST}
${FILESDIR}/reiser4-${KV_MAJOR}.${KV_MINOR}.${R4V}.patch"

Ensuite créez le repertoire /usr/local/portage/sys-kernel/reiser4-sources/fileset insérez-y le patch reiser4 :

# mkdir /usr/local/portage/sys-kernel/reiser4-sources/files
# wget
http://www.kernel.org/pub/linux/kernel/people/edward/reiser4/reiser4-for-2.6/reiser4-for-2.6.25.patch.gz
# gzip -d reiser4-for-2.6.25.patch.gz
# mv reiser4-for-2.6.25.patch /usr/local/portage/sys-kernel/reiser4-sources/files/reiser4-2.6.26.patch
  • gentoo-sources

Dans le répertoire /usr/local/portage/sys-kernel/reiser4-gentoo-sources, nous allons créer un ebuild que nous appelerons : reiser4-gentoo-sources-2.6.26-r1.ebuild. Dans ce fichier, nous metterons le code suivant (en fait, il s’agit d’une copie de l’ebuild gentoo-sources-2.6.26-r1.ebuild modifiée avec le patch reiser4) :

ETYPE="sources"
K_WANT_GENPATCHES="base extras"
K_GENPATCHES_VER="2"
inherit kernel-2
detect_version
detect_arch

R4V_MAJOR="26"
R4V="26"

KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
IUSE=""
HOMEPAGE="http://dev.gentoo.org/~dsd/genpatches"

DESCRIPTION="Full sources including the Gentoo patchset for the ${KV_MAJOR}.${KV_MINOR} kernel tree"
SRC_URI="${KERNEL_URI} ${GENPATCHES_URI} ${ARCH_URI}"

UNIPATCH_LIST="${UNIPATCH_LIST}
${FILESDIR}/reiser4-${KV_MAJOR}.${KV_MINOR}.${R4V}.patch"

pkg_postinst() {
   kernel-2_pkg_postinst
   einfo "For more info on this patchset, and how to report problems, see:"
   einfo "${HOMEPAGE}"
}

Ensuite créez le repertoire /usr/local/portage/sys-kernel/reiser4-gentoo-sources/fileset insérez-y le patch reiser4 :

# mkdir /usr/local/portage/sys-kernel/reiser4-gentoo-sources/files
# wget
http://www.kernel.org/pub/linux/kernel/people/edward/reiser4/reiser4-for-2.6/reiser4-for-2.6.25.patch.gz
# gzip -d reiser4-for-2.6.25.patch.gz
# mv reiser4-for-2.6.25.patch /usr/local/portage/sys-kernel/reiser4-gentoo-sources/files/reiser4-2.6.26.patch

Installation des paquets

Pour installer le noyau, il suffit d’utiliser la commande emerge avec l’option —digest pour créer le fichier manifest.

  • vanilla-sources
$ export ACCEPT_KEYWORDS="~x86"
$ emerge --digest reiser4-sources
  • gentoo-dev-sources
$ export ACCEPT_KEYWORDS="~x86"
$ emerge --digest reiser4-gentoo-sources

Voila, maintenant, il ne vous reste plus qu’à compiler le noyau.

Compilation

Changement du lien symbolique

Si ce n’est pas votre premier noyau, il va falloir changer le lien symbolique de /usr/src/linux :

  • vanilla-sources
$ cd /usr/src/
$ rm linux
$ ln -s linux-2.6.26.5-reiser4 linux
  • gentoo-dev-sources
$ cd /usr/src/
$ rm linux
$ ln -s linux-2.6.26-reiser4-gentoo-r1 linux

Configuration et compilation

Ensuite, nous pouvons configurer tranquillement et compiler le noyau : (pour activer le support de reiser4, veillez à ce que l’option 4Kb stacking ne soit pas activée dans la section kernel hacking)

$ cd linux
$ make menuconfig
$ make && make modules_install

Fin

Si vous possédez une partition /boot, n’oubliez pas de la monter avant de l’installer.

$ make install

Après que le noyau soit compilé, il ne vous reste plus qu’à reconfigurer grub ou lilo.


Suivre la vie du site RSS 2.0 | Plan du site | Espace privé | SPIP | squelette