Discussions sur ce sujet dans le forum 
Menu graphique pour PXELinux
Et oui, il est maintenant possible d'avoir un menu beaucoup plus attrayant et personnalisable
Ancien menu |
Nouveau menu graphique |
|
|
Les nouvelles versions de PXELinux intégrent un module de menu graphique : vesamenu.c32.
Sommaire
- Pré-requis
- Sources de données nécessaires
- 1) Mise en place
- 2) Modification des fichiers de configuration
- 3) Plus de personnalisation
Pré-requis
- Le serveur de boot PXE fonctionnant normalement ! (cf : Mise en place d'un serveur de boot PXE)
Sources de données nécessaires :
-
PXELinux >= 3.3x
http://www.kernel.org/pub/linux/utils/boot/syslinux/Le fichier nécessaire est :
com32/modules/vesamenu.c32Profitez-en pour mettre à jour votre PXELinux ;)
pxelinux.0memdisk/memdisk- (
com32/modules/menu.c32)
Vous pouvez aussi consulter le fichier
README.menupour plus d'information sur les directives de ce document
1) Mise en place
Copier le fichier vesamenu.c32 à la racine de votre serveur TFTP.
Je vous propose ce fichier : feuille.png comme fond d'écran pour vos menus, il faut le placer dans le répertoire menuconf.
Si vous voulez utiliser les vôtres, le format se doit d'être 640x480 PNG 24 bits (officiellement le JPEG est supporté, mais je n'ai pas réussi à en afficher convenablement).
Créer un fichier menuconf/design.conf :
menu color screen * #90ffffff #00000000 * menu color border * #ff6bff6b #00000000 * menu color title * #ffffffff #00000000 * menu color unsel * #90ffffff #00000000 * menu color hotkey * #ff6bff6b #00000000 * menu color sel * #e0ffffff #200cd22d * menu color hotsel * #e06bff6b #200cd22d * menu color scrollbar * #200cd22d #00000000 * menu color tabmsg * #60ffffff #00000000 * menu color cmdmark * #c000ffff #00000000 * menu color cmdline * #c0ffffff #00000000 * menu color pwdborder * #ff6bff6b #200cd22d * menu color pwdheader * #ffffffff #200cd22d * menu color pwdentry * #90ffffff #200cd22d * menu color timeout_msg * #80ffffff #00000000 * menu color timeout * #c0ffffff #00000000 * menu background menuconf/feuille.png menu width 80 menu margin 10 menu passwordmargin 3 menu rows 14 menu tabmsgrow 20 menu cmdlinerow 22 menu endrow 22 menu passwordrow 11 menu timeoutrow 22 allowoptions 0 prompt 0 noescape 1
Les réglages de couleurs se font sous la forme suivante :
menu color élement code-caractères-ansi couleur-avant-plan couleur-arrière-plan ombrage-texte
- Pour laisser un élement à sa valeur par défaut, il suffit de mettre le caractère
*. - Les codes couleurs représentés en hexadécimal sont composés de cette manière :
#aarrvvbbaa: opacitérr: rougevv: vertbb: bleu
Modifier les codes caractères ANSI concerne seulement le menu en mode texte (menu.c32)
Les informations complètes se trouvent dans le fichier README.menu de l'archive SysLinux
2) Modification des fichiers de configuration
Pour le fichier
pxelinux.cfg/default:DEFAULT vesamenu.c32 menuconf/design.conf ~ TIMEOUT 50 MENU TITLE Kiwi Menu LABEL model MENU LABEL ^Disquette modele KERNEL memdisk APPEND initrd=images/model.imz […]
Comme nous le voyons ici, les options communes à chaque menu n'apparaissent plus car elles sont dans le fichier
menuconf/design.confPour un appel de sous-menu :
LABEL sysUtils MENU LABEL -> Utilitaires ^systeme KERNEL vesamenu.c32 APPEND menuconf/design.conf menuconf/sysutil.conf
Le fait de préciser le fichier de configuration visuel (
menuconf/design.conf), évite d'avoir des directives dans le sous-menu.Nous pouvons donc directement attaquer un sous-menu (
menuconf/sysutil.conf) avec ce contenu :MENU TITLE Kiwi Menu - Utilitaires systeme LABEL monLabel […] LABEL retourMenu MENU LABEL <- Re^tour menu principal KERNEL vesamenu.c32 APPEND menuconf/design.conf ~
3) Plus de personnalisation
Rien ne vous empêche d'avoir un style global et de redéfinir des directives par la suite
Exemple (menuconf/sysutil.conf):
menu background menuconf/homer.png menu margin 19
Ce qui donnera :
Vous pouvez aussi utiliser la directive menu include monfichier.conf ; avec dans ce fichier les directives pour le menu en cours. Les inclusions multiples sont possibles et laissent ainsi libre cours à notre imagination (exemple) :
Menu avec Homer
menu include design_homer.conf LABEL ghost MENU LABEL ^Symantec Ghost 8.2 Pro kernel memdisk append initrd=images/sys/ghost.imz […]
Menu avec Bart
menu include design_bart.conf […]
Fichier
design_homer.conf# Avec cette ligne, plus besoin de passer le fichier de configuration design en argument lors de l'appel du sous-menu menu include design.conf menu background homer.png menu margin 19 […]
Fichier
design_bart.conf# Avec cette ligne, plus besoin de passer le fichier de configuration design en argument lors de l'appel du sous-menu menu include design.conf menu background bart.png menu margin 22 […]



