Sur un système Linux avec systemd
et networkd
Je dois utiliser un point d'accès WLAN sur une interface WLAN, tout en fonctionnant des interfaces WLAN supplémentaires dans la station normale ("Client").
Comme il s'avère, wpa_supplicant.service
va en direct sur toutes mes interfaces WLAN, ce qui irait bien, si seulement toutes ces interfaces WLAN fonctionnaient en mode Station/client. Cependant, alors que wpa_supplicant.service
sert une interface WLAN, ce n'est plus possible (plus?) Que hostapd.service
opère cette interface WLAN en mode Point d'accès AP.
Donc, je veux désactiver wpa_supplicant.service
pour une interface spécifique uniquement, dites wls35u2
. Mon idée était d'avoir une unité [email protected]
que je peux désactiver de manière sélective, mais pour laisser wpa_supplicant.service
activé. Cependant, cela ne semble pas fonctionner ou je fais quelque chose de mal dans le [email protected]
.
Alors, comment puis-je désactiver le fichier WPA Service de suppliant sur une interface spécifique que sans le désactiver globalement?
Utilisez l'option "nohook wpa_supplicant" dans /etc/dhcpcd.conf. Si vous ne voulez pas WPA_Supplicant pour WLAN0, ce serait:
interface wlan0
nohook wpa_supplicant
J'ai eu le même problème. @NPROJECT a trouvé une belle solution. Mais vous n'avez pas à modifier chacune de ces procédures. Allez simplement à la fin du fichier NPROJECTION mentionné (/lib/dhcpcd/dhcpcd-hooks/10-wpa_supplicant
) et modifier ce qui suit si la clause:
[~ # ~] original [~ # ~ ~]
if [ "$ifwireless" = "1" ] && \
type wpa_supplicant >/dev/null 2>&1 && \
type wpa_cli >/dev/null 2>&1
then
case "$reason" in
PREINIT) wpa_supplicant_start;;
RECONFIGURE) wpa_supplicant_reconfigure;;
DEPARTED) wpa_supplicant_stop;;
esac
fi
Ajouter [ "$interface" != "TheInterfaceWPASupplicantShouldBeDisabledOn" ]
de cette façon:
[~ # ~] modifié [~ # ~ ~]
if [ "$ifwireless" = "1" ] && [ "$interface" != "TheInterfaceWPASupplicantShouldBeDisabledOn" ] && \
type wpa_supplicant >/dev/null 2>&1 && \
type wpa_cli >/dev/null 2>&1
then
case "$reason" in
PREINIT) wpa_supplicant_start;;
RECONFIGURE) wpa_supplicant_reconfigure;;
DEPARTED) wpa_supplicant_stop;;
esac
fi
En outre, cela empêchera le gestionnaire de réseau (GUI) dans votre barre des tâches de montrer cette interface.
[edit: regarde @Rweisse répondre à une meilleure façon de le faire]
J'ai eu le même problème sur mon PI de framboise.
Ce que j'ai trouvé, c'est que les deux wpa_supplicant @ wlan0 et wpa_supplicant @ wlan1 (J'ai deux interfaces WLAN) et wpa_supplicant.service ont été handicapés.
J'ai réussi à trouver (sur Raspbian au moins, je ne sais pas comment il se trouve sur d'autres versions debian) que DHCPCD est responsable du début WPA_Supplicant.
Sous / Lib/DHCPCD/DHCPCD-Hooks, il existe un fichier nommé "10-WPA-Supplant", dans lequel vous trouverez des procédures de démarrage/reconfiguration/arrêt pour WPA_Supplicant .
Dans ce fichier, j'ai simplement ajouté une condition sur le $ interface étant traitée. Pour chaque Nom de procédure (début/arrêt/reconfiguration):
PROCEDURE_NAME( )
if [ "$interface" != "TheInterfaceWPASupplicantShouldBeDisabledOn" ] then
Code of the prodecure
else
return 0
fi
Après cela, j'ai redémarré le service DHCPCD avec
systemctl restart dhcpcd
Maintenant, l'interfacewpasupplicantShouldbedisableDon n'est plus un problème à l'aide d'HostapD. Cette solution est un peu brutale, car je ne pense pas que cela soit censé être fait comme ça, mais je n'ai pas pu trouver de manuel sur la façon de faire cette autre voie.
J'espère que cela t'aides.