Ping/SSH - Rasberry Pi 4 - Le Wifi ne fonctionne que si le câble Ethernet est branché
-
Bonjour,
J'ai depuis quelques temps Recalbox (7.2.2-RELOADED) sur un Raspberry Pi 4 2GB.
Tout fonctionne bien sauf le wifi qui curieusement ne se met à fonctionner QUE lorque le câble ethernet est branché (oui je sais ça a l'air dingue).
Il est pourtant bien configuré comme indiqué dans la doc, dans le fichier
recalbox.conf
avec les paramètreswifi.ip
,wifi.gateway
etwifi.netmask
.Si le câble n'est pas branché (au boot ou bien après) pas de SSH et même pas de ping. S'il est branché le wifi fonctionne bien.
J'ai trouvé plusieurs posts (hors Recalbox) sur le sujet (par ex ici) mais rien de très concluant d'autant plus que de part la conception de l'OS Recalbox (Linux from Scratch ?) les "solutions" ne sont pas toutes applicables (ex : pas de OpenSSH mais Dropbear, etc...).
Curieusement rien sur ce forum hormis ce post de 2016 resté sans réponse.
Le problème semble être +/- lié au fait que le Wifi n'est pas prioritaire et/ou déclaré en 1er dans la config réseau. J'ai réussi à faire marchotter le truc en utilisant la méthode ancienne décrite dans la doc à savoir l'utilisation d'un fichier
etc/network/interfaces.base
dans lequel le met l'interface Wifi en première position.auto wlan0 allow-hotplug wlan0 iface wlan0 inet static address 192.168.1.16 network 192.168.1.0 netmask 255.255.255.0 broadcast 192.168.1.255 gateway 192.168.1.254 auto eth0 iface eth0 inet static address 192.168.1.15 network 192.168.1.0 netmask 255.255.255.0
Cela semblait marcher mais au bout d'un temps (je ne vérifie pas systématiquement que le wifi fonctionne) le fichier a disparu, peut être à cause du dernier system update.
J'ai vaguement scripté le truc mais pour recréer automatiquement le fichier
/etc/network/interfaces.base
au boot (/etc/init.d/
) avant lancement du réseau mais pour une raison que j'ignore même si le fichier/etc/network/interfaces.base
est présent le Wifi ne marche pas sans le câble.N'utilisant que du très très standard (Raspberry Pi...) j'ai peine à croire que je suis le seul dans cette situation (ou alors tout le monde utilise RB en ethernet).
Je suis preneur de toute suggestion.
Merci.
T. -
Bonjour @toto-0
As-tu une raison particulière de forcer l'adresse IP sur l'interface wifi?
Personnellement, je configure:wifi.enabled=1
wifi.ssid=MonRezoWifi
wifi.key=m0n_super_passw0rd
dans le fichier de config recalbox.conf (share:system/recalbox.conf). Si tu le fais offline (=carte SD dans le PC), je te conseille de modifier le fichier recalbox-backup.conf de la partition RECALBOX. C'est ce fichier qui est utilisé pour monter le wifi au boot.
David
-
Bonjour David,
Merci pour ta réponse. Effectivement l'IP fixe est mise par commodité (SSH...) et aussi par habitude. Je pourrais la fixer au niveau du DHCP. Je vais essayer ceci.
Suite à ce post j'ai refais pas mal de tests et j'ai aussi constaté que parfois cela fonctionnait correctement. J'ai l'impression que cela dépend +/- du boot, peut être un ordre de démarrage des interfaces, je ne sais pas trop.
Merci.
T. -
Bonsoir @toto-0
Il y avait bien un bug dans la configuration. Ça sera résolu dans la prochaine version en ajoutant la configuration suivante:
wifi.nameservers=1.1.1.1
(1.1.1.1 peut être remplacé par l'ip du serveur DNS de votre préférence)
David
-
Bonjour David.
Merci pour l'info. Je ne crois malheureusement pas que cela soit le problème que je rencontre, J'utilise l'IP directement (ie pas de requête DNS) pour me connecter en SSH (d'ou le fait de l'avoir mis en statique).
Comme suggéré j'ai testé sans la fixer moi même (mise en commentaires des paramètreswifi.ip
,wifi.gateway
etwifi.netmask
) et obtention de l'IP souhaitée juste avec une règle DHCP sur ma box : même problème. L'interface Wifi ne répond quasi jamais si je ne branche pas le câble Ethernet.T.
-
Bonjour @toto-0
Il semble qu'il y ait un problème dans la configuration de votre installation wifi/ethernet.
J'ai nombre de machines en wifi et la connexion fonctionne. Le fait de brancher le cable ethernet ne va pas faire fonctionner le wifi par magie. Il y a certainement quelque à vérifier:
Est-ce que le wifi et l'ethernet sont dans le même plan réseau?Si vous vous connecter en ethernet, vérifier l'adresse de l'interface wifi avec la commande
ifconfig
David
-
Bonjour David,
Oui, les 2 interfaces sont sur le même sous-réseau (192.168.1.0/24) :
# ifconfig eth0 Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:XX inet addr:192.168.1.15 Bcast:192.168.1.255 Mask:255.255.255.0 ... wlan0 Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:XX inet addr:192.168.1.16 Bcast:192.168.1.255 Mask:255.255.255.0 ...
J'ai effectivement lu quelque part que cela pouvait poser problème, de mémoire le trafic destiné à ce réseau était routé par eth0 uniquement etc...
En regardant le routage je vois bien que eth0 est indiqué comme interface pour router le trafic :# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 400 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 U 400 0 0 eth0
Je pourrais essayer de configurer wlan0 à la place mais j'ai peur de perdre la capacité à me reconnecter en Ethernet en cas de problème.
Sur d'autres installations vous pouvez vous connecter en Ethernet et Wifi comme bon vous semble (ie juste en rebranchant le câble) ?Merci.
T. -
En regardant la table de routage d'un autre Pi (Raspbian) je vois que les routes sont doublées pour chaque interface et avec des poids différents :
sudo route -n Table de routage IP du noyau Destination Passerelle Genmask Indic Metric Ref Use Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 202 0 0 eth0 0.0.0.0 192.168.1.1 0.0.0.0 UG 303 0 0 wlan0 192.168.1.0 0.0.0.0 255.255.255.0 U 202 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 U 303 0 0 wlan0
Je vais creuser ça.
-
Bonjour,
Pour pouvoir comparer avec une install dont le wifi fonctionne bien j'aurais besoin du résultat de ces commandes SVP :
# route -n
# cat /etc/dhcpcd.conf
Merci.
T. -
@toto-0
voici:Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.2.254 0.0.0.0 UG 3003 0 0 wlan0 192.168.2.0 0.0.0.0 255.255.255.0 U 3003 0 0 wlan0
[...] # Generate SLAAC address using the Hardware Address of the interface #slaac hwaddr # OR generate Stable Private IPv6 Addresses based from the DUID slaac private interface wlan0 static ip_address=192.168.2.5/24 static routers=192.168.2.254
-
@davidb2111 Merci.
Effectivement tout est OK de ton côté pour le Wifi.
Comme indiqué plus haut mes routes sont configurées pour eth0 et pas wlan0.
De plus la fin de mon fichier/etc/dhcpd.conf
ne contient que ça :... slaac private metric 400
J'ai commencé à regarder le fichier
/etc/init.d/S09wifi
pour comprendre.
Je me demande si le fait d'avoir tout configuré via Ethernet au 1er boot n'a pas joué dans la config de base (vs quelqu'un qui configure le wifi sur sa carte microSD et qui n'utilise que ça).
Merci. -
As-tu bien renseigner ces paramètres:
wifi.enabled=1 wifi.ssid=SSID wifi.key=KEY wifi.ip=192.168.1.2 wifi.netmask=255.255.255.0 wifi.gateway=192.168.1.1
-
@toto-0
Pour info, dans la prochaine version, il y aura aussiwifi.nameservers=1.1.1.1
pour spécifier le serveur DNS.
-
Oui j'avais tous ces paramètres initialement.
J'ai fait de multiples autres tests pour essayer d'ajouter/remplacer des routes
wlan0
en plus/à la place deseth0
. Sans succès. Quoique je fasse elles n'étaient jamais convervées au reboot.
Du coup j'ai fait :- une copie complète de ma carte microSD + backup du fichier
recalbox.conf
- réinstall complète sur la carte microSD
- copie du fichier
recalbox.conf
sauvegardé vers la partition de boot et renommage enrecalbox-backup.conf
- boot (sans câble Ethernet branché)
Cela semble bien. Le wifi répond et je me connecte. Parfait. Et là un
route -n
me donne :# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 303 0 0 wlan0 192.168.1.0 0.0.0.0 255.255.255.0 U 303 0 0 wlan0
Je ne sais pas trop ce qui s'est passé sur l'install précédente. Bon maintenant je pense pouvoir tout faire uniquement en wifi et oublier l'Ethernet.
Par contre je reboote une 2nd fois et là plus de wifi. Je démonte la carte SD et je vois le fichier
recalbox-backup.conf
que j'avais copié semble avoir été réinitialisé. (?). Donc la config wifi n'est plus là. J'avoue que je ne comprends pas.T.
- une copie complète de ma carte microSD + backup du fichier
-
J'ai recopié mon fichier
recalbox.conf
backup dans/boot
ET dans/recalbox/share/system
et cela semble bon maintenant.
Je suppose que le fait de configurer dans l'interface a dû écraser mon fichier backup.
T. -
Tout semble fonctionner correctement à présent.
Merci beaucoup @davidb2111 pour ton aide précieuse.
T.