Maniatux's Blog

Welcome to the internet

Archives 2014

Découverte de XEN sur Debian Wheezy

Rédigé par Xavier - - Aucun commentaire

XEN n'est pas nouveau pour moi, j'en parlais sur ce blog en 2011. Mais à l'exception de la solution XenServer, c'était relativement obscur, compliqué, et déprécié par les distributions Linux au profil de solutions alternatives (KVM et LXC). Je pensais vraiment que Xen allait disparaitre ou sombrer dans l'oubli. En fait non car en 2014 non seulement XEN est toujours très utilisé (par exemple chez AWS, le cloud Amazon), mais il est en plus upstream dans le kernel Linux et géré par la Linux Fundation. Il est donc revenu en force dans toutes les distributions Linux. J'ai été surpris de constater que maintenant on peut l'installer et l'utiliser très facilement sur Debian Wheezy, je vais partager mon expérience sur cet article ;)

Notions Dom0 et DomU

Sur des hyperviseurs comme Hyper-V ou VMware nous sommes habitués à exécuter des machines virtuelles depuis l'hôte. Or sur XEN cette notion est différente, l'hôte devient une machine virtuelle XEN avec des privilèges d'administration nommée Dom0. Donc au démarrage votre serveur doit démarrer XEN et ensuite le Dom0 sur lequel vous vous connectez. On peut limiter la RAM et les vcpus de Dom0 comme pour les autres.

Les autres VMs que l'on va faire tourner sur XEN, et qui elles n'ont pas de privilèges particuliers, sont nommés DomU. Voici un schéma pour récapituler :

Dans le cas de cet article, le Dom0 est Debian Wheezy. Cela peut paraître assez abstrait comme ça, mais si vous le mettez en oeuvre, vous comprendrez !

Installation de Debian

L'installation se fait à partir d'une ISO tout à fait normale de Debian. Personnellement je suis parti sur une Wheezy amd64 en netinstall, donc la debian-7.4.0-amd64-netinst.iso. Il est possible d'utiliser LVM avec XEN, mais je préfère faire simple pour le moment, je choisis donc un partitionnement assisté avec tout dans une même partition.

Installation de XEN

Sur une Debian Wheezy fraichement installée, il suffit d'installer le paquet xen-hypervisor :

# apt-get install xen-hypervisor

Boot automatique sur Xen

Passer Xen en priorité dans grub :

# dpkg-divert --divert /etc/grub.d/08_linux_xen --rename /etc/grub.d/20_linux_xen
# update-grub

Configuration du réseau (bridge)

Il suffit de modifier le fichier /etc/network/interfaces pour avoir un Bridge. Exemple pour moi qui suis en DHCP :

#The loopback network interface
auto lo
iface lo inet loopback

iface eth0 inet manual

auto xenbr0
iface xenbr0 inet dhcp
   bridge_ports eth0

Note : Si comme moi vous faites vos essais dans VirtualBox, méfiance. Si on utilise déjà un pont dans VirtualBox, xenbr0 ne fonctionnera pas correctement (les domU peuvent pinger dom0 mais pas internet). J'ai pas mal bloqué sur ce problème et finalement la solution consiste à laisser VirtualBox en NAT.

Installation des Xen Tools

Xen-tools permet de créer facilement des domU à partir de templates, et c'est la solution la plus simple :

# apt-get install xen-tools

Configuration du template Xen Tools

On édite le fichier /etc/xen-tools/xen-tools.conf. Voici les lignes à modifier pour notre cas :

dir = /home/xen
size   = 10Gb      # Disk image size.
fs     = ext4     # use the EXT4 filesystem for the disk image.
bridge = xenbr0
ext4_options     = noatime,nodiratime,errors=remount-ro

Et voilà.

Déploiement d'un DomU Debian

Note : Il faut prendre soin de rebooter après les manipulations précédentes, afin d'avoir Xen et le Dom0 opérationnels avant d'aller plus loin.

Voici la commande pour créer un hôte de type Debian Wheezy qui sera nommé Wheezy :

# xen-create-image --hostname wheezy --dhcp --vcpus 1 --pygrub --dist wheezy

WARNING
-------

  You appear to have a missing vif-script, or network-script, in the
 Xen configuration file /etc/xen/xend-config.sxp.

  Please fix this and restart Xend, or your guests will not be able
 to use any networking!


