você precisa configurar:
sudo nano /etc/default/hostapd
DAEMON_CONF="/etc/hostapd/hostapd.conf"
Encontre a linha acima e diga a configuração defaul onde está a sua.
Estou tendo problemas para obter o hostapd
como um serviço. Ele 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 do serviço não iniciar, posso iniciá-lo diretamente 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.
você precisa configurar:
sudo nano /etc/default/hostapd
DAEMON_CONF="/etc/hostapd/hostapd.conf"
Encontre a linha acima e diga a configuração defaul onde está a sua.
Tudo o que você precisa fazer é escrever este comando:
sudo hostapd -d /etc/hostapd/hostapd.conf
listará todos os erros, você poderá corrigi-los em hostapd.conf
file
sudo nano /etc/hostapd/hostapd.conf
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.
iface wlan0 inet static
post-up /usr/sbin/hostapd -B /etc/hostapd/hostapd.conf
post-up service isc-dhcp-server restart
address 192.168.10.1
netmask 255.255.255.0
Uma reinicialização confirmou a interface; e estações conectam bem. Anteriormente eu tive que ssh e parar isc e hostapd e fazer o que o post-up faz agora (nessa ordem)
Acabei de me deparar com este problema. Por padrão, instalar no meu raspian wheezy, hostapd é iniciado como S01 em serviços. Isso faz com que seja iniciado antes de ifplugd
, que configura eth0 e wlan0. A razão para isso é que S01h[ostapd]
< S01i[fplugd]
, pois os scripts são classificados em ordem alfabética para execução.
Eu acho que a ponte fica difícil de configurar antes de todo o resto. Movê-lo 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 do rc [2-5] .d para hostapd
. Eu acho que o 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 ifplugd falha em trazer br0
para cima, mas eth0
é mais cooperativo. Não tenho certeza porque wpa_supplicant falha aqui, provavelmente porque wlan0
já está prometido para br0
. Precisa ser desativado de qualquer maneira. Mais tarde, o hostapd tenta trazer br0
novamente e é bem-sucedido, pois eth0
está ok e ninguém assumiu o controle de wlan0
.
Há outra configuração possível na qual você pode especificar uma opção post-up
/ pre-down
para br0
in /etc/network/interfaces
(interfaces man). Você poderia iniciar / parar hostapd
de lá. Eu não consegui fazê-lo funcionar no entanto, mas isso parece uma solução muito mais limpa.
Você precisa definir DAEMON_CONF
em /etc/init.d/hostpad
.
É realmente óbvio se você olhar para /etc/init.d/hostapd
,
o padrão é assim:
...
14 PATH=/sbin:/bin:/usr/sbin:/usr/bin
15 DAEMON_SBIN=/usr/sbin/hostapd
16 DAEMON_DEFS=/etc/default/hostapd
17 DAEMON_CONF=
18 NAME=hostapd
19 DESC="advanced IEEE 802.11 management"
20 PIDFILE=/var/run/hostapd.pid
21
22 [ -x "$DAEMON_SBIN" ] || exit 0
23 [ -s "$DAEMON_DEFS" ] && . /etc/default/hostapd
24 [ -n "$DAEMON_CONF" ] || exit 0
...
porque DAEMON_CONF
está vazio para começar, o script sai na linha 24. Pena que não há mensagem de erro nem nada. Alterando a linha 17 para
DAEMON_CONF=/etc/hostapd/hostapd.conf
e colocar a configuração no arquivo especificado funcionou para mim.
Eu acho que o problema é com suas citações na linha 11 de /etc/default/hostapd
:
”/etc/hostapd/hostapd.conf”
Que deve ler:
"/etc/hostapd/hostapd.conf"
Seu post realmente me ajudou a resolver meu problema, então, obrigado!
No Arch Linux, onde o systemd parece ser a norma sobre o rc / init.d eu tive um problema semelhante. Essa resposta difere das outras das seguintes maneiras:
O arquivo de configuração não reside em /etc/init.d
, mas em algum lugar abaixo de /etc/systemd/system/
. Especificamente /etc/systemd/system/multi-user.target.wants/hostapd
, no meu caso, onde a linha ExecStart
aponta para o arquivo de configuração usado.
É importante destacar que esse arquivo de configuração também aponta para o binário usado, ou seja, /usr/bin/hostapd
.
A correção é então verificar qual arquivo hostapd você está realmente executando. executar whereis
dirá quais versões estão disponíveis e onde elas estão localizadas. Então
whereis hostapd
produz algo como
/sbin/hostapd /usr/bin/hostapd /usr/local/bin/hostapd
Testando cada um chamando sistematicamente PATH/hostapd /etc/hostapd/hostapd.conf
para cada PATH
identifica qual deles você está realmente invocando e qual deles o systemd está invocando. Novamente no meu caso, o último caminho é o que eu estava invocando quando eu digitei sudo hostapd /etc/hostapd/hostapd.conf
. O segundo é o que o systemd estava invocando.
O truque é copiar o binário de /usr/bin/local
para /usr/bin
ou apontar systemd para o hostapd funcional. Eu acredito que o primeiro é a opção "mais segura".
sudo mv /usr/bin/hostapd /usr/bin hostapd.bkp # delete later as necessary
sudo cp /usr/local/bin/hostapd /usr/bin
Novamente no meu caso, o binário abaixo de /usr/bin/local
veio da compilação do driver Realtek a partir de sua fonte website conforme descrito aqui .
Bem feito para a Realtek por apoiar o Linux.
Espero que isso ajude, não é específico para o meu sistema (Arch (Arm) Linux em um Raspberry Pi B) e qualifica como uma resposta adequada de acordo com as regras do UE.
Adicionando 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ção sleep
in start)
como abaixo
case "$1" in
start)
log_daemon_msg "Starting $DESC" "$NAME"
sleep 10
start-stop-daemon --start --oknodo --quiet --exec "$DAEMON_SBIN" \
--pidfile "$PIDFILE" -- $DAEMON_OPTS >/dev/null
log_end_msg "$?"
;;