lundi, novembre 10, 2014

Installation et configuration de Raspbian sur Raspberry PI puis connexion SSH depuis Windows

Je viens de recevoir au travail un ensemble de Raspberry PI (Raspberry PI modèle B et Raspberry PI modèle B+).  Pour une première prise en main, je voulais compiler mon premier programme Java HelloWord dessus sans avoir à connecter sur le Raspberry PI un clavier, une souris et un écran. 

Comme vous pouvez vous en douter, l'objectif de ce billet est de vous montrer comment à partir d'un simple Raspberry PI, installer un OS, se connecter en SSH puis éditer, compiler et exécuter un programme Java. Je me suis fixé comme contrainte de ne pas connecter de clavier, souris et écran sur le Raspberry PI. Ce dernier sera connecté en direct sur mon portable PC Windows via le port Ethernet. Avec le partage de connexion, l'accès Internet disponible depuis ma carte Wifi sera redirigé vers le port Ethernet. Par conséquent toutes les opérations depuis le Raspberry PI seront effectuées depuis mon portable PC Windows.

L'explication qui sera donnée dans ce billet n'est peut être pas la plus simple. En effet, il est simple de connecter le Raspberry PI sur un routeur d'une Box d'en identifier son IP, de se connecter en SSH et de pouvoir profiter d'une connexion Internet depuis le Raspberry PI. Malheureusement dans la configuration au travail, je ne dispose pas de routeur connecté sur Internet.    

Présentation du matériel


Pour les besoins de cette expérimentation, j'ai utilisé le matériel suivant.
  • Un Raspberry PI modèle B+ (repère 1).
  • Un cable USB - Micro-B pour l'alimentation (repère 2).
  • Un cable Ethernet (repère 3).
  • Un micro SD de 4 Go avec un adaptateur grand format pour connecter au PC (repère 4).
  • Un portable PC avec WIFI sous Windows 7.

Télécharger et préparer carte SD 

  • Télécharger depuis le site de Raspberry PI, l'image de Raspbian. Le fichier pèse environ 955 Mo. Un point de détail, j'ai du passer par la version Torrent car la version ZIP posait problème pour le téléchargement.
  • Télécharger Win32DiskImager afin de construire une carte SD bootable. Je souhaitais utiliser Refus, découvert dernièrement, mais il n'a su reconnaître ma carte SD. 
  • Exécuter Win32DiskImager, choisir votre carte SD, choisir l'image Raspbian puis faire Write. Attendre un certain temps, afin que votre carte SD soit prête.

Configurer le partage de connexion Internet (ICS)

  • Ouvrir la fenêtre de Connexions réseau.
  • Sélectionner le réseau sans fil puis afficher les propriétés. 
  • Cocher l'option "Autoriser d'autres utilisateurs du réseau ..." puis sélectionner au niveau de "Connexion réseau domestique" le réseau filaire qui sera utilisé par le Raspberry PI.
  • Cliquer sur Paramètres et sélectionner les services Serveur Web (HTTP) et Serveur Web sécurisé (HTTPS)
  • Pour finir faire Ok 

Fixer une IP pour le Raspberry PI

  • Connecter la carte SD dans le Raspberry PI puis connecter le câble réseau et d'alimentation.
  • Ouvrir une console Windows (cmd.exe).
  • Faire un appel à l'outil ipconfig pour connaître les informations des cartes réseaux.
  • Dans la zone rouge est indiquée l'adresse IP de votre carte réseau. Dans mon cas, mon adresse IP est la 192.168.137.1.
  • Débrancher l'alimentation du Raspberry PI et connecter la carte SD sur le portable PC.
  • Depuis la carte SD, éditer le fichier cmdline.txt puis compléter à la fin en ajoutant le clé ip et la valeur doit suivre le schéma suivant : A.B.C.E::A.B.C.D. Où A.B.C.D est votre adresse IP (pour moi 192.168.137.1) et E une valeur différente par exemple 3. Le résultat attendu est présenté sur la figure suivante.
  • A noter que si vous ne souhaitez pas partager la connexion Internet, saisir de la forme ip=A.B.C.E.
  • Déconnecter la carte SD du portable PC, la connecter sur le Raspberry PI et alimenter le.
  • Attendre environ une minute le temps que l'OS du Raspberry PI soit chargé.

