mise à jour le 23/07/2016

Cette page est un pense bête pour reconfigurer rapidement un raspberry pi (Version 1 Type B) en tant que point d'accès Wifi.
Ma clé Wifi est une TPLINK TL-WN722N (chipset Atheros), elle est reconnue directement (à condition d'avoir une alimentation suffisante, le port USB d'un PC ne suffit pas toujours (500 mA)).
Testé également avec une Linksys WUSB54GC sans problème.

Clé wifi TPLINK TL-WN725N nano : Voir www.raspberrypi.org
Après avoir installé le drivers correspondant à ma version, le point d'accès fonctionne mais aucun client ne peut s'y associer. J'ai laissé tombé

Au départ, le Pi doit être installé et à jour, connecté via Ethernet, carte wifi branchée. Toutes les actions suivantes sont effectuées via une connexion ssh filaire.

Installation des composants logiciels nécessaires :

sudo apt-get update
sudo apt-get install hostapd isc-dhcp-server

Configuration DHCP :

sudo nano /etc/dhcp/dhcpd.conf

Commenter les lignes :

option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;

Décommenter la ligne :

#authoritative;

Ajouter les lignes suivante à la fin du fichier :

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;
}

Activation du DHCP que sur l'interface wifi:

sudo nano /etc/default/isc-dhcp-server

Sur la dernière ligne, modifier INTERFACES="" pour INTERFACES="wlan0"

Configuration IP statique wifi :

sudo ifdown wlan0
sudo nano /etc/network/interfaces

Remplacer le contenu du fichier par :

auto lo
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.42.1
netmask 255.255.255.0
up iptables-restore < /etc/iptables.ipv4.nat
sudo ifconfig wlan0 192.168.42.1

Remarque : Lors du démarrage du service DHCP, l'interface Wlan0 perd sont IP fixe pour éviter cela :

sudo nano /etc/default/ifplugd

Remplacer "all" par "eth0"

INTERFACES="eth0"
HOTPLUG_INTERFACES="eth0"

Modifier également le fichier de config du service dhcpd

sudo nano /etc/dhcpcd.conf

Ajouter à la fin :

denyinterfaces wlan0

Création du fichier de configuration hostapd:

sudo nano /etc/hostapd/hostapd.conf

coller le contenu suivant en modifiant le ssid et la wpa_passphrase :

interface=wlan0
driver=rl80211
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
sudo nano /etc/default/hostapd

Remplacer #DAEMON_CONF="" par DAEMON_CONF="/etc/hostapd/hostapd.conf" (attention au #)

Configuration de la translation d'adresse:

sudo nano /etc/sysctl.conf

Ajouter net.ipv4.ip_forward=1 à la fin du fichier.

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"

Configuration du démarrage automatique :

sudo service hostapd start
sudo service isc-dhcp-server start
sudo update-rc.d hostapd enable
sudo update-rc.d isc-dhcp-server enable
sudo reboot

Diagnostique

Si le point d'accès n'apparait pas dans la liste des AP disponibles, arrêter le service hostapd puis le relancer en mode débug pour avoir des informations sur la cause du problème.

sudo service hostapd stop
sudo hostapd -d /etc/hostapd/hostapd.conf