mercredi 29 octobre 2008

AppDB WineHQ : ma petite contribution

J'ai proposé un screenshot d'EVE Online fonctionnant avec Wine sur le site WineHQ Appplication Database. Le screen en question permet de montrer qu'en mission (c'est à dire en situation ou le jeu est relativement chargé graphiquement), le jeu reste fluide.

Le screen en question : http://appdb.winehq.org/appimage.php?iId=20914

Une version de meilleure qualité :

Le compteur FPS est en haut à gauche : 30 en moyenne, et c'est tout à fait correct. En station ou dans l'espace, il avoisine les 50.

mardi 28 octobre 2008

Wuala sur FreeBSD, méthode brutale et fonctionnelle

Wuala est un programme de partage/stockage de fichiers basé sur du peer-to-peer. C'est en quelque-sorte un "freenet commercial" qui est pas vraiment tip top niveau anonymité, avec un côté "facebook" non négligeable.

Je ne suis pas du tout fan, mais je voulais quand même tester le système derrière qui ne semblait pas du tout excécrable.

Avant de se lancer dans la partie marrante, il faut installer les dépendances : Wuala est fait en Java et utilise SWT.

su
cd /usr/ports/java/jdk16
make install clean ## Accrochez vous
cd ../../x11-toolkits/swt
make install clean


Ensuite, téléchargez l'archive Linux de Wuala. Décomressez là dans n'importe quel répertoire.

Ouvrez un terminal, rendez-vous dans ce répertoire, et lancez Wuala en mode non graphique, afin qu'il se mette à jour.

./wualacmd -nosun
[...]
1%
2%
[...]
100%
^C


Une fois qu'il s'est mis à jour, tuez-le (Ctrl-C). Normalement, un dossier ~/wuala/ s'est crée.
Ouvrez alors ~/wuala/Program4/Wuala.190 (le nombre 190 peut varier) avec votre gestionnaire d'archives. Vous verrez à la racine de cette archive, un certain nombre de librairies ayant un nom du type "libswt-*.so". Supprimez-les, et ajoutez dans cette archive vos librairies SWT qui se trouvent dans /usr/local/lib/libswt*.so ; refermez l'archive, puis lancez Wuala avec la commande suivante :

./wuala -nosun


Et, vous pourrez tester Wuala. Cette méthode est fonctionnelle, mais elle est vraiment brutale, car cette manipulation sera à refaire à chaque mise à jour de Wuala (cependant, les mises à jour sont assez espacées dans le temps, rassurez vous).

samedi 31 mai 2008

Compiler et installer FahMon avec FreeBSD

Lorsque j'ai voulu installer FahMon, il m'a fallu m'y reprendre plusieurs fois avant de réussir.

Il m'a tout d'abord obtenir les sources de FahMon, puis de les extraire.

A chaque fois, j'obtenais le fatidique message suivant quand je lancais le script configure :

checking for wx-config... no
configure: error:
wxWidgets must be installed on your system.

Please check that wx-config is in path, the directory
where wxWidgets libraries are installed (returned by
'wx-config --libs' or 'wx-config --static --libs' command)
is in LD_LIBRARY_PATH or equivalent variable and
wxWidgets version is 2.8.0 or above.


J'ai donc du installer le port wxgtk28-unicode...

su
cd /usr/ports/x11-toolkits/wxgtk28-unicode
make install clean


Il a ensuite fallu indiquer au script configure le bon fichier wx-config de la manière suivante :

./configure --with-wx-config=wxgtk2u-2.8-config


Et surprise, ça fonctionne. Il ne reste plus qu'a savourer en compilant et en installant le tout !

make
su
make install


Cadeau bonus : la compilation fait comme si on installait un port. Pour supprimer le programme, un simple "pkg_delete fahmon*" suffit ! Magique non ?

vendredi 30 mai 2008

T-Shirt FreeBSD enfin reçu \o/

Ca y est, je l'ai enfin reçu après 25 trèèèèès longs jours d'attente !

Le tout vient directement des US, alors ça explique les délais.

Voici quelques photos :




mardi 27 mai 2008

Astuce : recherche de ports plus facile

Peu après ma découverte de FreeBSD, je trouvais la recherche de ports fastidieuse.

On peut donc automatiser grandement la tâche avec un petit script shell...

Par exemple, ceci dans /bin/portsearch :

#!/bin/sh

if [ $1 ]
then

cd /usr/ports/
make search name=$1 | less

else
echo "Usage : portsearch port-name"
fi


L'utilisation est très simple et permet de gagner beaucoup de temps :o)

Installer Folding@Home sur FreeBSD

N'ayant trouvé aucun bon tuto expliquant l'installation de Folding@Home pour FreeBSD, je décide de partager mes résultats.

Qu'est-ce que F@H ? C'est un logiciel utilisant pour replier des protéines la puissance CPU inutilisée par votre ordinateur.

Étape 1. Télécharger F@H.



Rendez vous sur la page du projet : http://folding.stanford.edu/English/Download
Choisissez la version Linux.

Étape 2. Installer F@H.



Choisissez le répertoire dans lequel vous voulez installer F@H. J'ai personnellement choisi /etc/folding. Toute les manipulations suivantes seront à faire en root, n'oubliez pas de remplacer les répertoires si vous en avez choisis des différents, et modifiez obligatoirement les numéros de versions de F@H (506).

On crée le répertoire :
$ su
# mkdir /etc/folding


Je possède un processeur Hyper-Treading. C'est en gros comme le Dual Core mais en moins performant (deux coeurs sont simulés). Je n'ai pas pu choisir le client SMP car je ne suis pas en 64 bits, donc il faut utiliser simultanément 2 clients F@H...

# mkdir /etc/folding/1 && /etc/folding/2


