[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: configuration portable



Bonjour Eric,

Eric Leblond wrote:

> J'ai un problème pour configurer un portable:
> Il y a quatre possiblités:
> 	portable connecté à un répplicator de ports avec carte 3com
> 	carte pcmcia ( 2 adresses IP différentes suivant le lieu)
> 	connexion ppp à lamaison par le modem de la carte PCMCIA.
> 	
> On a essayé netenv, mais dans le réplicateur de port c'est toujours la
> carte pcmcia qui est prise et pas la 3com.
> 
> Y a-t-il une solution pour au boot choisir sa config?

J'ai une solution presque parfaite pour toi, mais dans une autre
direction, je ne choisi rien au boot, tout est automatique et je ne
reboot pas mon portable :-)  La seul contrainte est qu'il faille retirer
la carte PCMCIA du socket lors qu'elle n'est pas utilisé.

J'utilise les paquets suivants dnrd, masqmail et wwwoffle légèrement
modifiés.

ii  dnrd           2.8-2.1        Proxy DNS daemon
ii  masqmail       0.1.4-0        A mailer for hosts without permanent interne
ii  wwwoffle       2.5e-2.1       World Wide Web OFFline Explorer

Le principe est le suivant, pour PPP tu ajoutes dans le fichier
/etc/ppp/peers/provider la ligne `ipparam Provider' ainsi, lors de
l'exécutions des scripts /etc/ppp/ip-up.d et /etc/ppp/ip-down.d la
variable $PPP_IPPARAM aura le nom de ton contexte réseau.  Il faut
vérifier également que l'option `usepeerdns' est activée dans le fichier
/etc/ppp/options.

Pour PCMCIA, tu ajoutes dans /etc/pcmcia/networks.opt les lignes suivantes:

    export_env () { export SCHEME DEVICE DNSSRVS DNS_1 DNS_2 DNS_3; }
    start_fn () { export_env; run-parts /etc/pcmcia/ip-up.d; }
    stop_fn () { export_env; run-parts /etc/pcmcia/ip-down.d; }

Et tu configureras chaque lieu dans le `case "$ADDRESS" in' par
`Provider,*,*,*)'.

C'est la variable $SCHEME qui aura le nom de ton contexte réseau et qui
sera utilisée par les scripts /etc/pcmcia/ip-{up,down}.d.  Tu pourras
changer dynamiquement le scheme par `cardclt scheme Provider'.  C'est ce
que tu devras faire lorsque tu changes de lieu.

Il te faudra créer les répertoires /etc/pcmcia/ip-{up,down}.d et
utiliser les scripts modifiées pour dnrd, masqmail et wwwoffle attachés
(à copier également dans /etc/ppp/ip-up.d et /etc/ppp/ip-down.d).  Pour
wwwoffle, il te faudra également le script wwwoffle-config.pl qui n'est
pas dans le paquet wwwoffle mais dans le répertoire contrib des sources.
Je te l'attache au cas où.

Maintenant, la configuration de chaque élément suivant le contexte
réseau.

. dnrd: Tu n'as rien à faire sauf configurer pour PCMCIA dans le
  fichiers /etc/pcmcia/network.opt la variable DSN_1 comme tu as déja dû
  le faire.  PPP se débrouille tout seul grâce à l'option `usepeerdns'.

. wwwoffle: Chaque ligne qui doit être active pour une configuration
  donnée doit être en commentaire et précédée de la ligne '#//+Provider'
  dans le fichier /etc/wwwoffle/wwwoffle.conf.main.  Personnellement, je
  ne change que la section Proxy.  Attention, le fichier de configuration
  /etc/wwwoffle/wwwoffle.conf est régénéré à chaque fois.

. masqmail: Pour chaque contexte réseau, il faudra que tu ajoutes un
  ligne de la forme suivante pour chaque Provider dans le fichier
  /etc/masqmail.conf:

    connect_route.Provider = "/etc/masqmail/Provider.route"

  Si ta machine reçoit directement des mails, il te faudra aussi changer
  la définition de listen_addresses par:

    listen_addresses="0.0.0.0:25"

  Ensuite, chaque fichier /etc/masqmail/Provider.route se limitera à:

    allowed_mail_locals = "egp"
    mail_host = "smtpserver.orsay.quadratec.fr"
    map_return_path_addresses = "egp: <edouard.parmelan@quadratec.fr>"

  sauf que tu changeras les valeurs par les tiennes :-)


Voilà pour ce qui fonctionne comme des roulettes (en slink et potato).
Pour ton problème de réplicateur, je n'ai pas encore eu le cas à gérer.
Mais voici comment je traiterais le problème:

Si tu peux plugger à chaud le réplicateur, il faudrait voir si le noyau
reçoit un éveinement quelconque dans le même esprit que pour les cartes
PCMCIA.  Mais comme je n'ai pas de réponse, il faudra utiliser une autre
technique qui sera spécifique à la potato.

Je placerais la magie dans le fichier /etc/network/interface en ayant
retirer la carte PCMCIA.

	iface eth0 inet static
	    pre-up /etc/network/replicator.sh check
	    up /etc/network/replicator.sh start
	    down /etc/network/replicator.sh check
	    down /etc/network/replicator.sh stop
	    address ...
	    ...

Le script replicator.sh serait là pour détecter la présence du
réplicateur par exemple en recherchent une entrée particulière sur le
bus PCI ou autre (check) et les options start et stop placeraient les
variables d'environnement idoine avant de lancer les scripts dans les
répertoires /etc/pcmcia/ip-{up,down}.d comme pour une carte PCMCIA.

	#!/bin/sh

	export SCHEME=Replicator
	export DEVICE=eth0
	export DNS_1=<le-dns-pour-le-replicator>

	case "$1" in
	    check)
		    lspci | grep -vq '3Com'
		    ;;
	    start)
		    run-parts /etc/pcmcia/ip-up.d
		    true
		    ;;
	    stop)
		    run-parts /etc/pcmcia/ip-down.d
		    true
	esac

Si tu ne reboot pas ta machine après l'avoir connecter au réplicateur, tu
devras utiliser les commandes `ifup eth0' (et `ifdown eth0' pour lorsque
tu la retire du réplicateur).

Voilà, c'était du direct live :-)

Informes nous si cela fonctionne.
-- 
Edouard G. Parmelan
http://egp.free.fr

Attachment: lap-cfg.tar.gz
Description: Binary data


Reply to: