Estou tendo problemas hostapd
para começar como um serviço. Falha quando tento iniciá-lo:
$ sudo service hostapd start
[FAIL] Starting advanced IEEE 802.11 management: hostapd failed!
Pelo que entendi, isso usa a configuração em /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"
Meu arquivo de configuração do daemon é o seguinte:
$ 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
Apesar de o serviço falhar ao iniciar, eu posso iniciá-lo diretamente por conta própria, sem erros:
$ 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
fonte
fonte
hostapd
para rodar viainit.d
(service hostapd start
) e nada parece estar ocorrendo ... consulte esta postagem no fórum .Respostas:
Tudo o que você precisa fazer é escrever este comando:
ele listará todos os erros, você poderá corrigi-los no
hostapd.conf
arquivofonte
você precisa configurar:
Encontre a linha acima e diga à configuração padrão onde está a sua.
fonte
Este foi um problema para mim também e obviamente ainda existe. Corrigi os erros removendo o hostapd de /etc/rc2.d/ e /etc/networking/if-pre-up.d/
/ etc / network / interfaces controla o hostapd agora ..
Uma reinicialização confirmou que abre a interface; e estações conectam bem. Anteriormente, eu tinha que ssh e parar o isc e o hostapd e fazer o que o post-up agora faz (nessa ordem)
fonte
/etc/defaults/hostapd
como @Matt (não eu) sugere em outra resposta (em vez de colocá-lo de maneira hackily/etc/init.d/hostapd
como sugere vlad). Dito isto, sua resposta específica aqui aborda uma condição de corrida que existe mesmo depois que DAEMON_CONF é definido, o que é mais um bug na maneira como os scripts de inicialização do hostapd são implementados. Então, obrigado por isso!!start-stop-daemon
e faz um trabalho de baixa qualidade ao iniciar um daemon sysv (udhcpd e hostapd). Eu não tenho idéia do que poderia estar errado, porque no que diz respeito ao systemd, ele fez seu trabalho (e o daemon "saiu"). Portanto, se você tiver um post-up, use-o.Acabei de encontrar este problema. Por instalação padrão no meu raspian wheezy, o hostapd é iniciado como S01 nos serviços. Isso faz com que seja iniciado antes do
ifplugd
qual configura eth0 e wlan0. A razão para isso é queS01h[ostapd]
<S01i[fplugd]
como os scripts são classificados em ordem alfabética para execução.Eu acho que a ponte fica difícil de configurar antes de tudo. Mover para S05 também não ajudou, então mudei para rc.local, que é executado "um tempo" depois de todo o resto. Também removi todos os links de rc [2-5] .d para
hostapd
. Eu acho que S05 ainda é muito cedo para o dhclient terminar corretamente. Não tenho certeza se isso está de acordo com as melhores práticas. O que parece acontecer agora é que o ifplugd nãobr0
aparece, maseth0
é mais cooperativo. Não sei por que o wpa_supplicant falha aqui, provavelmente porquewlan0
já foi prometidobr0
. Ele precisa ser desativado de qualquer maneira. Mais tarde, o hostapd tentabr0
abrir novamente e consegue, poiseth0
está tudo bem e ninguém assumiu o controlewlan0
.Há outra configuração possível em que você pode especificar uma opção
post-up
/pre-down
parabr0
em/etc/network/interfaces
(interfaces de homem). Você pode começar / parar ahostapd
partir daí. No entanto, não consegui fazê-lo funcionar, mas isso parece uma solução muito mais limpa.fonte
Eu acho que o problema está com suas citações na linha 11 de
/etc/default/hostapd
:O que deve ler:
Sua postagem realmente me ajudou a resolver meu problema, então obrigado!
fonte
Você precisa definir
DAEMON_CONF
no/etc/init.d/hostpad
.É realmente bastante óbvio se você olhar
/etc/init.d/hostapd
, o padrão é assim:porque
DAEMON_CONF
está vazio para começar, o script sai na linha 24. Pena que não há mensagem de erro ou algo assim. Alterando a linha 17 parae colocar a configuração no arquivo especificado funcionou para mim.
fonte
/etc/init.d/hostapd
(que você digitou incorretamente como hostPAD em sua primeira linha) nem/etc/defaults/hostapd
.No Arch linux, onde systemd parece ser a norma sobre o rc / init.d, tive um problema semelhante. Esta resposta difere das outras das seguintes maneiras:
O arquivo de configuração não reside,
/etc/init.d
mas em algum lugar abaixo/etc/systemd/system/
. Especificamente/etc/systemd/system/multi-user.target.wants/hostapd
, no meu caso, onde aExecStart
linha aponta para o arquivo de configuração usado.É importante ressaltar que esse arquivo de configuração também aponta para o binário usado, a saber
/usr/bin/hostapd
.A correção é verificar o arquivo hostapd que você está realmente executando. A execução
whereis
informará quais versões estão disponíveis e onde elas estão localizadas. tãoproduz algo como
O teste de cada um chamando sistematicamente
PATH/hostapd /etc/hostapd/hostapd.conf
cada umPATH
identifica qual deles você está realmente chamando e qual sistema está chamando. Novamente, no meu caso, o último caminho é o que eu estava invocando quando entreisudo hostapd /etc/hostapd/hostapd.conf
. O segundo é o que systemd estava invocando.O truque é copiar o binário a partir
/usr/bin/local
de/usr/bin
ou para ponto systemd ao hostapd de trabalho. Eu acredito que o primeiro é a opção "mais segura".Novamente, no meu caso, o binário abaixo
/usr/bin/local
veio da compilação do driver Realtek a partir da fonte do site, conforme descrito aqui . Parabéns à Realtek por oferecer suporte ao Linux.Espero que isso ajude, não seja específico do meu sistema (Arch (Arm) Linux em um Raspberry Pi B)) e seja qualificado como uma resposta adequada de acordo com as regras da UE.
fonte
Adicionar 10 segundos de suspensão no arquivo
/etc/init.d/hostapd
corrigiu o problema para mim.1)
sudo nano /etc/init.d/hostapd
2) Adicione a seçãosleep
emstart)
como abaixofonte