Il faut ensuite copier l'exécutable téléchargé. Attention : vous devez avoir la compatibilité binaire Linux activée (plus d'infos dans le handbook : http://www.freebsd.org/doc/fr_FR.ISO8859-1/books/handbook/linuxemu-lbc-install.html).

# cp /home/vous/Download/FAH*.exe /etc/folding/1
# cp /home/vous/Download/FAH*.exe /etc/folding/2
# rm -f /home/vous/Download/FAH*.exe


Étape 3. Configuration du client.



Il faut ensuite configurer les clients téléchargés. Choisissez en fonction de vos besoins.

La configuration devrait logiquement être identique pour les deux clients, cependant attention : vous devez choisir un ID machine différent pour chaque client (dans la configuration avancée). Prenez par exemple 1 et 2.

# cd /etc/folding/1
# chmod +x FAH*.exe
# ./FAH504-Linux.exe -configonly # ID machine : 1
# cd ../2
# chmod +x FAH*.exe
# ./FAH504-Linux.exe -configonly # ID machine : 2


Étape 4. Choisir les bons flags et tester.



Testons ensuite si tout fonctionne sur des roulettes.
Il faut choisir obligatoirement le flag -freeBSD, qui permet de convertir automatiquement les cores téléchargés avec brandelf.

Ensuite, vous pouvez utiliser -advmethods qui permet l'utilisation de nouveaux cores scientifiques, et -forceasm qui oblige F@H à utiliser les optimisations (ne vous en servez pas si vous rencontrez des problèmes par la suite). Le flag -verbosity 9 permet au client d'être plus bavard. Il est purement décoratif et ne modifie pas le fonctionnement du client.

# cd /etc/folding/1
# ./FAH504-Linux.exe -freeBSD -advmethods -forceasm -verbosity 9


Normalement, votre résultat devrait ressembler à :
[01:02:03] Completed 0 out of 2500000 steps (0%)


C'est que tout fonctionne très bien. Vous pouvez choisir de lancer les deux clients de cette facon et de vous arrêter là. Cependant, c'est peu pratique et un démon nous faciliterait la tâche.

Étape 5. Création du démon F@H.


(Je me suis inspiré et ai adapté le script disponible ici : http://doc.ubuntu-fr.org/fah_installation_manuelle)

Le démon F@H va nous permettre d'automatiser et de faciliter le démarrage et l'arrêt des clients F@H.

Voici le contenu du script à placer dans /etc/folding/startfah.sh :
#!/bin/sh
# Ce script permet de lancer les deux clients automatiquement en tâche de fond.

echo -n "Starting Folding@Home Core 1 ... "
# Changer de répertoire est très important car le client se base sur le répertoire courant pour les fichiers. Adaptez selon vos besoins...
cd /etc/folding/1/

# Modifiez les flags si vous le souhaitez. L'ajout de >/dev/null & permet au client de nous "rendre la main" et de ne pas monopoliser le terminal. Il est donc lancé en tâche de fond.
./FAH504-Linux.exe -freeBSD -forceasm -advmethods >/dev/null &
echo "done."

# Idem pour le deuxième client...

echo -n "Starting Folding@Home Core 2 ... "
cd /etc/folding/2/
./FAH504-Linux.exe -freeBSD -forceasm -advmethods >/dev/null &
echo "done."


Placez ensuite le contenu de ce script dans /etc/rc.d/fah :
#!/bin/sh
# /etc/rc.d/fah
# Démarre/Arrête/Redémarre le démon F@H
# Usage : /etc/rc.d/fah (stop|start|restart)

fah_start() {
# On exécute le script de lancement précédémment crée.
# Adaptez si vous avez choisi un répertoire différent.
/etc/folding/startfah.sh
}

fah_stop() {
echo "Stopping Folding@Home..."
# Changez le numéro de version si il diffère.
killall FAH504-Linux.exe
}

fah_restart() {
fah_stop
sleep 2
fah_start
}

case "$1" in
'start')
fah_start
;;
'stop')
fah_stop
;;
'restart')
fah_restart
;;
*)
fah_start
esac


Ensuite, vous devez rendre ces deux fichiers exécutables.
chmod +x /etc/folding/startfah.sh /etc/rc.d/fah


Vous pouvez dès lors tester le démon en exécutant les commandes suivantes :
# /etc/rc.d/fah start
# /etc/rc.d/fah stop


Vous pouvez tester si le CPU est utilisé en majorité par FahCore_XX.exe avec top par exemple.

Maintenant que ça fonctionne, vous souhaitez sûrement automatiser le lancement du démon au démarrage. Pas de problème, rajoutez simplement cette ligne dans votre /etc/rc.conf :
fah_enable="YES"


Et voila ! Tout est maintenant terminé.

Étape 6. Simplifions-nous la vie (facultatif).



Vous souhaitez sûrement pouvoir voir l'état des clients (avancement de la molécule, ...). Pas de problème ! Il vous suffit juste de créer un petit script shell, dans /bin/fahstatus par exemple :
#!/usr/local/bin/bash

cat /etc/folding/1/unitinfo.txt

echo ""
echo ""

cat /etc/folding/2/unitinfo.txt


Il vous suffit ensuite de rendre le fichier exécutable pour pouvoir obtenir un résultat.

# chmod +x /bin/fahstatus
$ fahstatus
Current Work Unit
-----------------
Name: p4549_T0415-16_minout
Download time: May 27 01:01:57
Due time: June 28 13:01:57
Progress: 66% [||||||____]


Current Work Unit
-----------------
Name: p4548_T0409-16_minout
Download time: May 27 01:09:15
Due time: June 28 13:09:15
Progress: 64% [||||||____]


Magique non ? Bon folding !