RASP-PI-REMOTE-SCREEN-Install
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).
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:
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).
Redémarrer le Pi puis tester la connexion Internet. Le Pi doit avoir accès à Internet pour installer les paquets nécessaires. |
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:
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"
Redémarrer le Pi encore une fois pour reconfigurer les interfaces. Cela permettra de tester le signal du point d'accès PiPA tout fraîchement créé. |
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:
Même si nous ne recevons pas encore d'adresse IP.
Nous pouvons également tester les réseaux présents avec wicd:
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.
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
Tester le Point d'accès
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'
Après avoir connecté les différents appareils sur le point d'accès PiAP, nous pouvons consulter les éléments dans l'entourage.
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.
Si tout ce passe bien, vous pourrez utiliser RealVNC/TightVNC pour visualiser le Bureau du Rasoberry-Pi depuis la tablette (voir détail plus loin) sur WLAN0.
Autre commande utile:
- wicd
- Consulter le log de boot de PiAP avec la commande
tail -f /var/log/syslog
Accès Internet
En ajoutant une clef USB WiFi, le Raspberry-Pi pourra également contacter le routeur domestique (et accéder à Internet).
Cette clé WiFi prendra normalement l’interface wlan1.
Elle sera initialisé à l'aide de la commande:
sudo dhcpcd wlan1
Il faudra remplacer l'adresse nameserver dans Modèle:/etc/resolv.conf par l'adresse du routeur domestique. Par exemple
nameserver 192.168.1.1
Tutoriel généreusement proposé par Mr. Orlans