Ich wollte einen NUC mit eingebautem WLAN und installiertem Ubuntu 16.04 LTS als Access Point einrichten.
Hardware prüfen
lspci
3a:00.0 Network controller: Intel Corporation Device 24fd (rev 78)
Wifi-Gerät ist zwar da, aber
iw list
und
modinfo iwlwifi | grep 24FD
liefern beide keine Ausgabe. Der alte Kernel unterstützt die Hardware noch nicht.
Lösung:
LTS Enablement Stack installieren
sudo apt-get install --install-recommends linux-generic-hwe-16.04
und
sudo reboot
dann wieder mit iw list
testen... geht 😉
Den Schnittstellennamen findet man mit ifconfig -a
, bei mir lautete er wlp58s0.
hostapd einrichten
Installieren: sudo apt-get install hostapd
Konfiguration anlegen: sudo vi /etc/hostapd/hostapd.conf
interface=wlp58s0 ssid=MEIN-AP country_code=DE hw_mode=g ieee80211n=1 channel=6 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=lalalala wpa_key_mgmt=WPA-PSK wpa_pairwise=CCMP wpa_group_rekey=86400 ieee80211n=1 wmm_enabled=1
Und testen: sudo hostapd -dd /etc/hostapd/hostapd.conf
Und feststellen, dass es mit Fehlermeldung "device busy" quittiert wird.
Problemursache: der NetworkManager grätscht dazwischen.
Zum Testen, einfach NetworkManager ausschalten: sudo systemctl stop NetworkManager.service
und nochmal hostapd starten. Nun geht es. Mit Strg+C wieder beenden.
Dauerhafte Lösung: sudo vi /etc/NetworkManager/NetworkManager.conf
[main] plugins=ifupdown,keyfile,ofono dns=dnsmasq [ifupdown] managed=false [keyfile] unmanaged-devices=mac:f8:31:31:31:31:31
Unter unmanaged-devices die Mac-Adresse der WLAN-Schnittstelle eintragen. Speichern. sudo systemctl start NetworkManager.service
und nochmal hostapd testen. Geht jetzt.
Feste IP vergeben: sudo vi /etc/network/interfaces
# wireless ap auto wlp58s0 iface wlp58s0 inet static address 192.168.6.1 netmask 255.255.255.0
und Schnittstelle neustarten. sudo ifdown wlp58s0
und sudo ifup wlp58s0
.
DNSMasq konfigurieren: sudo vi /etc/dnsmasq.conf
no-resolv interface=wlp58s0 dhcp-range=192.168.6.2,192.168.6.254,24h server=192.168.6.1
Dienst neu starten sudo /etc/init.d/dnsmasq restart
Und zuletzt: hostapd starten: sudo hostapd -dd /etc/hostapd/hostapd.conf