Raspberry Pi setup

From Open Maps wiki
Revision as of 06:46, 20 May 2016 by 178.165.131.82 (Talk)

Jump to: navigation, search

Before you can do anything, you need to configure the Wifi on the Pi (NB: default Pi login is 'pi' and default password is 'raspberry')

The setting up a headless Pi instructions here (in particular Step 3) worked for us, although we only needed ssid and psk (password) for the network={... step.

Lets set up our map server with local cached image files

Installing required software

Install nginx (server), hostapd (wifi AP host), dnsmasq (light dns server) install Nginx

sudo apt-get update
sudo apt-get install nginx
sudo apt-get install hostapd
sudo apt-get install dnsmasq

Web Server

Set up web server to forward 404's to root directory (needed for captive portal behaviour) and start edit /etc/nginx/sites-available/default

and modify line in "location / {" section:

try_files $uri $uri/ = 404;

becomes

try_files $uri $uri/ /index.html;

Now start the server

sudo service nginx start

Set up hostapd

Set up AP with hostap (instructions from set up AP with udhcpd) edit the file /etc/hostapd/hostapd.conf

interface=wlan0
ssid=TacticalSpaceLab
hw_mode=g
channel=6
auth_algs=1
wmm_enabled=0

Edit the file /etc/default/hostapd and change the line:

#DAEMON_CONF=""

to

DAEMON_CONF="/etc/hostapd/hostapd.conf"
 

Start it up, and add it to start at boot

sudo service hostapd start
sudo update-rc.d hostapd enable
 

Note for EDIMAX adaptors

edimax version of hostapd if using an edimax wifi usb


DHCP and DNS for access point and captive portal

Set up /etc/network/interfaces for serving DHCP and DNS

auto lo 
iface lo inet loopback 

auto wlan0
iface wlan0 inet static
  address 10.1.2.1
  netmask 255.255.255.0
  network 10.1.2.0


configure dnsmasq /etc/dnsmasq.conf

# captive portal to this
no-resolv 
server=/localnet/10.1.2.1
server=/tacticalspace/10.1.2.1
address=/#/10.1.2.1
interface=wlan0
dhcp-range=10.1.2.5,10.1.2.200,12h

restart dnsmasq

sudo /etc/init.d/dnsmasq restart

More Captive Portal Stuff

Pop up page info for IOS, Windows, and Android forward to domain iptables nat stuff for captive portal

Logging people

if you want dnsmarsq script logging... Create /var/log/dhcp_leases file with write create /usr/bin/logdhcp, make executable add it to dnsmasq config

#!/bin/bash
destfile=/var/log/dhcp_leases
#if [ "$1" == "add" ]
#then
  if [ -f "$destfile" ]
  then
    echo "$1 $2" >> "$destfile"
  fi
#fi

Logging dhcp.png

ended up using dnsmasq for DNS and DHCP. Setting DNS forward IP to local for captive portal setup

Map framework

Copy the server framework files across

some popup mehods

place javascript files and map tiles into /var/www/html

MQ var directory archive

Remember to make all /var/www/html folders readable with:

sudo find /var/www -type d -exec chmod a+x {} +
sudo find /var/www -type d -exec chown root:root {} +
sudo find /var/www -type f -exec chmod a+r {} +
sudo find /var/www -type f -exec chown root:root {} +

For Map content

MapNik coding platform for maps... pull render tiles using this? beautiful Stamen Design map that can be used

Map example1.png
Map example2.png