Se connecter en SSH via IP

  • Pour la suite, je suppose que l'outil SSH est installé. Dans mon cas, il est fourni via le package GIT installé sur mon Windows.
  • Depuis l'invite de console Windows (cmd.exe) exécuter l'instruction suivante :
$ ssh pi@192.168.137.3
  • Un mot de passe vous sera demandé, sa valeur par défaut est raspberry.
  • Vous voilà connectez en SSH sur votre Raspberry PI. Il s'agit d'un environnement Linux basé sur Debian. Première chose pour vérifier si l'accès est Internet est fonctionnel, c'est de faire une mise à jour de votre dépôt : 
 $ sudo apt-get update

Se connecter en SSH via le nom d'hôte

Les problèmes avec les solutions précédentes sont les suivants :
  • si on change de Portable PC, il faut recommencer la procédure car l'IP fourni à votre carte réseau local ne sera peut-être pas la même ; 
  • si on souhaite brancher un Raspberry PI sur un routeur avec un DHCP, il faudra supprimer les modifications du fichier cmdline.txt.
Je vous propose dans cette section de rendre accessible le nom d'hôte de votre Raspberry PI depuis votre Windows. Suivre les indications suivantes.
  • Se connecter en SSH vers le Raspberry PI.
  • Par défaut, le hostname du Raspberry PI est raspberrypi. Si vous souhaitez le changer, modifier les fichiers /etc/hostname et /etc/hosts. Ne pas oublier de faire un reboot après changement.
  • Depuis le système Raspberry PI, installer le package Samba :
 $ sudo apt-get install samba
  • Éteindre votre Raspberry PI et connecter la carte SD sur votre portable PC afin de supprimer dans le fichier cmdline.txt les modifications que vous aviez apportées.
  • Connecter votre carte SD sur le Raspberry PI et allumer le.
  • Pour connaître l'IP de votre Raspberry PI depuis Windows, faites simplement
 $ ping raspberrypi
A noter que si vous avez plusieurs Raspberry PI sur le réseau (ce qui n'est pas notre cas ici car c'est du point à point), penser à rendre unique le nom d'hôte.  

Exécuter son premier programme Java

A la première connexion sur le Raspberry PI, j'ai été surpris de voir que la version 8 de Java était installée. Je m'attendais à la version 7. Disposant d'une JVM, j'ai donc décidé de la tester.
  • Créer un fichier appelé HelloWorld.java à partir de nano :
$ sudo nano HelloWorld.java
  • Saisir le bout de code ci-dessous :
public class HelloWorld {
  public static void main(String[] argv) {
    System.out.println("Hello World");
  }
}
  • Compiler via la commande suivante :
$ javac HelloWorld.java
  • Exécuter le programme Java :
$ java HelloWorld
  • Java vous dit bonjour et de mon côté je vous dis à bientôt.

Ressources

mardi, novembre 04, 2014

Liens pratiques de la semaine

Vous trouverez dans ce billet une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées ces dernières semaines. 

Eclipse
Java
  • Une bonne explication sur la différence entre une HashMap et une HashTable
  • GWT 2.7.1 RC1 est disponible. Le Super Dev Mode est maintenant par défaut
  • jORM est un ORM Java très léger
  • jsoup est une bibliothèque pour manipuler le contenu HTML. Ici un exemple sur comment utiliser la recherche avec Google
NoSQL/BigData
  • Un billet français sur le développement de job MapReduce Hadoop
HTML5/JavaScript and co.
  • Etherpad est un éditeur de texte collaboratif
Divers
  • TextQL et q sont des projets permettant d'exécuter des requêtes SQL depuis des fichiers CSV
  • SndLatr, une extension Chrome, est un outil pour programmer l'envoi d'email depuis GMail
  • Movienr est un site Web qui vous permettra de trouver facilement un film en fonction de vos préférences.
  • Apachetop et GoAccess sont deux outils pour suivre les logs de son Apache HTTP favori
  • Refus, un outil permettant de créer des clés USB bootable
  • Un billet qui explique comment packager une box avec Vagrant
  • Taiga est outil de gestion de projet de toute beauté. A côté mon Redmine semble bien triste. J'ai utilisé ce projet Github pour utiliser Taiga sous Vagrant
  • Un billet qui présente rapidement les principes de Docker



mercredi, juin 25, 2014

Eclipse Luna est disponible

Eclipse Kepler laisse place à Eclipse Luna. Pour découvrir les nouveautés de cette version, vous pouvez consulter la news sur Developpez.com que nous avons préparée avec l'équipe.

