Installer et configurer un Raspberry Pi         

Définition : le but est d'installer un Raspberry Pi sans écran, essentiellement pour exploiter ses GPIO, et quelques services (Apache, DHCP, Proxy, ...).

Description : le Raspberry Pi est un petit ordinateur à base de CPU ARM; il possède des "GPIO", c'est à dire des ports I/O génériques utilisables dans tout projet électronique





Voir le site officel du Raspberry Pi : raspberrypi.org/



Installation de l'O.S.

- Se procurer un carte SD de 4Go minimum (suffisant juste pour tester, sinon prendre au 8Go)

- Télécharger l'image RASPBIAN "lite" à partir de:  http://www.raspberrypi.org/downloads/

- Extraire l'archive .zip avec unzip, winrar, ...

- Flasher la carte microSD avec l'image (.img) de Raspbian

1ère méthode (pour les nuls... ;-) :
  1. Installe le logiciel Balena-Etcher (il existe une version Linux et une version Windows)

  2. Flashe la carte microSD à l'aide du logiciel

2ème méthode (cette méthode fonctionne même sans écran) :
  1. Entre la commande suivante dans un terminal Linux pour extraire l'archive.zip
  2. unzip   2016-09-23-raspbian-jessie-lite.zip

    2016-09-23-raspbian-jessie-lite.zip est le nom de l'archive Raspbian téléchargée



  3. Entre la commande suivante dans un terminal Linux pour copier cette image sur la carte microSD :
dd   bs=4M   if=2016-09-23-raspbian-jessie-lite.img   of=/dev/mmcblk0

2016-09-23-raspbian-jessie-lite.img est le nom de l'image décompressée et /dev/mmcblk0 est le nom du périphérique microSD



Remarque : : le périphérique microSD peut parfois avoir un nom différent; ex : /dev/sdb



- Insère la carte SD dans le Raspberry Pi et connecte l'alimentation...
 
- C'est prêt! connecte-toi en SSH si tu n'a pas d'écran (voir Chap.2)

- Après l'installation:

Après t'être correctement connecté avec le login "pi" et le mot de passe "raspberry", tu dois lancer "raspi-config" pour :
- Dans "Internationalisation", changer "locales" en "fr_FR.UTF-8" et "timezone" en "Europe=>Paris"


raspi-config

Chapitre 1.

La 1ère étape consiste à installer un O.S. sur la carte SD qui fait office de disque dur



Prise de controle à distance
Connecte-toi au RaspberryPi en SSH avec Putty (au choix sous Windows ou Linux).

# Il sera pratique de pouvoir se connecter en "root" au RasPi; on va donner un mot de passe à "root", puis autoriser la connexion SSH avec "root" :


sudo su
passwd
(Entrer un mot de passe pour root)

nano  /etc/ssh/sshd_config
(modifier le paramètre :  PermitRootLogin  yes)
service ssh restart


# Si tu veux travailler plus "confortablement", le logiciel WinSCP te permettra de gérer les fichiers du Raspi depuis une interface graphique lancée sur un poste Windows ou Linux;

# A ce moment de l'installation, il est temps de mettre une IP fixe au RasPi :

Connecte-toi au RasPi avec WinSCP (login : "root")


Remarque : à partir de la version de Raspbian "Jessie", ce n'est plus le fichier "/etc/network/interface" qui gère la configuration réseau, mais le fichier : "/etc/dhcpcd.conf"; il faut y rajouter (en modifiant les valeurs en fonction de ton réseau) :

# Custom static IP address for eth0.
interface eth0
static ip_address=192.168.1.2/24
static routers=192.168.1.1
static domain_name_servers=8.8.8.8

# Custom static IP address for wlan0.
interface wlan0
static ip_address=192.168.1.3/24
static routers=192.168.1.1
static domain_name_servers=8.8.8.8


#De même, tu peux changer le nom d'hôte du RasPi :

- Remplacer "rasberrypi" par le nom que tu as choisi dans les fichiers "/etc/hosts" et "/etc/hostname"


# installation de vnc (pour se connecter au RasPi à distance en mode graphique)

Elle n'est plus nécessaire dans les dernières versions de RASPBIAN, puisque RealVNC est installé par défaut; il faut juste l'activer en passant par "raspi-config"

Chapitre 2.

-

La 2ème étape consiste à rendre le Pi indépendant de son écran...



Les logiciels à installer

# nano
apt-get install nano


# Apache, PHP, MySQL
apt-get install apache2
apt-get install php7.0


Chapitre 3.

-

Les logiciels indispensables



Rendre le RPi mobile...

Pour que le RPi puisse être utilisé dans une application mobile, par exemple un robot roulant, il faut :

# l'alimenter en courant électrique avec une batterie qui fournisse du 5V : une batterie externe pour smartphone de 2200mah ou plus fera parfaitement l'affaire.

