Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[HOWTO] Création d'un CD Multi-Distribution
View unanswered posts
View posts from last 24 hours

Goto page 1, 2  Next  
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
_kal_
l33t
l33t


Joined: 04 Mar 2005
Posts: 602
Location: Paris

PostPosted: Sun Jun 26, 2005 9:55 pm    Post subject: [HOWTO] Création d'un CD Multi-Distribution Reply with quote

Création d'un CD Multi-Distribution

Table des matières:

1/ Introduction
2/ Préparation
3/ Ecriture du fichier isolinux.cfg
4/ Hack de l'installeur Debian :!:
5/ Génération de l'image ISO
6/ Facultatif: hack du LiveCD Gentoo afin de forcer le keymap FR
7/ Conclusion & remerciements


I) Introduction

Afin de réduire le nombre de CDR trainant sur mon bureau, j'ai décidé de créer un CD à usage personnel proposant différentes distributions de linux. Cependant, ce projet pouvant surement intéresser un grand nombre d'entre vous, je me propose de vous partager la mise en place de ce type de CD. Celui-ci sera constitué de 3 distributions différentes:
Gentoo (amd64 & x86)
Debian (amd64 & x86)
Fedora Core 4 (amd64 & x86)
Le choix de la distribution et de l'architecture désirée se fera au boot en renseignant un paramètre comme « gentoo-amd64 » ou encore « fedora ».
Afin de rendre cela possible, nous utiliserons le programme ISOLINUX de H. Peter Anvin disponible ici. L'usage de celui-ci n'est pas l'objectif de ce HOWTO et vous trouverez une documentation assez complète sur ce programme à la page de l'auteur.


II) Préparation

Passons maintenant aux choses sérieuses! Rassemblons les sources dans un seul et même répertoire ~/LiveCD. Celui-ci abritera les répertoires gentoo, debian et fedora qui eux même abriteront des répertoire x86 et amd64 :
Code:

kal@nice ~/LiveCD $ ll
total 16
drwxr-xr-x  2 kal users 4096 jun 26 17:52 debian
drwxr-xr-x  2 kal users 4096 jun 26 17:52 fedora
drwxr-xr-x  2 kal users 4096 jun 26 17:53 gentoo
drwxr-xr-x  2 kal users 4096 jun 26 17:53 isolinux


Il suffit maintenant de monter l'iso de nos distributions et d'en copier l'intégraltié dans le répertoire concerné.
Code:

nice ~ # mkdir /mnt/debian-amd64
nice ~ # mkdir /mnt/debian-x86
nice ~ # mkdir /mnt/gentoo-amd64
nice ~ # mkdir /mnt/gentoo-x86
nice ~ # mkdir /mnt/fedora-amd64
nice ~ # mkdir /mnt/fedora-x86nice ~
nice ~ # mount -o loop,uid=1003,gid=100 /mnt/250GO/Distribution_Linux/debian/debian-31r0a-amd64-netinst.iso /mnt/debian-amd64/
nice ~ # mount -o loop,uid=1003,gid=100 /mnt/250GO/Distribution_Linux/debian/debian-31r0a-i386-netinst.iso /mnt/debian-x86/
nice ~ # mount -o loop,uid=1003,gid=100 /mnt/250GO/Distribution_Linux/gentoo/install-x86-minimal-2005.0.iso /mnt/gentoo-x86/
nice ~ # mount -o loop,uid=1003,gid=100 /mnt/250GO/Distribution_Linux/gentoo/install-amd64-minimal-2005.0.iso /mnt/gentoo-amd64/
nice ~ # exit
kal@nice ~ $ cd /mnt/debian-x86/
kal@nice /mnt/debian-x86 $ tar cf - . | (cd /home/kal/LiveCD/debian/x86/ ; tar xf -)
kal@nice /mnt/debian-x86 $ cd /mnt/debian-amd64/
kal@nice /mnt/debian-amd64 $ tar cf - . | (cd /home/kal/LiveCD/debian/amd64/ ; tar xf -)
kal@nice /mnt/debian-amd64 $ cd /mnt/gentoo-x86/
kal@nice /mnt/gentoo-x86 $ tar cf - . | (cd /home/kal/LiveCD/gentoo/x86/ ; tar xf -)
kal@nice /mnt/gentoo-x86 $ cd /mnt/gentoo-amd64/
kal@nice /mnt/gentoo-amd64 $ tar cf - . | (cd /home/kal/LiveCD/gentoo/amd64/ ; tar xf -)

Remplacez évidemment les options uid et gid par celles de votre user :
Code:
kal@nice /mnt/gentoo-amd64 $ id
uid=1003(kal) gid=100(users) groupes=6(disk),10(wheel),18(audio),19(cdrom),27(video),35(games),80(cdrw),85(usb),100(users)


Vous avez surement remarquez que nous avons créé le répertoire pour la distribution Fedora Core mais que nous n'avons monté aucune iso et donc rien copié dans les répertoires ~/LiveCD/fedora/x86 et ~/LiveCD/fedora/amd64. En effet, RedHat propose un fichier boot.iso contenant l'installeur Anaconda des distributions Fedora Core. Nous n'avons besoin que de cela puisque nous ferons une installation via http/ftp/nfs (bah on va pas mettre 2GO de rpm sur le CD quand même ;)). Ce fichier est disponible ici:
http://download.fedora.redhat.com/pub/fedora/linux/core/4/x86_64/os/images/boot.iso
http://download.fedora.redhat.com/pub/fedora/linux/core/4/i386/os/images/boot.iso
Téléchargez donc ces fichiers et nommez les fedora-boot-x86.iso et fedora-boot-amd64.iso :
Code:
kal@nice ~ $ wget http://download.fedora.redhat.com/pub/fedora/linux/core/4/x86_64/os/images/boot.iso -O fedora-boot-amd64.iso && wget http://download.fedora.redhat.com/pub/fedora/linux/core/4/i386/os/images/boot.iso -O fedora-boot-x86.iso

Nous pouvons maintenant les monter (en root) :
Code:

