Raspberry Pi as Standalone Access Point
I had a case (Raspberry Pi Zero ePaper Nametag), where I needed an Raspberry Pi Zero WH to act as access point, including DHCP-Server. Standalone, not connected to any network.
Installation
apt-get install hostapd dnsutils traceroute udhcp
Configuration
Disable IPv6
vi /etc/sysctl.conf
and set
net.ipv6.conf.all.disable_ipv6=1
Explanation: Disable IPv6 (to KISS).
Disable wpa-supplicant
If the Pi was used before, WPA-supplicant was most likely set up. Disable it.
Setup DHCPd
vi /etc/udhcpd.conf
…and…
start 10.178.42.100 # This is the range of IPs that the hostspot will give to client devices. end 10.178.42.199 interface wlan0 # The device uDHCP listens on. remaining yes opt dns 10.178.42.1 opt subnet 255.255.255.0 opt router 10.178.42.1 # The Pi's IP address on wlan0 which we will set up shortly. opt lease 864000 # 10 day DHCP lease time in seconds
…and…
vi /etc/default/udhcpd
…and comment this out…
#DHCPD_ENABLED="no"
Enable and Configure Access Point
vi /etc/default/hostapd
and set:
DAEMON_CONF="/etc/hostapd/hostapd.conf"
Explanation: The hostapd reads the configfile, to find this configfile. I don't get what this is good for. I think I'm just net getting the whole concept. If anyone cares to enlighten me, please do. :)
vi /etc/hostapd/hostapd.conf
and set something like this:
interface=wlan0 driver=nl80211 hw_mode=g channel=7 ieee80211n=1 wmm_enabled=1 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP ssid=HMS_Camden_Lock wpa_passphrase=42_42_42_42 country_code=DE
Enable it
vi /etc/default/hostapd
…and comment this and set path:
DAEMON_CONF="/etc/hostapd/hostapd.conf"
Set static IP-Address
vi /etc/dhcpcd.conf
…and…
interface wlan0 static ip_address=10.178.42.1/24 static routers=10.178.42.1 static domain_name_servers=10.178.42.1
Launch AP and DHCPd
service hostapd start service udhcpd start
Known issues
root@pi00:~# service hostapd start Failed to start hostapd.service: Unit hostapd.service is masked. root@pi00:~#
systemctl unmask hostapd systemctl enable hostapd
Also remember: Try setting WiFi-Country with…
raspi-config
…first!
Setup DNS
Later. Not mattering right now.
Network Interfaces
vi /etc/network/interfaces
Don't touch this file. dhcpcd gets jealous...
- Links
- https://www.raspberry-pi-geek.de/ausgaben/rpg/2014/03/raspi-als-dhcp-und-dns-server/
- https://www.itsfullofstars.de/2019/02/dhcp-server-on-linux-with-raspberry-pi/
- https://www.ionos.com/digitalguide/server/configuration/provide-raspberry-pi-with-a-static-ip-address/
- https://elinux.org/RPI-Wireless-Hotspot
- Footnotes