# Le WiFi sera indispensable pour communiquer en SSH depuis ton ordinateur

Pour l'activer, il faut modifier le fichier /etc/wpa_supplicant/wpa_supplicant.conf :
network={
ssid="YOUR_NETWORK_NAME"
psk="YOUR_NETWORK_PASSWORD"
key_mgmt=WPA-PSK
}

Puis entrer la commande :
iwconfig wlan0 essid "YOUR_NETWORK_NAME"

Chapitre 4.

-

Rendre le RPi mobile...



Wiring Pi

Wiring est une API qui contient aussi une commande en ligne : gpio pour controler les GPIO depuis un script.

http://wiringpi.com/


Pour le RPi 3A, 3B :
apt-get install wiringpi


Pour le RPi 4 :
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb

Exemple d'utilisation :
gpio -g mode 4 out  # broche 4 du chipset en mode sortie
gpio -g write 4 1      # broche 4 passe au niveau logique 1
gpio -g mode 17 in  # broche 17 du chipset en mode entrée
gpio -g read 4         # lire l'état logique de la broche 4
gpio readall            # Vérifier l'état des broches

Chapitre 5.

-

Pour contrôler les GPIO : WiringPi




PiFace

PiFace est une interface prête à l'emploi pour "jouer" avec les GPIO


http://mchobby.be/wiki/index.php?title=PiFace-Manuel

PiFace utilise uniquement les broches SPI du GPIO !!

Pour activer le bus SPI indispenssable au PiFace :

modprobe spi-bcm2708

PiFace peut être controlé par "gpio" :

gpio -p write [200-207] 0/1

[200-207] correspondant aux 8 sorties du PiFace (200 et 201 = 2 relais)


Mais PiFace est livré avec ses propres librairies en Python

Pour installer les librairies du PiFace :

apt-get install python3-pifacedigital-emulator


Chapitre 6.

-

Pour controler les GPIO : PiFace




Divers

Installer le serveur DHCP :

apt-get install isc-dhcp-server
nano /etc/dhcp/dhcpd.conf

Installer le proxy Squid/Squidguard :

apt-get install squid3
apt-get install squidguard
Dans "/etc/squid3/squid.conf", il faut au départ "http_access allow all", pour débloquer les accès (à peaufiner + tard )
et "url_rewrite_program /usr/bin/squidGuard -c /etc/squidguard/squidGuard.conf", "url_rewrite_children 5"
Tutoriel d'installation de Squidguard
Chapitre 7.

-

Divers




Annexes techniques
Son :
- Impédance de sortie audio : Zs = 50 ohms (B+) ou 100 ohms (B)
- Installation ALSA et PulseAudio :
https://sites.google.com/site/semilleroadt/home/raspberry-pi
- Documentation OMXPLAYER
http://elinux.org/Omxplayer
- lister les cartes son:  aplay -l
- utiliser une carte son usb par défaut : créer un fichier /etc/modprobe.d/alsa-base.conf :
#contenu du fichier alsa-base.conf
options snd_usb_audio index=0
options snd_bcm2835 index=1
options snd slots=snd-usb-audio,snd-bcm2835

Vidéo HDMI :
- lister les modes disponibles :  tvservice -m DMT
- lister le mode actif:  tvservice -s
- choisir un mode : tvservice -e "DMT 11"

GPIO :
www.mosaic-industries.com/embedded-systems/microcontroller-projects/raspberry-pi

BIOS :
Le RPi ne contient de Bios; les paramètres matériels sont donc conservés dans le fichier /boot/config.txt.

Ce fichier est lu par le GPU avant l'initialisation du processeur ARM
poour lire la configuration active  :
vcgencmd get_config int - lists all the integer config options that are set (non-zero)
vcgencmd get_config str - lists all the string config options that are set (non-null)
Source : http://elinux.org/RPiconfig

WIFI :
pour scanner les hotspots disponbiles  : iwlist scan
modifier le fichier/etc/wpa_supplicant/wpa_supplicant.conf
network={
ssid="YOUR_NETWORK_NAME"
psk="YOUR_NETWORK_PASSWORD"
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP
auth_alg=OPEN
}
exemple : 
network={ ssid="secure" key_mgmt=WPA-EAP proto=WPA2 group=CCMP pairwise=CCMP eap=TLS ca_cert="/etc/certs/cacert.pem" client_cert="/etc/certs/client.pem" private_key="/etc/certs/client.key" private_key_passwd="somepwd" identity="me" priority=5 }
Pour relancer la connexion au point d'accès :  wpa_cli -i wlan0 reconfigure

I2C

Lancer "raspi-config"
- Activer dans "Advanced options" => "I2C"

Si nécessaire : apt-get install -y python-smbus i2c-tools
Pour vérifier la présence d'un périphérique i2c : i2cdetect -y 1


Chapitre 8.

-

Annexes techniques