Le groupe ARM : Raspberry Pi

De Wiki_du_Réseau_des_Electroniciens_du_CNRS
Aller à : navigation, rechercher


→ Si vous avez besoin d'aide, n'hésitez pas a vous connecter sur IRC >>> Salon de discussion #arm <<< <-

Introduction et premiers pas

La finalité de ce tutoriel n'est pas de vous présenter un Nieme tuto, mais tout d'abord, de fournir une version plus orientée vers les électroniciens qui sont rarement des "ténors" de LINUX, il est donc plus détaillé sur les aspects basiques de Linux que ce que l'on trouve en général sur le WEB. N'hésitez pas à contacter les auteurs si vous rencontrez malgré tout des difficultés...

La deuxième mission de ce tutoriel est de montrer qu'avec Raspberry vous pouvez travailler sans bouleverser vos habitudes et votre environnement ... en effet, une fois configuré, votre Raspi sera accessible depuis votre environnement Windows.

Et, comme le montre William, un terminal un peu évolué genre MobaxTerm vous fournit l'accès à la console du RasPi via le réseau, et même à des clients graphiques tels que Geany (éditeur de texte syntaxique). Vous pouvez même accéder à l'environnement graphique de RaspBian avec un outil de type VNC viewer (très spectaculaire...), le tout dans des fenêtres de Windows. Ainsi, vous pourrez faire des copier coller de lignes de commandes trouvées sur votre navigateur, dans la console RasPi. A ce stade , votre Raspberry se contente d'une alimentation et d'une liaison Internet, et vous pouvez travailler dessus ,quasiment de n'importe où...

La troisième idée, est de vous proposer une architecture matérielle, elle aussi orientée vers le monde des électroniciens de la recherche. Cette architecture s'articule sur l'idée d'utiliser des PICs de Microchip en tant que Slaves I2C; Cette méthode présente l'avantage d'uniformiser le mode d'interface de façon simple, de permettre aux gens qui pratiquent déjà les Pics de récupérer leurs acquis, et d'avoir une gestion matérielle locale offrant une bonne réactivité "temps réel".

Son principal inconvénient est une bande passante limitée pour ceux qui font de l'acquisition haute vitesse en continu, mais ce n'est pas l'essentiel des applications.

La répartition des tâches (IHM, Communication et stockage coté Raspberry, gestion des entrées sorties normalisée, et éventuellement réparties sur plusieurs Pics) est relativement optimisée en fonction des technologies, et le coût global reste très bas.

Au niveau de Linux , l'avantage est d'avoir un minimum d’interaction avec le matériel, et de façon uniformisée (lecture écriture de registres I2C) et relativement simple; vous pourrez donc faire appel à vos informaticiens pour les aspects standards de Linux, sans trop leur faire peur...

Vos retours , tout comme vos contributions seront les bienvenus à condition de s'intégrer dans le projet de façon claire et structurée pour conserver (et si possible améliorer) la lisibilité de l'ensemble.

Pour conclure cette introduction, certains trouveront sans doute ce tutoriel un peu directif (peu de choix entre les outils disponibles...); Ceux là ont déjà pratiqué Linux et devraient pouvoir se débrouiller, y compris avec leurs outils préférés, pour les autres ce choix volontairement limité est destiné à simplifier les échanges, les interventions et les aides éventuelles.

Environnement logiciel (Distributions)

Le Raspberry Pi possède un Système d’Exploitation (une distribution linux spécialement conçue pour le Raspberry PI)

Ce Système d’Exploitation situé sur la SD Card devra disposer d'au moins 4Go d'espace mémoire pour pouvoir fonctionner convenablement, mais une carte de 8 ou 16 Go sera sans doute plus pérenne; elle sera de préférence de type SDHC class 10 pour améliorer les vitesses d'échanges lecture/écriture.

