しかし、最後の端末コマンドを実行するとこのエラーメッセージが表示されます
Configuration file: hostapd.conf
nl80211: Could not configure driver mode
nl80211 driver initialization failed.
hostapd_free_hapd_data: Interface wlan0 wasn't started
@bainが正しく指摘したように、この目的のためにランチパッドでバグが発生しました。この回避策は、私にとって完璧に機能することを示唆しています:
Sudo nmcli nm wifi off
Sudo rfkill unblock wlan
Sudo ifconfig wlan0 10.15.0.1/24 up
sleep 1
Sudo service isc-dhcp-server restart
Sudo service hostapd restart
最初の2行は、ネットワークマネージャーからのwlanを停止し、インターフェイスのブロックを解除するため、ifconfigが機能します。
PDATE:ただし、最初のコマンドでError: Object 'nm' is unknown
というエラーメッセージが表示される場合は、代わりにこれを使用します。
Sudo nmcli radio wifi off
次のコマンドはifconfigを使用してwlanを起動し、2秒の遅延を許可してから、dhcpサーバーを再起動し(セットアップではこの再起動は必要ありませんでした)、最後にhostapdサービスを開始します。
これで、問題なしで起動するはずです。
Kali linuxとhostapd 2.4を実行しているRaspberry Piでこのエラーが発生したばかりです
airmon-ng check kill
ネットワークプロセスを強制終了せずに表示するには、airmon-ng check
を使用します。それらを殺した後、再びhostapdを開始しましたが、エラーは発生しなくなりました。
他のネットワーク機能でこれらのプロセスが必要になる場合があるため、そのためにラズベリーを再起動しましたが、個別に起動することもできます。
@bainにリンクされているバグによると、最も簡単な解決策は、hostapdで実行されるインターフェイスのNetwork Managerを無効にすることです。
そこに記載されているように:
WORKAROUND: For this to persist through reboots, execute the following in a terminal:
Sudo nano /etc/NetworkManager/NetworkManager.conf
Add the following entry where the x's are replaced with your WiFi MAC address, save, and then reboot:
[keyfile]
unmanaged-devices=mac:xx:xx:xx:xx:xx:xx
私は同じ問題に遭遇しました。最初に試したのは、debianリポジトリからhostapdをv2.1からv2.3に手動で更新することでした。問題は解決しませんでした。
このスクリプトを作成しました。これは、WLANドライバーのブロックを解除するコマンドのリストです。そして、ようやく、リモートの場所に展開された有効なAPができました。
スクリプトを/usr/bin/enableAP.sh
に保存しました。起動時に実行されるように、必ずcrontabに含めてください。
#!/bin/sh
/bin/sleep 30
/usr/sbin/service hostapd stop
/usr/sbin/service network-manager stop
/sbin/ifdown wlan0
/sbin/iwconfig wlan0 mode Managed
/usr/sbin/rfkill unblock wlan
/usr/bin/nmcli radio wifi off
/usr/sbin/service hostapd stop
/bin/sleep 10
/usr/sbin/service hostapd start
新しい仮想マシンとhostapdをインストールした直後にこの問題を回避したい場合は、ubuntuがhostapdをアップグレードするのをブロックする必要があります。Sudo apt-get upgrade
を使用すると、このパッケージがv2.1にアップグレードされます。
Hostapdへの今後のアップグレードをブロックするには、Sudo apt-mark hold hostapd
を使用する必要があります。
これを試して: