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.

 

Voilà un petit bug très vite casse pied que l’on peut parfois rencontrer sur Firefox, le meilleur de tous les navigateurs. Enfin c’est celui que je préfère pour sa convivialité, ses extensions qui garantissent ma vie privée, et sa compatibilité CSS3.

Voilà le problème : je suis sur google et je lance une recherche. La page de résultat apparaît, je clique sur un lien pour visiter un des sites proposés. Puis je veux revenir sur ma page de résultats pour passer au suivant. Et là, patatra : j’ai une page blanche !! Damned.

Le problème peut se résoudre en forçant le rechargement de la page par F5. Mais c’est quand même embêtant. On peut le fixer définitivement de la manière suivante :

  1. ouvrir une page vierge et taper  about:config dans la barre d’adresse. Firefox vous indique alors que vous allez accéder aux préférences avancées et que toutes erreurs pourraient être dangereuses. Vous promettez d’être sage et la page s’ouvre enfin.
  2. rechercher ensuite la chaîne browser.sessionhistory.max_total_viewers
  3. modifier la valeur de cette chaîne par 0 (la valeur par défaut est -1)

Et le problème est résolu ! Gotcha !

 

La barre d’adresse des navigateurs a bien évolué depuis quelques années, puisqu’elle permet à présent de faire une recherche sans passer par la page web de votre moteur de recherche. C’est bien, mais parfois ça peut devenir très énervant.

Ce matin, travaillant en local sur un site, je voulais me rendre sur un répertoire du site en tapant directement le chemin. Mais voilà, mon bon Firefox fut pris d’une idée de me pourrir la vie en me redirigeant sur mon moteur de recherche avec mon url comme recherche ! Lui qui ne m’avait jamais trahi, le voilà qu’il n’en fait qu’à sa tête (et plus à la mienne).

Après quelques jurons, voici la solution. Car, on peut tout paramétrer dans Firefox.  Marche à suivre :

  1. Dans la barre d’adresse, écrire : about:config
  2. Firefox vous prévient : Attention danger ! Toute modification ici pourrait nuire gravement à votre navigateur préféré.
  3. Cliquer sur : je ferai attention, promis !
  4. Une page s’ouvre, en haut dans la recherche écrire : keyword.enable
  5. On voit alors le paramétrage de cette variable. Changer la valeur et mettre sur False (ça marche en faisant un double clic qui permet de passer d’une valeur à l’autre)
  6. C’est tout !

Bien évidemment si on souhaite revenir en arrière, et annuler cette modification, il suffira de faire la même manipulation et de mettre True pour valeur.

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).

Lorsque je travaille sur mon Raspberry depuis mon pc, j’aime avoir au moins deux terminaux ouverts en même temps : un sur mon pc et un autre où je lance une connexion ssh sur le Rapsberry (voir par ici un article précédent sur la connexion SSH sur le Raspberry).

Mais dans ce cas je dois avoir en permanence deux fenêtres ouvertes. Terminator est un terminal virtuel qui permet de scinder sa fenêtre en deux ou plus, chacune devenant un terminal indépendant. Pour l’installer :

sudo apt-get install terminator

Une fois lancé, il suffit de faire un clic droit dans la fenêtre pour scinder celle-ci horizontalement ou verticalement. On clique ensuite dans la sous-fenêtre pour activer celle-ci. Et on peut bien sur la scinder à son tour par la même méthode. On repère la sous-fenêtre active par sa barre de titre rouge.

terminator

On peut aussi contrôler les sous-fenêtre par des raccourcis :

  • CTRL+SHIFT+E  : scinder la fenêtre verticalement
  • CTRL+SHIFT+O : scinder la fenêtre horizontalement
  • CTRL+TAB: déplacer le curseur dans la fenêtre suivante
  • CTRL+SHIFT+TAB: déplacer le curseur dans la fenêtre précédente
  • CTRL+SHIFT+W : fermer la fenêtre courante

 

Cet article est la suite du précédent : comment installer Raspbian sans écran

Notre système est installé, on peut maintenant tenter de le démarrer. Vérifiez que le Raspberry Pi est bien connecté sur un cable Ethernet relié à votre réseau (box, routeur, …).

La nouvelle version de Raspbian active par défaut le SSH sur le Raspberry, ce qui est une bonne chose car cela aurait été sans cela beaucoup plus difficile.

Pour démarrer le Raspberry, il suffit de lui brancher son alimentation et d’attendre une minute pour que le système soit prêt. A partir d’ici nous allons travailler dans un terminal pour exécuter des commandes. Ouvrez donc une fenêtre terminal. Je rappelle que je suis sous Linux Mint, et donc tout ce qui suit décrit ce qu’il faut faire en étant sous linux.

La plupart des commandes se font directement en mode console, mais certaines doivent être précédées de sudo, car elles demandent des droits administrateurs pour être exécutées.

Il faut à ce stade connaître l’adresse IP du Rapsberry Pi. Plusieurs méthodes pour cela.

  1. Vous avez un routeur, et vous pouvez lire la table DHCP de ce dernier : elle vous donnera la liste des ordinateurs connectés et leur IP.
  2. Vous avez une tablette sous Android connectée à votre réseau local, installer Fing et scanner votre réseau. Il vous donnera la liste des machines connectées ainsi que leur IP, leur adresse MAC, et vous permettra aussi de connaître les services actifs sur chacune d’elles.
  3. Vous n’en savez rien du tout, il va falloir se remonter les manches. Nous allons nous mettre dans le pire des cas : celui-ci.

Trouver l’adresse IP de votre Raspberry

Pour cela nous allons utiliser nmap. nmap permet (entre autre) de scanner un réseau pour y détecter les machines présentes, les ports ouverts. On commence par installer nmap si ce n’est déjà fait. Dans la console, lancez la commande :

sudo apt-get install nmap

Une fois installé, on va scanner son réseau local. Tout d’abord, connaître l’IP du pc sur lequel on travaille. Pour cela :

ifconfig

Exemple de réponse de la commande :

 eth0      Link encap:Ethernet  HWaddr XXXXXXXXXXXXX
          inet adr:192.168.1.60  Bcast:192.168.1.255  Masque:255.255.255.0

L’adresse IP de ma machine est donc 192.168.1.60, ce qui veut dire que mon Raspberry sera sur une adresse en 192.168.1.xxx. Il me faut donc scanner ce réseau : 192.168.0.0/24.

Je lance nmap par la commande suivante :

sudo nmap -O 192.168.1.0/24

Le résultat est un peu long, en voici un morceau choisi :

Nmap scan report for 192.168.1.100
Host is up (0.0096s latency).
Not shown: 999 closed ports
PORT   STATE SERVICE
22/tcp open  ssh
MAC Address: xxxxxxxxxxxxxxxxxxxxxx
No exact OS matches for host (If you know what OS is running on it, see http://nmap.org/submit/ ).

Donc je connais l’adresse IP du Raspberry : 192.168.1.100. De plus je peux voir aussi que le service ssh est ouvert, ce qui va me permettre de me connecter. Allons-y.

Lancer une connexion SSH

Si on n’a pas modifié les paramètres par défaut à l’installation, le nom d’utilisateur est pi et le mot de passe raspberry. SSH permet de se connecter sur un ordinateur distant, en cryptant les données, et d’exécuter des commandes sur ce pc.

Il suffit d’écrire : ssh nom_utilisateur@ip-de-la-machine. Donc :

ssh pi@192.168.1.100

Là je reçois la demande de mot de passe :

pi@192.168.1.101's password:

On écrit donc raspberry. Le texte ne s’affiche pas ce qui est tout à fait normal. On valide, on reçoit alors à la première connexion une demande d’autorisation de clé. Ce sont les clés de cryptage du SSH. On accepte et nous voila connecté sur la Raspberry :

Linux raspberrypi 3.12.22+ #691 PREEMPT Wed Jun 18 18:29:58 BST 2014 armv6l
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
pi@raspberrypi ~ $

La dernière ligne, le prompt, nous montre bien que nous ne sommes plus sur la console de notre pc mais sur celle du Raspberry. C’est gagné !

Mettre à jour le système

Première chose à faire : mettre à jour la Raspbian. C’est une bonne chose à faire que de maintenir son système à jour. Les commandes qui suivent pourront donc être lancées de temps en temps pour faire une mise à jour.

On commence par rafraîchir la listes des packets existants, ce qui permettra au Raspberry, par comparaison de version de savoir ceux qui ont besoin d’une mise à jour.

sudo apt-get update

Puis, on lance la mise à jour. Il nous donne la liste des packets à actualiser, on répond oui et on laisse faire.

sudo apt-get upgrade

Mettre en place une connexion VNC

Peut être avez-vous maintenant envie de voir tourner le Raspberry comme si vous étiez devant un écran et de l’utiliser comme tel. Oui mais, comme moi, vous n’avez pas d’écran. Qu’à cela ne tienne, on va installer un serveur VNC sur le Raspberry, ce qui nous permettra une prise en main distante. Pour cela, installons tightvncserver :

sudo apt-get install tightvncserver

Ensuite, on lance le serveur vnc par la commande :

vncserver :1

Lors du premier lancement, on vous demandera un mot de passe qui sera celui du serveur VNC. Mettez donc le mot de passe souhaité. (note : le “:1” signifie qu’on lance le vnc et qu’on créer une instance qui écoutera sur “1”. Il est possible donc d’en lancer plusieurs, sur d’autres valeurs bien sur).

Le serveur VNC tourne, essayons de nous connecter en mode graphique. J’ouvre une deuxième console sous Linux, la première servant au SSH. Il me faut un client VNC pour me connecter. Si je n’en ai pas déjà un, je vais installer xtightvncviewer

apt-get install xtightvncviewer

Ensuite je me connecte en précisant l’ip de mon Rapsberry, et le canal du serveur VNC :

xtightvncviewer 192.168.1.100:1

Je donne le mot de passe et…. me voila connecté à distance sur mon Raspberry !

vnc

Quand j’ai terminé, je ferme la fenêtre. Il est temps d’éteindre le Raspberry. Je repasse sur la console SSH et je lance la commande d’extinction des feux :

sudo shutdown -h 0

Un premier message me confirme que le Raspbery va s’éteindre :

Broadcast message from root@raspberrypi (pts/0) (Wed Aug 13 19:25:59 2014):
The system is going down for system halt NOW!

Un dernier que la connexion SSH est fermée (car le système est éteint). Je peux alors débrancher l’alimentation du Raspberry.

Connection to 192.168.1.100 closed by remote host.
Connection to 192.168.1.100 closed.

C’est tout pour aujourd’hui.

 

raspberrypibplusPremier problème pour moi avec mon Raspberry Pi : je n’ai pas de moniteur HDMI, alors comment faire pour utiliser cette petite merveille sans avoir de moniteur ?

Je travaille sur une Linux Mint, donc dans les tutos qui vont suivre, j’expliquerais les différentes étapes qui m’ont permis de faire tourner mon Raspberry en partant de mon Linux.

Donc première étape : installer un système d’exploitation sur le Raspberry Pi sans avoir d’écran.

Pour cela, j’ai utilisé la distribution NOOBS, récupérée sur le site officiel de Raspberry Pi. NOOBS (New Out Of the Box Software) permet de choisir entre différentes distributions : on lance le Raspberry Pi, et dans le menu qui apparaît, on sélectionne celle que l’on veut. Mon choix se porte sur la distribution Raspbian, basé sur Debian.

Mon objectif : réaliser cette installation en aveugle, n’ayant aucun moniteur à mettre sur mon Rapsberry.

Etape 1 : préparer la distribution

On télécharge donc NOOBS que l’on récupère sous la forme d’une archive zip. On commence par la dézipper, ce qui crée un répertoire /NOOBS_v1_3_9.

  • Aller dans le répertoire /NOOBS_v1_3_9/OS et supprimer tout les dossiers sauf Raspbian qui contient la distribution à installer.
  • Dans /NOOBS_v1_3_9/OS/Raspbian : éditer le fichier flavours.json

Avant :

{
  "flavours": [
    {
      "name": "Raspbian - Boot to Scratch",
      "description": "A version of Raspbian that boots straight into Scratch",
      "feature_level": 123900
    },
    {
      "name": "Raspbian",
      "description": "A Debian wheezy port, optimised for the Raspberry Pi",
      "feature_level": 123900
    }  
  ]
}

Après modifications :

{
  "flavours": [
    {
      "name": "Raspbian",
      "description": "A Debian wheezy port, optimised for the Raspberry Pi",
      "feature_level": 123900
    }  
  ]
}
  • On revient dans le répertoire racine pour éditer le fichier /NOOBS_v1_3_9/recovery.cmdline. On ajoute à la fin de la ligne de commande les valeurs  silentinstall lang=fr keyboard=fr. silentinstall permettra de lancer l’installation automatiquement sans avoir à passer par le menu. Les deux autres options définissent la langue utilisateur et le clavier sur français.

Avant :

 runinstaller quiet vt.cur_default=1 coherent_pool=6M elevator=deadline

Après ajouts :

 runinstaller quiet vt.cur_default=1 coherent_pool=6M elevator=deadline silentinstall lang=fr keyboard=fr

Par défaut, l’utilisateur se nomme pi et le mot de passe est raspberry. On peut changer cela si on le souhaite lors de l’installation en éditant le fichier /NOOBS_v1_3_9/os/Raspbian/os.json. On modifie pour cela les valeurs suivantes :

"username": "pi",
"password": "raspberry"

Étape 2 : copier sur la carte SD

Une fois les modifications faites, on copie le contenu du répertoire NOOBS_v1_3_9 à la racine de la carte SD. Celle-si aura été formatée en FAT32.

Sous Linux Mint, cette action se fait rapidement avec le formateur de clé USB (Logiciels > Accessoires > Formateurs de clé USB)

Bien vérifier que les modifications des fichiers n’ont pas généré de fichiers cachés de sauvegarde (cela dépend de la configuration du logiciel utilisé) : sous Linux, un petit CTRL+H dans l’explorateur de fichiers fait apparaître tous les fichiers. Si on en trouve, les supprimer.

 

Étape 3 : en avant !

Insérer la carte micro-SD dans le Raspberry, connecter un câble Ethernet (cela permettra au système de détecter la connexion réseau et de configurer le SSH) et brancher le câble d’alimentation, ce qui fera démarrer le Raspberry.

Ensuite il faut attendre environ 1h30, le temps que le système s’installe. On ne voit rien mais la machine travaille. Une fois le temps écoulé, le système est installé, on peut alors débrancher l’alimentation.

Notre Raspberry est prêt pour une première utilisation.

La suite : je me connecte en ssh sur mon Raspberry et j’installe un VNC.

 

Et voilà, je viens de recevoir mon Raspberry Pi, modèle B+, le petit dernier.

Le Raspberry Pi est un mini ordinateur de la taille d’une carte de crédit, un peu plus épais quand même, on dira de la taille d’une cassette audio.

raspberrypibplus2

Il est équipé de : 4 USB, 1 port Ethernet, une sortie audio mini-jack, une sortie HDMI pour la vidéo, une entrée mini-usb pour l’alimentation, et une micro SD pour installer le système d’exploitation, et pour finir, un GPIO de 40 broches, qui permettra de connecter le Raspberry à des montages électroniques et de les piloter par des programmes en Python.

Le processeur est de 700 Mhz et il possède 512 Mo de SDRAM.

Au fil des différents articles qui suivront, toutes mes découvertes sur l’utilisation de ce petit appareil fort sympathique, étapes par étapes.

 

Quelques liens :