nice ~ # mount -o loop,uid=1003,gid=100 /home/kal/fedora-boot-x86.iso /mnt/fedora-x86/
nice ~ # mount -o loop,uid=1003,gid=100 /home/kal/fedora-boot-amd64.iso /mnt/fedora-amd64/

En copier le contenu de celles-ci :
Code:
kal@nice /mnt/fedora-x86 $ tar cf - . | (cd /home/kal/LiveCD/fedora/x86/ ; tar xf -)
kal@nice /mnt/fedora-x86 $ cd /mnt/fedora-amd64/
kal@nice /mnt/fedora-amd64 $ tar cf - . | (cd /home/kal/LiveCD/fedora/amd64/ ; tar xf -)

Avant de passer à la configuration d'isolinux, il est important de déplacer certains fichiers de Gentoo. En effet, les LiveCD Gentoo utilise la méthode squashfs et je suis parvenu a booter dessus si et seulement si les fichiers « livecd » et « livecd.squashfs » sont situé à la racine de notre futur CD.

Code:
kal@nice ~/LiveCD $ mv gentoo/x86/livecd.squashfs livecd-x86.squashfs
kal@nice ~/LiveCD $ mv gentoo/x86/livecd .
kal@nice ~/LiveCD $ mv gentoo/amd64/livecd.squashfs livecd-amd64.squashfs


Vous remarquez probablement la présence du fichier « livecd » dans les dossier gentoo/x86 et gentoo/amd64. Celui-ci est un fichier vide propre au fonctionnement de squashfs que nous ne détaillerons pas ici.


III) Ecriture du fichier isolinux.cfg


Lorsque nous démarrerons sur notre futur CD, celui-ci exécutera en premier lieu le fichier isolinux/isolinux.cfg. Vous remarquerez quand dans chacun des répertoires des distributions présente dans notre CD se trouve également ce dossier/fichier. On va donc lire ce fichier sur chacune de nos distribution et y inséré le code nous interessant dans ~/LiveCD/isolinux/isolinux.cfg. Commencons par celui de notre cher Gentoo. Ouvrez le fichier ~/LiveCD/gentoo/x86/isolinux/isolinux.cfg dans votre éditeur de texte favori et observez ce qui nous interesse le plus :

~/LiveCD/gentoo/x86/isolinux/isolinux.cfg :
Code:
label gentoo
   kernel gentoo
  append initrd=gentoo.igz root=/dev/ram0 init=/linuxrc looptype=squashfs loop=/livecd.squashfs udev nodevfs  cdroot vga=791 dokeymap splash=silent,theme:livecd-2005.0

label gentoo-nofb
   kernel gentoo
   append initrd=gentoo.igz root=/dev/ram0 init=/linuxrc looptype=squashfs loop=/livecd.squashfs udev nodevfs  cdroot


Nous allons adapté ce code à notre structure de la manière suivante et le placer dans ~/LiveCD/isolinux/isolinux.cfg :

Code:
label gentoo
   kernel /gentoo/x86/isolinux/gentoo
  append initrd=/gentoo/x86/isolinux/gentoo.igz root=/dev/ram0 init=/linuxrc looptype=squashfs loop=/livecd-x86.squashfs udev nodevfs  cdroot vga=791 dokeymap splash=silent,theme:livecd-2005.0

label gentoo-nofb
   kernel /gentoo/x86/isolinux/gentoo
   append initrd=/gentoo/x86/isolinux/gentoo.igz root=/dev/ram0 init=/linuxrc looptype=squashfs loop=/livecd-x86.squashfs udev nodevfs  cdroot


Nous nous occuperons de « l'en tête » du fichier isolinux.cfg en dernier lieu. Répétons l'opération pour Gentoo amd64:

Code:

label gentoo-amd64
   kernel /gentoo/amd64/isolinux/gentoo
  append initrd=/gentoo/amd64/isolinux/gentoo.igz root=/dev/ram0 init=/linuxrc looptype=squashfs loop=/livecd-amd64.squashfs udev nodevfs  cdroot vga=791 dokeymap splash=silent,theme:livecd-2005.0

label gentoo-amd64-nofb
   kernel /gentoo/amd64/isolinux/gentoo
   append initrd=/gentoo/amd64/isolinux/gentoo.igz root=/dev/ram0 init=/linuxrc looptype=squashfs loop=/livecd-amd64.squashfs udev nodevfs  cdroot


label gentoo-em64t
   kernel /gentoo/amd64/isolinux/gentoo-em64t
  append initrd=/gentoo/amd64/isolinux/gentoo-em64t.igz root=/dev/ram0 init=/linuxrc looptype=squashfs loop=/livecd-amd64.squashfs udev nodevfs -em64t_kernelopts cdroot vga=791 dokeymap splash=silent,theme:livecd-2005.0

label gentoo-em64t-nofb
   kernel /gentoo/amd64/isolinux/gentoo-em64t
   append initrd=/gentoo/amd64/isolinux/gentoo-em64t.igz root=/dev/ram0 init=/linuxrc looptype=squashfs loop=/livecd-amd64.squashfs udev nodevfs -em64t_kernelopts cdroot



Prenez soin de ne pas attribuer plusieurs fois le même « label ». Celui-ci repésente ce que vous taperez au démarrage : vous devrez entrer gentoo-amd64 pour lancer le kernel /gentoo/amd64/isolinux/gentoo etc...

Répétons maintenant l'opération pour la distribution Fedora. Editez les fichiers ~/LiveCD/fedora/x86/isolinux/isolinux.cfg et ~/LiveCD/fedora/amd64/isolinux/isolinux.cfg afin de « ripper » ce qui vous interesse et l'intégrer à votre propre fichier isolinux.cfg. Voici à quoi cela doit ressembler :

Code:
# Fedora x86
label fedora
  kernel /fedora/x86/isolinux/vmlinuz
  append initrd=/fedora/x86/isolinux/initrd.img ramdisk_size=8192
