Démarrage long du Raspberry Pi en clavier français

English: Extract from Raspberry Pi board at Tr...
English: Extract from Raspberry Pi board at TransferSummit 2011 (Photo credit: Wikipedia)

L’image Debian de l’OS du Raspberry Pi est en clavier anglais, nous l’avons donc passé en clavier frnçais dans le billet Premier démarrage du Raspberry Pi. On constate alors que lors du démarrage, le système reste longtemps bloqué sur le paramétrage du clavier. Il y a une solution qui consiste une fois logué en mode texte (console linux) à entrer la commande suivante:
sudo setupcon

Après quelques instants, on reprend la main et si on fait
sudo reboot now

on constate que le démarrage n’est plus bloqué au paramétrage du clavier et que le Raspberry est rapidement prêt à l’emploi.

Activation du son au démarrrage du Raspberry Pi

raspberry pi
raspberry pi (Photo credit: osde8info)

Dans mon billet Activer le son du Raspberry Pi je donnais la solution pour activer le son du Raspberry Pi mais cette méthode n’était pas persistente et au nouveau démarrage le son disparaissait. Pour le rendre persistent il faut que le module soit chargé au démarrage du système. Pour cela il faut aller dans le fichier /etc/modules pour y ajouter à la fin la ligne suivante
snd_bcm2835
Ainsi le module sera chargé au démarrage et le son sera activé.

Partitionnement de la SDCard pour le Raspberry

English: RecoNdata Secure Digital Cards Polski...
English: RecoNdata Secure Digital Cards Polski: RecoNdata Secure Digital Cards Deutsch: RecoNdata Secure Digital Cards Nederlands: RecoNdata Secure Digital Cards (Photo credit: Wikipedia)

L’écriture de l’image disque de l’OS sur une carte SD n’est pas la méthode parfaite pour l’installation d’un OS. En effet il s’agit en fait d’une restauration de disque. Aussi utiliser une carte de 8Go fait perdre 5 Go de place. L’image représente un dique de quelques 3 Go seulement.

Une fois arrivé sur le bureau LXDE, nous allons ouvrir un terminal afin de donner un mot de passe au root ce qui va permettre de lancer depuis l’interface les outils nécessitant de passer en root.
Faire:
sudo passwd root

Aller dans le menu Préférence pour lancer l’outil GParted. Il faudra rentrer le mot de passe root définis juste avant. La taille de la partition de swap est totalement ridicule: quelques 100 Mo. Sur mon N900 je dispose d’un swap de 756Mo ce qui donne à l’OS prés d’1 Go de mémoire totale. Si votre SDCard est rapide, on peut octroyer plus de swap, il vaut mieux un système un peu ralenti pas le swap qu’un système bloqué.
On en profitera pour partitionner l’espace libre restant, soit près de 5 Go dans mon cas.

On pourra activer le swap par le menu contextuel sur la partition dans GParted. Ceci n’est pas persistent et au prochain démarrage le Raspberry sera encore coincé dans 256 Mo de RAM minus ce qui utilisé par la GPU. Heureusement que au démarrage l’OS active les partitions de swap trouvée dans le fstab. Il suffit de décommenter la ligne qui déclare la partition de swap dans le fichier /etc/fstab.

Le système de fichier sur la partition nouvellement créée appartient au root. Si le point de montage est /media/DATADonnons-le à l’utilisateur Pi en faisant:

sudo chmod pi /media/DATA

Nous voilà avec un swap et un espace de stockage confortable. Si le besoin est d’installer de nouveaux logiciels, une meilleure option est d’aggrandir la partition racine au lieu de créer une partition de données dans l’espace libre tout en gardant un peu de place à la fin du disque pour le swap.

Activer le son du Raspberry Pi

Raspberries
Raspberries (Photo credit: Ruby’s Feast)

Mon Raspberry était plongé dans un mutisme profond: aucun son ne sortait de la télé. Après avoir vérifié que l’entrée HDMI utilisée sur la télé était bien une vraie entrée HDMI et pas seulement un HDMI/DVI que je soupçonne être simplement prévue pour les sources DVI avec un adaptateur HDMI donc sans son, je me résouds à chercher une solution côté Raspberry.

