gblend-1
Accueil du site > Trucs et Astuces > Support de reiser4 sur un noyau gentoo-dev ou vanilla

Support de reiser4 sur un noyau gentoo-dev ou vanilla

Publié le mercredi 20 avril 2005, mis a jour le samedi 16 décembre 2006, 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-dev-sources ou vanilla-sources qui ne possédent pas de support officiel de Reiser4.

Cette approche ne montre pas comment migrer vers ce système de fichiers, ni comment l’utiliser !


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 fichiers de tailles différentes. 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-dev ou vanilla :

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

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-dev-sources :

$ mkdir /usr/local/portage/sys-kernel/reiser4-gentoo-dev-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.10-r1.ebuild. Editez ce fichier, ci-dessous vous trouverez le code à mettre dans cet ebuild :

# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

UNIPATCH_LIST="${DISTDIR}/reiser4-for-$(TEMP=${KV/reiser4/};echo ${TEMP/-0/}).gz"
K_PREPATCHED="yes"
UNIPATCH_STRICTORDER="yes"

K_NOUSENAME="yes"
ETYPE="sources"
inherit kernel-2
detect_version
IUSE=""

DESCRIPTION="Standard vanilla kernel, patched for reiser4 support"
HOMEPAGE="http:://www.namesys.com/"
SRC_URI="${KERNEL_URI} ftp://ftp.namesys.com/pub/reiser4-for-2.6/${KV%%-reiser4*}/reiser4-for-$(TEMP=${KV/reiser4/};echo ${TEMP/-0/}).gz"

KEYWORDS="~x86 ~amd64"

pkg_postinst() {
 postinst_sources

 ewarn "IMPORTANT:"
 ewarn "The reiser4 filesystem is not considered stable in linux yet. The filesystem is considered stable though."
 ewarn "ALWAYS keep a second stable and bootable kernel apart in your boot manager. Do NOT use reiser4 for your /boot"
 ewarn "partition unless you really know what you are doing... even then I do not recommend it."
 echo
 ewarn "Make sure that 4Kb stacks are turned OFF in the kernel. Found under kernel hacking subsection in the kernel config"
 echo
}
  • gentoo-dev-sources

Dans le répertoire /usr/local/portage/sys-kernel/reiser4-gentoo-dev-sources, nous allons créer un ebuild que nous appelerons : reiser4-gentoo-dev-sources-2.6.10-r7.ebuild. Dans ce fichier, nous metterons le code suivant :

# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

ETYPE="sources"
IUSE="ultra1"
inherit kernel-2
detect_version
detect_arch

#version of gentoo patchset

GPV="10.08"
GPV_SRC="mirror://gentoo/genpatches-${KV_MAJOR}.${KV_MINOR}-${GPV}-base.tar.bz2
 mirror://gentoo/genpatches-${KV_MAJOR}.${KV_MINOR}-${GPV}-extras.tar.bz2"

KEYWORDS="~x86 ~ppc ~amd64 ~ppc64"

HOMEPAGE="http://dev.gentoo.org/~dsd/gentoo-dev-sources"

UNIPATCH_LIST="${DISTDIR}/genpatches-${KV_MAJOR}.${KV_MINOR}-${GPV}-base.tar.bz2
        ${DISTDIR}/genpatches-${KV_MAJOR}.${KV_MINOR}-${GPV}-extras.tar.bz2
        ${DISTDIR}/reiser4-for-${KV/-reiser4*/-1}.gz"
UNIPATCH_DOCS="${WORKDIR}/patches/genpatches-${KV_MAJOR}.${KV_MINOR}-${GPV}/0000_README"

DESCRIPTION="Full sources including the gentoo patchset for the ${KV_MAJOR}.${KV_MINOR} kernel tree and extra patches for reiser4 support"
SRC_URI="${KERNEL_URI} ${GPV_SRC} ${ARCH_URI} ftp://ftp.namesys.com/pub/reiser4-for-${KV_MAJOR}.${KV_MINOR}/${KV%%-reiser4*}/reiser4-for-${KV/-reiser4*/-1}.gz"

pkg_setup() {
 if use sparc; then
    # hme lockup hack on ultra1
    use ultra1 || UNIPATCH_EXCLUDE="${UNIPATCH_EXCLUDE} 1399_sparc-U1-hme-lockup.patch"
 fi
}

pkg_postinst() {
 postinst_sources

 echo

 if [ "${ARCH}" = "sparc" ]; then
    if [ x"`cat /proc/openprom/name 2>/dev/null`" \
        = x"'SUNW,Ultra-1'" ]; then
       einfo "For users with an Enterprise model Ultra 1 using the HME"
       einfo "network interface, please emerge the kernel using the"
       einfo "following command: USE=ultra1 emerge ${PN}"
    fi
 fi
 einfo "For more info on this patchset, and how to report problems, see:"
 einfo "${HOMEPAGE}"

 echo
 echo
 ewarn "IMPORTANT:"
 ewarn "The reiser4 filesystem is not considered stable in linux yet. The filesystem"
 ewarn "is very much usable though."
 ewarn "ALWAYS keep a second stable and bootable kernel apart in your boot manager."
 ewarn "Do NOT use reiser4 for your /boot partition unless you really know what you"
 ewarn "are doing... even then I do not recommend it."
 echo
 ewarn "Make sure that 4Kb stacks are turned OFF in the kernel. Found under kernel hacking subsection in the kernel config"
 echo

}

Installation

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-dev-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.10-reiser41 linux
  • gentoo-dev-sources
$ cd /usr/src/
$ rm linux
$ ln -s linux-2.6.10-reiser4-r7 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.

Répondre à cet article


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