Vous êtes ici : Accueil / Les Cours Ouverts en Ligne du SEM / Une classe connectée / Solution C - raspberry PI

Solution C - raspberry PI

Par Fanny Boitard Dernière modification 06/10/2015 18:54

Présentation

Un raspberry PI est un mini-ordinateur bon marché, tournant sous Linux. Le tutoriel qui suit vous permettra de transformer votre raspberry en serveur embarqué pédagogique.

Vous devrez être équipés d'un rapsberry PI, d'une carte d'au moins 4 GO pour le système d'exploitation, d'une clé wifi compatible et d'une clé USB.

Table des matières du tutoriel

Installation de départ
Configuration en anten point
Installation du serveur
Matériel


Installation, 1er demarrage

[Un bon site en français pour toutes ces étapes préliminaires: http://www.libellules.ch/phpBB2/debuter-avec-le-raspberry-pi-t40775.html#p290242 ]
  • Installation

1) telechargement de raspbian: https://www.raspberrypi.org/downloads/

2) copie de l'image disque sur la carte mémoire avec win32 Disk Manager (mode "write")
3) branchements: cable réseau branché au routeur, cable hdmi vers écran hdmi ou utiliser un convertisseur hdmi/vga, clavier et souris (recepteurs bluetooth), sans la clé wifi. A la fin, alimentation!

4) premier démarrage

     * expand filesystem 
     * clavier: internatinalisation/keyboard   (pour clavier fr azerty:  on Sélectionne Generic 105-key (intl) PC puis Other puis French puis French puis The default for the keyboard layout puis No compose key puis No)
     * activer le ssh (advanced ssh)
