Table des matières

Choix et changement de config

Introduction

Le besoin de départ était d'utiliser une distrib sur clé usb sur différents ordi, qui ont donc des hardware différents. Les changements s'opèrent sur 3 fichiers nécessaires au confort de Phlinux: l'autostart d'openbox, le xorg.conf du serveur X et le fichier d'interfaces réseau.

Installation

Créer les fichiers pour chaque config en les distinguant par une appelation supplémentaire. Par exemple : xorg.conf.PHLINUX, xorg.conf.MAIRIE, etc… même chose pour l'autostart et /etc/network/interfaces Pour les besoins des scripts les fichiers de config devront comporter l'appelation qui les concerne sous la forme xconf : PHLINUX (voir exemple).

Exemple d'entête de xorg.conf :

nom
# xorg.conf (X.Org X Window System server configuration file)
#
# This file was generated by dexconf, the Debian X Configuration tool, using
# values from the debconf database.
#
# Edit this file with caution, and see the xorg.conf manual page.
# (Type "man xorg.conf" at the shell prompt.)
#
# This file is automatically updated on xserver-xorg package upgrades *only*
# if it has not been modified since the last upgrade of the xserver-xorg
# package.
#
# If you have edited this file but would like it to be automatically updated
# again, run the following command:
#   sudo dpkg-reconfigure -phigh xserver-xorg
 
# xconf : PHLINUX

Script de détection de la config en cours :

detect_conf.sh
#!/bin/bash
 
## detect_conf.sh : test de la config et choix
## alias xconf en user ##
 
function etat()
{
grep "xconf" /etc/X11/xorg.conf | grep -v dexconf | grep -o ".\{7\}$"
}
echo "xorg.conf est en $(etat)"
 
echo "Config OK ?"
select conf in "Oui" "Non"; do
	if [ "$conf" = "Oui" ]; then
		startx
		exit
	elif [ "$conf" = "Non" ]; then
		su-to-root -c  "sh /usr/local/bin/xconf.sh"
		startx
		exit
	fi
	break
done
 
exit 0

Script du changement de config:

xconf.sh
#!/bin/bash
 
# xconf.sh : (2ème étape < suite de detect_conf.sh)
# sera lancé en root
 
function changeconf()
{
rm /home/phlinux/.config/openbox/autostart
cp -a /home/phlinux/.config/openbox/autostart.$conf /home/phlinux/.config/openbox/autostart
rm /etc/X11/xorg.conf 
cp /etc/X11/xorg.conf.$conf /etc/X11/xorg.conf 
rm /etc/network/interfaces 
cp /etc/network/interfaces.$conf /etc/network/interfaces 
}
 
function reseau()
{
ifconfig -a
echo "entrer le numéro eth*"
read num
ifup eth$num
}
 
echo "Changer la config en"
select conf in "PHLINUX" "MAIRIE" "BASIQUE"; do
	if [ "$conf" = "PHLINUX" ]; then
		changeconf
	elif [ "$conf" = "MAIRIE" ]; then
		changeconf
	elif [ "$conf" = "BASIQUE" ]; then
		changeconf
		reseau
	fi
	break	
done
 
exit

Utilisation

Le test fait par detect_conf.sh doit s'opérer avant le lancement de X (donc pas dans une session avec un autologin). Pour ceux qui utilisent un dm, se mettre sur un autre tty (par exemple Alt+Maj+F5), se logger en user ou en root selon convenance et lancer le test.

Pour faire un changement en cours de session graphique, modifier les scripts en retirant les commandes “startx”. Et bien évidemment relancer le serveur X.