label fedora-text
  kernel /fedora/x86/isolinux/vmlinuz
  append initrd=/fedora/x86/isolinux/initrd.img text ramdisk_size=8192
label fedora-expert
  kernel /fedora/x86/isolinux/vmlinuz
  append expert initrd=/fedora/x86/isolinux/initrd.img ramdisk_size=8192
label fedora-ks
  kernel /fedora/x86/isolinux/vmlinuz
  append ks initrd=/fedora/x86/isolinux/initrd.img ramdisk_size=8192
label fedora-lowres
  kernel /fedora/x86/isolinux/vmlinuz
  append initrd=/fedora/x86/isolinux/initrd.img lowres ramdisk_size=8192

# Fedora amd64
label fedora-amd64
  kernel /fedora/amd64/isolinux/vmlinuz
  append initrd=/fedora/amd64/isolinux/initrd.img ramdisk_size=9216
label fedora-amd64-text
  kernel /fedora/amd64/isolinux/vmlinuz
  append initrd=/fedora/amd64/isolinux/initrd.img text ramdisk_size=9216
label fedora-amd64-expert
  kernel /fedora/amd64/isolinux/vmlinuz
  append expert initrd=/fedora/amd64/isolinux/initrd.img ramdisk_size=9216
label fedora-amd64-ks
  kernel /fedora/amd64/isolinux/vmlinuz
  append ks initrd=/fedora/amd64/isolinux/initrd.img ramdisk_size=9216
label fedora-amd64-lowres
  kernel /fedora/amd64/isolinux/vmlinuz
  append initrd=/fedora/amd64/isolinux/initrd.img lowres ramdisk_size=9216


Enfin, insérons maintenant le code pour Debian, dont nous garderons juste le noyau 2.6 pour l'architecture x86 (vous pouvez aussi mettre le noyau 2.4 si cela vous interesse...). Apres avoir visualisé les fichiers isolinux.cfg de vos deux Debian, adaptez le et inserez le dans votre isolinux.cfg :

Code:
# Debian x86
label debian
  kernel /debian/x86/install/2.6/vmlinuz
  append  vga=normal initrd=/debian/x86/install/2.6/initrd.gz ramdisk_size=10240 root=/dev/rd/0 devfs=mount,dall rw --
label debian-expert
  kernel /debian/x86/install/2.6/vmlinuz
  append  DEBCONF_PRIORITY=low vga=normal initrd=/debian/x86/install/2.6/initrd.gz ramdisk_size=10240 root=/dev/rd/0 devfs=mount,dall rw --

# Debian amd64
label debian-amd64
  kernel /debian/amd64/install/vmlinuz
  append  vga=normal initrd=/debian/amd64/install/initrd.gz ramdisk_size=10240 root=/dev/rd/0 devfs=mount,dall rw --
label expert
  kernel /debian/amd64/install/vmlinuz
  append  DEBCONF_PRIORITY=low vga=normal initrd=/debian/amd64/install/initrd.gz ramdisk_size=10240 root=/dev/rd/0 devfs=mount,dall rw --


Voilà, notre ficier isolinux.cfg est pratiquement prêt, il ne reste plus qu'a inséré le code « d'en tête »:

Code:
KBDMAP fr.kmp
default gentoo
prompt 1
timeout 0
display boot.msg
F1 boot.msg
F2 fedora.msg
F3 gentoo.msg
F4 debian.msg
F5 kernel.msg


La première ligne sert à définir le keymap FR afin d'avoir le clavier azerty. Vous trouverez le fichier fr.kmp ici :
http://kalhfr.free.fr/linux/divers/fr.kmp
Ce fichier est à placer dans ~/LiveCD/isolinux/. La seconde ligne, comme vous devez vous en doutez, défini le « label » gentoo comme défault et boot sur celui-ci si vous appuyez simplement sur la touche ENTREE. « prompt 1 » force l'affichage du prompt boot: et « timeout 0 » empêche le démarrage automatique sur le label par défault si rien n'est définie. Mettez « timeout 5 » si vous voulez que ca boot sur le label gentoo au bout de 5 secondes si rien n'est entrée, en l'occurence ici Gentoo x86.
Le fichier boot.msg sera affiché au démarrage sur le CD. Voici, à titre indicatif, à quoi ressemble le mien (bien que ce fichier ne soit pas obligatoire) :

Quote:

^L
- Pour installer Gentoo 2005.0 x86, appuyez sur : ^0f<ENTER>^07.

- Pour installer Gentoo 2005.0 amd64, tapez : ^0fgentoo-amd64^07.

- Pour installer Fedora Core 4 x86, tapez : ^0ffedora^07.

- Pour installer Fedora Core 4 amd64, tapez : ^0ffedora-amd64^07.

- Pour installer Debian Sarge 3.1r0a x86, tapez : ^0fdebian^07.

- Pour installer Debian Sarge 3.1r0a amd64, tapez : ^0fdebian64^07.

- Pour tester la memoire de votre systeme, tapez : ^0fmemtest86^07.

^02[F1-Main] [F2-Fedora] [F3-Gentoo] [F4-Debian] [F5-Avalaible Kernels]^07


Les « ^0 » servent à définir les couleurs FG/BG et ^L à effacer l'écran. Vous trouverez plus d'information à ce sujet dans la documentation du programme ISOLINUX.

Enfin, si on appui sur F2 alors cela affiche le fichier fedora.msg, F3 affiche le fichier gentoo.msg etc... Je vous laisse soin d'illustrer vos propres fichiers de message, en vous inspirant peut être de ceux disponible dans les repertoires isolinux/ de nos distributions ;)

Téléchargez maintenant le fichier boot.cat et placez le dans le répertoire ~/LiveCD/isolinux/. Ce fichier est disponible ici :
http://kalhfr.free.fr/linux/divers/boot.cat
De même, il est disponible dans chacun des sous-répertoire isolinux des distributions! Mais il n'est pas fourni avec syslinux donc c'est à nous de se débrouiller ;)
Enfin, placez aussi le fichier isolinux.bin dans ce même répretoire. Ce fichier est vital au fonctionnement d'ISOLINUX puisque c'est celui-ci que est utilisé pour démarrer sur le CD. Vous le trouverez à l'adresse suivante :http://www.kernel.org/pub/linux/utils/boot/syslinux/
Code:

kal@nice ~ $ wget http://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-3.09.tar.bz2 && tar xvfj syslinux-3.09.tar.bz2 && cp syslinux-3.09/isolinux.bin LiveCD/isolinux/
kal@nice ~ $ wget http://kalhfr.free.fr/linux/divers/boot.cat && mv boot.cat LiveCD/isolinux/


IV) Hack de l'installeur Debian


Voici la partie la plus fun du HOWTO : modifier l'installeur Debian afin qu'il accepte d'installer à partir du dossier debian/x86 ou debian/amd64! En effet, lors de l'installation, celui-ci cherche les fichiers à la racine du CD et non dans le dossier /debian/x86 (ou /debian/amd64) comme on le voudrait. On va donc tricher ;)
Je tiens a remercier pijalu pour son aide dans cette partie. Sans lui, notre CD ne proposerai pas Debian et ce HOWTO n'existerai pas. Merci ;)
C'est parti ! En root, copier l'initrd de vos deux Debian dans votre home et « gunzippez-les ». Mounter les ensuite dans un dossier /mnt/initrd-x86 et /mnt/initrd-amd64 :


Code:

nice ~ # cp /home/kal/LiveCD/debian/x86/install/2.6/initrd.gz initrd-x86.gz &&  cp /home/kal/LiveCD/debian/amd64/install/initrd.gz initrd-amd64.gz
nice ~ # gunzip initrd-*
nice ~ # mount -o loop initrd-amd64 /mnt/initrd-amd64/
nice ~ # mount -o loop initrd-x86 /mnt/initrd-x86/


Editez maintenant le fichier /mnt/initrd-x86/var/lib/dpkg/info/cdrom-detect.postinst, et, avant la ligne 135 :
Code:
if [ -e /cdrom/.disk/info ] ; then

Inserez le code suivant :
Code:

# Bind de /cdrom/debian/x86 dans /cdrom/
if [ -z $usedir ] ; then
   usedir=debian/x86
fi
log "Mounting /cdrom/${usedir} as /cdrom"
mount -o bind /cdrom/${usedir} /cdrom


Que fait on ici ? Bah on bind un répertoire enfant de /cdrom dans son répertoire parent /cdrom ! Oui mais lequel ? C'est la qu'intervient la variable $usedir. Si vous souhaitez placez votre distribituion Debian ailleur que dans debian/x86, par exemple dans pingoo/32bit alors vous pouvez le faire a tout moment et sans avoir besoin de remodifié l'initrd de Debian. Indiqué simplement l'option usedir=votre/repertoire/debian dans la ligne append de votre isolinux.cfg. Par exemple :

Code:
label debian
  kernel /pingoo/32bit/2.6/vmlinuz
  append  vga=normal initrd=/pingoo/32bit/install/2.6/initrd.gz usedir=pingoo/32bit ramdisk_size=10240 root=/dev/rd/0 devfs=mount,dall rw --


Si rien n'est indiqué, alors le répertoire debian/x86 est utilisé par default. Vous pouvez adaptez ce code à votre guise :)

Comme vous le savez, l'installeur ejecte le CD à la fin de l'installation. Cependant, si on ne prend pas soin de démonter le bind que nous venons d'effectuer, le CD ne sera pas éjecter. Pour corrigez ce problème, éditez le fichier /mnt/initrd-x86/usr/lib/prebaseconfig.d/15cdrom-detect et copiez la ligne «
umount /cdrom || true » en dessous de celle-ci:

Code:
   if [ -n "$CDDEV" ]; then
      log "Unmounting and ejecting '$CDDEV'"
      umount /cdrom || true
      umount /cdrom || true
      /target/usr/bin/eject $CDDEV || true
   else


Répétez l'opération pour les fichiers /mnt/initrd-amd64/var/lib/dpkg/info/cdrom-detect.postinst et /mnt/initrd-amd64/usr/lib/prebaseconfig.d/15cdrom-detect.
Voilà, nous avons fini et pouvons démonter les initrd puis les copiez dans le dossier de nos deux Debian:
Code:
nice ~ # umount /mnt/initrd-*
nice ~ # gzip initrd-amd64 && gzip initrd-x86
nice ~ # cp initrd-x86.gz /home/kal/LiveCD/debian/x86/install/2.6/initrd.gz
nice ~ # cp initrd-amd64.gz /home/kal/LiveCD/debian/amd64/install/initrd.gz


Ce hack a été testé sur une Debian et uniquement sur une Debian! Vous pouvez essayer celui-ci sur une autre distribution si elle recquiert les fichier à la racine du CD, mais il vous faudra trouver quel(s) fichier(s) corriger. Bon amusement ;)


V) Génération de l'image ISO

Dans votre home, tapez ceci :

Code:

kal@nice ~ $ mkisofs -J -R -v -T -V "LiveCD" -o /chemin/vers/liso/de/sortie/livecd.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table LiveCD/


Vous pouvez modifier votre label du cd en changeand "LiveCD" par ce que vous désirez. De même indiquez un chemin correcte pour le fichier de sortie livecd.iso.

Si vous desirez tester votre CD sans le graver, vous pouvez « emergez » le logiciel qemu qui est trés efficace. Pour cela, tapez :
Code:
kal@nice ~ $ qemu -cdrom /chemin/vers/livecd.iso -boot d


Si vous souhaitez emuler une architecture 64 Bits avec qemu, utilisez le programme qemu-system-x86_64. Génial non ? ;)


VI) Facultatif: hack du LiveCD Gentoo afin de forcer le keymap FR

Vous en avez assez d'oublier de spécifier le keymap pendant la phase de boot et souhaitez être automatiquement en azerty ? Ok c'est parti! En root, tapez ceci:

