CONFIGURATION

de Mandrake et Red Hat 6.0 et 6.1


 

Avant propos

Après avoir installé Linux, on souhaite peut être le configurer selon ses goûts personnels. La possibilité nous en étant offerte, pourquoi s'en priver. Ce qui suit a simplement pour but d'aider les débutants à localiser les scripts de configuration et donner quelques exemples de ce que l'on peut y ajouter ou modifier. Ceci s'applique aux distributions citées mais on trouve dans d'autres distributions des scripts similaires, quelquefois sous des noms différents ou dans d'autres répertoires. Chacun est en droit de considérer comme utiles ou futiles certains des aménagements proposés.
 

1 Dans /etc

1.1 /etc/rc.d/init.d

Contient les scripts qui lancent atd, gpm, keytable, network, lpd, ... On aura probablement rien à paramètrer ici, mais il n'est pas inintéressant dans prendre connaissance.

1.2 /etc/rc.d/rc.sysinit

Ce script est l'un des plus importants, il réalise un certain nombre d'initialisa tions :

exécute /sbin/initlog

set PATH=/bin:/sbin:/usr/bin:/usr/sbin

source /etc/sysconfig/network

source /etc/rc.d/init.d/functions

source /etc/sysconfig/i18n  lequel contient, par exemple,  SYSFONT=lat0-sun16

charge la console font avec /sbin/setsysfont

set KEYMAP=/etc/sysconfig/console/default.kmap | /etc/sysconfig/keyboard

set system clock
Il semble que le default.kmap soit patché dans la suite du boot, au moyen de la KEYTABLE, en effet celle-ci ne contient pas une définition pour toutes les touches. On aura probablement rien à paramètrer ici.

1.3 /etc/sysconfig/

Contient les scripts clock, keyboard, network, routed, static-routes, ... On peut y définir par exemple dans clock :

UTC=true
Dans keyboard, si on a patché fr-latin1 pour customiser son clavier, voir Annexe A
#KEYTABLE=fr-latin1 

KEYTABLE=fr-lat_1
Dans network on peut redéfinir HOSTNAME et GATEWAYDEV, généralement
GATEWAYDEV="eth0"


1.4 /etc/ppp/

Contient les scripts pour ppp

ip-up , ip-down , options .
Pour l'instant il suffit de savoir qu'ils existent, il est déconseillé de les éditer sauf si l'on sait exactement ce que l'on fait.

1.5 /etc/rc.d/rc.local

Dernier script exécuté au boot, on vérifie s'il y a déja, sinon y inclure :

echo ``Setting Numlock...''

initty=/dev/tty[1-8]

for tty in $initty; do

  setleds +num < $tty

done
Pour une raison indéterminée à ce jour, dans les deux releases Mandrake, l'effet de ce script se trouve annulé dans la suite du boot. On peut remédier en partie et provisoirement à ce problème en mettant ce script dans le .bash_profile de root. Il est alors nécessaire bien sûr que root soit loggé pour que Numlock soit activé. Enfin la solution du désespoir : enfoncer la touche Numlock manuellement.

On trouve également dans rc.local quelques commandes qui re-écrivent /etc/issue à chaque boot. Si on veut avoir un message d'accueil personalisé, mettre ces lignes en commentaire et ajouter

 cat /etc/issue
...issue donnant accès au fichier qui contient votre écran d'accueil. Annexe B

1.6 /etc/inputrc

La syntaxe de ce script est décrite dans man readline . Pour qu'il soit pris en compte, la variable d'environnement INPUTRC=/etc/inputrc doit être positionnée, ce que l'on peut vérifier par la commande bash printenv .

Il contient le support pour les caractères accentués (8 bit)

set meta-flag on

set convert-meta off