General Information
--------------------
Hostname       :  wheezy
Distribution   :  wheezy
Mirror         :  http://ftp.fr.debian.org/debian/
Partitions     :  swap            128Mb (swap)
                  /               10Gb  (ext4)
Image type     :  full
Memory size    :  128Mb
Kernel path    :  /boot/vmlinuz-3.2.0-4-amd64
Initrd path    :  /boot/initrd.img-3.2.0-4-amd64

Networking Information
----------------------
IP Address     : DHCP [MAC: 00:16:3E:EB:96:45]


Creating swap on /dev/vg0/wheezy-swap
Done

Creating ext4 filesystem on /dev/vg0/wheezy-disk
Done
Installation method: debootstrap
Done

Running hooks
Done

No role scripts were specified.  Skipping

Creating Xen configuration file
Done

No role scripts were specified.  Skipping
Setting up root password
Generating a password for the new guest.
All done


Logfile produced at:
	 /var/log/xen-tools/wheezy.log

Installation Summary
---------------------
Hostname        :  wheezy
Distribution    :  wheezy
IP-Address(es)  :  dynamic
RSA Fingerprint :  83:21:28:49:d9:93:38:ae:5a:11:41:23:fa:3a:6e:05
Root Password   :  UzNRAZe4

Pour démarrer notre DomU :

# xm create wheezy.cfg 
Using config file "/etc/xen/wheezy.cfg".
Started domain wheezy (id=2)

Pour se connecter à ce DomU, deux possibilités : avec SSH si on connaît l'IP, ou avec la commande xm console :

# xm console wheezy

Pour en sortir, arrêter la VM, ou utiliser la combinaison CTRL+]

Pour arrêter le DomU depuis le Dom0, utiliser la commande xen-delete-image :

# xm destroy wheezy

Note : la commande xm destroy va provoquer l'arrêt brutal du domU.

Déploiement d'un DomU NetBSD

Bon un DomU en Debian c'était facile parce qu'on peut utiliser xen-tools qui automatise tout. Maintenant la même chose avec NetBSD, qu'il va falloir installer à la main. Tout d'abord, on télécharge et on extrait la version installable et la version normale de NetBSD version Xen :

# wget ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-6.1.3/amd64/binary/kernel/netbsd-INSTALL_XEN3_DOMU.gz
# wget ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-6.1.3/amd64/binary/kernel/netbsd-XEN3_DOMU.gz
# gunzip netbsd-INSTALL_XEN3_DOMU.gz
# gunzip netbsd-XEN3_DOMU.gz

Ensuite on doit créer un fichier une image qui servira de support de stockage pour le DomU :

# mkdir -p /home/xen/domains/netbsd
# dd if=/dev/zero of=/home/xen/domains/netbsd/disk.img bs=1 count=0 seek=10G

Création d'un fichier de configuration pour notre domU NetBSD (il est possible de copier celui du domU Wheezy précédemment créé pour aller plus vite puis le modifier) :

# vi /etc/xen/netbsd.cfg
kernel = "/root/netbsd-INSTALL_XEN3_DOMU"
memory = '128'
disk = [
'file:/home/xen/domains/netbsd/disk.img,xvda1,w';
]
name = 'netbsd'
dhcp = 'dhcp'
vif = [ 'mac=00:16:3E:EB:96:41,bridge=xenbr0' ]

