Ich habe Probleme, hostapd
als Dienst zu beginnen. Es schlägt fehl, wenn ich versuche, es zu starten:
$ sudo service hostapd start
[FAIL] Starting advanced IEEE 802.11 management: hostapd failed!
Soweit ich weiß, verwendet dies die Konfiguration in /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"
Meine Daemon-Konfigurationsdatei sieht wie folgt aus:
$ 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
Obwohl der Dienst nicht gestartet werden konnte, kann ich ihn ohne Fehler direkt selbst starten:
$ 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
quelle
quelle
hostapd
überinit.d
(service hostapd start
) ausgeführt zu werden, und anscheinend nichts auftritt, lesen Sie diesen Forumsbeitrag .Antworten:
Alles was Sie tun müssen, ist diesen Befehl zu schreiben:
Es listet alle Fehler auf und Sie können sie in der
hostapd.conf
Datei korrigierenquelle
Sie müssen konfigurieren:
Suchen Sie die obige Zeile und teilen Sie der Standardkonfiguration mit, wo sich Ihre befindet.
quelle
Das war auch für mich ein Problem und ist offensichtlich noch vorhanden. Ich habe die Fehler behoben, indem ich hostapd aus /etc/rc2.d/ und /etc/networking/if-pre-up.d/ entfernt habe.
/ etc / network / interfaces steuert jetzt hostapd.
Ein Neustart hat bestätigt, dass die Schnittstelle aufgerufen wird. und Stationen verbinden gut. Früher musste ich ssh in und isc und hostapd stoppen und tun, was das Post-Up jetzt macht (in dieser Reihenfolge)
quelle
/etc/defaults/hostapd
so einstellen, wie @Matt (nicht ich) es in einer anderen Antwort vorschlägt (anstatt es hacker einzutragen,/etc/init.d/hostapd
wie vlad es vorschlägt). Ihre spezielle Antwort hier geht jedoch auf eine Race-Bedingung ein, die auch nach dem Setzen von DAEMON_CONF besteht. Dies ist mehr ein Fehler bei der Implementierung der Start-Skripte von hostapd als alles andere. Also, danke dafür !!start-stop-daemon
hat einen beschissenen Job beim Starten eines Sysv-Daemons gemacht (sowohl udhcpd als auch hostapd). Ich habe keine Ahnung, was falsch sein könnte, denn was das System angeht, hat es seinen Job gemacht (und der Daemon "beendet"). Also, wenn Sie post-up haben, verwenden Sie es.Ich bin gerade auf dieses Problem gestoßen. Standardmäßig wird hostapd auf meinem Raspian Wheezy als S01 in den Diensten gestartet. Damit kann es
ifplugd
losgehen, bevor eth0 und wlan0 konfiguriert werden. Der Grund dafür ist, dassS01h[ostapd]
<S01i[fplugd]
Skripte zur Ausführung in alphabetischer Reihenfolge sortiert werden.Ich denke, dass es der Bridge schwer fällt, sich vor allem anderen zu konfigurieren. Das Verschieben nach S05 hat auch nicht geholfen, also habe ich es stattdessen nach rc.local verschoben, was nach allem anderen "eine Weile" ausgeführt wird. Ich habe auch alle Links von rc [2-5] .d nach entfernt
hostapd
. Ich denke, dass S05 noch zu früh ist, als dass dhclient es richtig beenden könnte. Ich bin nicht sicher, ob dies den Best Practices entspricht. Was jetzt zu passieren scheint, ist, dass ifplugd nicht aufruft,br0
sonderneth0
kooperativer ist. Ich bin mir nicht sicher, warum wpa_supplicant hier scheitert, wahrscheinlich weilwlan0
es schon versprochen istbr0
. Es muss sowieso deaktiviert werden. Später versucht hostapd esbr0
erneut und hat Erfolg, daeth0
es in Ordnung ist und niemand die Kontrolle übernommen hatwlan0
.Es gibt eine andere mögliche Konfiguration, in der Sie eine
post-up
/pre-down
-Option fürbr0
in/etc/network/interfaces
(man-Schnittstellen) angeben können. Sie könntenhostapd
von dort aus starten / stoppen . Ich habe es jedoch nicht geschafft, es zum Laufen zu bringen, aber das sieht nach einer viel saubereren Lösung aus.quelle
Ich denke, das Problem liegt in Ihren Zitaten in Zeile 11 von
/etc/default/hostapd
:Welches sollte lauten:
Ihr Beitrag hat mir tatsächlich geholfen, mein Problem zu lösen. Vielen Dank!
quelle
Sie müssen festgelegt
DAEMON_CONF
in/etc/init.d/hostpad
.Es ist wirklich ziemlich offensichtlich, wenn man sich
/etc/init.d/hostapd
das anschaut. Die Standardeinstellung sieht so aus:Da
DAEMON_CONF
es zu Beginn leer ist, wird das Skript in Zeile 24 beendet. Schade, dass keine Fehlermeldung oder etwas anderes angezeigt wird. Zeile 17 auf ändernund das Einfügen der Konfiguration in die angegebene Datei hat bei mir funktioniert.
quelle
/etc/init.d/hostapd
in der ersten Zeile (die Sie als hostPAD falsch geschrieben haben) noch in der ersten Zeile definiert ist/etc/defaults/hostapd
.Unter Arch Linux, wo systemd die Norm über rc / init.d zu sein scheint, hatte ich ein ähnliches Problem. Diese Antwort unterscheidet sich von den anderen in folgenden Punkten:
Die Konfigurationsdatei befindet sich nicht in,
/etc/init.d
sondern irgendwo darunter/etc/systemd/system/
. Insbesondere/etc/systemd/system/multi-user.target.wants/hostapd
in meinem Fall, wo dieExecStart
Linie auf die verwendete Konfigurationsdatei zeigt.Wichtig ist, dass diese Konfigurationsdatei auch auf die verwendete Binärdatei verweist, nämlich
/usr/bin/hostapd
.Das Update ist dann, um zu überprüfen, welche Hostapd-Datei Sie tatsächlich ausführen. Laufen
whereis
wird Ihnen sagen, welche Versionen verfügbar sind und wo sie sich befinden. Soproduziert so etwas wie
Das Testen jedes einzelnen durch systematisches Aufrufen
PATH/hostapd /etc/hostapd/hostapd.conf
jedes einzelnenPATH
identifiziert, welches Sie tatsächlich aufrufen und welches Systemd aufruft. Wieder ist in meinem Fall der letzte Pfad, den ich angerufen habe, als ich eingedrungen binsudo hostapd /etc/hostapd/hostapd.conf
. Das zweite ist das, was systemd aufgerufen hat.Der Trick besteht darin, die Binärdatei von
/usr/bin/local
nach zu kopieren/usr/bin
oder systemd auf das funktionierende hostapd zu verweisen. Ich glaube, ersteres ist die "sicherere" Option.Auch in meinem Fall kam die Binärdatei unter
/usr/bin/local
von der Kompilierung des Realtek-Treibers aus der Quelle von ihrer Website, wie hier beschrieben . Wir danken Realtek für die Unterstützung von Linux.Hoffe das hilft, ist nicht systemspezifisch (Arch (Arm) Linux auf einem Raspberry Pi B) und qualifiziert sich als passende Antwort nach den UE-Regeln.
quelle
Das Hinzufügen von 10 Sekunden Schlaf in der Datei hat
/etc/init.d/hostapd
das Problem für mich behoben.1)
sudo nano /etc/init.d/hostapd
2) In diesleep
instart)
Abschnitt wie untenquelle