Code:
nice ~ # cp /home/kal/LiveCD/gentoo/x86/isolinux/gentoo.igz gentoo-x86.gz && cp /home/kal/LiveCD/gentoo/amd64/isolinux/gentoo.igz gentoo-amd64.gz
nice ~ # gunzip gentoo-*
nice ~ # mount -o loop gentoo-x86 /mnt/initrd-x86/ && mount -o loop gentoo-amd64 /mnt/initrd-amd64/


Ensuite dans votre éditeur de texte favoris, éditez le fichier /mnt/initrd-x86/linuxrc. Après la ligne 124 qui est :
Code:
read -t 10 -p '<< Load keymap (Enter for default): ' keymap]

Ajoutez le code :
Code:
   # set the fake default
   if [ -z $keymap ]
   then
      keymap=fr
      notdefkeymap=false
   else
      notdefkeymap=true
   fi


Ensuite, sous la ligne :
Quote:
if [ -e /lib/keymaps/${keymap}.map ]
Ajoutez :
Quote:
if [ -e /lib/keymaps/${keymap}.map ]
then
# say something about the keymap
$nodefkeymap && echo -e "${GOOD}>>${NORMAL}${BOLD} Loading the ''${keymap}'' keymap...${NORMAL}"
$nodefkeymap || echo -e "${GOOD}>>${NORMAL}${BOLD} Keeping default keymap...${NORMAL}"


Tout d'abord, avant de vous expliquer comment ca marche, vous pouvez voir qu'on a copié les lignes :

Quote:
$nodefkeymap && echo -e "${GOOD}>>${NORMAL}${BOLD} Loading the ''${keymap}'' keymap...${NORMAL}"
$nodefkeymap || echo -e "${GOOD}>>${NORMAL}${BOLD} Keeping default keymap...${NORMAL}"


Par conséquent, prenez soin de supprimez la ligne qui suit :

Code:
echo -e "${GOOD}>>${NORMAL}${BOLD} Loading the ''${keymap}'' keymap...${NORMAL}"

Ceci afin d'eviter de répéter deux fois la meme chose :)
De même vous pouvez supprimer ces trois lignes qui ne seront jamais executées :
Code:
   elif [ "$keymap" = '' ]
   then
      echo -e "${GOOD}>>${NORMAL}${BOLD} Keeping default keymap...${NORMAL}"


Bien, analysons maintenant ce code! Si $keymap ne vaut rien, donc si nous avons rien spécifié au promp, alors on intialise keymap=fr. De plus, on initialise la variable notdefkeymap à « false » afin de n'afficher que la ligne "${GOOD}>>${NORMAL}${BOLD} Keeping default keymap...${NORMAL}". Dans l'autre cas, c'est à dire si nous spécifions une keymap, alors on initialise notdefkeymap à « true » ce qui laisse afficher uniquement echo -e "${GOOD}>>${NORMAL}${BOLD} Loading the ''${keymap}'' keymap...${NORMAL}". Fastoche non ? ;)

Supposons que vous souhaitiez entrer le nom d'une keymap. Le clavier n'est pas encore en azerty puisque nous n'avons pas executé le « if ». Pour pallier à ce petit probleme, isérer :
Quote:
cat /lib/keymaps/keymapList*
loadkmap < /lib/keymaps/fr.map
read -t 10 -p '<< Load keymap (Enter for default): ' keymap


Pour la forme, vous pouvez aussi éditez le fichier /mnt/initrd-x86/lib/keymaps/keymapList et remplacer :
Quote:
Please select a keymap from the following list by typing in the appropriate
name or number. Hit Enter for the default "us/41" US English keymap.

Par:
Quote:
Please select a keymap from the following list by typing in the appropriate
name or number. Hit Enter for the default "fr/16" Fench keymap.

Voilà, répétez l'opération avec les fichiers /mnt/initrd-amd64/linuxrc et /mnt/initrd-amd64/lib/keymaps/keymapList. Demontez vos initrd puis copiez les dans le dossier de gentoo :

Code:
nice ~ # umount /mnt/initrd-*
nice ~ # gzip gentoo-amd64
nice ~ # gzip gentoo-x86
nice ~ # cp gentoo-x86.gz  /home/kal/LiveCD/gentoo/x86/isolinux/gentoo.igz
nice ~ # cp gentoo-amd64.gz  /home/kal/LiveCD/gentoo/amd64/isolinux/gentoo.igz


That's all! ;)


VII) Conclusion & remerciements


Vous êtes maintenant capable de vous créer votre propre CD Multi-Distribution. Les techniques utilisées ici peuvent surement être adapté à d'autres distributions mais je ne peux l'assurez ;)

Je tiens a remercier pijalu qui s'est beaucoup investi dans ce projet (il a même failli y laisser son /, sisi j'vous assure... :lol:) et qui sans lui ce HOWTO n'existerai pas. C'est lui qui m'a guidé pour le hack de debian/gentoo. Merci! :)

Kal

Ce document est protégé par la licence Creative Commons : Attribution-NonCommercial-ShareAlike 2.5


Last edited by _kal_ on Wed Jun 29, 2005 4:55 pm; edited 9 times in total
Back to top
View user's profile Send private message
titix
Guru
Guru


Joined: 01 Nov 2003
Posts: 343
Location: Paris, France

PostPosted: Sun Jun 26, 2005 10:00 pm    Post subject: Reply with quote

Génial exactement ce qu'il me fallait.
Merci :D !
_________________
titix
« La route est longue... mais la voie est libre ! »
Back to top
View user's profile Send private message
_kal_
l33t
l33t


Joined: 04 Mar 2005
Posts: 602
Location: Paris

PostPosted: Sun Jun 26, 2005 10:08 pm    Post subject: Reply with quote

titix wrote:
Génial exactement ce qu'il me fallait.
Merci :D !


Pas de quoi ;)
Back to top
View user's profile Send private message
katyanh
n00b
n00b


Joined: 26 Jun 2005
Posts: 5

PostPosted: Sun Jun 26, 2005 10:27 pm    Post subject: bravo! Reply with quote