Une raison possible était la configuration de l’HDMI qui aurait pû être en DVI c’est-à-dire sans son. Pour forcer le mode HDMI il faut mettre dans le fichier /boot/config.txt la ligne suivante
hdmi_drive=2. Cela fait le son ne sortait toujours pas. J’ai alors trouvé sur le site Octet malin la solution. En fait l’image de l’OS ne contient apparament pas le support du son. Il faut télécharger et/ou charger le module son.
Faire:

sudo apt-get install alsa-utils

Puis:

sudo modprobe snd_bcm2835

Le son fonctionne. Pour le vérifier aller dans le menu, son et vidéo pour lancer le lecteur multimédia. Un fichier son se trouve dans la liste. Lancez-le. Attention à ne pas le faire plusieurs fois, tout n’est pas très stables…

Malheureusement cette solution n’est pas persistente car au prochain démarrage, le module son sera paramétré mais non chargé. Il faudra lancer de nouveau le commande

sudo modprobe snd_bcm2835

Il me faut encore trouver comment automatiser cela.

Réception de mon Raspberry Pi

Réservé sur le site de raspberry en févier, commandé fin avril, expédié le 26 juin et arrivé ce jour, le Raspberry Pi est entré dans ma vie… pour de vrai.

Je me suis enregistré pour pré-commande sur les 2 sites de fabrication, le premier à m’avoir donné le droit de passer commande fut Farnell Element 14. Le colis est en faite une enveloppe bulle contenant une facture, une petite boîte blanche et un t-shirt avec le logo du Raspberry.

Un petit cadeau qui ne suffit pas à détourner l’attention sur la petite boîte blanche qui renferme le Raspberry.

L’ordinateur à 25$ est enfin entre mes mains mais avant de pouvoir être opérationnel dans mon salon il me faut lui trouver un cable HDMI et un clavier de petite taille. Un modèle avec pavé tactile  remplacerait avantageusement le couple clavier/souris. Mais cela est une autre histoire.

Base Geneweb sur Cdrom

Logo of GeneWeb
Image via Wikipedia

Geneweb est un logiciel de généalogie libre qui fonctionne sur Linux, MacOS X et Windows. Ecrit en OCamel à l’INRIA, geneweb se présente sous la forme d’une application web. Cela a l’avantage de permettre l’accès à la base de données généalogiques à de nombreuses personnes aussi bien en lecture qu’écriture.

Cependant on peut avoir envie de diffuser la base sous forme de cdrom. C’est le cas quand l’accès au réseau n’est pas possible ou que l’on souhaite archiver une version autonome de la base. La documentation de geneweb présente les manipulations à effectuer afin générer une arborescence que l’on peut ensuite graver sur un Cdrom. Si ces explications constituent une base dans l’automatisation de la tâche de création d’image ISO d’une base geneweb, ce billet explique comment arriver au but final sous Ubuntu 11.04.

En premier lieu, la manipulation consistant à compacter la base en faisant un export au format gw puis un import est à proscrire. En effet selon les cas (configuration de la base ou typologie de celle-ci comme la présence de branche), cette opération risque d’enlever des personnes dans la base. Nous recommandons donc de ne pas effectuer ces optimisations sauf si l’utilisateur en a l’habitude.

La suite des opérations est conforme à la documentation. Nous allons copier la base ainsi que les executables mais aussi mettre en place un autorun pour plateforme windows. Ainsi la base généalogique est distribuable auprès de tous les membres de votre famille même ceux qui ne sont pas (encore) passés dans la lumière du libre !

L’ensemble des opération est heureusement automatisable et nous proposons ici le script bash suivant qui va jusqu’à créer l’ISO. Attention l’exécutable gwd.exe pour Windows doit être mis à dans le répertoire à côté du script !

#!/bin/bash
#-----------------------------------------------
# generate cdrom iso ready to burn from geneweb
#-----------------------------------------------

# check if destination argument is present
if [ $# -ne 2 ]
then
  echo "Usage: $0 base destination"
  echo "base is the name of the base"
  echo "destination is the destination to write the cdrom tree where"
  exit 1
else
  BASE_NAME=$1
  DEST_DIR=$2
fi
# remove existing destination files
if [ -e $DEST_DIR ]
then
  rm -R $DEST_DIR
fi

#create destination
mkdir -p $DEST_DIR

# copy geneweb database
cp -R /var/lib/geneweb/$BASE_NAME.gwb $DEST_DIR/$BASE_NAME.gwb

# copy config file
cp /var/lib/geneweb/$BASE_NAME.gwf $DEST_DIR/

# copy lang, etc, images from /usr/share/geneweb
cp -R /usr/share/geneweb/lang $DEST_DIR/
cp -R /usr/share/geneweb/etc $DEST_DIR/
cp -R /usr/share/geneweb/images $DEST_DIR/

# copy images from /var/lib/geneweb
cp -R /var/lib/geneweb/images $DEST_DIR/

# copy Linux executable
mkdir $DEST_DIR/Linux
cp `which gwd` $DEST_DIR/Linux/

# create gwd.arg for Linux
echo "-wd" >> $DEST_DIR/Linux/gwd.arg
echo "/tmp/geneweb" >> $DEST_DIR/Linux/gwd.arg
echo "-hd" >> $DEST_DIR/Linux/gwd.arg
echo "../" >> $DEST_DIR/Linux/gwd.arg
echo "-bd" >> $DEST_DIR/Linux/gwd.arg
echo "../" >> $DEST_DIR/Linux/gwd.arg
echo "-dd" >> $DEST_DIR/Linux/gwd.arg
echo "../" >> $DEST_DIR/Linux/gwd.arg

# copy Windows executable
mkdir $DEST_DIR/Windows
cp gwd.exe $DEST_DIR/Windows/

# create gwd.arg for Windows
echo "-wd" >> $DEST_DIR/Windows/gwd.arg
echo "c:tempgeneweb" >> $DEST_DIR/Windows/gwd.arg
echo "-hd" >> $DEST_DIR/Windows/gwd.arg
echo "..\" >> $DEST_DIR/Windows/gwd.arg
echo "-bd" >> $DEST_DIR/Windows/gwd.arg
echo "..\" >> $DEST_DIR/Windows/gwd.arg
echo "-dd" >> $DEST_DIR/Windows/gwd.arg
echo "..\" >> $DEST_DIR/Windows/gwd.arg

# create a launcher for Windows
echo "call "cmd /c start ./Windows/gwd.exe"" >> $DEST_DIR/run.bat
echo "@start "" /b "C:\Program Files\Internet Explorer\iexplore.exe" //localhost:2317/$BASE_NAME" >> $DEST_DIR/run.bat

# create autorun for Windows
echo "[Autorun]" >> $DEST_DIR/autorun.inf
echo "open=run.bat" >> $DEST_DIR/autorun.inf    #create an iso
mkisofs -V "Geneweb $BASE_NAME" -o $BASE_NAME.iso -J $DEST_DIR

Ce script a été testé sous Ubuntu 11.04. L’ISO obtenue montée sur Windows XP sous VirtualBox (simulatiion d’une gravue et insertion physique). Une fois le cdrom introduit, un navigateur s’ouvre automatiquemen sur la page d’accueil de la base contenue dans le cdrom.

Distributions Linux pour accès Internet anonyme

Linux Waschmittel
Image by Frank Ristau via Flickr

L’anonymat est une nécessité pour de nombreuses personnes pour lesquelles révéler leur localisation ou laisser des traces sur un ordinateur mettent en danger leur vie. C’est le cas des opposants dans des régimes non démocratiques.
Protéger la localisation se fait par l’utilisation de TOR (The Onion Router) ainsi que par un paramétrage réseau bloquant les accès non “torifiés”. La machine est alors anonymes sur internet car les requêtes qui émanent d’elle transitent par un ensemble de relais TOR dont certain vont être des nœuds de sorties qui changent à intervalles réguliers. Ainsi le site final reçoit des requêtes provenant de localisation multiples changeantes.
Pour ne pas laisser de trace il suffit d’utiliser un système portable sur clé USB. L’utilisateur prendra simplement soin de ne rien écrire sur le disque de la machine, le système sur clé USB utilisant la RAM comme système de fichier temporaire.
L’ensemble des paramétrages pour configurer un tel système est à la porté du grand public. Il existe des distributions dédiées à anonymat:

Le premier, Liberté, contient des fonctionnalités intéressantes comme le cryptage automatique de la partition de l’utilisateur et la génération d’une identité secrète à travers une adresse email secrète en .onion pour communiquer avec d’autres utilisateurs du réseau TOR. Malheureusement je n’ai pas réussi à faire fonctionner cette distribution (version 2011.1 et la snapshot 2011.06.05) sur une clé USB dataTraveler G2 16 Gb sur une première partition. Testé sur 2 machines différentes, le boot échoue et termine sur la ligne de commande.

Le second, Privatix, a le défaut d’être documenté surtout en allemand. Cela complique beaucoup la tâche.

Le dernier, Tails ne propose pas (plus) de cryptage des partitions et semble être fait pour une utilisation en liveCD. Nous choisissons quand même de détailler l’installation de ce dernier car la documentation est en anglais et la traduction française est très suffisante.

Installation de TAILS sur clé USB

Télécharger l’image ISO sur le site du projet .

L’image de la version actuelle 0.7.1 fait 677 Mo. IL nous faut donc une partition de 700 Mo. Créons une première partition de 700 Mo sur la clé USB. Nous utiliserons l’outil GParted disponible dans Ubuntu 11.04.

Le site du projet ne donne pas de précisions pour créer une clé USB bootable. Nous passerons donc par l’outil Unetbootin disponible sur les dépôt d’Ubuntu. Il suffit alors de préciser l’image ISO et la partition de la clé USB où on veut installer TAILS.

L’espace restant de la clé USB peut être utilisé pour une partition crypté. L”outil GParted nous permet de créer une partition en ext4 puis l’outil Utilitaire de disque nous permet de créer une partition crypter en (re)-formatant la 2e partition et en cochant “chiffrer le volume correspondant”.

Voilà, nous avons une clé USB qui nous permet d’utiliser n’importe quelle machine et de se connecter à internet travers le réseau TOR. Attention le système ne persiste rien. Il faudra donc stocker les données à conserver sur la 2nd partition.

Clé USB au format linux

Les clés USB que l’on trouvent dans le commerces sont formatées en FAT32. Ce système de fichier venant du monde Microsoft a l’avantage d’assurer une compatibilité sur tous les systèmes. Ainsi la clé pourra être lue par tous les systèmes d’exploitation (Linux, Mac, Windows).
Mais on peut avoir envie d’utiliser un système de fichier linux (ext2, ext3, ext4). C’est le cas par exemple d’une clé USB bootable (live usb) qui en plus de la partition FAT32 accueillant le live-cd, possède une partition de donnée que l’on souhaite en ext4 pour bénéficier de la gestion des droits ou outrepasser la limite des 4Go de taille de fichier de la FAT32.
Dans ce cas la partition linux de clé USB ne sera pas reconnue sous Windows et il semble alors impossible de partager des fichiers de linux à windows. Heuresement qu’il existe un utilitaire qui permet sous windows de lire des partitions linux jusqu’au ext4: Ext2Read
Tous les linuxiens peuvent donc formatter leurs clés USB en ext4 tout en pouvant partager leurs fichiers avec leurs amis windosiens. Linux est un monde ouvert.

Clé USB au format linux

Les clés USB que l’on trouvent dans le commerces sont formatées en FAT32. Ce système de fichier venant du monde Microsoft a l’avantage d’assurer une compatibilité sur tous les systèmes. Ainsi la clé pourra être lue par tous les systèmes d’exploitation (Linux, Mac, Windows).
Mais on peut avoir envie d’utiliser un système de fichier linux (ext2, ext3, ext4). C’est le cas par exemple d’une clé USB bootable (live usb) qui en plus de la partition FAT32 accueillant le live-cd, possède une partition de donnée que l’on souhaite en ext4 pour bénéficier de la gestion des droits ou outrepasser la limite des 4Go de taille de fichier de la FAT32.
Dans ce cas la partition linux de clé USB ne sera pas reconnue sous Windows et il semble alors impossible de partager des fichiers de linux à windows. Heuresement qu’il existe un utilitaire qui permet sous windows de lire des partitions linux jusqu’au ext4: Ext2Read
Tous les linuxiens peuvent donc formatter leurs clés USB en ext4 tout en pouvant partager leurs fichiers avec leurs amis windosiens. Linux est un monde ouvert.

Un environnement de developpement Java: Mise en place de l’intégration continue

Le concept d’intégration continue est central dans l’élaboration d’une Software Factory. En effet la Software Factory prend tout son sens quand il y a plusieurs projets à intégrer. Sans l’intégration continue on ne dispose pas d’un moyen automatisé pour construire les différents projet et s’assurer de la correcte intégration des uns avec les autres… en continue. Un serveur d’intégration continue a donc pour mission de prendre les sources du projet en provenance du gestionnaire de source, de lancer une construction du projet et de mettre à disposition des membres de l’équipe de développement le résultat qui va contenir le statut du build (succès ou échec) ainsi que les artéfacts résultants (binaires, statistiques des builds….).

Plusieurs serveur de sources existent sur la place dont CruiseControl, Hudson et le nouveau Continuum. J’ai choisi ce dernier pour son intégration naturelle avec maven. Nous allons en faire la démonstration.

L’installation de continuum peut se limiter à une simple décompression d’une archive si on emploie la méthode standalone. Il est cependant indispensable que le serveur d’intégration soit automatiquement démarré donc il faudra passer par une étape supplémentaire pour le configurer en service

sudo ln -s /home/thierry/Programmes/apache-continuum-1.2/bin/continuum /etc/init.d/continuum

sudo update-rc.d -n continuum defaults 80

Lancer alors continuum avec

sudo /etc/init.d/continuum start

Continuum se présente comme un application web dont l’url est //localhost:8080/continuum

La première fois où on accède à cette url il faudra choisir le mot de passe administrateur du serveur continuum puis il faudra s’authentifier en tant que administrateur pour pouvoir ajouter d’autres utilisateurs.

Dans le cas de cet article nous allons simplement détailler l’ajout d’un projet.Utiliser le menu Ajouter un projet > projet maven 2 :

.Continuum - Ajout projet maven 2

Comme à ce stade notre Sofware Factory ne dispose pas d’accès HTTP aux sources nous allons sélectionner le pom.xml de notre copie locale du projet. En maven 2, le pom.xml est le fichier unique qui définit les caractéristiques propres d’un projet: son nom, ses dépendances propres, l’url de son dépôt de source…

Pour que continuum trouve le projet dans Subversion nous devons renseigner cette information dans le fichier pom.xml. Voici un exemple de définition de scm.

<scm>
<connection>scm:svn:svn://thierry:thierry@localhost/vroom/trunk</connection>
</scm>

Sauver le fichier pom.xml et commiter dans subversion.

Cliquer ensuite  sur le bouton browse pour choisir le fichier pom.xml

Continuum - Groupe de projet

Après quelque secondes le projet est ajouté dans le groupe par défaut avec la programmation de construction par défaut : toutes les heures.

La configuration de continuum permet de définir plusieurs patrons de construction (build par heure, build journalier), de rassembler les projets dans des groupes de construction (utile pour builder des modules faisants partie d’un projet ou de projets disjoints mais faisant partie d’une suite logicielle), de définir des environnement de constructions différents (o peut avoir sur le même serveur Continuum plusieurs projets utilisant des JDK ou des versions de maven différentes) et enfin les utilisateurs du serveurs peuvent avoirs des rôles et donc des droits différents. Ce paramétrage pourra être détaillé dans un article futur ainsi que le reporting  automatique des builds. Le prochain article traitera de la mise en place du serveur de repository Archiva.