Tengo problemas hostapd
para comenzar como servicio. Falla cuando intento iniciarlo:
$ sudo service hostapd start
[FAIL] Starting advanced IEEE 802.11 management: hostapd failed!
Por lo que entiendo, esto usa la configuración en /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"
Mi archivo de configuración de daemon es el siguiente:
$ 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
A pesar de que el servicio no puede iniciarse, puedo iniciarlo directamente por mi cuenta sin error:
$ 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
fuente
fuente
hostapd
para ejecutar viainit.d
(service hostapd start
) y parece que no ocurre nada ... consulte esta publicación del foro .Respuestas:
Todo lo que tienes que hacer es escribir este comando:
te mostrará todos los errores, luego puedes corregirlos en el
hostapd.conf
archivofuente
tienes que configurar:
Encuentra la línea de arriba y dile a la configuración predeterminada dónde está tu.
fuente
Esto también fue un problema para mí y obviamente todavía existe. Solucioné los errores eliminando hostapd de /etc/rc2.d/ y /etc/networking/if-pre-up.d/
/ etc / network / interfaces controla hostapd ahora ..
Un reinicio confirmó que muestra la interfaz; y las estaciones se conectan bien. Anteriormente tuve que entrar y parar ingresar ISC y Hostapd y hacer lo que ahora hace la publicación (en ese orden)
fuente
/etc/defaults/hostapd
como @Matt (no para mí) sugiere en otra respuesta (en lugar de ponerlo/etc/init.d/hostapd
como lo sugiere vlad). Dicho esto, su respuesta particular aquí aborda una condición de carrera que existe incluso después de que se establece DAEMON_CONF, que es más un error en la forma en que se implementan los scripts de inicio de hostapd que cualquier otra cosa. ¡¡Así que gracias por eso!!start-stop-daemon
y hace un trabajo horrible al iniciar un demonio sysv (tanto udhcpd como hostapd). No tengo idea de qué podría estar mal, porque en lo que respecta a systemd hizo su trabajo (y el demonio "salió"). Entonces, si tienes post-up, úsalo.Acabo de encontrarme con este problema. Por defecto, instalar en mi raspian wheezy, hostapd se inicia como S01 en los servicios. Esto hace que comience antes de
ifplugd
que configure eth0 y wlan0. La razón de esto es queS01h[ostapd]
<S01i[fplugd]
ya que las secuencias de comandos se ordenan alfabéticamente para su ejecución.Creo que el puente tiene dificultades para configurarse antes que todo lo demás. Moverlo a S05 tampoco ayudó, así que lo moví a rc.local, que se ejecuta "un rato" después de todo lo demás. También eliminé todos los enlaces de rc [2-5] .d a
hostapd
. Creo que S05 aún es demasiado pronto para que dhclient termine correctamente. No estoy seguro de que esto sea de acuerdo con las mejores prácticas. Lo que parece suceder ahora es que ifplugd nobr0
aparece peroeth0
es más cooperativo. No estoy seguro de por qué wpa_supplicant falla aquí, probablemente porquewlan0
ya se prometióbr0
. Necesita ser deshabilitado de todos modos. Más tarde, hostapd intenta volverbr0
a aparecer y tiene éxito, ya queeth0
está bien y nadie tomó el controlwlan0
.Hay otra configuración posible en la que podría especificar una opción
post-up
/ en (interfaces de usuario). Podrías comenzar / detenerte desde allí. Sin embargo, no pude hacerlo funcionar, pero parece una solución mucho más limpia.pre-down
br0
/etc/network/interfaces
hostapd
fuente
Creo que el problema es con sus citas en la línea 11 de
/etc/default/hostapd
:Que debería leer:
Tu publicación realmente me ayudó a resolver mi problema, ¡así que gracias!
fuente
Es necesario establecer
DAEMON_CONF
en/etc/init.d/hostpad
.Es bastante obvio si lo analizas
/etc/init.d/hostapd
, el valor predeterminado se ve así:porque
DAEMON_CONF
está vacío para empezar, el script sale en la línea 24. Lástima que no haya ningún mensaje de error ni nada. Cambiando la línea 17 ay poner la configuración en el archivo especificado funcionó para mí.
fuente
/etc/init.d/hostapd
(que ha escrito mal como hostPAD en su primera línea) ni/etc/defaults/hostapd
.En Arch Linux, donde systemd parece la norma sobre rc / init.d tuve un problema similar. Esta respuesta difiere de las demás en las siguientes formas:
El archivo de configuración no reside en,
/etc/init.d
sino en algún lugar debajo/etc/systemd/system/
. Específicamente/etc/systemd/system/multi-user.target.wants/hostapd
, en mi caso, donde laExecStart
línea apunta al archivo de configuración utilizado.Es importante destacar que este archivo de configuración también apunta al binario utilizado, a saber
/usr/bin/hostapd
.La solución es verificar qué archivo hostapd está ejecutando realmente. ejecutar
whereis
le dirá qué versiones están disponibles y dónde se encuentran. Entoncesproduce algo como
La prueba de cada uno llamando sistemáticamente
PATH/hostapd /etc/hostapd/hostapd.conf
a cada unoPATH
identifica cuál está invocando realmente y cuál está invocando systemd. Nuevamente, en mi caso, el último camino es el que estaba invocando cuando entrésudo hostapd /etc/hostapd/hostapd.conf
. El segundo es lo que invoca systemd.El truco consiste en copiar el binario de
/usr/bin/local
a/usr/bin
o a punto de systemd a la hostapd de trabajo. Creo que la primera es la opción "más segura".Nuevamente, en mi caso, el binario debajo
/usr/bin/local
vino de compilar el controlador Realtek desde la fuente de su sitio web como se describe aquí . Bien hecho a Realtek por soportar Linux.Espero que esto ayude, no es específico para mi sistema (Arch (Arm) Linux en una Raspberry Pi B) y califica como una respuesta adecuada de acuerdo con las reglas de la UE.
fuente
Agregar 10 segundos de suspensión en el archivo
/etc/init.d/hostapd
solucionó el problema para mí.1)
sudo nano /etc/init.d/hostapd
2) Agregue la secciónsleep
enstart)
como a continuaciónfuente