Juste un petit message d'encouragement car je sais que tu travailles beaucoup et que tu fais de gros efforts! :wink: bon le français quelques petites fautes à corriger quand même mais sinon ça va t'as le level! :wink: ben sinon moi je trouve que c'est très bien (bah oui mon bébé c'est le meilleur attention!). Moi n'ai rien compris mais bon lol ça a l'air plutôt pas mal. Te fais de gros bisouuuussss MOUAH!
Back to top
View user's profile Send private message
_kal_
l33t
l33t


Joined: 04 Mar 2005
Posts: 602
Location: Paris

PostPosted: Sun Jun 26, 2005 10:32 pm    Post subject: Re: bravo! Reply with quote

katyanh wrote:
Juste un petit message d'encouragement car je sais que tu travailles beaucoup et que tu fais de gros efforts! :wink: bon le français quelques petites fautes à corriger quand même mais sinon ça va t'as le level! :wink: ben sinon moi je trouve que c'est très bien (bah oui mon bébé c'est le meilleur attention!). Moi n'ai rien compris mais bon lol ça a l'air plutôt pas mal. Te fais de gros bisouuuussss MOUAH!


:lol:

Bah oui quand on est 100% Nerdz, on a même sa copine sur le forum gentoo!

Merci ma douce :roll:
Back to top
View user's profile Send private message
pijalu
Guru
Guru


Joined: 04 Oct 2004
Posts: 365

PostPosted: Mon Jun 27, 2005 12:09 am    Post subject: Reply with quote

Excellent, ca tue bien :)

Juste pour la forme (sinon je ne serais pas moi meme):
* Pour la partie debian: isolinux.cfg : Tu dois ajouter usedir=debian/amd64 comme param de kernel ;)
* Pour la partie hack gentoo:
tu peux changer egalement /lib/keymaps/keymapList (qui donne le clavier par default, l'install fait un simple cat du fichier)
en forme de patch c'est
Code:

--- ori/lib/keymaps/keymapList  2003-09-10 07:45:07.000000000 +0200
+++ new/lib/keymaps/keymapList  2005-06-26 18:36:09.000000000 +0200
@@ -1,5 +1,5 @@
 Please select a keymap from the following list by typing in the appropriate
-name or number. Hit Enter for the default "us/41" US English keymap.
+name or number. Hit Enter for the "fr" keymap.

  1 azerty   7 cf       13 es   19 il   25 mk   31 ru        37 trf
  2 be       8 croat    14 et   20 is   26 nl   32 se        38 trq


Pour le linuxrc: tu peux en fait supprimer 3 lignes (facultatif, meme si tu ne tapes rien elle ne seront pas executer car dans ce cas, le code ajouter place la valeur "fr" dedans...)
Code:

       elif [ "$keymap" = '' ]
       then
               echo -e "${GOOD}>>${NORMAL}${BOLD} Keeping default keymap...${NORMAL}"


En patch:
Code:

--- ori/linuxrc 2005-03-18 22:37:14.000000000 +0100
+++ new/linuxrc 2005-06-26 19:00:06.000000000 +0200
@@ -122,9 +122,21 @@
        echo -e "${GOOD}>>${NORMAL}${BOLD} Loading keymaps...${NORMAL}"
        cat /lib/keymaps/keymapList
        read -t 10 -p '<< Load keymap (Enter for default): ' keymap
+       # set the fake default
+       if [ -z $keymap ]
+       then
+               keymap=fr
+               notdefkeymap=false
+       else
+               notdefkeymap=true
+       fi
+
        if [ -e /lib/keymaps/${keymap}.map ]
        then
-               echo -e "${GOOD}>>${NORMAL}${BOLD} Loading the ''${keymap}'' keymap...${NORMAL}"
+               # say something about the keymap
+               $nodefkeymap && echo -e "${GOOD}>>${NORMAL}${BOLD} Loading the ''${keymap}'' keymap...${NORMAL}"
+               $nodefkeymap || echo -e "${GOOD}>>${NORMAL}${BOLD} Keeping default keymap...${NORMAL}"
+
                loadkmap < /lib/keymaps/${keymap}.map
                xkeymap=${keymap}
                echo ${keymap} | egrep -e "[0-9]+" >/dev/null 2>&1
@@ -133,9 +145,6 @@
                fi
                mkdir -p /etc/sysconfig
                echo "XKEYBOARD=${xkeymap}" > /etc/sysconfig/keyboard
-       elif [ "$keymap" = '' ]
-       then
-               echo -e "${GOOD}>>${NORMAL}${BOLD} Keeping default keymap...${NORMAL}"
        else
                echo -e "${BAD}!! ${NORMAL}${BOLD}Sorry, but keymap ''${keymap}'' is invalid!${NORMAL}"
                chooseKeymap

Petite note: Le clavier, au moment d'entrer les choix est tjs en US ... un ptit
Code:

loadkmap < /lib/keymaps/fr.map

avant la ligne
Code:

 read -t 10 -p '<< Load keymap (Enter for default): ' keymap

Corrige cela...
[disclam=pour guru]
Pourquoi reecrire le test, il suffisait de faire ce loadkey avant.... ben non, il fallait de toute façon reecrire le test pour inclure lors du passage en elif la creation du sysconfig :-)
[/disclam]


Last edited by pijalu on Mon Jun 27, 2005 7:50 am; edited 1 time in total
Back to top
View user's profile Send private message
anigel
Bodhisattva
Bodhisattva


Joined: 14 Apr 2003
Posts: 1894
Location: Un petit bled pas loin de Limoges ;-)

PostPosted: Mon Jun 27, 2005 7:43 am    Post subject: Reply with quote

Joli document, et très bon travail ! Merci d'avoir partagé ;-) !
_________________
Il y a 10 sortes d'individus en ce bas-monde : ceux qui causent binaire, et les autres.
Back to top
View user's profile Send private message
Adrien
Advocate
Advocate


Joined: 13 Jul 2004
Posts: 2295
Location: Bretagne

PostPosted: Mon Jun 27, 2005 7:51 am    Post subject: Reply with quote