On démarre notre domU NetBSD créé (cette fois l'argument c va directement connecter la console) :

# xm create -c netbsd.cfg

On obtient ceci :

Il faut maintenant procéder à une installation personnalisée, en sélectionnant uniquement base et system (pas besoin du kernel qui ne sera pas utilisé car GENERIC) et une source HTTP ou FTP (l'équivalent du netinstall) pour récupérer les paquets.

Si tout se passe bien :

Une fois l'installation terminée, il faut modifier le netbsd.cfg pour utiliser l'autre kernel :

# vi /etc/xen/netbsd.cfg
kernel = "/root/netbsd-XEN3_DOMU"

Il est maintenant possible de booter sur NetBSD :

# xm create -c netbsd.cfg

Conclusion

Xen est relativement simple à utiliser sur Debian Wheezy, grâce à Xen-tools qui facilite la création de domU à partir d'un template. Quand il s'agit de créer un domU "exotique" comme NetBSD, la procédure est un peu plus longue mais reste simple et logique. Il se positionne donc comme une solution intéressante pour les serveurs n'ayant pas le support de la virtualisation complète (Intel VT-X / AMD-V). Néanmoins lorsque ces instructions sont disponibles, les solutions alternatives telles que KVM ou ses concurrents propriétaires (Hyper-V, VMware...) me semblent toujours beaucoup plus simples à administrer et offrent des performances excellentes. Y a-t-il toujours un avenir à la paravirtualisation, qui est à mi chemin entre les containers (LXC, jails...) et la virtualisation complète ? A voir...

Mon bilan est positif sur l'utilisation, mais je me questionne toujours sur la pertinence de Xen en 2014.

Ressources

Jeu du moment #11 : Little Big Adventure (Android)

Rédigé par Xavier - - Aucun commentaire

Introduction

Aujourd'hui, j'ai l'honneur de parler d'un jeu mythique, qui a bercé mon enfance : Little Big Adventure, ou LBA pour les connaisseurs. Sorti en 1994 en version disquette ou CDROM (incluant alors des cinématiques vidéo, des doublages pour les dialogues et des musiques haute qualité), je me souviens y avoir joué des heures, sur un ordinateur équipé d'un processeur à 75MHz (après avoir activé le mode turbo à l'aide du bouton sur l'unité centrale !). 2 ans après, avec l'arrivée de la suite, Little Big Adventure 2 (compatible Windows 95 en plus de DOS !), j'ai à nouveau vécu une grande aventure, ce jeu étant encore meilleur que le premier (graphismes, histoire, gameplay), je ne pouvais pas rêver d'une meilleure suite.

Korben a eu la chance d'interviewer Frédérick Raynal, créateur de ces jeux, ainsi que de beaucoup d'autres auxquels j'ai pu jouer comme Alone in the Dark (le premier) et Time commando (que je recommande fortement).

Il est déjà possible de jouer à LBA1 sur un PC récent, soit dans DosBox (mais je n'ai pas pu faire fonctionner les musiques du CD), soit avec lbawin un installeur non officiel qui rend le jeu compatible avec Windows (testé sur Seven x64). Mais quand j'ai appris l'arrivée d'un port Android de ce jeu, supervisé par Frédérick Raynal lui-même, je me suis senti comme un gamin à Noël... et après avoir regardé son interview, j'ai acheté le jeu. Voyons ce qu'il vaut...

Résumé

Twinsun est une planète située entre deux soleils et peuplé par 4 principales espèces évoluées : bouboules, lapichons, quetchs, grobos. Les temps sont durs, le monde est dirigé par un tyran, Funfrock, qui impose son règne à l'aide de soldats clonés et de la technologie de téléportation. Ce dernier découvre une ancienne prophétie qui indique l'emplacement d'une grande source de puissance au cœur de la planète, il entreprend alors d'y accéder afin de s'en emparer. C'est à ce moment là que le héros du jeu, Twinsen, est appelé en rêve par Sendell, une entité magique chargée de protéger la planète. Twinsen est l'élu et doit se dresser contre Funfrock...

Graphismes et Univers

Difficile de juger la qualité graphique en 2014 pour un jeu de 20 ans ! La version Android est exactement la même que sur PC. Les sprites en 3D sont placés sur un environnement 2D style coloré voire cartoon. Ce style est plutôt cohérent pour un jeu mobile de nos jours.

La planète Twinsun comprend de nombreuses îles, sur lesquelles Twinsen va devoir voyager. Le jeu n'étant pas linéaire, il va falloir s'y promener très souvent, pour rencontrer des PNJ, récupérer des objets et débloquer la progression du jeu. Chaque île a une ambiance graphique qui lui est propre, par exemple au pôle sud se situe l'île du désert, qui comme son nom l'indique est désertique, tandis qu'à l'équateur on y trouve une ambiance polaire avec des montagnes et beaucoup de neige.

Tout comme StarWars, LBA a su créer un univers qui lui est propre, avec les différentes espèces, les objets mythiques (balle magique, jetpack..), et de nombreux clins d'oeil, comme par exemple avec l'inventeur Jérôme Baldino, qui est bien entendu une référence à Jérôme Bonaldi, ou le fan de StarWars qui atteint la sortie du prochain film (le jeu étant sorti en 1994, il parle probablement de l'épisode 1 !).

L'univers et l'ambiance de LBA sont magiques, sublimes, et ne perdent rien sur cette version Android. C'est vraiment un port du jeu original non dénaturé.

Gameplay

Le jeu est un mélange d'action plateforme, initialement conçu pour être joué au clavier, mais porté de manière réussie sur les supports tactiles. Twinsen va devoir se promener dans un monde non linéaire pour avancer dans sa quête. Mais nous ne sommes pas non plus dans un RPG, ainsi il n'y a pas d'objectifs secondaires, et la progression du personnage est déterminée à l'avance. La puissance de Twinsen va augmenter en fonction des artefacts magiques qu'il trouvera au cours du jeu.

Attention LBA est un jeu à l'ancienne, il n'y a pas de journal de quête, pas d'indicateur, il est fréquent de rester bloqué plusieurs heures, et même d'avoir besoin d'une "soluce" pour trouver où aller.

Les combats sont divisés en deux modes : corps à corps, ou balle magique. Le corps à corps, comme son nom l'indique, consiste à attaquer directement un ennemi (en tapant vite 2 fois dessus avec le doigt). Si Twinsen a le bon niveau de magie, il viendra à bout de son adversaire. La balle magique, arme emblématique de la série, est lancée par Twinsen et peut faire des rebonds. Sa couleur indique la puissance de Twinsen (jaune, verte, rouge, feu). Il faudra choisir le bon mode en fonction de la situation. Quand il souhaite éviter le combat, Twinsen peut passer en mode discret, et se déplacer sans être détecté.

Comment le jeu a-t-il été adapté pour les tablettes ? Plutôt bien selon moi. Voici un résumé de ce qui a changé par rapport à la version PC :

  • Taper à un endroit fait marcher Twinsen. Il n'y a pas de Pathfinding, il va en ligne droite, donc s'il y a un obstacle il sera bloqué. Ce choix est justifié par l'aspect plateforme du jeu, il fallait laisser le contrôle maximum au joueur.
  • Taper rapidement 2 fois à un endroit fait courir Twinsen.
  • Sélectionner Twinsen puis faire glisser son doigt le fait sauter, on peut jouer sur la longueur du saut (pas très pratique).
  • Sélectionner Twinsen puis faire glisser son doigt plus loin lance la balle magique, avec un aperçu de la trajectoire et des rebonds (très très pratique).
  • Taper sur un élément indiqué par une loupe permet de le fouiller.
  • Utiliser les deux doigts permet de zoomer en avant ou en arrière (bonne idée mais mal conçue malheureusement).
  • La plupart des ennemis peuvent être tués en 1 coup seulement.
  • Twinsen ne recule plus systématiquement en arrière quand il prend des dégâts (c'est très agaçant dans le jeu original).
  • Twinsen ne prend plus de dégâts quand il court dans un mur
  • Il n'y a plus d'écran de sélection du mode normal, sportif, agressif. Il ne reste que le mode discret sous forme d'un bouton en haut de l'écran. Les autres modes sont remplacés par les actions tactiles.

Pour y avoir joué plusieurs heures, je suis plutôt satisfait de la jouabilité sur le smartphone, je place juste un bémol sur les sauts, assez compliqués et parfois hasardeux, car on doit placer le doigt là où on veut atterrir, or en faisant ça on masque une partie de l'écran et donc l'endroit où on va atterrir. Cela rend certains passages comme le temple de Bù légèrement frustrants. J'ai aussi eu des soucis pour déplacer la caméra, on ne sait pas toujours où Twinsen va et il faut jouer sur le zoom ce qui n'est pas toujours pratique. A noter que je rencontre un bug dans la cinématique de fin, elle boucle et ne me permet pas de voir les crédits de fin (espérons que ce sera corrigé).

Conclusion

En dehors des points cités dans le dernier paragraphe, LBA sur Android est une très bonne surprise. Un cadeau pour les fans, très bien fait, qui sert de thermomètre pour juger le degré d'activité de la communauté, et mettre sur les rails un éventuel LBA3 si les ventes sont encourageantes. Ne vous posez pas de questions, si vous êtes fan du jeu, achetez-le !

Classé dans : Culture - Mots clés : aucun

Chroniques : Dézombifiage d'un Toshiba

Rédigé par Xavier - - Aucun commentaire

Comme je le dis souvent, j'aime mon métier donc j'aime rendre service. J'ai accepté de nettoyer un PC portable Toshiba qui est "lent" et "affiche plein de publicités". Commençons par allumer la machine : temps de démarrage correct, mais arrivé sur le bureau je vois un message de l'antivirus AVG qui détecte plusieurs chevaux de troie. Je valide la suppression mais rien ne semble se passer. Dans la zone de notification j'ai des objets étranges, de la publicité, des faux messages d'alerte qui indiquent que "mon registre n'est pas optimisé". Je passe sur tous les logiciels Toshiba qui démarrent les uns après les autres. Ah cette manie des constructeurs de fournir des suites de logiciels inutiles et gourmands en ressources...

Je lance Firefox pour télécharger malwarebytes, je me retrouve avec des pages vérolées, même sur Google j'ai des bandeaux de publicité intempestif et flashy. La même avec Chrome. Finalement je redémarre en mode sans échec avec prise en charge réseau, et installe Malwarebytes. Un scan me trouve 250 menaces que je supprime. J'en profite pour virer AVG car il s'agit d'une version d'essai qui expire dans 2 jours, et supprime tous les fichier suspects dans le profil utilisateur (on trouve beaucoup de nuisibles dans AppData). Je fais un tour dans msconfig pour désactiver le démarrage des services suspects et des logiciels Toshiba.

Je démarre en mode normal, j'ai une erreur qui m'indique qu'un logiciel Toshiba ne trouve pas ses DLL. Etrange, je pensais avoir désactivé les logiciels Toshiba, mais nous y reviendrons. Je fais un tour dans la liste des logiciels, je supprime les toolbar, les optimiseurs de registre, ainsi que Firefox et Chrome qui sont visiblement vérolés. Je télécharge Security Essential, gratuit et suffisant.

Jetons maintenant un œil à ce message de DLL au démarrage. Pourquoi un logiciel Toshiba se lance-t-il alors que j'ai tout désactivé dans msconfig ? Je jete un oeil, mais il ne reste plus aucun logiciel Toshiba. Je vais voir dans "démarrage", il n'y a rien. Après une petite recherche sur internet, voici l'astuce : en fait le logiciel Toshiba se lance via une tâche planifiée... au passage j'ai trouvé des tâches pour d'autres logiciels suspects, j'ai tout viré.

Bilan de mon intervention : PC complètement vérolé, surchargé de logiciels Toshiba. Un nettoyage malwarebytes, l'installation d'un antivirus qui marche, la réinstallation des navigateurs vérolés et un nettoyage des éléments au démarrage a rendu la machine à nouveau utilisable. Il n'y a plus de publicité, la réactivité du système est correcte.

J'ai découvert une méthode que je ne connaissais pas et que les nuisibles emploient pour se lancer à tout prix : la tâche planifiée qui utilise la condition "au démarrage". C'est pas bête, il fallait y penser. A l'avenir je ne manquerait pas de vérifier le planificateur de tâches pour les Windows vérolés.

Classé dans : Hardware - Mots clés : aucun

En Vrac #37

Rédigé par Xavier - - Aucun commentaire

  • Le weekend dernier mon blog a été inaccessible pendant plusieurs minutes, la raison est mon réfrigérateur qui est tombé en panne et a déclenché le disjoncteur général. Les joies de l'auto-hébergement... Heureusement tout est reparti, pas de système de fichiers UFS corrompu.
  • Usul est de retour en tant qu'indépendant sur Youtube. Sa première vidéo est une réflexion sur la télévision, c'est très intéressant. Je suis abonné.
  • Un portage de Little Big Adventure arrive sur tablettes et smartphones le 27 mars 2014. Un de mes jeux préférés, sorti en 1994, c'est le Zelda des joueurs PC :D Espérons que cette version remportera un grand succès et encouragera la mise en route d'un troisième jeu.
  • Pour ceux qui ne connaissent pas, voici le cahier de l'admin debian. Gratuit et téléchargeable en PDF, EPUB ou Mobipocket (et en plusieurs langues).

Classé dans : Thoughts - Mots clés : aucun

Firefox Australis Windows VS Kubuntu

Rédigé par Xavier - - Aucun commentaire

Si vous souhaitez tester la nouvelle interface de Firefox, Australis, vous pouvez télécharger une version nightly sur le ftp mozilla. Pour Kubuntu j'ai pris la version firefox-30.0a1.en-US.linux-x86_64.tar.bz2 et pour Windows la firefox-30.0a1.en-US.win64-x86_64.zip. Voici un aperçu sur les deux systèmes.

Kubuntu

Je dois dire que je trouve l'interface plutôt bien intégrée à KDE, très flatteuse, un renouveau très appréciable ;)

Windows

Là aussi c'est plutôt joli, mais j'avoue avoir une préférence pour la version Linux...