set ouput-meta on
et l'affectation des touches Home, End, Del
``\e[1~'':beginning-of-line

``\e[3~'':delete-char

``\e[4~'':end-of-line

$include ~/.inputrc
Les commandes shell bind -P et bind -p affichent les key bindings. Les définitions 'user specific' éventuelles iront dans ~/.inputrc

1.7 /etc/syslog.conf

Pour avoir un display de tous les messages sur la console #6 , on peut ajouter à la fin :

*.* (mettre ici 7 espacements avec la touche Tab) /dev/tty6


1.8 /etc/profile

Exécuté au login, il définit les variables d'environnement 'system wide' : ulimit, umask, ...

Les variables d'environnement 'user specific' iront dans ~/.bash_profile . Vérifier qu'il contient, sinon ajouter:

USER='id -un'

LOGNAME=$USER
On peut ici étendre le PATH:
PATH=$PATH:/usr/X11R6/bin:/usr/local/bin:/usr/games
On peut customiser PS1 Annexe C

Pour un display 8 bit avec less, on peut définir :

export LESSCHARSET=latin1
Pour un ls avec des couleurs, on peut définir :
LS_OPTIONS='-a -b -F -N --color=tty -T 0'

eval dircolors -b /etc/DIR_COLORS > /dev/null
Pour avoir un trait d'humour à chaque login, on peut ajouter à la fin , si votre fichier de messages s'appelle 'infortunes' Annexe D
/usr/games/fortune infortunes


1.9 /etc/bashrc

Exécuté à l'ouverture d'un shell, contient les alias 'system wide' , on peut en ajouter à volonté Annexe E. Les alias et PS1 'user specific' iront dans ~/.bashrc .

On reportera ici la définition de PS1 afin qu'il soit pris en compte sous X.

1.10 /etc/DIR_COLORS

Si on souhaite customiser 'system wide' , faire une copie :

cp DIR_COLORS DIR_COLORS.orig
Puis éditer DIR_COLORS et ajouter à la fin du fichier quelques définitions supplémentaires. Pour bien repèrer les fichiers dans un écran ls , par exemple pour avoir les textes en surintensité mais non les backups :
.txt   01;37  #ASCII text

.lyx   01;37  #Lyx text

.txt~  00;37  #backup

.lyx~  00;37  #backup

.bak   00;37  #backup
Si on veut customiser 'user specific' , faire une copie de /etc/DIR_COLORS vers ~/.dir_colors et patcher ~/.dir_colors .
menu

2 Dans ~/ (HOMEDIR)

Il s'agit du répertoire personnel de root ou bien des répertoires personnels des users non privilégiés

Note 3
2.1 .bash_profile

Exécuté au login, il doit contenir un appel à .bashrc

if [ -f ~/.bashrc ]; then

   . ~/.bashrc

fi
Note 4

On peut aussi demander ici l'exécution d'un script pour un message d'accueil personalisé, par exemple si l'on a dans son HOMEDIR le script 'bonjour' Annexe F, alors on ajoute la ligne :

. ./bonjour


2.2 .bashrc

Exécuté à l'ouverture d'un shell, il doit contenir un appel à /etc/bashrc

if [ -f /etc/bashrc ]; then

   . /etc/bashrc

fi
Il peut aussi contenir des alias et un prompt personalisés, on peut y compléter le PATH.
 
 

2.3 .Xmodmap

Les redéfinitions de touches qui ont été faites dans le keymap pour le mode ligne de commande ainsi que le Set Numlock ne sont pas pris en compte sous Xwindow. Le maping par défaut peut être redéfini en créant un fichier .Xmodmap dans son HOMEDIR. Le Numlock est remplacé par la redéfinition des touches du pavé numérique. Voir un exemple de .Xmodmap en Annexe G.

~/.Xmodmap est pris en compte par /etc/X11/xinit/xinitrc

Note 6

2.4 .Xdefaults .Xresources

Un fichier ~/.Xdefaults est créé lors de l'installation. Il est possible de le compléter selon ses préférences ou ses besoins. Ainsi un terminal avec fond noir est préférable pour tracer des courbes en couleur avec gnuplot. Voir un exemple en Annexe H.

Quand on explore /etc/X11/xinit/xinitrc , on constate que le fichier de configuration qui est pris en compte est en réalité .Xresources . Quelle est alors l'utilité de .Xdefaults ?

A défaut d'avoir l'explication, mais en levant le doute, on fait une copie . Autant avoir les deux que ne pas avoir le bon.

cp .Xdefault .Xresources
menu

3 Dans /usr/local

Dans /usr/local/bin (le créer s'il n'existe pas) , copier ses utilitaires binaires ou scripts, sans oublier son petit éditeur préféré (joe, jstar, ...) s'il n'est pas installé par cette distribution.

Dans /usr/local/doc (créer s'il n'existe pas) , copier ses documentations relatives au système (fiche de configuration, fichier issue,...)

Dans /usr/local/pic ou /usr/local/share/pic (à créer) , copier les images graphiques mise à disposition des utilisateurs.

Eventuellement créer /usr/local/sources si l'on a des sources à mettre à disposition.

Eventuellement créer /usr/local/demo avec les sous répertoires nécessaires si l'on a des démonstrations à mettre à disposition.
menu

4 Dans /dev/

Si le modem n'a pas été configuré pendant l'installation :

ln -s /dev/ttyS0 modem
Ou un autre ttySx selon le port sur lequel il est connecté. Il existe déja dans /dev un certain nombre de devices, en particulier fd0u1440 pour formater et 'mounter' les floppyes 3"1/2. Si l'on veut exceptionnellement formater avec une plus grande capacité on peut créer des devices avec la commande mknod, par exemple :
mknod /dev/fd0u1722 b 2 60  (pour 1722 Ko)

mknod /dev/fd0u1760 b 2 96  (pour 1760 Ko)
Les valeurs des nombres majeurs et mineurs à utiliser se trouvent dans :
/usr/src/linux/Documentation/devices.txt
Puis on attribuera les permissions habituelles pour ces devices :
chgrp floppy fd0u17*

chmod 600 fd0u17*
menu

5 Config. de XFree

Note 1
5.1 XConfigurator

Si XFree n'a pas été configuré lors de l'installation, on peut utiliser XConfigurator. Choisir de préférence le mode Expert. Si après avoir déclaré la carte graphique on aboutit à un échec, (message : serveur XF86_xxx non trouvé), il faut alors, hors XConfigurator, charger sur le système le serveur X correspondant. Par exemple XF86_Mach64 pour une carte ATI avec un chip Rage IIC. Ensuite on relance XConfigurator. Après avoir sélectionné son moniteur et sa carte graphique, il est préférable laisser XConfigurator choisir la configuration qu'il a déterminée comme optimale. Celui-ci va générer un fichier de configuration :

/etc/X11/XF86Config
et un lien symbolique
/etc/X11/X  pointant vers  /usr/X11R6/bin/XF86_Mach64
5.2 xvidtune

Après avoir quitté XConfigurator, on peut lancer X. Le fichier de configuration qui a été généré est souvent loin de la perfection. On a généralement un écran Xwindow excentré et ne couvrant pas toute la surface utile du moniteur. On peut alors lancer xvidtune , lequel s'utilise avec la souris et apparait comme assez intuitif, mais il n'est pas 100 % interactif. Ajuster ainsi au mieux les différents paramètres dont on appréciera immédiatement l'effet en cliquant sur Apply. Quand le résultat est satisfaisant, cliquer sur Show, ce qui a pour effet d'afficher le Modeline correspondant dans la fenètre xterm que l'on a ouvert préalablement. Il faut alors bien noter ces valeurs qu'il faudra ensuite reporter dans XF86Config, par exemple :

``1024x768''  85.00  1024  1048  1168  1320    768  772  775  795
5.3 /etc/X11/F86Config

Note 9

Reprendre ensuite XF86Config sous éditeur et y apporter les retouches nécessaires, en particulier :

Section ``Keyboard'', si on se trouve en présence de XkbLayout ``us'' on peut remplacer par :

XkbLayout  ``fr''
Section ``Device'', si on se trouve en présence de :
# Videoram 4096
On peut retirer le # de commentaire et vérifier que 4096 et bien la bonne valeur .

Section ``Screen'', si XConfigurator a installé Depth 32, on peut peut-être se contenter de 24 (bits par pixel), ce qui est souvent suffisant et devrait accélérer l'affichage.

Enfin, section ``Monitor'', on repère le Modeline correspondant à celui qui a été fourni par xvidtune (ci-dessus : ``1024x768'' 85 ...) et on modifie les 8 valeurs de synchro qui suivent en fonction des données de xvidtune.

Lors du prochain startx tous ces paramètres seront pris en compte.

Note 5

Note 7

menu

Annexes

A - keytable

Sur les claviers AZERTY on peut vouloir accéder de façon simple aux caractères \ , | et ~ en les affectant à la touche 41 (en haut à gauche, à coté de 1/&). Il suffit pour cela de faire une copie :

cp /usr/lib/kbd/keymaps/i386/azerty/ fr-latin1.kmap.gz   fr-lat_1.kmap.gz
Ensuite, dé-ziper fr-lat_1.kmap.gz , patcher , re-ziper

Mettre en place ce fichier avec les autres .kmap.gz et le déclarer dans /etc/sysconfig/keyboard

Le script /etc/rc.d/init.d/keytable le chargera au prochain boot , on peut aussi le tester immédiatement en lançant au clavier la commande :

loadkeys fr_lat1
Note 2
retour
 

B - issue

Si l'on est pas satisfait de l'esthétique de l'écran d'accueil fourni avec la distribution, on peut écrire son propre fichier et y mettre de la couleur avec les codes ANSI. On donne à ce fichier un nom quelconque, par exemple my_issue et on le copie dans /etc , puis :

mv issue issue.orig

ln -s issue my_issue
Il sera lancé au boot par /etc/rc.d/rc.local et vous accueillera au login .
retour
 

C - PS1

Un exemple de prompt en couleur avec retour à la ligne :

if test "$UID" = 0; then

  PS1='[\033[1;31m\u@\h \033[34m\w\033[0;37m]\n# '

else

  PS1='[\033[1;31m\u@\h \033[34m\w\033[0;37m]\n$ '

fi

export PS1
retour
 

D - Fortunes

fortune vous propose à chaque login une phrase, maxime, blague, ... choisie au hazard dans un fichier texte. En fait il faut deux fichiers : un fichier texte , par exemple infortunes (pourquoi pas !) et un fichier index infortunes.dat

Malgré le grand choix qui est proposé dans cette distribution, on peut souhaiter personaliser. Pour cela, créer un fichier texte où chaque maxime peut tenir sur une ou plusieurs lignes et séparée de la suivante par le caractère % seul en début de ligne. (On peut s'aider des modèles existants). Une trentaine de phrases constitue un minimum pour éviter les répétitions trop fréquentes. On peut en ajouter au fil des jours, ne pas oublier de mettre à jour l'index avec strfile.

On crée, ou recrée, le fichier index par la commande :

strfile infortunes infortunes.dat
Ces deux fichiers seront appelés par la commande fortune à partir de /etc/profile comme indiqué plus haut. Ils seront placés dans :
/usr/share/games/fortunes  pour Mandrake 6.0

/usr/share/games/fortunes/fr  pour Mandrake 6.1
retour
 

E - alias

Quelques exemples d'alias

alias $='pwd'

alias ..='cd ..'

alias ...='cd ../'

alias ls='ls -a'

alias ll='ls -al'

alias ls='ls $LS_OPTIONS'

alias cp='cp -i'

alias rm='rm -i'

alias mv='mv -i'

alias du='du -a -c -h'

alias date='date -u -R'

alias uname='uname -a'
retour
 

F Message personalisé

Exemple de message personalisé 'bonjour'

bon=''Bonjour Robert, Nous sommes ``

jour=$(date -u -R)

echo `` ''

echo $bon $jour

echo `` ''
retour
 

G - .Xmodmap

Exemple de ~/.Xmodmap Note 8

keycode 22 = BackSpace

keycode 49 = backslash bar asciitilde 

keycode 60 = colon slash backslash

keycode 61 = exclam section brokenbar

keycode 79 = KP_7

keycode 80 = KP_8

keycode 81 = KP_9

keycode 83 = KP_4

keycode 84 = KP_5

keycode 85 = KP_6

keycode 86 = plus

keycode 87 = KP_1

keycode 88 = KP_2

keycode 89 = KP_3

keycode 90 = KP_0

keycode 91 = KP_Decimal

keycode 103 = End

keycode 107 = Delete
retour
 

H - .Xdefaults

On peut ajouter à la fin de .Xdefaults

# xterm config for gnuplot

gnuplot*background: black

gnuplot*textColor: white

gnuplot*axisColor: white

gnuplot*axisDashes: 22


! Some personal key defs

*eightBitInput: true

*VT100.Translations:    #override\n\

BackSpace:         string(0x7F)\n\

Delete:            string("\033[3~")\n\

Home:              string("\033[1~")\n\

End:               string("\033[4~")

*ttyModes:              erase ^?
retour
 

menu

Notes

Note 1

Le cas du login en mode graphique sous xdm n'a pas été pris en considération ci-dessus. Le lancement est réalisé par xdm (X display manager). Ne sont plus pris en compte : xinitrc, profile, .bash_profile. Pour y remèdier mettre dans .Xsession (à créer) ou dans /etc/X11/xdm/Xsession , l'appel suivant :

    if [ -f $HOME/.bash_profile ]; then 

        . $HOME/.bash_profile

    fi
Il peut être nécessaire de faire de même pour /etc/profile

La lecture de /etc/X11/xdm/xdm-config est particulièrement utile.
retour
 

Note 2

 
/usr/bin/showkey   affiche les keycodes un par un

/usr/bin/dumpkeys  affiche le maping en vigueur ( dumpkeys -l est plus bavard)

/usr/bin/kb_mode   change les modes (ASCII, unicode, ...). Attention! ne pas jouer avec.
retour
 

Note 3

Quand on crée un nouveau compte avec adduser , les fichiers dans /etc/skel sont copiés dans le HOMEDIR du new user. (D'origine, il ne s'agit que de scripts en version minimale).
retour
 

Note 4

Dans les versions précédentes on ajoutait ici, pour l'affichage des caractères accentués stty pass8 . Actuellement cette fonction semble déja prise en charge dans l'installation
retour
 

Note 5

Pour voir quel Xserver est installé, la commande est :

     X -showconfig
retour
 

Note 6

Sous X , pour afficher le keymap actif :

     xmodmap -pke
... et les keycodes etkeysyms : /P>
     xev
retour
 

Note 7

Si l'on a 6 consoles virtuelles activées, la première session X se déroule sur la console 7 , équivalent à display :0

On peut activer d'autres sessions X, par exemple pour activer une session 16 bit sur vt8

     startx -- :1 -bpp 16 vt8
- - passe les arguments qui suivent au serveur X plutôt qu'à xinit

On peut passer d'une session à l'autre par Ctrl Alt F8 et Ctrl Alt F7 , il faut rester modeste en ce domaine car plusieurs sessions X consomment beaucoup de puissance de traitement.
retour
 

Note 8

Sous X , les touches ont des numéros différents des numéros utilisés en console texte : /P>

N° de touche sous X = N° de touche console texte + 8
retour
 

Note 9

Il est aussi possible d'utiliser XF86Setup ou, en mode texte, xf86config
retour
 

menu
 


File : configmdk.html , Robert Billon, F3WM, 2000-02-28