У меня проблемы hostapd
с началом работы в качестве службы. Не удается, когда я пытаюсь запустить его:
$ sudo service hostapd start
[FAIL] Starting advanced IEEE 802.11 management: hostapd failed!
Из того, что я понимаю, это использует конфигурацию в /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"
Мой файл конфигурации демона выглядит следующим образом:
$ 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
Несмотря на то, что служба не запускается, я могу запустить ее самостоятельно без ошибок:
$ 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
источник
источник
hostapd
с запуском черезinit.d
(service hostapd start
) и кажется, что ничего не происходит ... обратитесь к этому сообщению на форуме .Ответы:
Все, что вам нужно сделать, это написать эту команду:
в нем будут перечислены все ошибки, вы можете исправить их в
hostapd.conf
файлеисточник
Вы должны настроить:
Найдите строку выше и сообщите конфигурации по умолчанию, где находится ваша.
источник
Это было проблемой для меня и, очевидно, все еще существует. Я исправил ошибки, удалив hostapd из /etc/rc2.d/ и /etc/networking/if-pre-up.d/
/ etc / network / interfaces теперь управляет hostapd ..
Перезагрузка подтвердила, что вызывает интерфейс; и станции подключаются нормально. Раньше я был SSH и остановить ISC и hostapd и делать то , что вверх пост теперь делает (в таком порядке)
источник
/etc/defaults/hostapd
качестве @ Matt (не я) предлагает в другой ответ (а не hackily положить его в/etc/init.d/hostapd
как предполагает влад). Тем не менее, ваш конкретный ответ здесь касается состояния гонки, которое существует даже после того, как DAEMON_CONF установлен, что является скорее ошибкой в том, как реализуются сценарии запуска hostapd, чем чем-либо еще. Итак, спасибо за это!start-stop-daemon
и делает дрянную работу при запуске демона sysv (как udhcpd, так и hostapd). Я понятия не имею, что может быть не так, потому что, насколько идет systemd, он сделал свою работу (и демон "вышел"). Так что, если у вас есть пост-ап, используйте его.Я просто столкнулся с этой проблемой. По умолчанию устанавливается на моем raspian wheezy, hostapd запускается как S01 в сервисах. Это заставляет его запускаться до того, как
ifplugd
настроить eth0 и wlan0. Причина этого заключается в том, чтоS01h[ostapd]
<S01i[fplugd]
сценарии сортируются в алфавитном порядке для выполнения.Я думаю, что мосту тяжело настраиваться раньше всего остального. Перемещение на S05 тоже не помогло, поэтому я переместил его на rc.local, который выполняется через некоторое время после всего остального. Я также удалил все ссылки с rc [2-5] .d на
hostapd
. Я думаю, что S05 еще слишком рано, чтобы dhclient смог закончить правильно. Я не уверен, что это в соответствии с лучшими практиками. Похоже, что сейчас происходит то, что ifplugd не может быть запущен,br0
ноeth0
более готов к сотрудничеству. Я не уверен, почему wpa_supplicant терпит неудачу здесь, вероятно, потому чтоwlan0
это уже обещаноbr0
. Это должно быть отключено в любом случае. Позже, hostapd пытаетсяbr0
снова подняться и преуспевает, такeth0
как все в порядке, и никто не взял контроль над нимwlan0
.Существует другая возможная конфигурация, где вы можете указать параметр
post-up
/pre-down
дляbr0
in/etc/network/interfaces
(man interfaces). Вы можете начать / остановитьhostapd
оттуда. Однако мне не удалось заставить его работать, но это выглядит намного более чистым решением.источник
Я думаю, что проблема с вашими цитатами в строке 11 из
/etc/default/hostapd
:Который должен читать:
Ваш пост фактически помог мне решить мою проблему, так что спасибо!
источник
Вы должны установить
DAEMON_CONF
в/etc/init.d/hostpad
.Это действительно довольно очевидно, если вы посмотрите на
/etc/init.d/hostapd
, по умолчанию выглядит так:Поскольку
DAEMON_CONF
для начала пусто, скрипт завершается в строке 24. Жаль, что нет сообщения об ошибке или чего-то еще. Изменение строки 17 наи установка конфигурации в указанном файле работала для меня.
источник
/etc/init.d/hostapd
(который вы ошибочно указали как hostPAD в первой строке), ни в/etc/defaults/hostapd
.На Arch Linux, где systemd кажется нормой над rc / init.d, у меня была похожая проблема. Этот ответ отличается от других следующими способами:
Файл конфигурации не находится,
/etc/init.d
но где-то под/etc/systemd/system/
. В частности/etc/systemd/system/multi-user.target.wants/hostapd
, в моем случае, гдеExecStart
строка указывает на используемый файл конфигурации.Важно, что этот файл конфигурации также указывает на используемый двоичный файл, а именно
/usr/bin/hostapd
.Затем исправьте, чтобы проверить, какой файл hostapd вы на самом деле выполняете. Running
whereis
покажет вам, какие версии доступны и где они находятся. Такпроизводит что-то вроде
Тестирование каждого путем систематического вызова
PATH/hostapd /etc/hostapd/hostapd.conf
каждогоPATH
идентифицирует, какой из них вы на самом деле вызываете, а какой вызывает systemd. Опять же, в моем случае последний путь - это то, что я использовал, когда пробивалsudo hostapd /etc/hostapd/hostapd.conf
. Второй - это то, что вызывал systemd.Хитрость заключается в том, чтобы скопировать двоичный файл
/usr/bin/local
в/usr/bin
или точку Systemd к рабочему hostapd. Я считаю, что первый вариант является «более безопасным».Опять же, в моем случае двоичный файл
/usr/bin/local
был получен в результате компиляции драйвера Realtek из исходного кода сайта, как описано здесь . Молодцы Realtek за поддержку Linux.Надеюсь, это поможет, не относится к моей системе (Arch (Arm) Linux на Raspberry Pi B) и считается подходящим ответом в соответствии с правилами UE.
источник
Добавление 10 секунд сна в файл
/etc/init.d/hostapd
исправило проблему для меня.1)
sudo nano /etc/init.d/hostapd
2) Добавьтеsleep
вstart)
раздел, как показано нижеисточник