J'ai du mal hostapd
à démarrer en tant que service. Il échoue lorsque j'essaie de le démarrer:
$ sudo service hostapd start
[FAIL] Starting advanced IEEE 802.11 management: hostapd failed!
D'après ce que je comprends, cela utilise la configuration dans /etc/default/hostapd
:
$ cat /etc/default/hostapd
# Defaults for hostapd initscript
#
# See /usr/share/doc/hostapd/README.Debian for information about alternative
# methods of managing hostapd.
#
# Uncomment and set DAEMON_CONF to the absolute path of a hostapd configuration
# file and hostapd will be started during system boot. An example configuration
# file can be found at /usr/share/doc/hostapd/examples/hostapd.conf.gz
#
#DAEMON_CONF=""
DAEMON_CONF=”/etc/hostapd/hostapd.conf”
# Additional daemon options to be appended to hostapd command:-
# -d show more debug messages (-dd for even more)
# -K include key data in debug messages
# -t include timestamps in some debug messages
#
# Note that -B (daemon mode) and -P (pidfile) options are automatically
# configured by the init.d script and must not be added to DAEMON_OPTS.
#
DAEMON_OPTS="-d"
Mon fichier de configuration de démon est le suivant:
$ cat /etc/hostapd/hostapd.conf
interface=wlan0
bridge=br0
driver=rtl871xdrv
country_code=USA
ctrl_interface=wlan0
ctrl_interface_group=0
ssid=KITT
hw_mode=g
channel=1
wpa=3
wpa_passphrase=georgeisyourfriend
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
beacon_int=100
auth_algs=3
macaddr_acl=0
wmm_enabled=1
eap_reauth_period=360000000
Malgré le service qui ne démarre pas, je peux le démarrer directement sans erreur:
$ sudo hostapd -d /etc/hostapd/hostapd.conf
random: Trying to read entropy from /dev/random
Configuration file: /etc/hostapd/hostapd.conf
ctrl_interface_group=0
drv->ifindex=3
Configure bridge br0 for EAPOL traffic.
BSS count 1, BSSID mask 00:00:00:00:00:00 (0 bits)
Completing interface initialization
Mode: IEEE 802.11g Channel: 1 Frequency: 2412 MHz
RATE[0] rate=10 flags=0x1
RATE[1] rate=20 flags=0x1
RATE[2] rate=55 flags=0x1
RATE[3] rate=110 flags=0x1
RATE[4] rate=60 flags=0x0
RATE[5] rate=90 flags=0x0
RATE[6] rate=120 flags=0x0
RATE[7] rate=180 flags=0x0
RATE[8] rate=240 flags=0x0
RATE[9] rate=360 flags=0x0
RATE[10] rate=480 flags=0x0
RATE[11] rate=540 flags=0x0
Flushing old station entries
Deauthenticate all stations
+rtl871x_sta_deauth_ops, ff:ff:ff:ff:ff:ff is deauth, reason=2
rtl871x_set_key_ops
rtl871x_set_key_ops
rtl871x_set_key_ops
rtl871x_set_key_ops
Using interface wlan0 with hwaddr 80:1f:02:d3:cb:b8 and ssid 'KITT'
Deriving WPA PSK based on passphrase
SSID - hexdump_ascii(len=4):
4b 49 54 54 KITT
PSK (ASCII passphrase) - hexdump_ascii(len=18): [REMOVED]
PSK (from passphrase) - hexdump(len=32): [REMOVED]
rtl871x_set_wps_assoc_resp_ie
rtl871x_set_wps_beacon_ie
rtl871x_set_wps_probe_resp_ie
urandom: Got 20/20 bytes from /dev/urandom
GMK - hexdump(len=32): [REMOVED]
Key Counter - hexdump(len=32): [REMOVED]
WPA: group state machine entering state GTK_INIT (VLAN-ID 0)
GTK - hexdump(len=32): [REMOVED]
WPA: group state machine entering state SETKEYSDONE (VLAN-ID 0)
rtl871x_set_key_ops
rtl871x_set_beacon_ops
rtl871x_set_hidden_ssid ignore_broadcast_ssid:0, KITT,4
rtl871x_set_acl
wlan0: Setup of interface done.
networking
services
init-script
init.d
hostapd
gnychis
la source
la source
hostapd
pour exécuter viainit.d
(service hostapd start
) et que rien ne semble se produire ... reportez-vous à ce message sur le forum .Réponses:
Tout ce que vous avez à faire est d'écrire cette commande:
il vous listera toutes les erreurs, vous pourrez ensuite les corriger dans le
hostapd.conf
fichierla source
vous devez configurer:
Trouvez la ligne ci-dessus et dites à la configuration par défaut où se trouve votre configuration.
la source
Ce fut un problème pour moi aussi et existe évidemment toujours. J'ai corrigé les erreurs en supprimant hostapd de /etc/rc2.d/ et /etc/networking/if-pre-up.d/
/ etc / network / interfaces contrôle maintenant hostapd.
Un redémarrage a confirmé qu'il faisait apparaître l'interface; et les stations se connectent bien. Auparavant, je devais faire ssh et arrêter isc et hostapd et faire ce que le post-up fait maintenant (dans cet ordre)
la source
/etc/defaults/hostapd
comme @Matt (pas moi) le suggère dans une autre réponse (plutôt que de le mettre en hack/etc/init.d/hostapd
comme le suggère vlad). Cela dit, votre réponse particulière ici traite d'une condition de concurrence qui existe même après que DAEMON_CONF est défini, ce qui est plus un bug dans la façon dont les scripts de démarrage de hostapd sont implémentés qu'autre chose. Alors merci pour ça !!start-stop-daemon
et fait un travail de merde pour démarrer un démon sysv (udhcpd et hostapd). Je n'ai aucune idée de ce qui pourrait être faux, car pour ce qui est de systemd, il a fait son travail (et le démon "est sorti"). Donc, si vous avez un post-up, utilisez-le.Je viens de rencontrer ce problème. Par défaut, installez sur mon raspian wheezy, hostapd est démarré en tant que S01 dans les services. Cela le fait démarrer avant
ifplugd
ce qui configure eth0 et wlan0. La raison en est queS01h[ostapd]
<S01i[fplugd]
puisque les scripts sont triés par ordre alphabétique pour exécution.Je pense que le pont a du mal à se configurer avant tout le reste. Le déplacer vers S05 n'a pas aidé non plus, je l'ai donc déplacé vers rc.local à la place, qui est exécuté "un peu" après tout le reste. J'ai également supprimé tous les liens de rc [2-5] .d vers
hostapd
. Je pense que S05 est encore trop tôt pour que dhclient se termine correctement. Je ne suis pas sûr que ce soit conforme aux meilleures pratiques. Ce qui semble se produire maintenant, c'est que ifplugd ne parvient pas à apparaîtrebr0
, maiseth0
est plus coopératif. Je ne sais pas pourquoi wpa_supplicant échoue ici, probablement parce quewlan0
c'est déjà promisbr0
. Il doit être désactivé de toute façon. Plus tard, hostapd essaie debr0
revenir et réussit car touteth0
va bien et personne n'a pris le contrôlewlan0
.Il existe une autre configuration possible dans laquelle vous pouvez spécifier une option
post-up
/pre-down
pourbr0
in/etc/network/interfaces
(interfaces homme). Vous pouvez démarrer / arrêter àhostapd
partir de là. Je n'ai pas réussi à le faire fonctionner cependant, mais cela ressemble à une solution beaucoup plus propre.la source
Je pense que le problème vient de vos citations à la ligne 11 de
/etc/default/hostapd
:Ce qui devrait se lire:
Votre message m'a en fait aidé à résoudre mon problème, alors merci!
la source
Vous devez définir
DAEMON_CONF
dans/etc/init.d/hostpad
.C'est vraiment assez évident si vous regardez
/etc/init.d/hostapd
, la valeur par défaut ressemble à ceci:car
DAEMON_CONF
est vide pour commencer, le script se termine à la ligne 24. Dommage qu'il n'y ait pas de message d'erreur ou quoi que ce soit. Changer la ligne 17 enet mettre la configuration dans le fichier spécifié a fonctionné pour moi.
la source
/etc/init.d/hostapd
(que vous avez mal orthographié comme hostPAD dans votre première ligne) ni/etc/defaults/hostapd
.Sur Arch Linux, où systemd semble la norme par rapport à rc / init.d, j'ai eu un problème similaire. Cette réponse diffère des autres sur les points suivants:
Le fichier de configuration ne réside pas dans
/etc/init.d
mais quelque part sous/etc/systemd/system/
. Plus précisément/etc/systemd/system/multi-user.target.wants/hostapd
, dans mon cas, où laExecStart
ligne pointe vers le fichier de configuration utilisé.Il est important de noter que ce fichier de configuration pointe également vers le binaire utilisé, à savoir
/usr/bin/hostapd
.Le correctif consiste ensuite à vérifier le fichier hostapd que vous exécutez réellement. l'exécution
whereis
vous dira quelles versions sont disponibles et où elles se trouvent. Doncproduit quelque chose comme
Tester chacun en appelant systématiquement
PATH/hostapd /etc/hostapd/hostapd.conf
chacunPATH
identifie celui que vous invoquez réellement et celui que systemd invoque. Encore une fois, dans mon cas, le dernier chemin est ce que j'invoquais lorsque j'ai poinçonnésudo hostapd /etc/hostapd/hostapd.conf
. Le second est ce que systemd invoquait.L'astuce consiste à copier le binaire de
/usr/bin/local
vers/usr/bin
ou de pointer systemd vers le hostapd de travail. Je crois que le premier est l'option "la plus sûre".Encore une fois, dans mon cas, le sous-binaire
/usr/bin/local
provient de la compilation du pilote Realtek à partir de la source hors de leur site Web, comme décrit ici . Bravo à Realtek pour avoir supporté Linux.J'espère que cela aide, n'est pas spécifique à mon système (Arch (Arm) Linux sur un Raspberry Pi B) et se qualifie comme une réponse appropriée selon les règles de l'UE.
la source
Ajout de 10 secondes de sommeil dans le fichier
/etc/init.d/hostapd
résolu le problème pour moi.1)
sudo nano /etc/init.d/hostapd
2) Ajoutez la sectionsleep
instart)
comme ci-dessousla source