Plug the WiFi module into the Pi and start it up.
After initial setup, run the following to see if the WiFi module shows as wlan0.
ifconfig -a
Install software
Next up we install the software onto the Pi that will act as the ‘hostap’ (host access point) You need internet access for this step so make sure that Ethernet connection is up!
sudo apt-get install hostapd isc-dhcp-server
Set up DHCP server
Next we will edit /etc/dhcp/dhcpd.conf, a file that sets up our DHCP server – this allows wifi connections to automatically get IP addresses, DNS, etc.
Run this command to edit the file
sudo nano /etc/dhcp/dhcpd.conf
Find the lines that say
option domain-name "example.org"; option domain-name-servers ns1.example.org, ns2.example.org;
and change them to add a # in the beginning so they say
#option domain-name "example.org"; #option domain-name-servers ns1.example.org, ns2.example.org;
Find the lines that say
# If this DHCP server is the official DHCP server for the local # network, the authoritative directive should be uncommented. #authoritative;
and remove the # so it says
# If this DHCP server is the official DHCP server for the local # network, the authoritative directive should be uncommented. authoritative;
Then scroll down to the bottom and add the following lines
Copy Code
subnet 192.168.42.0 netmask 255.255.255.0 { range 192.168.42.10 192.168.42.50; option broadcast-address 192.168.42.255; option routers 192.168.42.1; default-lease-time 600; max-lease-time 7200; option domain-name "local"; option domain-name-servers 8.8.8.8, 8.8.4.4; }
Save the file by typing in Control-X then Y then return
Run
sudo nano /etc/default/isc-dhcp-server
and scroll down to INTERFACES=”” and update it to say INTERFACES=”wlan0″
Set up wlan0 for static IP
If you happen to have wlan0 active because you set it up, run sudo ifdown wlan0
There’s no harm in running it if you’re not sure
Next we will set up the wlan0 connection to be static and incoming. To edit the file run:
</pre> sudo nano /etc/network/interfaces <pre>
Find the line auto wlan0 and add a # in front of the line, and in front of every line afterwards. If you don’t have that line, just make sure it looks like the screenshot below in the end! Basically just remove any old wlan0 configuration settings, we’ll be changing them up
Depending on your existing setup/distribution there might be more or less text and it may vary a little bit
Change Code to:
Auto lo iface lo inet loopback iface eht0 inet dhcp allow-hotplug wlan0 iface wlan0 inet static address 192.168.42.1 netmask 255.255.255.0 #iface wlan0 inet manual #wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf #iface default inet dhcp
After allow hotplug wlan0 – see below for an example of what it should look like. (ignore our hyphen in allow-hotplug tho, its a typo!) Any other lines afterwards should have a # in front to disable them
Save the file (Control-X Y )
Assign a static IP address to the wifi adapter by running
sudo ifconfig wlan0 192.168.42.1
Configure Access Point
Now we can configure the access point details. We will set up a password-protected network so only people with the password can connect.
Create a new file by running
sudo nano /etc/hostapd/hostapd.conf
Paste the following in, you can change the text after ssid= to another name, that will be the network broadcast name. The password can be changed with the text after wpa_passphrase=
interface=wlan0 driver=rtl871xdrv ssid=Pi_AP hw_mode=g channel=6 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=Raspberry wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP
If you are not using the Adafruit wifi adapters, you may have to change the driver=rtl871xdrv to say driver=nl80211 or something, we don’t have tutorial support for that tho, YMMV!
Save as usual. Make sure each line has no extra spaces or tabs at the end or beginning – this file is pretty picky!
Now we will tell the Pi where to find this configuration file. Run
sudo nano /etc/default/hostapd
Find the line #DAEMON_CONF=”” and edit it so it says DAEMON_CONF=”/etc/hostapd/hostapd.conf”
Don’t forget to remove the # in front to activate it!
Then save the file
Update hostapd
Before we can run the access point software, we have to update it to a version that supports the WiFi adapter.
First get the new version by typing in
wget http://www.adafruit.com/downloads/adafruit_hostapd.zip
to download the new version (check the next section for how to compile your own updated hostapd) then
unzip adafruit_hostapd.zip
to uncompress it. Move the old version out of the way with
sudo mv /usr/sbin/hostapd /usr/sbin/hostapd.ORIG
And move the new version back with
sudo mv hostapd /usr/sbin
set it up so its valid to run with
sudo chmod 755 /usr/sbin/hostapd
First test!
Finally we can test the access point host! Run
sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf
To manually run hostapd with our configuration file. You should see it set up and use wlan0 then you can check with another wifi computer that you see your SSID show up. If so, you have successfully set up the access point.
You can try connecting and disconnecting from the Pi_AP, debug text will display on the Pi console but you won’t be able to connect through to the Ethernet connection yet.
Cancel the test by typing Control-C in the Pi console to get back to the Pi command line
Setting Startup Services
OK now that we know it works, time to set it up as a ‘daemon’ – a program that will start when the Pi boots.
Run the following commands
sudo service hostapd start sudo service isc-dhcp-server start
you can always check the status of the host AP server and the DHCP server with
sudo service hostapd status sudo service isc-dhcp-server status
To start the daemon services. Verify that they both start successfully (no ‘failure’ or ‘errors’)
Then to make it so it runs every time on boot
sudo update-rc.d hostapd enable sudo update-rc.d isc-dhcp-server enable
Extra: Removing WPA-Supplicant
Depending on your distro, you may need to remove WPASupplicant. Do so by running this command:
sudo mv /usr/share/dbus-1/system-services/fi.epitest.hostap.WPASupplicant.service ~/
and then rebooting (sudo reboot)
PHP5 php.ini is located at: :/etc/php5/apache2
Remember to keep memory_limit larger than post_max_size which should be larger than upload_max_filesize.
HTTP files are located at: root/var/www