Merci pour ce howto _kal_ et..... content que tu aies réussi! :wink:
PS: Ton avatar déchire tout!! :lol:
Back to top
View user's profile Send private message
kwenspc
Advocate
Advocate


Joined: 21 Sep 2003
Posts: 4954

PostPosted: Mon Jun 27, 2005 7:54 am    Post subject: Reply with quote

un bon ptit howto comme je les aime 8)

Adrien wrote:
PS: Ton avatar déchire tout!! :lol:

oui d'ailleurs _kal_, ta copine est pas jalouse? :lol:
Back to top
View user's profile Send private message
Adrien
Advocate
Advocate


Joined: 13 Jul 2004
Posts: 2295
Location: Bretagne

PostPosted: Mon Jun 27, 2005 8:00 am    Post subject: Reply with quote

kwenspc wrote:
un bon ptit howto comme je les aime 8)

Adrien wrote:
PS: Ton avatar déchire tout!! :lol:

oui d'ailleurs _kal_, ta copine est pas jalouse? :lol:

Meuhhh non!! C'est justement sa copine qu'on voit sur la photo!! :lol:
Back to top
View user's profile Send private message
katyanh
n00b
n00b


Joined: 26 Jun 2005
Posts: 5

PostPosted: Mon Jun 27, 2005 8:37 am    Post subject: Reply with quote

non d'abord son avatar il déchire rien du tout d'ailleurs j'ai pas compris pourquoi il a mis celui-là parce que la fille est trop moche! (et d'abord je ne suis pas jalouse je suis mieux qu'elle 8)) et sinon non ce n'est pas moi du tout sur son avatar lol j'arrive même pas à mettre le mien :cry:
Back to top
View user's profile Send private message
_kal_
l33t
l33t


Joined: 04 Mar 2005
Posts: 602
Location: Paris

PostPosted: Mon Jun 27, 2005 9:41 am    Post subject: Reply with quote

pijalu wrote:
Excellent, ca tue bien :)

Juste pour la forme (sinon je ne serais pas moi meme):
* Pour la partie debian: isolinux.cfg : Tu dois ajouter usedir=debian/amd64 comme param de kernel ;)
* Pour la partie hack gentoo:


Bonjour monsieur ;)

Merci pour le tips sur le hack gentoo, j'ai corrigé cela. Cependant, je ne vois pas ce que tu veux dire pour l'installeur debien. Il n'y a pas besoin de mettre debian/amd64 comme param kernel puisque ceci est le default. En effet, je dit aux lecteurs :
Quote:
Répétez l'opération pour les fichiers /mnt/initrd-amd64/var/lib/dpkg/info/cdrom-detect.postinst et /mnt/initrd-amd64/usr/lib/prebaseconfig.d/15cdrom-detect.
Par conséquent, je pense qu'il sont suffisemment logique pour mettre :
Code:
# Bind de /cdrom/debian/x86 dans /cdrom/
if [ -z $usedir ] ; then
   usedir=debian/amd64
fi
log "Mounting /cdrom/${usedir} as /cdrom"
mount -o bind /cdrom/${usedir} /cdrom


:lol:
Back to top
View user's profile Send private message
_kal_
l33t
l33t


Joined: 04 Mar 2005
Posts: 602
Location: Paris

PostPosted: Mon Jun 27, 2005 9:43 am    Post subject: Reply with quote

anigel wrote:
Joli document, et très bon travail ! Merci d'avoir partagé ;-) !

Y'a pas de quoi ;)

Adrien wrote:
Merci pour ce howto _kal_ et..... content que tu aies réussi! :wink:
PS: Ton avatar déchire tout!! :lol:

Héhé, vui d'ailleurs ma copine elle a trop la rage quand je met des asiatiques en avatar (elle en est une aussi pourtant) :lol:

kwenspc wrote:
oui d'ailleurs _kal_, ta copine est pas jalouse?

Elle dit que non mais bon : on connait les femmes... On sait à quoi s'en tenir ;)
Back to top
View user's profile Send private message
kernelsensei
Bodhisattva
Bodhisattva


Joined: 22 Feb 2004
Posts: 5619
Location: Woustviller/Moselle/FRANCE (49.07°N;7.02°E)

PostPosted: Mon Jun 27, 2005 9:58 am    Post subject: Reply with quote

Super le Howto :) Merci, faudra que je teste !
_________________
$ ruby -e'puts " .:@BFegiklnorst".unpack("x4ax7aaX6ax5aX15ax4aax6aaX7ax2aX5aX8 \
axaX3ax8aX4ax6aX3aX6ax3ax3aX9ax4ax2aX9axaX6ax3aX2ax4ax3aX4aXaX12ax10aaX7a").join'
Back to top
View user's profile Send private message
Adrien
Advocate
Advocate


Joined: 13 Jul 2004
Posts: 2295
Location: Bretagne

PostPosted: Mon Jun 27, 2005 10:01 am    Post subject: Reply with quote

_kal_ wrote:
Elle dit que non mais bon : on connait les femmes... On sait à quoi s'en tenir ;)

Tiens, ça c'est un troll! Mais pas trop le genre qu'on a l'habitude de voir ici! :P
Back to top
View user's profile Send private message
_kal_
l33t
l33t


Joined: 04 Mar 2005
Posts: 602
Location: Paris

PostPosted: Mon Jun 27, 2005 10:15 am    Post subject: Reply with quote

kernel_sensei wrote:
Super le Howto :) Merci, faudra que je teste !


Ca fait plaisir de rendre service à ceux qui nous aide ;)

Adrien wrote:
Tiens, ça c'est un troll! Mais pas trop le genre qu'on a l'habitude de voir ici!

:lol:

Ne vous inquiétez pas, j'ai prévenu ma douce de ne pas poser de question sur l'O$ qu'elle utilise :twisted:
Back to top
View user's profile Send private message
kwenspc
Advocate
Advocate


Joined: 21 Sep 2003
Posts: 4954

PostPosted: Mon Jun 27, 2005 10:18 am    Post subject: Reply with quote

