Je viens de recevoir (enfin) mon Raspberry Pi 2 ! C’est une belle bête, et malgré le petit bug du « flash », j’en suis très content. Ceci dit, comme bien souvent il est dans un boîtier, ce bug n’en est pas un. Si on veut le prendre en photo, il suffit de le faire éteint.

J’ai décidé de prendre la version de Raspbian du mois de décembre : mais le Raspberry restait sans vie, juste un voyant rouge allumé, aucun signal ne venant de lui. Si vous avez ce même type de problème, il se résout simplement en installant sur la carte SD la dernière version de Raspbian, la 2015-01-31, que l’on trouve ici.

Et là, oh joie, tout marche !

Je dois bien l’avouer, ce blog me sert de pense-bête de tout ce que je fais sur mon Raspberry. Il ne faut pas oublier non plus que, un Raspberry, c’est avant tout un linux, donc ce que l’on fait sur l’un est valable aussi sur l’autre. Donc les posts de ce blog (du moins en ce qui concerne linux ) s’écrivent au fur et à mesure de ce que je veux faire : je profite de tout ce que je peux trouver, c’est donc bien normal de faire profiter à mon tour de ce que j’ai pu trouver !

Lors du dernier post, nous avons vu comment configurer en IP statique la connexion wifi. Pour une connexion ethernet, la manipulation est presque la même, sauf que cette fois-ci, on ne modifie pas l’interface wlan0, mais l’interface eth0. Je me connecte donc en ssh sur mon Raspberry Pi, et j’édite avec nano /etc/network/interfaces, enfin je repère la ligne :

iface eth0 inet dhcp

Que je modifie comme suit :

 iface eth0 inet static
 address 192.168.1.120
 netmask 255.255.255.0
 gateway 192.168.10.1

si bien sur on veut donner à notre machine l’IP 192.168.1.120. Voir encore une fois le post sur le wifi pour les explications sur les valeurs netmask et gateway.

Après avoir enregistré, il faut relancer le réseau pour que les modifications soient appliquées :

sudo /etc/init.d/networking restart

Une fois tout ceci fait, on va donner un nom à notre Raspberry. Pour cela deux méthodes : soit on passe par raspi-config, soit directement dans le fichier /etc/hosts.

Définir un nom de machine avec raspi-config

Toujours sur le Raspberry, dans le terminal, on exécute la commande :

sudo raspi-config
raspi config 1

On choisit le menu 8 : Advanced Options

raspi config 2

Puis : A2 Hostname

raspi config 3

Nous sommes prévenus de n’utiliser que des lettres majuscules et minuscules et des chiffres.

raspi config 4

On entre le nom et on valide par Entrée.

Il faut alors redémarrer les Raspberry pour que le nom d’hôte soit pris en compte.

Une fois redémarré, on se reconnecte en ssh et on constate le changement de nom de l’hôte.

Il est plus facile de se souvenir du nom d’hôte que de son adresse IP. Ainsi, lorsque je me connecte en ssh, il serait intéressant de pouvoir lancer : ssh pi@NomDuRaspberry. Pour cela il faut indiquer à notre pc le nom de notre Rasberry et son adresse IP.

Cette fois-ci, sur mon linux mint, j’ouvre une console et je lance

sudo nano /etc/hosts

Ce fichier contient, entre autre, la définition du nom de mon linux Mint, et me permet d’indiquer d’autres noms d’hôte et leur adresse IP.  On écrit dans l’ordre : Adresse IP    nom d’hôte

A la fin du fichier j’écris donc :

192.168.1.120  MonRaspberry

Si bien sur j’ai mis 192.168.1.120 comme adresse IP fixe et pour nom MonRaspberry. C’est tout l’avantage d’avoir rendu statique l’adresse IP du Raspberry. J’enregistre. Pour me connecter maintenant sur mon Raspberry en SSH, il me suffira juste d’écrire : ssh pi@MonRaspberry  pour lancer la connexion.

 

Je ne me connecte sur mon Raspberry que par ssh, vu que je n’ai pas d’écran hdmi. Mon soucis est que, puisqu’il est connecté en wifi, il me faut tout le temps chercher son IP, qui n’est jamais la même. L’idée est donc de fixer l’IP de la connexion wifi, sans passer par le serveur DHCP du routeur qui affecte une IP à la connexion. Mais comment faire ? C’est tout l’objet de ce post.

Comme toujours pour ce genre de chose : il faut y aller en ligne de commande, donc j’ai besoin d’un terminal ouvert sur mon Raspberry. je me connecte donc en ssh sur lui.

Phase un : collecte des infos

J’ai besoin pour commencer d’en savoir plus sur mon réseau. Pour cela, sur mon linux, je tape la commande suivante :

ifconfig -a

Cette commande me liste toutes les interfaces réseau ouvertes sur mon pc, et me donne par la même occasion les informations souhaitées. Sous Windowz, lancer un ipconfig -all

ip

Je m’intéresse à l’interface eth0, qui correspond à ma carte Ethernet. J’y trouve les infos nécessaires :

  • broadcast : 192.168.1.255
  • masque de sous réseau : 255.255.255.0
  • et l’adresse ip de ma machine actuelle : 192.168.1.100 (info inutile dans le cas présent)
  • il faut aussi l’IP du routeur ou de la box : dans mon cas : 192.168.1.1
  • le réseau est donc le 192.168.1.0
  • Je décide que mon Raspberry sera sur l’adresse 192.168.1.120

La configuration de l’interface réseau se trouve dans le fichier /etc/network/interfaces. Avant d’aller plus loin, il nous reste une information à obtenir pour pouvoir modifier ce fichier.

Notre réseau wifi est défini par un SSID. Si on utilise un mot de passe WPA, il faut fournir ce dernier à notre fichier de configuration sous une forme hexadécimale. Pour transformer mon mot de passe WPA en mode hexa, on exécute dans le terminal la commande suivante :

sudo wpa_passphrase MonSSID  MonMotDePasseWPA

en remplaçant bien sûr par les bonnes valeurs. La commande renvoie plusieurs infos : on ne prendra que la valeur HEX. A présent, on peut ouvrir et modifier le fichier de configuration réseau. Continuons en ligne de commande et ouvrons le avec l’éditeur nano. Il faut le lancer avec un sudo, sinon, il ne sera pas possible de l’enregistrer une fois modifié.

sudo nano /etc/network/interfaces

Je recherche ensuite les lignes qui concernent la wifi, c’est à dire : wlan0. Pour conserver les valeurs par défaut de ce fichier au cas où on voudrait y revenir, le plus simple sera de mettre les infos en commentaire (en préfixant les lignes avec le signe #), puis d’écrire la nouvelle configuration.

Je commente les lignes qui concernent l’interface wlan0

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

 

J’écris les nouvelles valeurs

auto wlan0
iface wlan0 inet static
address 192.168.1.120
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
wpa-ssid MonSSID
wpa-psk xxxxxxxxxxxxxxx

xxxxxxxxxxxxxxx est la forme hexadécimale du mot de passe wifi que m’a donnée la commande précédente. Puis j’enregistre avec CTRL+ o , et je quitte avec CTRL + x

Il ne me reste qu’a redémarrer le Raspberry. Ce que je peux faire en mode terminal en écrivant :

sudo shutdown -r 0

Le Rapsberry redémarre et se connecte automatiquement sur mon réseau par la wifi, et avec l’IP 192.168.1.120. C’est gagné !

 

 

Ce post reprend ce que j’ai déjà pu dire sur la mise à jour du système Raspbian, mais en centralisant les informations. Ce qui sera l’occasion de parler de apt-get et d’en préciser d’autres options intéressantes.

Mettre à jour les paquets

Pour mettre à jour notre système, il faut tout d’abord commencer par mettre à jour la liste des paquets :

sudo apt-get update

Puis, on demande la mise à jour des paquets installés sur la machine :

sudo apt-get upgrade

Les paquets installés sur le système sont archivés dans un répertoire(/var/cache/apt/archives). Donc à chaque mise a jour, ce répertoire grandit. On peut faire le tri et purger ce répertoire, ce qui évite de prendre de la place inutile sur la carte SD. Pour cela :

sudo apt-get clean

Cette commande supprime tous les paquets téléchargés, mais ne les désinstalle pas. On peut aussi vouloir conserver les dernières versions des paquets et supprimer les autres. Pour cela :

sudo apt-get autoclean

Pour mettre à niveua la distribution :

sudo apt-get dist-upgrade

Installer un paquet

Pour installer un paquet, si on en connaît le nom :

sudo apt-get install LeNomDuPaquetAInstaller

Bien sur, cela ne fonctionne que si le paquet existe dans les dépôts. Sinon, impossible par cette méthode.

Bien que le cas soit rare, il arrive parfois que l’installation se passe mal, et qu’une dépendance ne soit pas installée (pour les néophytes : un programme en nécessite parfois d’autres pour fonctionner, on les appelle alors des dépendances. l’ensemble doit être installé). Dans ce cas, on répare avec :

sudo apt-get install -f

Supprimer un paquet

Pour désinstaller un paquet :

sudo apt-get remove LeNomDuPaquetASupprimer

La désinstallation d’un paquet ne supprime pas ses dépendances. Pour supprimer le paquet ainsi que ses dépendances :

sudo apt-get autoremove LeNomDuPaquetASupprimer

Pour supprimer un paquet ainsi que ses fichiers de configuration :

sudo apt-get purge LeNomDuPaquetASupprimer

Pour supprimer, le paquet, les dépendances et les fichiers de configuration :

sudo apt-get autoremove --purge LeNomDuPaquetASupprimer

Mettre à jour le kernel et le firmware

Il est possible de mettre à jour le noyau système de la Raspbian, ainsi que le firmware. Pour cela, après avoir fait un update et un upgrade, lancer :

sudo rpi-update

Il faut ensuite rebooter la Raspberry.

 

Ce matin le site raspberrypi.org annonçait la sortie d’une nouvelle carte : la Rapsberry Pi 2.

Cette carte est au même format que la Raspberry Pi B+, donc les boîtiers seront compatibles : même connectique, même taille, même nombre de broches. Seuls changent les caractéristiques techniques :

  • processeur ARM cortex A7 quadricore à 800 Mhz
  • 1 go de mémoire vive SDRAM (le double de la B+)
  • pas de changement au niveua du GPU
  • toujours 4 USB2, Ethernet, HDMI, et micro SD pour le disque système

D’après la fondation Raspberry, il serait possible d’y faire tourner un window 10 (honnêtement quel intérêt ?), et les distributions Linux ARM.

Tout cela pour le même pris que la B+, soit 35$, ce qui convertit en euros donnerait 40 €. On m’expliquera le taux de change : deja que quand ils arrivent en Europe, les $ deviennent des €, mais la en plus c’est plus cher.

Raspi2

Lors d’un précédent article où je vous avais montré comment installer une Raspbian sur un Raspberry Pi en utilisant la distribution NOOBS. Cette fois-ci nous allons installer Raspbian directement.

Raspbian nous a fait un beau cadeau de noël, en sortant une nouvelle version du système d’exploitation. Je n’avais pas encore eu le temps de mettre à jour mon Raspberry, et donc je m’y mets enfin, et vous fais partager tout cela.

Première solution : mettre à niveau l’ancienne version

La première solution consiste à mettre a jour l’ancienne distribution, puis de faire une mise à niveau vers la nouvelle. Cela se réalise en trois commandes, donc trois étapes :

  1. mettre à jour la liste des paquets
  2. mettre à jour la version actuelle
  3. mettre à niveau tout le système

Les deux premières actions sont connues : avant toute installation d’un nouveau paquet, on fait ces opérations, ça ne fait pas de mal. Donc c’est une redite si vous avez lu mes précédents posts :

Mettre à jour la liste des paquets :

sudo apt-get update

Mettre à jour tous les paquets :

sudo apt-get upgrade

Mettre à jour la distribution :

sudo apt-get dist-upgrade

Deuxième solution : installer Raspbian à partir d’une image

Bien sur là, on efface tout et on recommence. Plutôt que de reprendre l’ancien post et ne rien dire de plus, voyons une autre façon de faire : par la ligne de commande pure sous linux bien sur (je n’ai plus windows depuis belle lurette, sauf au boulot, un supplice).

On commence par récupérer la dernière version de Rasbian (2014-12-24) : fichier zip.

Une fois que c’est fait on le dezippe : il contient une image de la Raspbian : 2014-12-24-wheezy-raspbian.img.

Ensuite on prend une carte SD et on la monte sur son Linux préféré. La première chose à faire est de savoir quel est le nom du périphérique correspondant à la carte SD. On ouvre un terminal. On va utiliser la commande df pour lister tout ce qui est monté :

df -h

On obtient la liste des périphériques de stockage montés. A présent, on monte la carte SD, et on recommence : par comparaison avec le résultat précédent on va voir qui est notre carte SD. Dans mon cas je lis ceci :

/dev/sde1 30G 32K 30G 1% /media/olivier/3366-3266

Le périphérique correspondant à ma carte SD se nomme /dev/sde1, et il est monté en /media/olivier/3366-3266.  Décryptons un peu pour la suite : ma carte SD est reconnu par le système sous le nom de /dev/sde. Le « 1 » après signifie la première partition de la carte.

Ensuite il faut démonter le périphérique avec la commande umount en remplaçant bien sur /dev/sde1 par le résultat de la commande précédente. Ici on démonte bien la partition, donc sde1.

umount /dev/sde1

Nous allons maintenant pouvoir écrire l’image du système sur la carte SD. On se déplace dans le répertoire où on a dézippé l’archive. Puis on lance la commande dd avec les paramètres suivants :

  • bs = 4M : c’est la taille des blocks que l’on va écrire, ici des block de 4 Mo
  • if=2014-12-24-wheezy-raspbian.img : if, pour Imput File, le fichier que l’on veut écrire, celui qui est en entrée : donc le ficher image de la Raspbian 2014-12-24-wheezy-raspbian.img
  • of=/dev/sdd : of, c’est Output File, le fichier de sortie, la où je veux écrire. Ça sera donc ma carte SD. Dans mon cas /dev/sde  . A remplacer bien sur par le nom de votre périphérique. Faites bien attention à ne pas vous tromper, car sinon, vous effacer un disque définitivement. Donc perte complète des données !
sudo dd bs=4M if=2014-12-24-wheezy-raspbian.img of=/dev/sde

Cette commande est muette et ne donne aucun signe de son avancement; Il faut donc attendre qu’elle se termine. A la fin nous avons :

781+1 enregistrements lus
781+1 enregistrements écrits
3276800000 octets (3,3 GB) copiés, 285,505 s, 11,5 MB/s

Nous avons presque fini.  On s’assure que le cache d’écriture est vide avant de retirer la carte en utilisant la commande :

sync

sync – Synchroniser les données sur le disque avec celles en mémoire. La commande sync écrit sur le disque toutes les données dans les tampons en mémoire.

On démonte enfin la carte SD avec umount.

Dernière étape : on lance le Raspberry

Une fois la carte placée dans le Raspberry, on connecte le câble Ethernet et on met sous tension pour lancer le système. Je vous rappelle que n’ayant pas d’écran adapté, je vais prendre le contrôle du Raspberry par ssh. On lance donc la connexion ssh : pour plus d’info sur comment faire, c’est par ici.

Me voilà connecté ! Je commence par faire une mise à jour du système :

sudo apt-get update
sudo apt-get upgrade

Et on le laisse travailler. Une fois terminé, je vais mettre en place ma connexion VNC (voir l’article sur la connexion SSH pour plus d’infos). J’installe donc tightvncserver.

sudo apt-get install tightvncserver

Puis je lance le serveur :

vncserver :1

Pour finir je me connecte en VNC depuis ma Linux Mint avec :

xtightvncviewer 192.168.1.100:1

Raspbian2014-12-24

Pour terminer les réglages de la distribution, ça se passe par ici…

Une dernière chose a faire : le système dans sa forme actuel n’occupe pas toute la place voulue sur la carte SD, je vais donc lui demander de se redimensionner pour occuper toute la carte. je lance

sudo raspi-config

Puis je choisis Expand Filesystem. Je devrais alors redémarrer le Raspberry pour que cela prenne effet.

 

 

 

Il m’est arrivé récemment une petite mésaventure ennuyeuse : après avoir voulu configurer un répéteur wifi, impossible de me connecter sur un site web. Pour tous les autres sites, aucun soucis, mais pour ce site là en particulier, j’étais redirigé vers la page de configuration du répétiteur.

A partir de là, ce site me devenait impossible à contacter. J’ai tout d’abord essayer de vider le cache de Firefox, toutes les zones de cache en fait, mais sans succès.

Finalement, le problème ne venait pas de mon Firefox, mais de ma Linux Mint : pour une adresse web précise, il effectuait une redirection automatique. Pour régler ce soucis, j’ai tout simplement vider le cache DNS.

Quand on veut se connecter sur un site, le navigateur doit tout d’abord résoudre le nom de domaine, c’est  à dire, transformer votre belle adresse en http://www/limen-arcnum.fr (une site au hasard, par exemple, celui ci) en une adresse réseau ( l’adresse IP du serveur où est hébergé le site). Pour cela, il contacte un serveur DNS qui lui donnera l’information.

Mais, ce contact avec le serveur DNS ne se fait pas à chaque fois : il existe un cache où sont stockés les couples de données adresse web, adresse IP. Dans le cas présent, le cache contenait une erreur, il me fallait forcer sa remise à zéro.

Pour purger le cache DNS d’une Linux Mint (je ne sais pas trop si la méthode est identiques sur les autres distributions Linux), ouvrir un terminal et taper :

sudo /etc/init.d/dns-clean start

Et hop tout refonctionne à merveille ! Encore un petit truc qui pourra un jour vous sauver la vie ! C’est pas grand chose, mais quand ça vous arrive, ça vous met dans un bel état d’énervement.

 

Suite des articles précédents

Nous avons notre système Raspbian correctement installé et configuré. A ce stade il pourrait être intéressant d’en créer une copie, ce qui permettra par la suite de réinstaller le système plus rapidement, ou encore de se créer plusieurs systèmes. On peut avoir plusieurs cartes SD pour des faire des choses différentes : serveur web pour se mettre un petit WordPress, jukebox, serveur NAS, etc…. On pourra aussi utiliser cette technique pour faire des sauvegardes de la carte, et donc de tout le système.

Donc nous allons voir comment faire une image de la carte SD, comment réinstaller une image sur la carte.

Il existe, en gros, deux méthodes : l’une en ligne de commande en utilisant dd, et l’autre sans ligne de commande. Je ne parlerais que rapidement de la commande dd, le but de ces articles et d’aider le débutant sans trop de connaissance Linux à utiliser son système facilement.

Je tiens à préciser que je suis loin d’être un expert linux, mais que je l’utilise au quotidien depuis de nombreuses années, ayant viré Windows de mes habitudes de travail, et que je ne regrette rien. Juste l’envi de partager, de faire les articles que j’aurai aimés lire quand j’ai débuté (et galéré).

Donc, créons une image de notre Raspbian. Je sors la carte SD de mon Raspberry et je le monte sur mon pc sous Linux Mint. Je vais utiliser l’outil Disques (qui se trouvent dans le menu Accessoires sous Mint Mate).

Gnome Disk Utility est un outil du projet Gnome. Il est installé par défaut dans la distribution Mint (comme sous ubuntu d’ailleurs).

disque

Ensuite il suffit de sélectionner le bon disque (notre carte SD), et d’entrer dans le menu « autres actions » (la roue dentée). Là, on choisira : Créer une image disque.

Ensuite, pour se créer une autre carte SD avec le système tout prêt, opération inverse : on choisit le bon disque mais cette fois-ci, on fera : Restaurer l’image disque.

image-disk

Un détail tout de même qui a son importance : lorsque j’ai voulu faire cette manipulation la première fois, il y a un un problème lors de l’écriture de l’image sur la 2e carte SD : l’utilitaire n’a pas pu finir l’écriture de l’image car mon nouveau disque était trop petit. Il semblerait que deux disques SD de même taille puissent en fait être de tailles différentes. Les deux disques étaient de marques différentes. Donc le mieux est de s’acheter 2 disques identiques dès le départ.

Il existe plusieurs utilitaires pour surveiller ce qui se passe sur son système. Je vais vous en présentez 3, tous en mode console. Je rappelle que je me connecte sur mon Raspberry uniquement par la console en SSH. Ainsi je ne dialogue avec lui que par la console.

Les commandes qui suivent fonctionnent sur le Raspberry, bien sur, mais aussi sur tout système linux. Petit rappel sur ma configuration….

La liste qui suit n’est bien sur pas exhaustive !

Top

Cette commande permet de voir la charge du processeur, la RAM utilisée, les processus en cours et leur consommation. On la lance simplement par :

top

top

Faire un CTRL+C pour quiter top.

Les commandes suivantes sont des variantes de Top, donnant des informations sensiblement équivalentes et parfois plus intéressantes.

htop

Si htop n’est pas installé, le faire par :

sudo apt-get install htop

htop

iftop

Iftop est utile pour surveiller le réseau. La commande se lance précéder de sudo. Pour l’installer :

sudo apt-get iftop

Si vous êtes connectés en ethernet, rien d’autre a faire que sudo iftop. Si vous êtes connecté en wifi, il faut alors lancer :

sudo iftop -i wlan0

wlan0 correspond en général à la connexion wifi. Pour savoir le nom des connexions de la machine, faire un ifconfig. Voir par ici pour plus d’infos.

Faire un CTRL+C pour quiter iftop.

iftop

 

Cet article fait suite à : se connecter en SSH

Nous allons terminer notre configuration de base du Raspberry. Il existe un outil permettant de faire ceci, simple d’utilisation. On ouvre un terminal puis :

sudo raspi-config

La navigation dans la nouvelle fenêtre se fait de la manière suivante : on se déplace dans les options avec les flèches haut et bas, on valide pour choisir, tabulation pour passer dans la zone « bouton », flèches gauche et droite pour changer de bouton.

config01

Régler l’heure

Choisir : Internationalisation options, puis T2 – Change Time zone

config02

config03

Choisir alors le bon fuseau horaire.

Changer le nom de la machine

Par défaut le nom de la machine est « raspberry ». Il est possible de le changer. Pour cela, choisir 8 – advanced options dans le menu de configuration, puis A2 – hostname. Entrez alors le nouveau nom. Ne pas utiliser de caractères spéciaux pour le nom, juste des lettres majuscules et minuscules et les chiffres de 0 à 9.

config04

config05

Une autre méthode est de le faire directement par la console : le fichier contenant le nom de la machine est /etc/hostname. Il suffit de l’éditer et de le modifier. Il existe un petit éditeur de texte que j’aime beaucoup en console, nano. Je lance nano avec sudo pour le modifier :

sudo nano /etc/hostname

hostname

Je modifie ensuite le nom, puis je fais CTRL+O (pour enregistrer) et CTRL+X (pour fermer nano). Le changement sera pris en compte au redémarrage du Raspberry.

Changer le mot de passe

Il est bon de changer le mot de passe par défaut. Si jamais vous utilisez votre Raspberry comme un petit serveur connecté sur le net, ceci est indispensable. On ne redira jamais assez le danger du mot de passe trop facile, ni la nécessite de protéger ses données personnelles, et surtout de les garder confidentielles. Protéger sa vie privée ne signifie pas être un délinquant qui a des choses à cacher ! Chacun a droit à son intimité, et nos données personnelles en font partie. Pensez y la prochaine fois que vous lirez vos mail sur gmail…

Toujours dans raspi-config, choisissez l’option 2 – Change user password

 

Pour finir…

A ce stade, nous avons une configuration minimale correcte. Tout notre système se trouvant sur la carte SD, il peut être une bonne idée de créer une copie de cette carte à cet instant. Ainsi, si je souhaite travailler sur plusieurs projets, je peux me faire plusieurs configurations.

Je clone le système actuel, et si j’ai besoin d’une nouvelle configuration il me suffit alors de mettre la copie sur une nouvelle carte SD et de démarrer la machine, et c’est tout.

Donc la prochaine fois : cloner sa carte SD et restaurer une copie, avec tous les soucis de taille de carte (et oui, j’ai découvert le jour où j’ai fait cela que 2 cartes SD de 16 Go n’ont pas forcément la même taille… et ça coince pas mal dans ce cas).