Redémarrer ( sudo reboot )
3) et 4) alternative:
si on n'a pas d'écran hdmi, brancher le raspberry sur son réseau local (avec fil) , trouver l'adresse IP attribuée par le routeur et se connecter en SSH, lancer alors la config avec "sudo raspi-config". Plus d'infos ici.
5) login pi; password raspberry. Pour l'interface graphique startx
Taper sudo ifconfig eth0 et on note l'IP du Raspberry Pi (elle se trouve à la 2e ligne apres inet addr). Noter aussi l'adresse mac (1ere ligne après HWadrr
(Chez moi: Adresses mac rasp1:  b827eb9ec0d3   /rasp sem:  b827ebf04a0f )
En cas d'adresse dynamique fournie par le routeur, l'adresse ip du raspberry peut changer mais on peut la retrouver via l'administration du routeur (l'adresse mac peut alors être utile pour reconnaitre le raspberry parmi les devices connectés).
(Chez moi: : http://192.168.0.1/RgComputers.asp (Network/computers) )
  • Sauvegardes
Sauvegarder régulièrement (et déjà maintenant! pour éviter de refaire tous les branchements d'écran, clavier, souris).
Utiliser pour ça win32 Disk Manager en mode "read" ou voir plus bas avec rip-clone
  • Accès au raspberry sur le PC:
branchements: laisser uniquement clé wifi, cable réseau et alimentation
avec putty, ligne de commande
avec winscp, transfert de fichiers
Remarques (accessoires pour ce projet):
*avec TightVNC, on accède au raspberry à distance avec une interface graphique (installer TightVNC Viewer sur le pc et sur le rasp: sudo apt-get install tightvncserver puis le lancer tightvncserver)
* Il est aussi possible d'accéder au raspberry sans le brancher au routeur, mais en le branchant directement au PC. Voir tuto: http://mycoolpizza.blogspot.ch/2013/07/raspberry-pi-connecter-directement-sur.html
* Enfin, il est possible de mettre en réseau le raspberry avec des ordinateurs windows: http://raspberrywebserver.com/serveradmin/share-your-raspberry-pis-files-and-folders-across-a-network.html


Configurer le raspberry en antenne wifi

[Un tuto pour créer une antenne wifi avec un raspberry, en français: http://hardware-libre.fr/2014/02/raspberry-pi-creer-un-point-dacces-wifi/ ne pas s'occuper de la partie redirection - iptables]
mettre à jour le répository: sudo apt-get update
ATTENTION A NE PLUGER LA CLE WIFI QU'APRES AVOIR FAIT UNE PREMIERE INSTALLATION/DESINSTALLATION DE hostatpd:
 sudo apt-get install hostapd
 sudo apt-get remove hostapd
puis pluger la clé wifi (le raspberry redemarre, se reconnecter en SSH)
Vérifier le chipset de la clé wifi: lsusb et installer le driver si RTL8188CUS  apparait (cf http://hardware-libre.fr/2014/02/raspberry-pi-creer-un-point-dacces-wifi/ )
Sinon, réinstaller hostapd normalement
Configurer hostapd: sudo nano /etc/hostapd/hostapd.conf

ctrl_interface=/var/run/hostapd
driver=rtl871xdrv
ieee80211n=1
ctrl_interface_group=0
beacon_int=100
interface=wlan0
ssid=semberry
hw_mode=g
channel=6
auth_algs=1
wmm_enabled=1
eap_reauth_period=360000000
macaddr_acl=0
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=berrysem
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
installer dnsmasq: sudo apt-get install dnsmasq
et configurer: sudo nano /etc/dnsmasq.conf

     interface=wlan0

dhcp-range=192.168.200.100,192.168.200.200,255.255.255.0,12h
address=/#/192.168.200.1 
  #toutes les requettes seront redirigées vers 192.168.200.1 (cohérence avec choix adresse à suivre et plage ips indiquée à la ligne au dessus!)
configurer le réseau: sudo nano /etc/network/interfaces

auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
#iface wlan0 inet manual
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf

#iface default inet dhcp

iface wlan0 inet static
address 192.168.200.1   
#(cohérence avec choix adresse redirection dans dnsmasq!). Les 2 lignes suivantes doivent aussi etre coherentes avec dnsmasq.
netmask 255.255.255.0
network 192.168.200.0   

broadcast 192.168.200.255

lancer le point d'acces au démarrage: sudo nano /etc/default/hostapd
Dé-commenter la ligne #DAEMON_CONF= "" et compléter: DAEMON_CONF="/etc/hostapd/hostapd.conf"
Rebooter et lancer hostapd et dnsmasq: sudo service dnsmasq (re)start   sudo service hostapd (re)start
 



Installer le serveur web

[Tutoriels intéressants:

  • Installation du serveur
Installer lighttpd:  sudo apt-get install lighttpd
Installer les packages php:  sudo apt-get install php5-common php5-cgi php5
Donner les droits en écriture:
          Donner les droits au groupe et utilisateur www-data:  sudo chown www-data:www-data /var/www
          Puis donner les droits 775: sudo chmod 775 /var/www
          Enfin ajouter l'utilisateur "pi" au groupe www-data:  sudo usermod -a -G www-data pi
Activer les scripts php: sudo lighty-enable-mod fastcgi-php
Relancer le serveur:  sudo service lighttpd force-reload

 


  • Paramétrer l'accès par le serveur à la clé USB
*Monter automatiquement les clés usbs au démarrage: 
Installer USBMount (permet monter automatiquement plusieurs clés. Il les renomme en USB0, USB1, etc.)
 sudo apt-get install usbmount  
Redémarrer ( sudo reboot )
*Ajouter un alias pour que le serveur redirige vers la clé usb:
 sudo nano /etc/lighttpd/lighttpd.conf 
Ajouter: alias.url += ( “/media/” => “/media/” )
OU
Créer un lien virtuel vers la clé dans var/www comme suggéré sur https://www.raspberrypi.org/forums/viewtopic.php?f=65&t=88143
cd  /var/www
sudo ln -s /media media
OU
sudo ln -s /media/usb0/plugins plugins  # choisir usb0 ou usb1, 2, 3. Une fois fixé, le port USB sur lequel on met la clé ne pourra plus être modifié (sans repasser par cette étape). PROBLEME, le numéro ne semble pas garanti, même sur un même port.
sudo ln -s /media/usb0/partage partage 
Redémarrer le serveur :  sudo service lighttpd restart
  • Mettre à jour le contenu du serveur
Avec winscp, copier/coller le serveur dans var/www
Donner les droits aux fichiers nécessitant un accès en écriture (pour le sondage, pour la liste de classe et pour l'upload de documents)


Instructions d'emploi du serveur déjà installé


Mettre les fichiers à partager dans un répertoire "partage"
On peut développer ses propres pages php dans une répertoire "plugins"
Remarque: plugger une clé usb fait redémarrer le raspberry


Sauvegarder la carte


On peut le faire avec win32diskmanager ou, plus intéressant, directement sur le raspberry avec rpi-clone qui sauvegarde le système en cours (!) sur une carte sd vierge installée dans un lecteur USB.
Télécharger et déplacer le script rpi-clone dans sbin:
cd rpi-clone
sudo cp rpi-clone /usr/local/sbin

Installer la carte sd vierge
Pour vérifier les cartes: sudo fdisk -l
Enfin, lancer le script: sudo rpi-clone sda -f
(sda est le nom de la carte vierge sur laquelle sera copiée l'image; -f permet de demander un formatage préalable de cette carte)
Quand on restaure, si besoin:
1) étendre la partition: sur le raspberry sudo raspi-config puis expand_rootfs
2) mettre à jour apt-get: sudo apt-get update et apt-get upgrade
Remarque:
Dans la sauvegarde actuelle (16 avril 2015), le login et mot de passe sont restés ceux par défaut sur un raspberry.
16 avril 2015: usbmount et les liens virtuels ne semblent pas avoir été copiés!



Matériel


Compatibilité avec un raspberry B+ et un raspberry B avec une carte wifi EDIMAX et une carte wifi EDUP.
Ne fonctionne pas avec la carte wifi LB-link.
Certaines clés USB 64 GO ne semblent pas fonctionner (partie serveur, mise à disposition des documents présents sur la clé USB)

Tous les contenus de ce site sont publiés sous licence DIP Creative Commons by-nc-nd

Site internet réalisé par le service écoles-médias (SEM) hébergé par la direction générale des systèmes d'information (DGSI) impressum