Graylog2 est un gestionnaire de configuration.
Nous allons voir ici comment installer graylog2-server et comment centraliser vos logs sur ce serveur.
Installation de graylog2-server
MongoDB
Une des dépendance de graylog2-server est mongodb. Mongodb est une base de donnée nosql assez performante qui permet à graylog de garder les traces de vos logs. Nous allons donc installer MongoDB
# aptitude install mongodb mongodb-server
L’installation de base de MongoDB est configurée pour fonctionner et nous n’avons pas besoin de modifier cette configuration.
Deux ports sont ouverts pour MongoDB le 27017 et le 28017
netstat -patue | grep mongodb
tcp 0 0 localhost:28017 *:* LISTEN mongodb 16843 4384/mongod
tcp 0 0 localhost:27017 *:* LISTEN mongodb 16841 4384/mongod
Le port 27017 est le port d’écoute de MongoDB où sont envoyer les données. Le port 28017 est quant à lui le port d’administration. Vous pouvez y accéder via le protocole HTTP.
Nous allons ensuite créer un utilisateur dans MongoDB pour permettre à Graylog2 de se connecter. MongoDB propose pour cela une invite de commande.
$ mongo
MongoDB shell version: 1.4.4
url: test
connecting to: test
type « help » for help
> use graylog2
switched to db graylog2
> db.addUser(‘graylog’, ‘mystrongpassword’)
{
« user » : « graylog »,
« readOnly » : false,
« pwd » : « 3a645a39bef99c8bba9c805e06536240″
}
> db.auth(‘graylog’, ‘mystrongpassword’)
1
Nous démarrons dans un premier temps le shell mongodb et nous connectons à la base graylog2. Nous créons un utilisateur graylog avec comme mot de passe mystrongpassword. Nous testons ensuite la connexion.
OpenJDK
Graylog2 est un produit développé en JAVA. Il nous faut donc une machine virtuelle JAVA. Graylog2 conseil l’utilisation de OpenJDK nous allons donc installer le JRE d’OpenJDK.
# aptitude install openjdk-6-jre
L’installation ne demande pas plus de configuration.
ElasticSearch
Pour des raisons de performance Graylog2 utilise un système d’indexage de données via le produit elasticsearch. ElasticSearch est un produit JAVA lui aussi. Nous allons ici installer la version0.18.7 qui est la dernière version en date à l’heure d’aujourd’hui. Vous pouvez vérifier qu’elle est la version stable actuelle ici.
# cd /opt
# wget https://github.com/downloads/elasticsearch/elasticsearch/elasticsearch-0.18.7.tar.gz
# tar xvf elasticsearch-0.18.7.tar.gz
# ln -s elasticsearch-0.18.7 elasticsearch
Nous créons ensuite un script LSB de démarrage dans init.d et le rendons exécutable. Le script original est disponible ici.
# vim /etc/init.d/elasticsearch
…
#! /bin/sh
### BEGIN INIT INFO
# Provides: elasticsearch
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Starts elasticsearch
# Description: Starts elasticsearch using start-stop-daemon
### END INIT INFOES_HOME=/opt/elasticsearch
ES_MIN_MEM=256m
ES_MAX_MEM=2g
DAEMON=$ES_HOME/bin/elasticsearch
NAME=elasticsearch
DESC=elasticsearch
PID_FILE=/var/run/$NAME.pid
LOG_DIR=/var/log/$NAME
DATA_DIR=/var/lib/$NAME
WORK_DIR=/tmp/$NAME
CONFIG_FILE=/etc/$NAME/elasticsearch.yml
DAEMON_OPTS= »-p $PID_FILE -Des.config=$CONFIG_FILE -Des.path.home=$ES_HOME -Des.path.logs=$LOG_DIR -Des.path.data=$DATA_DIR -Des.path.work=$WORK_DIR »test -x $DAEMON || exit 0
set -e
case « $1″ in
start)
echo -n « Starting $DESC: »
mkdir -p $LOG_DIR $DATA_DIR $WORK_DIR
if start-stop-daemon –start –pidfile $PID_FILE –startas $DAEMON — $DAEMON_OPTS
then
echo « started. »
else
echo « failed. »
fi
;;
stop)
echo -n « Stopping $DESC: »
if start-stop-daemon –stop –pidfile $PID_FILE
then
echo « stopped. »
else
echo « failed. »
fi
;;
restart|force-reload)
${0} stop
sleep 0.5
${0} start
;;
*)
N=/etc/init.d/$NAME
echo « Usage: $N {start|stop|restart|force-reload} » >&2
exit 1
;;
esacexit 0
…
# chmod +x /etc/init.d/elasticsearch
Nous démarrons aussi elasticsearch au démarrage du système.
# update-rc.d elasticsearch defaults
La configuration est disponible dans le fichier /etc/elasticsearch/elasticsearch.yml. Créons ce fichier
# mkdir -p /etc/elasticsearch
# vim /etc/elasticsearch/elasticsearch.yml
…
cluster:
name: graylog2
network:
host: _eth0_
…
Nous déclarons un simple cluster nommé graylog2 et spécifions à elasticsearch d’utiliser l’interface eth0 pour l’écoute. Vous pouvez alternativement spécifier une adresse ip ou enlever cette directive pour écouter sur toutes les interfaces. ElasticSearch écoute par défaut sur le port 9200.
Démarrons maintenant elasticsearch.
# /etc/init.d/elasticsearch start
Graylog2
Nous allons maintenant installer graylog2-server. Graylog2 propose une archive compilé de projet, celle ci est disponible sur github. Nous allons donc télécharger cette archive dans le dossier /opt/graylog2. La dernière version du projet est la 0.9.6, vous pouvez vérifier si une nouvelle version stable n’est pas disponible ici.
https://github.com/downloads/Graylog2/graylog2-server/graylog2-server-0.9.6.tar.gz
# cd /opt
# wget https://github.com/downloads/Graylog2/graylog2-server/graylog2-server-0.9.6.tar.gz
# tar xvf graylog2-server-0.9.6.tar.gz
# ln -s graylog2-server-0.9.6 graylog2-server
L’archive contient aussi un fichier de configuration de base que vous pouvez copier dans /etc/graylog2.cfg
# cp graylog2-server/graylog2.conf.example /etc/graylog2.conf
Nous modifions ensuite ce fichier pour respecter notre configuration de MongoDB et ElasticSearch.
# vim /etc/graylog2.cfg
…
# ElasticSearch URL (default: http://localhost:9200/)
elasticsearch_url = http://localhost:9200/
elasticsearch_index_name = graylog2…
# MongoDB Configuration
mongodb_useauth = true
mongodb_user = graylog
mongodb_password = mystrongpassword
mongodb_host = localhost
#mongodb_replica_set = localhost:27017,localhost:27018,localhost:27019
mongodb_database = graylog2
mongodb_port = 27017…
Ici nous n’avons modifier que le nom d’utilisateur et le mot de passe mais adapter donc les différentes options à vos besoins.
Nous pouvons maintenant tester notre installation en mode debug pour vérifier qu’aucune erreurs n’est arrivée.
# cd /opt/graylog2-server
# java -jar graylog2-server.jar –debug
Si aucune erreur ne survient vous pouvez arreter le service via un [CTRL]+[C].
Comme pour elasticsearch, nous allons créer un script LSB de démarrage. Le script utilisé est disponible ici.
# vim /etc/init.d/graylog2-server
…
#! /bin/sh
### BEGIN INIT INFO
# Provides: Graylog2
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Starts Graylog2
# Description: Starts Graylog2 using start-stop-daemon
### END INIT INFOGL_HOME=/opt/graylog2-server
GL_JAR=$GL_HOME/graylog2-server.jar
NAME=graylog2
DESC=graylog2
PID_FILE=/var/run/graylog2.pid
CONFIG_FILE=/etc/graylog2.conftest -f $GL_JAR || exit 0
set -e
case « $1″ in
start)
echo -n « Starting $DESC… »
/usr/bin/java -jar « $GL_JAR » -f « $CONFIG_FILE » &
echo « started (`cat « $PID_FILE »`). »
;;
stop)
PID=`cat « $PID_FILE »`
echo -n « Stopping $DESC ($PID)… »
kill $PID
echo stopped.
;;
restart|force-reload)
${0} stop
sleep 0.5
${0} start
;;
*)
N=/etc/init.d/$NAME
echo « Usage: $N {start|stop|restart|force-reload} » >&2
exit 1
;;
esacexit 0
…# chmod +x /etc/init.d/graylog2-server
# update-rc.d graylog2-server defaults
Nous pouvons maintenant démarrer graylog2-server
# /etc/init.d/graylog2-server start
Installation d’un client RSyslog
Nous allons maintenant configurer RSyslog sur un des serveurs dont nous souhaitons centraliser les logs.
Tout d’abord installons RSyslog, si ce n’est déjà fait !
# aptitude install rsyslog
Nous souhaitons centraliser tout les logs de notre serveur nous allons donc tous les rediriger vers notre serveur graylog2. Pour cela éditer le fichier /etc/rsyslog.conf et ajouter la ligne suivante
# vim /etc/rsyslog.conf
…
*.* @<ip-server-graylog2>:514
…
Redémarrer rsyslog
# /etc/init.d/rsyslog restart
Et c’est tout ! Tout les logs du serveurs serons maintenant envoyés chez graylog2 !
Graylog2-web-interface
C’est bien beau me direz vous, mais on en fait quoi de nos logs ? Et bien on les lis !! Pour celà graylog2 propose un service web développé en ruby. Nous allons voir son installation.
Tout d’abord installons les outils de base rub, à savoir l’interpréteur ruby lui même mais aussi l’installeur gems et le « constructeur » rake.
# aptitude install ruby rubygems rake
Puis installons le gestionnaire de dépendance bundler via gem
# gem install bundler –no-ri –no-rdoc
Sous Debian les binaires sont disponibles dans le dossier /var/lib/gems/<version>/bin. Nous allons ajouter ce chemin dans notre variable PATH
# vim /etc/profile.d/gems_bin.sh
…
#!/bin/bash
export PATH=$PATH:/var/lib/gems/1.8/bin
…
# chmod +x /etc/profile.d/gems_bin.sh
# source /etc/profile.d/gems_bin.sh
Nous pouvons maintenant télécharger et installer les (nombreuses) dépendances de graylog2-web-interface. La version ici installée est la 0.9.6, vérifier si une nouvelle version n’est pas disponible.
# cd /opt
# wget https://github.com/downloads/Graylog2/graylog2-web-interface/graylog2-web-interface-0.9.6.tar.gz
# ln -s graylog2-web-interface-0.9.6 graylog2-web-interface
# cd /opt/graylog-web-interface
# bundle install
Les fichiers de configuration du serveurs sont disponibles dans le dossier config/*.yml. Editons indexer.yml et mongoid.yml pour les adapter à nos besoins.
# vim config/mongoid.yml
…
production:
host: localhost
port: 27017
username: graylog
password: mystrongpassword
database: graylog2…
Nous pouvons maintenant tester notre serveur en l’exécutant dans le shell courant.
#
script/rails server -e production
… Will continue …
Dans certain cas de rédaction de document vous avez besoin d’insérer dans vim des espaces fines insécables.
Pour cela rien de plus « simple« .
Passer en mode insertion, faite [CTRL]+K puis presser le N (majuscule) puis le S (majuscule). Votre espace fine insécable apparaîtra !!
Introduction
Préambule
Comme vous le savez surement Vim est doté d’un excellent système de correction syntaxique qui vous corrigera sans problème un « Caffé » en « Café » mais qu’en est-il de la correction grammaticale ?
Nous allons ici découvrir un outil fort intéressent nommé LanguageTool et son extension Vim !
Qu’est ce que LanguageTool
LanguageTool est un correcteur grammatical. C’est-à-dire qu’il corrigera vos erreurs d’accord, de pluriel, etc. Le produit est à l’origine disponible pour OpenOffice et à l’instar de ce dernier LanguageTool est écrit en Java. Ceci permet donc de l’exécuter partout et non plus seulement dans OpenOffice.
Installation
Installation de LanguageTool
La première chose à faire est de télécharger LanguageTool sur votre Ordinateur. Pour cela le plus simple est de se rendre sur le site de LanguageTool — http://www.languagetool.org/ — et récupérer le lien vers la dernière version. À l’heure où j’écris ces lignes la version courante est la 1.5. Le fichier que nous allons télécharger est au format OXT qui correspond au format d’extension d’OpenOffice. Prenez soin d’adapter les lignes suivantes à votre version de LanguageTool.
$ mkdir -p ~/software/languagetool/1.5
$ cd ~/software/languagetool/1.5
$ wget http://www.languagetool.org/download/LanguageTool-1.5.oxt
Les fichiers OXT sont en réalité des archives ZIP que nous pouvons facilement décompresser à l’aide de la commande unzip. Pour cela procédons comme suit.
$ unzip LanguageTool-1.5.oxt
Nous avons donc maintenant une liste de fichiers et de dossier assez importante dont le fichier LanguageTool.jar. Ce fichier est la version compilée — appelée bytecode— du correcteur, c’est donc celui ci que Vim exécutera pour faire fonctionner la correction grammaticale.
Nous allons maintenant installer l’extension Vim pour utiliser notre correction grammaticale.
Installation de l’extension Vim
Il existe une extension Vim maintenue par Dominique Pellé et disponible sur le site de Vim — http://www.vim.org/scripts/script.php? script_id=3223. Nous allons télécharger la dernière version de l’extension qui à l’heure d’aujourd’hui est la 1.14. Comme toujours les fichiers Vim se trouve dans le dossier caché .vim à la racine de notre dossier personnel.
$ cd ~/.vim
$ wget « http://www.vim.org/scripts/download\_script.php?src\_id=15306″ -O LanguageTool.zip
Attention: Ce lien télécharge la version 1.14 qui n’est peut-être pas la dernière version.
L’extension Vim est au format ZIP nous la décompressons donc.
$ unzip LanguageTool.zip
Et supprimons l’archive
$ rm LanguageTool.zip
Il ne nous reste plus qu’à configurer Vim pour qu’il utilise notre extension correctement!
Configuration
Nous allons configurer Vim pour qu’il utilise LanguageTool. La configuration de Vim se trouve dans le fichier caché .vimrc à la racine de votre dossier personnel. Éditez-le.
$ vim ~/.vimrc
Il nous faudra tout d’abord spécifier à l’extension Vim l’endroit où trouver le fichier JAR de correction grammaticale. Ceci se fait à l’aide de la variable ’g:languagetool_jar’. Dans notre cas le fichier jar se trouve dans le dossier software ->languagetool ->1.5 dans notre dossier personnel nous ajouterons donc cette ligne à notre fichier .vimrc.
let g:languagetool\_jar=$HOME .
‘/software/languagetool/1.5/LanguageTool.jar’
Enfin par défaut la correction grammaticale est anglaise. Pour modifier ce comportement vous avez deux solutions. Soit, modifier la langue du document en cours d’exécution
:setlocal spell spelllang=fr
Soit, modifier la configuration par défaut pour tous les documents. Cette configuration peut déjà avoir été effectué si vous utilisez la correction syntaxique de Vim. Pour cela éditer le fichier vimrc et ajouter la ligne suivante.
setlocal spell spelllang=fr
Utilisation
L’extension Vim pour LanguageTool ajoute deux nouvelles commandes, LanguageToolCheck et LanguageToolClear. La commande LanguageToolCheck permet d’activer la correction grammaticale. Le document courant sera parcouru par LanguageTool et l’écran de Vim sera découpé en deux pour vous afficher la liste des erreurs grammaticales trouvées dans le document. La commande LanguageToolClear, elle, permet de fermer la correction grammaticale.
Lors de l’exécution de LanguageToolCheck, LanguageTool vous donnera des informations comme celle ci
Error: 1/37 (FRENCH\_WHITESPACE) @ 1L 192C
Message: Point d’interrogation est …
Context: …de la correction grammaticale ? Nous …
Correction: ?
La première ligne vous informera du type d’erreur que vous rencontrez (ici un problème d’espace) et de la ligne où se produit l’erreur — Ici la ligne 1 — ainsi que le caractère sur la ligne. Il vous est ensuite présenté la raison de l’erreur et le contexte de l’erreur, c’est-à-dire le texte où se trouve l’erreur. Enfin LanguageTool vous propose une correction pour le problème que vous pouvez utiliser si vous le souhaitez !
Conclusion
Nous avons vu ici qu’il était très simple d’utiliser la correction grammaticale de LanguageTool dans Vim ce qui prouve encore une fois que tout est possible avec Vim. Si ce n’est pas déjà fait vous pouvez accompagner cette correction avec la correction syntaxique de Vim qui est inclus dans le cœur de Vim. En espérant que cet article vous a aidé, n’hésitez pas à me faire vos retours et n’oubliez pas : Vim c’est la vie !
Cet article est aussi disponible au format tex ou PDF.
En tant que fervent utilisateur de GNU/Linux vous avez il y a plus ou moins longtemps fait l’acquisition d’un Smartphone Android. Comme vous êtes un geek accompli vous souhaitez aujourd’hui mettre à jour votre téléphone pour bénéficier des dernières nouveautés d’Android. Après quelques recherches sur le web vous découvrirez bien vite un produit nommé ondin. Enfer et damnation, ce produit ne fonctionne que pour Windows ! Qu’à cela ne tienne nous allons découvrir une solution équivalente pour GNU/Linux : heimdall.
Un équivalent à Ondin pour GNU/Linux
Ondin est dans la mythologie germaine un génie des eaux qui a donné sont nom à un syndrome respiratoire, à un pratique sexuel… mais surtout à un logiciel !
Ondin est un produit de Samsung^w de développeurs indépendants qui vous permet de mettre à jour le système d’exploitation de votre téléphone Samsung. Ce produit permet de gérer les différents fichiers du système Android allant du partitionnement (organisation des données sur le téléphone), du système en lui même jusqu’au modules de gestion de la connectivité (Téléphone et internet EDGE/3G).
Ce produit bien que pleinement fonctionnel sous Windows n’a pas de version pour GNU/Linux aussi Benjamin Dobell a pris la très bonne initiative de ré-implémenter les fonctionnalités de Ondin dans une application multiplateforme et qui plus est libre! Le nom de cette application est heimdall. Ce nom est lui aussi tiré de la mythologie et est considéré comme un dieu du feu, nous noterons aussi non sans interrogation qu’il est le fils de 9 (oui oui neuf !) mères ! De plus il est le fils adoptif d’ondin !
D’après la documentation Heimdall semble fonctionner sur les Samsung Captivate, Vibrant, Fascinate, Mesmerize, Epic 4G, Galaxy S 4G, Infuse 4G, GT-I9000T, Galaxy Tab, Galaxy S II et GT-I9000. Pour les possesseurs de Samsung Galaxy S votre nom de code est la plupart du temps GT-I9000 donc votre téléphone est supporté !
Installation de heimdall
En nous rendant sur le site de heimdall nous découvrirons qu’il existe plusieurs paquets de l’application. Des paquets sont disponibles pour Windows, Mac OS et Debian. Pour les autres distributions il conviendra de compiler les sources de l’application.
Rendez vous donc sur le github de heimdall pour voir les différents fichiers disponibles en téléchargement : https://github.com/Benjamin-Dobell/Heimdall/downloads
Vous avez du constater qu’il existe trois paquets différents. En voici une description :
- heimdall : Ce paquet est le programme heimdall en ligne de commande. C’est celui ci que nous allons détailler ici.
- heimdall-frontend : Ce paquet est une interface graphique pour le paquet heimdall. Nous ne détaillerons pas son utilisation ici.
- heimdall-suite : Ce paquet contient les deux précédents.
Prérequis
Note : Sous gentoo il existe un ebuild dans l’overlay poly-c, vous pouvez donc l’utiliser avec Layman. Nous détaillerons néanmoins la procédure de compilation pour les autres systèmes (RHEL, Suse, Mandriva, etc …).
Note : La compilation d’une application nécessite les outils de compilation standard. Nous ne détaillons pas ici la procédure d’installation de ceux ci.
Heimdall dépend de la librairie USB qui est disponible sur toutes les distributions. Installer là avec les sources à l’aide de votre gestionnaire de paquet favori (apt, yum, urpmi, …).
Sous Debian
# apt-get install libusb-dev
Sous mandriva
# urpmi libusb-devel
Sous Centos ou RedHat
# yum install libusb-devel
Sous Suse (OpenSuse, SLES ou SLED)
# zypper install libusb-dev
Nous pouvons maintenant commencer la compilation de heimdall.
Compilation
Nous stockerons les sources dans notre dossier personnel. Pour cela nous créons un dossier réservé à heimdall (Ceci doit être adapté à votre goût !)
$ mkdir -p ~/software/heimdall
Et nous nous rendons dans ce nouveau dossier
$ cd ~/software/heimdall
Nous récupérons ensuite les sources de la dernière version stable. Penser à adapter le numéro de version !
$ wget -O heimdall-v1.3.1.tar.gz https://nodeload.github.com/Benjamin-Dobell/Heimdall/tarball/v1.3.1
Décompressez l’archive
$ tar xvf heimdall-v1.3.1.tar.gz
Et accéder aux sources
$ cd Benjamin-Dobell-Heimdall-*
Nous allons dans un premier temps compilez la bibliothèque de gestion des fichiers PIT. Les fichiers PIT sont les fichiers de partitionnement du téléphone.
$ cd libpit
$ ./configure
$ make
Il n’est pas nécessaire d’effectuer un make install c’est le la compilation de heimdall qui s’en chargera.
Nous allons d’ailleurs compiler heimdall.
$ cd ../heimdall
$ ./configure
$ make
Il ne nous reste qu’à installer heimdall ! Pour cela connecter vous en root (avec la commande su ou sudo).
# make install
Heimdall est maintenant installé dans /usr/local/bin/heimdall
Préparation du firmware
Dans l’archive de votre nouveau système Android vous retrouverez trois fichier tar et un fichier pit.
Comme dit précédemment le fichier PIT est un fichier binaire qui configurera le partitionnement de votre téléphone. Pour plus d’information référer vous à cet article[en].
Les autres fichiers sont des archives qui contiennent des fichiers. Nous allons les décompresser.
tar xvf CODE*.tar
tar xvf *CSC*.tar
tar xvf MODEM*.tar
Les fichiers décompressés et intéressants sont les suivants
- factoryfs.rfs : image de la partition système qui contiendra les applications de base
- cache.rfs : image de la partition de cache
- dbdata.rfs : image de la partition de la base de données du système
- boot.bin : application importante qui sera lancé au démarrage du système
- Sb1.bin : deuxième application lancé par le système qui va configurer le téléphone
- param.lfs : fichier contenant les images (JPEG) du système
- zImage : L’image du noyau Linux
- modem.bin : Les drivers de votre puce GSM.
Pour plus d’information sur le démarrage du téléphone aller voir ce site[en]
Installation du firmware via Heimdall
Nous partons du principe que vous avez déjà téléchargé le firmware pour votre téléphone. Nous détaillerons ici l’utilisation de heimdall pour l’installer sur votre téléphone.
La procédure de mise à jour de votre téléphone supprimera des données (comme les SMS, les contacts ou les sauvegarde de angry bird !). Penser à sauvegarder vos données. Je vous conseille la lecture des paragraphes 1.3 (sur la garantie et les risques) et la deuxième partie du paragraphe 1.4 (sur la sauvegarde de vos données) sur ce site.
Nous allons donc télécharger tous ces fichiers sur notre téléphone. Pour cela nous devons mettre notre téléphone en mode téléchargement.
Passer le téléphone en mode téléchargement
Quand un téléphone Android passe en mode téléchargement il écoute sur sont port USB et attend qu’on lui envois des fichiers. Ces fichiers sont dans notre cas les fichiers du système Android.
Pour passer un Samsung Galaxy S en mode téléchargement il vous faudra tout d’abord éteindre le téléphone. Maintenez ensuite les touches volume bas, home et démarrage appuyé jusqu’a ce que le téléphone démarre. Vous verrez alors un jolie Droid pelleter !
Connecter votre téléphone en USB. Vous pouvez vérifier qu’il est bien reconnu dans vos logs
$ tail -f /var/log/messages
Dec 25 22:58:37 localhost kernel: usb 2-3: new high speed USB device number 3 using ehci_hcd
Dec 25 22:58:38 localhost kernel: usb 2-3: New USB device found, idVendor=04e8, idProduct=6601
Dec 25 22:58:38 localhost kernel: usb 2-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Dec 25 22:58:38 localhost kernel: usb 2-3: Product: Gadget Serial
Dec 25 22:58:38 localhost kernel: usb 2-3: Manufacturer: SAMSUNG
Dec 25 22:58:38 localhost kernel: cdc_acm 2-3:2.0: This device cannot do calls on its own. It is not a modem.
Dec 25 22:58:38 localhost kernel: cdc_acm 2-3:2.0: ttyACM0: USB ACM device
Dec 25 22:58:38 localhost mtp-probe: checking bus 2, device 3: « /sys/devices/pci0000:00/0000:00:1d.7/usb2/2-3″
Dec 25 22:58:38 localhost mtp-probe: bus: 2, device: 3 was not an MTP device
Envoi des fichiers
Nous n’avons maintenant plus qu’a envoyer les données avec heimdall sur notre téléphone. La commande suivante devrait faire l’affaire
$ heimdall flash –repartition –pit s1_odin_20100512.pit –factoryfs factoryfs.rfs –cache cache.rfs –dbdata dbdata.rfs –primary-boot boot.bin –secondary-boot Sbl.bin –param param.lfs –kernel zImage –modem modem.bin
Une barre de progression devrait apparaître tandis que les fichiers sont envoyés. Le téléphone redémarrera et appliquera automatiquement les mises à jour pour enfin redémarrer et vous redonner la main. Le premier démarrage peu être un peu long (30 secondes)
Conclusion
Votre téléphone est maintenant près à être utilisé ! Alors amusez vous bien !
Si vous faites partie comme moi des chanceux a avoir accès à music.google.com et que vous utiliser gentoo comme OS favorit vous aurez surement remarqué que le Google Music Manager n’est disponible qu’au format deb et rpm … autrement dit impossible de compiler le logiciel pour uploader ses chansons. Même si les chansons gratuite sont sympa, il n’en reste pas moins que votre coté fan inconditionnel de Patrick Sebastien est frustré.
Nous allons donc voir comment installer le Google Music Manager sur gentoo.
Compilation d’alien
Nous allons dans un premier temps compiler un logiciel nommé alien. Ce soft est principalement connu pour convertir des RPM (format de paquet de la LSB) en deb (format de paquet Debian et « non standard ») mais il permet aussi de convertir des paquet deb en tar.gz !!
Aller assez parler, compilation.
# emerge alien
Téléchargement du deb
Nous allons maintenant télécharger le paquet deb proposé par google. Pour cela rendez vous sur http://music.google.com/, cliquer sur « add music » et selection le paquet deb correspondant à votre architecture (32 ou 64bit).
Pour les faignants voici les liens pour la version beta courante
32bits :
$ wget http://dl.google.com/linux/direct/google-musicmanager-beta_current_i386.deb
64 bits
$ wget http://dl.google.com/linux/direct/google-musicmanager-beta_current_amd64.deb
Extraction du contenu et installation
Nous allons maintenant convertir le deb en tar.gz. Pour cela nous utilisons la commande alien comme suit.
$ alien –to-tgz google-musicmanager-beta_current_*.deb
Ceci créra dans le dossier courant une archive compressé portant un nom s’apparentant à « google-musicmanager-beta-<version>.tgz« . Décompression le.
$ tar xvf google-musicmanager-beta-*.tgz
3 dossiers on été créé dans le dossier courant : opt, usr et etc.
Ces trois dossiers contiennent la version compilé du logiciel, il suffit de déplacer ces fichiers dans les dossiers équivalents de notre système et le logiciel fonctionnera à merveille !
# mkdir -p /opt/google
# mv opt/google/ /opt/google
# mv usr/bin/ /usr/bin
# mv etc/cron.daily/ /etc/cron.daily
Lancement du logiciel
Nous avons copier un lien symbolique nommé google-musicmanager pointant sur /opt/google/musicmanager/google-musicmanager dans /usr/bin qui doit téhoriquement faire partie des chemins contenus dans votre variable PATH. Donc,moyennant un rechargement du shell pour certain shell, vous n’avez qu’a exécuter la commande google-musicmanager pour lancer le Google Music Manager.
$ google-musicmanager
Ceci va vous faire apparaître une jolie fenêtre vous permettant d’uploader vos musiques ! Je vous laisse lire, cliquer sur suivant et le tour sera joué !
Conclusion
Bien qu’il soit regrettable que Google ne propose pas ses sources de l’application nous pouvons tout de même faire fonctionner le Google Music Manager et profiter du service proposé par Google. Alors profitons en !
Aujourd’hui je me suis confronté à un petit problème avec ma Gentoo.
Mes disques USB ne pouvait pas être monté par mes utilisateurs. Le montage des partitions par un utilisateur non root nécéssite deux choses
- Faire partie du groupe plugdev.
# vim /etc/group
…
plugdev:x:196:haldeamon,romain
….
- Modifier les configuration de polkit pour autoriser les utilisateurs à monter les partition et à les démonter.
Editer le fichier /usr/share/polkit-1/actions/org.freedesktop.udisks.policy
# vim /usr/share/polkit-1/actions/org.freedesktop.udisks.policy
….
<action id= »org.freedesktop.udisks.filesystem-mount »>
<description>Mount a device</description>
<message>Authentication is required to mount the device</message>
<defaults>
<allow_any>yes</allow_any>
<allow_inactive>no</allow_inactive>
<allow_active>yes</allow_active>
</defaults>
</action>
…
<action id= »org.freedesktop.udisks.filesystem-unmount-others »>
<description>Unmount a device mounted by another user</description>
<message>Authentication is required to unmount devices mounted by another user</message>
<defaults>
<allow_any>yes</allow_any>
<allow_inactive>no</allow_inactive>
<allow_active>auth_admin</allow_active>
</defaults>
</action>
Un petit redémarrage de service et le tour est joué !
Il se peut qu’au démarrage de votre domU vous n’obteniez aucune invite de connexion shell. Ceci n’est pas très grave sur un système en production avec SSH mais le devient beaucoup plus si nous somme pendant une installation.
Sous debian ceci ce présente comme ceci. Au démarrage vous rester bloqué sur quelque chose comme ca
[ 1.578603] lo: Disabled Privacy Extensions
.
Starting periodic command scheduler: crond.
La raison de ce manque de shell n’est pas un bug mais un manque de configuration de votre domU. En effet xen par défaut ne fournit pas de shell interactif et par conséquent aucune invite de connexion. Il faut donc le spécifier explicitement dans la configuration de votre domU.
Editez votre fichier de configuration de domU (ici /etc/xen/domU.cfg)
# vim /etc/xen/domU.cfg
Ajouter ensuite cette ligne
extra = ‘console=hvc0 xencons=tty‘
L’option extra ajoute des options au démarrage du noyau du domU. Ici la première option est console. Cette option nous permet de spécifier sur quelque console le noyau doit se lancé, la console de xen est hvc0. La deuxième option, xencons, configure la console de xen elle même en spécifiant sur quelle console « réelle » elle doit s’attacher, ici tty.
Ceci devrait vous permettre de démarrer plus sereinement votre machine virtuelle !
Je me suis aujourd’hui confronté à une petite installation d’un serveur iSCSI sous Debian et la connection de client sous linux.
Les deux applications que nous allons utiliser ici sont iscsi_target et open-iscsi.
Quelques termes
Tout d’abord rappelons les termes employés dans le domaine du iSCSI.
- SCSI : Le SCSI est un type de connectique comme le SATA ou l’IDE qui est principalement utilisé sur les serveurs car il offre de très bonne vitesse (de 10k à 15k rpm)
- iSCSI : Le iSCSI est une émulation des commandes du protocole SCSI via le réseau TCP/IP. Il permet de s’abstenir de l’achat de connectiques coûteuses. Il est comparable au FBoE (FibreChannel over Ethernet) pour le FibreChannel.
- Le Target : Un Target iSCSI est un serveur iSCSI, c’est à dire notre SAN. C’est lui qui va distribuer nos données de type bloc via le réseau.
- L’initiator : Un initiator iSCSI est un client. C’est lui qui va se connecter au Target. Une fois la partition montée sur l’initiator le système pourra l’utiliser indifféremment comme si elle était une partition d’un disque physique connecté à la machine.
- LUN : pour « Logical Unit Number » correspond dans le domaine iSCSI au numéro d’identification d’une unité de stockage, c’est à dire à une partition partagé par notre SAN.
Installation du Target
Comme dit plus haut nous allons utiliser iscsi_target qui semble être le produit le plus abouti pour le iSCSI sous linux.
L’installation sous Debian est assez simple. Les paquets concernés sous squeeze sont iscsitarget (le service en lui même) et iscsitarget-dkms (le module noyau).
#aptitude install iscsitarget iscsitarget-dkms
Une fois l’installation effectuée vous devez spécifier explicitement à Debian que vous voulez qu’il démarre le service iSCSI. Pour cela il faut éditer le fichier de configuration /etc/default/iscsitarget et passer la variable ISCSITARGET_ENABLE à true.
# vim /etc/default/iscsitarget
ISCSITARGET_ENABLE=true
Il ne nous reste plus qu’a configurer nos partages !
Avec iSCSI-target vous pouvez aussi bien partager des disques physiques (/dev/sd*), des partitions (/dev/sd*n), des volumes raid (/dev/md*), des volumes LVM (/dev/vg*/mon_lv) que des fichiers simples. Nous allons ici partager des volumes logiques LVM mais vous pouvez tout aussi bien sauter cette étape et adapter les configurations qui suivent ! Installons LVM.
# aptitude install lvm2
Ajoutons des volumes physiques. (Ici deux disques physiques)
# pvcreate /dev/sdb /dev/sdc
Créons un groupe de volume lié à des volumes physiques. (Ici nommé vg0 lié à sdb et sdc)
# vgcreate vg0 /dev/sdb /dev/sdc
Et enfin créons un volume logique (ici de 3G nommé partage1)
# lvcreate -L 3G -n partage1 vg0
Nous avons donc maintenant un volume logique /dev/vg0/partage1 a partager.
Le fichier de configuration de iscsi target est /etc/iet/ietd.conf. Ce fichier est abondamment commenté nous ne détaillerons donc pas toutes les options mais simplement celle que nous allons utiliser ici. En voici la liste
- Target : Définit le début d’un section de configuration d’un partage. Il doit être suivit d’un nom unique identifiant le partage. La RFC 3720 sur le iSCSI propose d’utilisé la forme suivante : iqn.yyyy-mm.<reversed domain name>[:identifier] où yyyy-mm est l’année de mise en service suivit du mois, reversed domain name est votre nom de domaine inversé (par exemple fr.therrat.romain). Nous utiliserons ici iqn.2011-04.fr.therrat.romain:partage1
- IncomingUser : Un couple nom d’utilisateur/mot de passe pour se connecter au partage
- Lun : Les informations sur le ou les volumes à partager.
Voici un exemple de fichier de configuration
Target iqn.2011-04.fr.therrat.romain:partage1
IncomingUser romain password
Lun 0 Path=/dev/vg0/partage1,Type=fileio
Ceci nous crée donc un partage iSCSI nommé iqn.2011-04.fr.therrat.romain:partage1, partageant /dev/vg0/partage1. Vous pouvez ajouter autant de Lun que vous le souhaitez dans chaque partage.
Redémarrons le service iscsi
# /etc/init.d/iscsitarget restart
Voilà qui est fini pour le Target iSCSI passons aux initiators !
Installation d’un Initiator
Nous allons utiliser open-iscsi comme initiator, installons le !
# aptitude install open-iscsi
Modifions le fichier de configuration pour que le service démarre automatiquement. Pour cela modifier la ligne node.startup de manual à automatic
# vim /etc/iscsi/iscsid.conf
node.startup = automatic
Redémarrer ensuite le service
# /etc/init.d/open-iscsi restart
Détectons les partages disponibles sur notre serveur iSCSI avec la commande iscsiadm
# iscsiadm -m discovery -t st -p <ip-target-iscsi>
<ip-target-iscsi>:3260,1 iqn.2011-04.fr.therrat.romain:partage1
Ceci détectera les partages disponible sur le Target iscsi.
Il convient maintenant de configurer votre initiator avec les identifiants que nous avons configuré sur le serveur (pour mémoire : romain/password). Pour cela éditer le fichier /etc/iscsi/iscsid.conf et ajouter les informations suivante
node.session.auth.authmethod = CHAP
node.session.auth.username = romain
node.session.auth.password = password
Redémarrer votre service
# /etc/init.d/open-iscsi restart
Enfin nous pouvons nous connecter à notre partage
# iscsiadm -m node –targetname « iqn.2011-04.fr.therrat.romain:partage1″ –portal « <ip-target-iscsi> » –login
Logging in to [iface: default, target: iqn.2011-04.fr.therrat.romain:partage1, portal: <ip-target-iscsi>,3260]
Login to [iface: default, target: iqn.2011-04.fr.therrat.romain:partage1, portal: <ip-target-iscsi>,3260]: successful
A partir de maintenant vous avez un nouveau disque disponible (/dev/sdb par exemple) sur votre Initiator que vous pouvez utiliser comme un disque classique.
Voila qui conclus donc cet article en espérant qu’il vous sera utile !
Aujourd’hui j’ai un problème sur l’installation d’une debian sur un serveur de stockage.
Au moment d’installer les logiciels (en fait le système de base) Debian se fige sur 5%. Un petit tour sur la console de log (Alt-F4 durant l’installation) m’informe de ceci :
in-target: Pour continuer, entrer « oui ». Pour interrompre l’installation entrer « non » :
Impossible de répondre Oui dans le debian-installer (l’interface en bleu/gris/rouge) evidement ! Il va donc falloir ruser !
Passer sur le deuxième terminal (Alt-F2) et récupérer le PID de l’instance d’aptitude (qui tourne en backend du debian-installer).
# ps aux | grep aptitude
27527 root 26908 S aptitude -o APT::Status-Fd=4 -o APT::Keep-Fds::=5 -o
Nous allons tuer ce processus avec la commande kill
# kill 27527
Ceci fait nous allons régler le problème en installant les debian-archive-keyring qui sont les fichiers de signatures des dépôts Debian. Mais si vous tenter d’utiliser la commande aptitude ceci risque de ne pas fonctionner car vous n’êtes pas sur votre système en cours d’installation mais sur un Linux minimal (BusyBox). Nous devons donc « entrer » dans notre machine en cours d’installation, ceci avec la commande chroot.
# chroot /target
# aptitude install debian-archive-keyring
Après avoir installé les fichiers de signatures nous devons aussi mettre à jours la liste de nos paquets (en quelque sorte pour les valider).
# aptitude update
Enfin revenez sur votre premier terminal (Alt-F1) et reprenez l’installation comme si de rien n’était !
Aujourd’hui j’ai voulu tester le module « nouveau » du noyau Linux pour remplacer le noyau propriétaire Nvidia que j’utilisais jusqu’à présent.
Évidement la première étape a été de compiler le module dans le noyau, hors je me suis heurté à une petite erreur que voici.
drivers/built-in.o: In function `nouveau_acpi_edid’:
(.text+0x13404e): undefined reference to `acpi_video_get_edid’
Ceci est du à une dépendance non satisfaite du module (ceci peut être patché dans le kernel). L’option nécessaire est CONFIG_ACPI_VIDEO qui doit être compilé dans le noyau. Si vous utilisé menuconfig pour la configuration du noyau aller dans Power management and ACPI options > ACPI (Advanced Configuration and Power Interface) Support > Video
Ce module possède lui aussi des dépendances qui sont (entre autre) :
BACKLIGHT_CLASS_DEVICE : Device Drivers > Graphics support > Backlight & LCD device support > Lowlevel Backlight controls
VIDEO_OUTPUT_CONTROL : Device Drivers > Graphics support > Lowlevel video output switch controls
Voici qui devrait régler ce petit problème !!



BabyWadi, Blog d'information sur votre bébé
GeekInfos
M2ENV : Multi Environment Enhanced Network View