Si vous n'avez pas acheté une SD card préconfigurée, ou si vous souhaitez monter une carte de plus grande capacité, ou encore si vous souhaitez pouvoir tester plusieurs distributions ou plusieurs configurations système,vous pouvez créer votre propre carte de boot, à partir d'une des images disponibles sur le web; nous vous conseillons toutefois, au moins dans un premier temps de limiter votre choix à une distribution d'origine Debian (RASPBIAN,Wheezy ou Occidentalis(Adafruit)), afin de rester en phase avec les tutos... Ces distributions sont semble-t-il très proches, elles diffèrent juste par quelques fonctionnalités qui pourront être facilement ajoutées si elles sont absentes.

La distribution RASPIAN (basée sur une distribution DEBIAN est très agréable et simple de prise en main - Le site officiel www.raspian.org

Distribution Raspian personnalisée Du réseau

les différentes images sont disponibles ici

Comment faire avec le fichier 2014-01-07-wheezy-raspbian téléchargé Extraire les fichiers de l'archive zip dans un dossier TEMP sur votre disque dur.

Préparation de la carte SD

Formater la carte SD en fat32 (une seule partition)

depuis un environnement windows

Enfin, il arrive que le formatage Windows de SD Card ne donne pas des résultats très satisfaisants, ce qui explique sans doute l’existence d'un autre petit utilitaire appelé SDFormatter (à placer dans le même répertoire que vos images Linux)

Avec un utilitaire tel que Win32DiskImager, transférez l'image 2014-01-07-wheezy-raspbian.img sur la SDCARD

depuis un environnement Linux

Dans un terminal, avec la ligne de commande : dd - convert and copy a file

 sudo dd if=./2014-01-07-wheezy-raspbian.img of=/dev/mmcblk0 bs=4M
 # dd (utilitaire de copie) if=(input file= chemin de votre image) of=(output file= chemin physique du périphérique) bs=(copie par bloc de ...)

devrait être suffisant

Quelques explications sur cette dernière commande:

elle doit être lancée avec les droits root (d'ou l'utilisation de sudo)

if donne l'emplacement de l'image de Raspbian "Wheezy" ( ./ pour le dossier courant )

of donne le point de montage de votre device (égal à votre point de montage /dev/mmcblk0 dans mon cas. pour le chercher, faire df -h)

   l’exécution va prendre un peu de temps...

>>> Et si ça ne boot pas <<<

Première mise en route

Après s'être logué (rappelez vous des identifiants par défauts –> login : pi , mot de passe raspberry) nous allons pouvoir commencer les choses sérieuses !!

Faire une petite mise à jour des paquets linux :

 sudo apt-get update
 sudo apt-get upgrade

configuration (clavier + écran branché obligatoire)

La configuration de base sera ensuite modifiée en lançant le menu de configuration

 sudo raspi-config

Lors de votre premier lancement, le menu ce lance automatiquement:

Raspi-config1.jpg

Quel que soit la carte SD que nous utilisons , nous souhaitons utiliser la totalité de l’espace disponible. Nous sélectionnons donc expand_rootfs (avec les flèches haut - bas) puis entrée.

Raspi-config3.jpg

Changez aussi le mot de passe de votre utilisateur pi

Raspi-config4.jpg

Nous allons lui spécifier que nous préférons la langue de Molière à celle de Shakespeare : change_locale (soyez patients)

décocher

  • [ ] en_GB.UTF-8 UTF-8

cocher

  • [*] fr_FR ISO-8859-1
  • [*] fr_FR.UTF-8 UTF-8

Default_locale sera alors choisi pour fr_FR.UTF-8

après avoir Validé locale, la génération des fichier va se faire.... prévoyez le café (cela peut prendre du temps suivant le choix du type de carte SD que vous aurez choisi...)

Sans redémarrer le RasberryPi pour le moment, nous continuons la configuration jusqu'au ssh

Raspi-config2.jpg

Le protocole ssh nous permet d’accéder au mode console(terminal) de Rasberry Pi,sur site distant,c'est à dire via Internet, donc nous sélectionnons "<Enable>"

Si vous souhaitez, vous pouvez également faire une mise à jour de l'utilitaire de configuration du Rasberry Pi : "update"

Raspi-config5.jpg

Lorsque tout est terminé, nous terminons la procédure par "<Finish>" du menu principal (touche tabulation) puis touche espace pour valider.

Finalisons le tout par un redémarrage de notre RasberryPi

 sudo reboot

A partir d'ici, vous pouvez vous passer de clavier et de souris sur votre carte, à condition d'avoir pris soin de noter son adresse IP locale en utilisant la commande "ifconfig":

 ifconfig

l'IP se trouve dans le paragraphe "eth0" et s'appelle "inet addr" ; si vous êtes connecté sur un réseau géré par les informaticiens, vous aurez sans doute besoin de déclarer votre carte en tant que "machine informatique" en précisant son adresse MAC ("HWaddr") afin qu'elle soit répertoriée et reconnue par le réseau ... il est probable qu'ils lui attribueront une IP fixe, ce qui est de toute façon souhaitable (s'ils ne le font pas demandez le).

connexion distante au RasberryPi

Maintenant que le mode ssh est activé (suivant le descriptif du menu ci-dessus) Nous pouvons accéder au RasberryPI suivant notre environnement

Sous Linux en mode console

 ssh pi@xxx.xxx.xxx.xxx -Y -C

Sous Windows Nous vous recommanderons le très bon utilitaire (dans sa version gratuite : free download) MabaXterm

MOBAXTERM

Par le logiciel dans sa version gratuite : MobaXterm -> nouvelle session -> ssh specifier l'ip xxx.xxx.xxx.xxx et le username pi (xxx.xxx.xxx.xxx = ip_du_rasberry)


Ensuite revenir sur Session et se connecter normalement en cliquant sur "Open".(les applications graphiques distantes s'ouvriront en mode graphique sur le pc local.

Nous vous recommandons vivement ce mode de fonctionnement qui vous permet de bénéficier de tout le confort de votre poste de travail et en particulier de réaliser des copier coller des commandes trouvées dans les tutos... (prenez quand même le temps de lire ces commandes et d'essayer de les comprendre si vous souhaitez devenir autonomes...)

maintien de la sécurité de la distribution

Une bonne sécurité passe par un maintien quotidien des mises à jour

 sudo apt-get update
 sudo apt-get upgrade

 sudo apt-get dist-upgrade     # pour assurer la mise a jour de la distribution (de temps en temps)

Réglage du TimeZone (fuseau Horaire)

Pour le régler, nous devons définir :

date
# retourne : mardi 2 avril 2013, 12:37:04 (UTC+0000)
TZ=Europe/Paris;export TZ
date
# retourne : mardi 2 avril 2013, 14:37:25 (UTC+0200)

Serveur NFS pour boot à distance de clients RPi en réseau

Il y a aussi la possibilité de faire démarrer le RasberryPi à partir des fichiers de boot stockés sur un serveur linux via NFS (Network File system): Nfs network.png

Installation et configuration d'un serveur NFS
Installation et configuration d'un client NFS RPi

Installation du serveur web pour communiquer depuis l’extérieur

Installation et configuration d'un serveur WEB
L'environnement de travail www
Communiquer avec le RasberryPi

Communication avec le matériel

Installation du support I2C

( Source: http://www.skpang.co.uk/blog/archives/575 - I2c lib téléchargée sur http://lm-sensors.org/ )

Pour une installation automatique depuis les paquets, préferez :

sudo apt-get install i2c-tools

sudo modprobe i2c-dev        # charge le module i2c
sudo adduser pi i2c          # ajoute l'utilisateur pi pour la gestion de l'i2c
sudo adduser www-data i2c    # ajoute l'utilisateur www-data pour la gestion de l'i2c
# sudo modprobe rtc-pcf8563
# echo pcf8563 0x50 > /sys/class/i2c-adapter/i2c-0/new_device

Exemples et Travaux Pratiques

Quelques liens utiles

Page principale: http://www.raspberrypi.org/

Environnement logiciels et matériels : http://elinux.org/RPi_VerifiedPeripherals

Installation d'une chaîne de compilation croisée (GCC) sous Eclipse

Installation d'une chaîne de compilation croisée (GCC) sous Eclipse