_kal_ wrote:
Ne vous inquiétez pas, j'ai prévenu ma douce de ne pas poser de question sur l'O$ qu'elle utilise :twisted:


ouh tiou tiou tou : c'est pas encore une geekette! mon ptit _kal_ : faut la convertir! :D
(c'est ce que j'ai fait trés rapidement et maintenant elle frime avec ça :lol:)
Back to top
View user's profile Send private message
_kal_
l33t
l33t


Joined: 04 Mar 2005
Posts: 602
Location: Paris

PostPosted: Mon Jun 27, 2005 10:28 am    Post subject: Reply with quote

kwenspc wrote:
_kal_ wrote:
Ne vous inquiétez pas, j'ai prévenu ma douce de ne pas poser de question sur l'O$ qu'elle utilise :twisted:


ouh tiou tiou tou : c'est pas encore une geekette! mon ptit _kal_ : faut la convertir! :D
(c'est ce que j'ai fait trés rapidement et maintenant elle frime avec ça :lol:)


La mienne est têtue comme une mule :evil: En plus avec tout les virus/spyware/ver qu'elle se tape, ca ne pourrai qu'être positif :roll:
Back to top
View user's profile Send private message
pijalu
Guru
Guru


Joined: 04 Oct 2004
Posts: 365

PostPosted: Mon Jun 27, 2005 10:49 am    Post subject: Reply with quote

_kal_ wrote:

... Par conséquent, je pense qu'il sont suffisemment logique pour mettre...

MDR ;-)
Je conclus que tu as compris cke je voulais dire... bah, c kom tu le sents ;-)
Back to top
View user's profile Send private message
_kal_
l33t
l33t


Joined: 04 Mar 2005
Posts: 602
Location: Paris

PostPosted: Mon Jun 27, 2005 10:55 am    Post subject: Reply with quote

pijalu wrote:
_kal_ wrote:

... Par conséquent, je pense qu'il sont suffisemment logique pour mettre...

MDR ;-)
Je conclus que tu as compris cke je voulais dire... bah, c kom tu le sents ;-)


:lol:
Vui je pense que le lecteur comprendra que pour le cas de l'amd64, les occurences x86 sont remplacées par amd64 :lol:
Back to top
View user's profile Send private message
Ti momo
Apprentice
Apprentice


Joined: 29 Jun 2004
Posts: 198
Location: Paris

PostPosted: Mon Jun 27, 2005 11:06 am    Post subject: Reply with quote

Super, je testerais à la fin de la semaine si j'ai le temps :) Merci ...
_________________
Avant de poster utilise la fonctions recherche qui est ton ami : https://forums.gentoo.org/search.php
Mon blog : http://blog.yacoubi.fr
Back to top
View user's profile Send private message
boozo
Advocate
Advocate


Joined: 01 Jul 2004
Posts: 3193

PostPosted: Mon Jun 27, 2005 12:30 pm    Post subject: Reply with quote

'alute
merci à toi (enfin a vous deux :wink: ) pour cette initiative comme quoi une idée simple peu rendre souvent bien des services... et bel exemple d'entraide et de réussite pour ce mini projet 8)

vais m'y mettre a ton 'live-six-in-one' et virer des cds et des iso... m'fera de la place tiens :lol:

HS: bienvenue a ta compagne également... une présence féminine est toujours appréciable - et avec tout le respect qu'il vous est dû a tous deux - d'autant plus lorsqu'elle est sympa et... ravissante :wink:
_________________
" Un psychotique, c'est quelqu'un qui croit dur comme fer que 2 et 2 font 5, et qui en est pleinement satisfait.
Un névrosé, c'est quelqu'un qui sait pertinemment que 2 et 2 font 4, et ça le rend malade ! "
Back to top
View user's profile Send private message
_kal_
l33t
l33t


Joined: 04 Mar 2005
Posts: 602
Location: Paris

PostPosted: Mon Jun 27, 2005 12:41 pm    Post subject: Reply with quote

boozo wrote:
'alute
merci à toi (enfin a vous deux :wink: ) pour cette initiative comme quoi une idée simple peu rendre souvent bien des services... et bel exemple d'entraide et de réussite pour ce mini projet 8)


Ouaip c'est beau l'entraide, ca sert aussi à ça l'Open Source ;)
boozo wrote:

vais m'y mettre a ton 'live-six-in-one' et virer des cds et des iso... m'fera de la place tiens :lol:

C'est la raison qui ma pousser à créer ce CD :lol:
boozo wrote:

HS: bienvenue a ta compagne également... une présence féminine est toujours appréciable - et avec tout le respect qu'il vous est dû a tous deux - d'autant plus lorsqu'elle est sympa et... ravissante :wink:

Héhé merci :)
Back to top
View user's profile Send private message
Trevoke
Advocate
Advocate


Joined: 04 Sep 2004
Posts: 4099
Location: NY, NY

PostPosted: Mon Jun 27, 2005 1:08 pm    Post subject: Reply with quote

Oha le ouf! Joli travail, c'est clair que ca me servira un jour, ca.. :-)
_________________
Votre moment detente
What is the nature of conflict?
Back to top
View user's profile Send private message
katyanh
n00b
n00b


Joined: 26 Jun 2005
Posts: 5

PostPosted: Mon Jun 27, 2005 3:35 pm    Post subject: Reply with quote

boozo wrote:
'alute
merci à toi (enfin a vous deux :wink: ) pour cette initiative comme quoi une idée simple peu rendre souvent bien des services... et bel exemple d'entraide et de réussite pour ce mini projet 8)

vais m'y mettre a ton 'live-six-in-one' et virer des cds et des iso... m'fera de la place tiens :lol:

HS: bienvenue a ta compagne également... une présence féminine est toujours appréciable - et avec tout le respect qu'il vous est dû a tous deux - d'autant plus lorsqu'elle est sympa et... ravissante :wink:


lol c'est gentil pour le compliment mais la fille qu'il a mis sur son avatar c'est pas moi :twisted:
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum