Bonjour,
j'ai un raspberry avec un raspbian jessie, nginx, dnsmasq dont voici le fichier /etc/network/interfaces :
auto lo
iface lo inet loopback
allow-hotplug eth0
auto eth0
iface eth0 inet dhcp
allow-hotplug wlan0
iface wlan0 inet static
address 10.132.1.1
netmask 255.255.255.0
network 10.132.1.0
broadcast 10.132.1.255
up iptables-restore < /etc/iptables.ipv4.nat
les choses fonctionnent alors tel que je le souhaite…
J'aimerai dissocier la config en différents fichiers (pour permettre les modif via un script php et une IHM web)
je fais alors un fichier interfaces avec :
auto lo
iface lo inet loopback
source interfaces.d/*.cfg
up iptables-restore < /etc/iptables.ipv4.nat
et deux fichiers interfaces.d/eth0.cfg et interfaces.d/wlan0.cfg
allow-hotplug eth0
auto eth0
iface eth0 inet dhcp
et
allow-hotplug wlan0
iface wlan0 inet static
address 10.132.1.1
netmask 255.255.255.0
network 10.132.1.0
broadcast 10.132.1.255
Et là rien ne va plus : au boot il n'y a plus de réseau fonctionnel (ni filaire ni wifi)
Comme c'est un RPI sans écran, je n'y ai plus accès ce qui n'aide pas pour débugger…
Quelqu'un à une idée ?
Merci
# Source
Posté par Axone . Évalué à 4.
Ton fichier de configuration interfaces n'est pas un script bash, donc l'instruction source n'est pas exécutée ni même comprise.
Tu aurais du faire ton essai sur une seule interface. Et je n'ai pas d'idée pour remédier à la situation.
[^] # Re: Source
Posté par cévhé . Évalué à 1. Dernière modification le 26 mai 2016 à 14:10.
bonsoir,
source est pourtant documenté dans le man interfaces :
J'ai essayé avec source et source-directory, chemin complet et relatif : nada !
[^] # Re: Source
Posté par cévhé . Évalué à 2.
Je suis une brêle en regexp mais
^[a-zA-Z0-9_-]+$
(le point semble être une fin de phrase) ne semble pas coller avec eth0.cfg et wlan0.cfg ou je me trompe ? Je vais redémarrer mon RPi pour tester
[^] # Re: Source
Posté par cévhé . Évalué à 1.
pas bon… ce n'est pas ça :-(
[^] # Re: Source
Posté par freem . Évalué à 3. Dernière modification le 26 mai 2016 à 13:40.
Ou pas que ça.
Si tu veux trouver un nom de fichier tel que "eth0.cfg", la regex
^[a-zA-Z0-9_-]+$
ne marchera pas. Elle ne trouvera rien:Hors, il n'y à pas de '.' dans la liste des caractères, donc ta regex s'arrêtera ou commencera au niveau du '.', et donc ne commencera ni ne finira la ligne. Du coup, ça match pas.
Peut-être que retirer le '.cfg' permettrait que le système trouve ton fichier.
[^] # Re: Source
Posté par cévhé . Évalué à 1.
justement, le test effectué consistait à renommer les fichier eth0.cfg et wlan0.cfg en eth0 et wlan0
Et ça ne marche pas mieux…
[^] # Re: Source
Posté par freem . Évalué à 2.
L'italique sur le que n'est pas très visible, c'est vrai. J'aurai du utiliser le gras.
Il n'est pas impossible que tu aies plusieurs problèmes.
Sinon, je me demandais, pourquoi ne pas utiliser plutôt un script à coup de ifconfig?
Ça me semble plus simple à générer, et, pendant le développement, tu peux utiliser un cron pour te faire retomber sur le /etc/network/interfaces si tu n'arrives à rien ping.
[^] # Re: Source
Posté par freem . Évalué à 2.
D'ailleurs, il fait quoi le script iptables? Et tu peux aussi enlever le "auto etho0" ça fait doublon avec le "allow-hotplug".
[^] # Re: Source
Posté par NeoX . Évalué à 2.
en gros tu as le droit de faire
mais tu ne peux pas faire de regex, uniquement des wildcards.
[^] # Re: Source
Posté par Axone . Évalué à 2.
Mais si on a le droit de faire cette notation avec la directive source, quelle est l'intérêt alors de la directive source-directory ?
[^] # Re: Source
Posté par NeoX . Évalué à 3.
ca faut demander aux developpeurs
mais on peut imaginer que le
source-directory
soit recursif, et serait capable de prendre tous les fichiers de tous les dossiers.pour avoir par exemple
il suffirait alors de faire
source-directory /etc/mynetwork
[^] # Re: Source
Posté par Axone . Évalué à 2.
Ok, je ne savais pas. J'aurais appris quelque chose.
# pistes
Posté par NeoX . Évalué à 4.
sortir la carte et la monter sur une autre machine pour modifier le fichier, et remettre la carte dans le PI.
à defaut de pouvoir modifier le fichier /etc/network/interfaces pour faire cela,
tu peux executer un script, qui va lire les divers fichiers, et creer un /etc/network/interfaces AVANT que le service ne se lance.
[^] # Re: pistes
Posté par cévhé . Évalué à 1.
Le raspberry étant monocarte, il n'est pas possible de démonter quoi que ce soit.
Quand je plante la conf réseau, je en peut que sortir la sdcard, la monter sur mon portable et modifier les fichiers directement… pas pratique du tout :-(
[^] # Re: pistes
Posté par NeoX . Évalué à 3.
je parlais evidemment de sortir la carte (SD) qui contient l'OS
et c'est ce que tu as traduit en disant :
oui, mais en meme temps ca te permet quand meme de corriger ton erreur, et de ne pas avoir à te servir du RPI comme presse papier.
[^] # Re: pistes
Posté par cévhé . Évalué à 1.
oups… j'ai fait mumuse avec une carte réseau PCI aujourd'hui, d'où ma confusion…
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.