Bienvenue donc à Eclipse Luna et son support natif de Java 8.

Pensez-vous migrer vers cette nouvelle version ?

lundi, juin 02, 2014

Introduction à Apache Hadoop. Partie 2 : Installation et configuration d'un cluster simple nœud avec Cloudera CDH 5


Le deuxième article sur Apache Hadoop est disponible et s'intéresse à l'installation et à la configuration sur un simple nœud de la solution MapReduce. Une section se focalise sur la manipulation d'HDFS.


En espérant que l'article vous plaira.

mercredi, avril 09, 2014

Introduction à Apache Hadoop. Partie 1 : Généralités sur HDFS et MapReduce


Je viens enfin de rédiger mon premier tutoriel sur Apache Hadoop. Ce premier tutoriel introductif s'intéresse à présenter le système de fichiers HDFS (Hadoop Distributed File System) et le modèle de programmation MapReduce. 


Il s'agit d'un premier tutoriel sur une série de plusieurs. L'idée est de poser les bases des concepts et de pouvoir continuer sur un axe plus technique pour les tutoriels suivants. Le deuxième devrait arriver d'ici peu, il traitera de l'installation et de l'exécution d'un job MapReduce.

J'espère que ce premier tutoriel vous plaira.

Bonne lecture.

vendredi, février 14, 2014

Liens pratiques de la semaine

Vous trouverez dans ce billet une sélection de liens pratiques autour des technologies Java qui m'ont particulièrement intéressées ces dernières semaines.

Eclipse
  • SonF est une implémentation de SWT pour JavaFX. Au lieu d'utiliser les composants natifs du systèmes, ce sont les composants de la boite à outils JavaFX qui sont utilisés.
  • Un exemple qui montre comment réaliser un SplashScreen avec SWT.
  • Un nouveau logo pour Eclipse (source).
Java
  • OWNER est une API qui permet de gérer efficacement un fichier de propriétés. L'API s'occupe de charger un modèle objet Java à partir d'un fichier de configuration (XML ou autre). C'est très simple et efficace.
  • Une photo qui montre un transparent où l'on peut voir "GWT bon mais morte lente". L'auteur semble être un employé de chez Google.
  • GWT 2.6.0 est sortie, pour les nouveautés c'est ici.
  • Un debriefing de la conférence GWT.Create qui s'est tenue à San Francisco et Francfort en décembre 2013.
Divers
  • DevDocs est un site Web qui regroupe au sein d'une même interface, les documentations de différentes bibliothèques et outils (bases de données...). Très pratique pour avoir la documentation de JavaScript ou de PostgreSQL. En mode hors ligne vous avez aussi Dash (Mac) et Zeal (Windows et Linux).
  • WizTree est une application Windows qui cherche les fichiers et dossiers qui prennent le plus d'espace.
  • Start Menu X est un remplaçant au menu Démarrer de Windows. A ajouter au génial Clover.
  • ScreenMarker est une petite application Windows qui permet de faire des annotations sur l'écran en cours. Pratique si vous êtes en réunion ou pour une démonstration.
  • Duplicate File Finder est une application sous Windows qui permet de chercher sur vos disques des fichiers identiques.
NoSQL
  • Un billet qui explique comment créer une cluster virtualisé de plusieurs machines Hadoop avec VirtualBox. La distribution Hadoop utilisée est Cloudera.
  • CQLC est un DSL pour Cassandra s'appuyant sur l'API JOOQ. Cette dernière fournit une API Java de type Builder Pattern basée sur SQL.

dimanche, janvier 05, 2014

Nouvelle année 2014, les résolutions pour cette nouvelle année

Lecteurs de mon blog, je vous souhaite une très bonne année 2014 et pleins de bonnes choses.

L'année 2013 sur mon blog n'a pas été très productif en billets, seulement 10. Du côté des tutoriels, il y a eu un atelier sur EMF et un article généraliste sur Cassandra. Le travail sur Developpez.com me prend beaucoup de temps.

Pour 2014, un article sur Apache Hadoop devrait voir le jour, peut-être un second si j'arrive à bien expérimenter un cluster. J'espère également écrire un atelier sur le développement Eclipse RCP avec Eclipse 4. Je pense enfin réécrire mes deux ateliers SOA (JAX-WS, JAX-RS) afin d'utiliser Eclipse et non Netbeans. 

Encore une fois, très bonne année 2014.