RASP-PI-REMOTE-SCREEN-Install

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche

Préambule

Nous devons essentiellement installer 2 packages, après avoir reconfiguré la définition du réseau:

  • hostapd: qui contrôle le pilote de l’adaptateur wifi pour qu’il agisse en tant que "Access Point", comme Le routeur de maison, y compris le contrôle d’accès, les canaux,…
  • dnsmasq: qui distribuera les adresses IP sur l’Access Point (serveur DHCP pour le point d'accès).

Comme l’initialisation de Raspbian et du réseau évoluent d’un release à l’autre, la dernière image de Raspbian sera utilisée dans ce tuto (7 septembre 2017).

RASP-PI-REMOTE-SCREEN-Install-00.png

Pour voir les interfaces réseau connectés, exécutons:

ls /sys/class/net

Sur un Pi3 nous aurons au moins 3 interfaces sous la forme eth0 lo wlan0, à savoir

  • eth0 - Interface Ethernet filaire du Pi 3
  • wlan0 - interface WiFi du Pi 3
  • lo - Interface dit "Loopback" permettant au Pi 3 de constater sa propre interface réseau.

Attention au "Predictable network interface names"

Si vous obtenez une réponse du genre: enxb827ebaf64da lo wlan0 wlx000f133822a8 cela signifie que le Pi est configuré avec “Predictable network interface names” qui contiennent la “MAC address” des interfaces.

C’est un choix qui est fait dans raspi-config -Advanced Options-Network interface names.

Attention:

cette dernière mise-à-jour de raspi-config est du 26 septembre ! Et suite à la découverte de KRACK par nos amis de la KUL et d’imec. hostapd et wpasuppicant ont également étés upgradés le 16 octobre 2017 !

Autres commandes utiles

La commande ip remplace ifconfig.

  • ip a
  • ip neigh

Configuration des interfaces réseau

Cette configuration se fait dans /etc/network/interfaces

Au départ ce fichier ne contient comme ligne utile que

source-directory /etc/network/interfaces.d

mais le répertoire /etc/network/interfaces.d est vide

Ajoutons à interfaces la description de notre réseau, vu du Pi:

RASP-PI-REMOTE-SCREEN-Install-01.png

Comme vous pouvez le constater, nous utilisons des adresses IP Statiques pour wlan0 (interface WiFi sur la carte du Pi) et ethernet. L'interface wlan0 sera utilisée pour y connecter la tablette (utilisé comme terminal).

L'interface wlan1 est en allow-hotplug. Cela signifie que la carte détectera le branchement d'une clé WiFi sur un des ports USB, idéal pour connecter le Pi sur un réseau domestique réseau domestique.

Configuration du DHCP

Dans le fichier /etc/dhcpcd.conf, ajoutons les lignes suivantes pour empêcher la configuration DHCP (Dynamic Host Configuration Protocol) des interfaces réseaux eth0 et wlan0 (WiFi Interne).

Ces 2 lignes spécifient que nous gérons nous-même les interfaces eth0 et wlan0. Pour ces interfaces, c’est le Pi qui sera le routeur.

denyinterfaces wlan0
denyinterfaces eth0

DHCP est utilisé par le Pi pour discuter de la configuration IP avec votre routeur wifi domestique afin d'offrir un accès à Internet. Ce qui sera encore le cas de l'éventuelle l’interface wlan1 (lorsque l'on branche une clé WiFi sur le port USB).

Installer le point d'accès

A ce point du tutoriel, votre Pi doit avoir accès à Internet (via sa connexion filaire) pour poursuivre l'installation.

Après le traditionnel apt-get update, les paquets hostapd et dnsmasq seront installés.

Pour éviter tout conflit dans l’initialisation de hostapd avec systemD, il est nécessaire de supprimer complètement le hostapd déjà installé:

sudo apt-get remove --purge hostapd

Puis utiliser la commande suivante pour vérifier que hostapd soit effectivement supprimé du système.

sudo find /etc | grep hostapd

Installer les paquets des packages assurera aussi la création des fichiers d’initialisation

sudo apt-get install hostapd
sudo apt-get install dnsmasq

Le service sera démarré dès l’installation du package mais il sera encore nécessaire de modifier les paramètres.

Configuration de hostapd

Le fichier /etc/hostapd/hostapd.conf contient les paramètres de notre Access Point.

Nous devons y mettre:

RASP-PI-REMOTE-SCREEN-Install-02.png

De préférence:

  • channel - Canal WiFi sera différent de celui du routeur WiFi maison.
  • Passphrase - Mot de passe qui sera demandé pour se connecté sur le Point d'accès WiFi
  • ssid - le nom sous lequel le point d'accès s'annoncera (PiAP pour Pi Acces Point).

Le fichier /etc/default/hostapd contiendra la référence vers le fichier de configuration:

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

A partir d'un PC ou autre Raspberry-Pi, l'utilitaire iwlist détectera le signal PiAP plus fort que celui du routeur domestique si on est nettement plus proche du Pi que du routeur domestique.

sudo iwlist wlan0 scan|grep -E 'Address|ESSID|Channel'

Ce qui produit un résultat similaire à ceci:

RASP-PI-REMOTE-SCREEN-Install-03.png

Même si nous ne recevons pas encore d'adresse IP.

Nous pouvons également tester les réseaux présents avec wicd:

RASP-PI-REMOTE-SCREEN-Install-04.png

Il est également possible de vérifier les réseaux présents avec tablette ou smartphone avec l'utilitaire Wifi Analyzer. L'application sur Smartphone Android montre bien les 2 signaux.

RASP-PI-REMOTE-SCREEN-Install-05.png

Configurer le serveur DHCP du Pi

On remplacera le contenu, volumineux en commentaires, du fichier /etc/dnsmasq.conf par:

 interface=wlan0
dhcp-range=10.0.0.2,10.0.0.15,255.255.255.0,12h

Notre point d'accès ne distribue que quelques adresses IP.

Installation des services

L’initialisation de hostapd et dnsmasq sont faites lors de l’installation, notamment dans les scripts

/etc/init.d/hostapd
/etc/hostapd/ifupdown.sh

(On ne doit donc plus faire systemctl enable hostapd et sudo service hostapd start )

S’il fallait le faire manuellement, on utiliserait:

 systemctl enable hostapd
sudo service hostapd start
systemctl enable dnsmasq
sudo service dnsmasq start

En cas de malheurs, on peut démarrer:

sudo hostapd -dd -K -t /etc/hostapd/hostapd.conf &
sudo /etc/init.d/dnsmasq start /etc/dnsmasq.conf &

Note: /etc/init.d/dnsmasq est un script bash assez compliqué qui invoque l’exécutable de même nom /usr/sbin/dnsmasq

Test

Nous allons essayer de voir si le Pi fournit bien un signal WiFi et une adresse IP. Les tablettes et smartphones seront écartés à ce stade car se sont des systèmes très fermés.

A partir d'une autre machine Linux (ou autre Raspberry-Pi), la commande suivante nous indiquera la présence d'un signal WiFi

sudo iwlist wlan0 scan | grep -E 'Address|ESSID|Channel'

La commande ip neigh liste les ordinateurs dans le voisinage, ce qui produit un résultat similaire à ceci:

10.0.0.10 dev wlan0 lladdr 34:12:34:34:7f:0f DELAY
10.0.0.7 dev wlan0 lladdr 50:98:f8:1e:76:6a STALE
10.0.1.2 dev eth0 lladdr d8:cb:8a:f0:58:f2 REACHABLE

Dans le cas présent, l'adresse MAC 34:12:34:34:7f:0f correspond à la tablette, cette dernière dispose de l'adresse IP 10.0.0.10. Cette adresse est bien dans le range DHCP du point d'accès PiAP

Autre commande utile:

  • wicd
  • Consulter le log de boot de PiAP avec la commande
    tail -f /var/log/syslog

Tutoriel généreusement proposé par Mr. Orlans