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