Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[RESOLU] config dynamique en fonction du réseau ?
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
XavierMiller
Moderator
Moderator


Joined: 23 Jul 2004
Posts: 5285
Location: ~Brussels - Belgique

PostPosted: Mon Apr 29, 2013 12:22 pm    Post subject: [RESOLU] config dynamique en fonction du réseau ? Reply with quote

Hello,

Quand je suis à la maison, je configure le make.conf de mon netbook pour qu'il profite de la puissance supérieure du desktop (FEATURES="distcc", MAKEOPTS="-j7").
Pour le moment, je modifie à la main FEATURES et MAKEOPTS, mais souhaiterais le faire automatiquement

- si (ESSID="maison" OU ethernet) ET desktop dispo => se mettre en mode "distcc"
- sinon => se mettre en mode "stand-alone"

Quelles sont les options possibles ?

- un "hook" postup dans /etc/conf.d/net qui modifie make.conf ?
- un hook "bashrc" dans /etc/portage/env ?

La première option ne fonctionnera que si le desktop est préalablement allumé et disponible ; mais ce n'est pas trop gênant, j'allume souvent le desktop en premier afin de préparer les mises à jour (emerge --sync + recompression d'un portage en squashfs)

La deuxième sera appelée très fréquemment par Portage (peut-être trop)

Y aurait-il un juste milieu selon vous ? Ou une solution du genre "runlevel en fonction du réseau où l'on se trouve" ?
_________________
Xavier Miller
(FR) Merci de respecter les règles du forum.
http://www.xaviermiller.be


Last edited by XavierMiller on Tue Apr 30, 2013 10:16 am; edited 1 time in total
Back to top
View user's profile Send private message
XavierMiller
Moderator
Moderator


Joined: 23 Jul 2004
Posts: 5285
Location: ~Brussels - Belgique

PostPosted: Mon Apr 29, 2013 1:02 pm    Post subject: Reply with quote

Je vais explorer le hook "postup" dans /etc/conf.d/net qui me semble le plus adéquat
_________________
Xavier Miller
(FR) Merci de respecter les règles du forum.
http://www.xaviermiller.be
Back to top
View user's profile Send private message
kopp
Advocate
Advocate


Joined: 09 Apr 2004
Posts: 2868
Location: Grenoble, France

PostPosted: Mon Apr 29, 2013 4:23 pm    Post subject: Reply with quote

Au pire, un simple restart du service net referait la config, si jamais le netbook était allumé avant le pc. Je ne pense pas que tu fasses beaucoup d'opérations critique nécessitant de maintenir la connexion sur ton notebook lorsque tu décides de faire la mise à jour.
Back to top
View user's profile Send private message
XavierMiller
Moderator
Moderator


Joined: 23 Jul 2004
Posts: 5285
Location: ~Brussels - Belgique

PostPosted: Mon Apr 29, 2013 6:05 pm    Post subject: Reply with quote

Je suis parti sur l'option "net et ses hooks". Je dois juste tenter de trouver le point où m'accrocher, de préférence après le DHCP. Au pire, si je ne trouve pas, je mets un hook sur base du ESSID (celui de la maison) et l'interface (ethernet), et je force un mode "pas d'assistance distcc" pour les rares cas où je n'allume pas le desktop pour assister la compil.
_________________
Xavier Miller
(FR) Merci de respecter les règles du forum.
http://www.xaviermiller.be
Back to top
View user's profile Send private message
XavierMiller
Moderator
Moderator


Joined: 23 Jul 2004
Posts: 5285
Location: ~Brussels - Belgique

PostPosted: Tue Apr 30, 2013 10:13 am    Post subject: Reply with quote

C'est résolu élégamment via le script net et l'isolation de la partie variable de make.conf (MAKEOPTS, FEATURES...) dans des fichiers ; un lien symbolique va pointer vers la configuration en fonction du réseau détecté :
- pas de réseau : version stand-alone (MAKEOPTS="-j3", FEATURES="-distcc")
- à la maison (= SSID maison ou ethernet branché + ping du serveur distcc) : MAKEOPTS="-j7" FEATURES= "distcc"
- via un hot-spot restrictif = stand-alone + EVCS_OFFLINE=1

Je crée donc 3 fichiers /etc/portage/variable_conf.XXX et un lien symbolique /etc/portage/variable_conf vers la version courante
Dans make.conf, je mets "source variable_conf".

dans /etc/conf.d/net je mets
/etc/conf.d/net:
modules="wpa_supplicant"
preferred_aps="..."


preup() {
  # par défaut : version "stand-alone"
  ln -sf variable_conf.out /etc/portage/variable_conf
 
  #truc pour ifplugd
  if [[ ${IFACE} == "wlan0" ]]; then
    if ifplugstatus | grep -q 'eth0: link beat detected'; then
      ewarn "Wired connection on eth0 detected, aborting configuration on ${IFACE}"
      return 1
    fi
  fi
}

postup() {
  # A la maison ?
  if [[ ${IFACE} == "eth0" || ${SSID} == "ESSID_A_LA_MAISON" ]] ; then
    if [[ $(ping -c 1 -q DISTCC_SERVER) == 0 ]] ; then
      # serveur DISTCC repéré !
      ln -sf variable_conf.distcc /etc/portage/variable_conf
    fi
  fi

  if [[ ${SSID} == "hotspot_connu" ]] ; then
    # connexion automatique au hotspot connu (avec envoi user/mot de passe)
    /usr/local/bin/hotspot_login.sh
   
    ln -sf variable_conf.hotspot /etc/portage/variable_conf
  fi
}

_________________
Xavier Miller
(FR) Merci de respecter les règles du forum.
http://www.xaviermiller.be
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum