PROJET AUTOBLOG


TDC hoper

Archivé

source: TDC hoper

⇐ retour index

Virtualisation d'un windows avec kvm

mardi 15 juillet 2014 à 14:49

Pourquoi ?

Très intéressé par SARAH, un logiciel open source qui ne fonctionne que sous windows, j'ai pensé que c'était une bonne occasion pour tester kvm. (Car des windows chez moi il y en a pas des masses...)

J'ai découvert qu'il existait déjà un nombre monstrueux de tuto sur le net, et au moins autant de façon de procéder à la mise en place d'une VM. Comme aucun de ces tuto ne m'a vraiment semblé complet, je vais vous résumer les étapes que j'ai suivies de mon coté.

Sarah : Dommage, mais en fait non :(

Après quelques heures j'ai laissé tombé l'idée de le faire tourner dans une machine virtuelle. En effet, il faut évidement une carte son pleinement fonctionnelle pour la reconnaissance vocale d'un coté et la synthèse de l'autre. Or, il existe de nombreux bugs sur kvm autour de la gestion du son. Bien que ce soit certainement possible, je n'ai ni le temps ni le courage de me débattre avec tous ces bugs. Sarah, ce sera donc pour une prochaine fois.

L’expérience de la virtualisation reste intéressante, let's go !

Concernant le réseau

Le paramétrage réseau et de loin l'aspect le plus compliqué de la virtualisation. On va gagner du temps en utilisant la configuration par défaut. Les machines virtuelles auront accès à internet et passant par l'OS qui les héberge. Par contre, il n'est pas possible pour une autre machine présente sur le réseau de les atteindre directement. Pour plus d'informations sur le sujet, il existe de nombreux documents sur internet, à commencer par la documentation officielle, ou alors beaucoup plus détaillé ici.

Concernant les outils

Il existe (au moins) deux façon d'utiliser KVM. Soit directement, soit en passant par libvirt. Mes premiers essais se sont fait avec kvm en direct. Avantages : C'est très facile, une ligne de commande et on lance une VM. Inconvénients : Le nombre d'option de cette ligne devient vite pénible. (Ce que beaucoup contourne en créant des scripts perso). Mais le vrai soucis est le manque de contrôle des VM une fois lancés. Le simple fait de les arrêter est compliqué car il faut impérativement se connecter dessu en mode console etc. Impossible d'envoyer un "signal d’arrêt" ou ce genre de chose. libvirt propose ce genre de fonctionnalités, et beaucoup, beaucoup d'autre. Même si cela nécessite de passer par une couche d'abstraction supplémentaire, le jeu en vaut la chandelle, alors allons-y pour libvirt.

ETAPE 1 : Création du disque virtuel

Après avoir installé les outils de virtualisation (apt-get install kvm libvirt-bin), il faut créer un fichier qui servira de disque virtuel. Ce fichier peut être "formaté" de deux façon différentes : raw ou qcow2. Pour que l'installation de windows se passe correctement, j'ai du choisir le mode "raw" :

qemu-img create ~/VM/seven.img 40G

Dans cet exemple j'avais crée un répertoire VM dans mon "home" utilisateur. 40 GB est bien sur la taille du disque et comme rien n'est précisé, c'est le mode raw qui est utilisé.

ETAPE 2 : Création de la machine virtuelle

virt-install --name=seven --arch=x86_64 --vcpus=4 --ram=4096 --os-type=windows --os-variant=win7 --hvm --connect=qemu:///system --network bridge:virbr0 --cdrom=windows_7_version_officielle_mon_cul.iso --disk path=~/VM/seven.img --accelerate --vnc --noautoconsole --keymap=fr --sound

On constate que je crée cette machine virtuelle avec 4 CPU et 4 GB de ram (à adapter bien sur en fonction de votre matériel...) Notez aussi la variante utilisée, ici "win7". Pour connaitre la liste des variantes reconnues : "virt-install --os-variant list". Pour le réseau, j'utilise le bridge virbr0, automatiquement crée sous ubuntu lors de l'installation des paquets liés à la virtualisation.

A ce stade, la machine virtuelle est lancée, boot sur le CD, et lance l'installation de Windows. Pour suivre l'installation, il faut lancer un client vnc (celui que vous voulez, moi j'aime bien remmina), et le faire pointer sur localhost (port par défaut). Terminez l'installation de windows normalement.

ETAPE 3 : Installation des pilotes supplémentaires.

Télécharger l'image iso du CD contenant les drivers windows ici. Comme c'est toujours le CD de windows 7 qui est "inséré" dans le lecteur virtuel. il faut changer le CD :

virsh domblklist seven     #hdc chez moi
virsh seven change-media hdc nouveau_fichier.iso

Installer les drivers via le gestionnaire de périphérique windows en indiquant le bon emplacement sur le CD.

ETAPE 4 : Post Installation

Une fois que vous avez installé ce que vous voulez (rien que les mises à jour de windows, prévoyez une bonne après-midi minimum), il reste quelque petits détail à corriger. Par exemple, vous avez peut etre remarqué que windows ne reconnait que deux cpus, alors qu'on lui en avait donné lors de la création de la VM. Pourquoi ?

Et bien ce fut pour moi le GROS LOL du jour. Par défaut, kvm présente des cpu "normaux". Autrement dit, seven détecte la présence de 4 cpu dans la machine virtuelle. Or, seven est limité (bridé) pour ne pouvoir utiliser que deux cpus physiques maximum. Les deux cpu supplémentaires n’apparaissent donc pas. Il faut modifier la configuration de kvm pour ne pas présenter des cpus physiques différents, mais un seul et unique cpu physiques avec des cœurs distincts.

De plus, maintenant que Windows est installé, cela ne pose plus de problème d'utiliser une image disque au format qcow2 (qui dispose de plus de fonctionnalité, notamment snapshot, compression...) que le format raw. On va donc convertir l'image disque et passer de raw à qcow2. On va aussi "enlever" le CD pour que l'iso ne soit plus automatiquement "insérer" à chaque lancement.

Conversion de l'image disque

STOPPER Windows. Puis :

qemu-img convert -c -O qcow2 ~/VM/seven.img ~/VM/seven.qcow2

Admirez la réduction de taille du fichier :)

Modifier les paramètres de la VM

virsh dumpxml >/tmp/seven.xml

Éditer le fichier /tmp/seven.xml et modifier le nom de l'image disque et le type (qcow2). Supprimer la ligne mentionnant l'iso de windows. Enfin, pour le problème des cpu, ajouter le paragraphe suivant après la section "vcpu" :

<cpu>
     <topology sockets='1' cores='4' threads='1'/>
</cpu>

Il ne reste plus qu'a importer cette nouvelle configuration et à relancer la VM:

virsh undefine seven
virsh define /tmp/seven.xml
virsh start seven

Voila pour les bases de la création d'une VM sous Windows. Amusez vous bien :)

Carrefour : Oh les cons !

mercredi 2 juillet 2014 à 16:38

Sympa les promotions chez Carouf. Gros LOL sur le dos du ticket :

ticket.jpg

Vous voulez de la merde ? Pas de problèmes, chez nous la deuxième couche est gratuite :)

media center, la suite

mardi 24 juin 2014 à 17:20

3 semaines après l'installation de mon media center, il est temps de faire un petit point sur les avantages/inconvénients de la solution, et de détailler un peu la configuration logicielle. Commençons par LE raté.

Choix de la CM : Grosse erreur

La CM à bas prix que j'avais choisie ne supporte pas le "Wake on lan". Pour un media center que l'on veut pouvoir allumer à partir d'une télécommande ou de son smartphone, forcément, c'est pas cool.

EDIT : Un grand merci à l'un de mes lecteurs qui m'a envoyé un petit message. Les cartes mères récentes disposent d'un paramètre dans la gestion d’énergie qui s'appelle "EUP 2013". Si cette option (permettant de faire des économies d’énergie) est activée, alors le WOL ne peut pas fonctionner. Plus de soucis désormais pour allumer le pc avec par exemple yatse sur le smartphone :)

Un silence paradisiaque

Une fois le ventilateur de 50cm fourni dans le boitier déconnecté, l'ensemble, uniquement refroidit par la présence du Noctua, est 100% silencieux. Même à quelques cm du boitier, silence total. Un vrai bonheur. Quand au refroidissement il reste particulièrement efficace puisque la température du CPU ne dépasse pas 44°. Je reconnais que plus de 40€ pour un "petit" ventirad c'est pas donné, mais le résultat est absolument parfait.

Une configuration en dual boot ubuntu/openelec faite en quelques secondes

Une fois l'installation d'ubuntu réalisé, il suffit de télécharger openelec (distribution minimaliste qui existe pour de nombreuses architectures et dont le rôle n'est que de lancer xbmc). Décompressez l'archive. Dans le répertoire "target" vous trouverez deux fichiers ; KERNEL et SYSTEM. Copiez les deux fichiers dans la racine de votre système ubuntu.

Il ne vous reste plus qu'a modifier la configuration de grub pour avoir un dual boot (avec un boot par défaut sur openelec/xbmc, c'est mieux)

Pas de freeplayer dans la pièce ? Pas de soucis, xbmc peut le faire aussi

Vous voulez regarder nolife en direct et la freebox player n'est pas dans la bonne pièce ? Pas de soucis. Il suffit de suivre le guide. Personnellement j'ai hébergé la "playlist" des chaines directement sur la freebox serveur, dans un répertoire crée dans ce but, mais vous pouvez mettre cette liste des chaines auxquelles vous voulez avoir accès n'importe ou.

Seul soucis, il n'est pour le moment pas possible avec IPTV Simple d'enregistrer les flux que l'on visionne en streaming :( Apparemment ce plugin se contente grosso modo d'envoyer la bonne url à xbmc et le laisse se débrouiller. Et xbmc serait, à l'heure actuelle, incapable d'enregistrer ce type de flux. Wait and see :)

C'est pas mal, mais on peut faire beaucoup mieux

Premier problème : la médiathèque. Stockée en clair dans la partition "storage" d'openelec, sans aucune possibilité de chiffrement. Pouah, caca boudin. Second problème : Si vous avez plusieurs media center chez vous, ce serait quand même infiniment mieux qu'ils partagent tous la même base non ? Pour que si vous regardez un épisode de game of throne dans le salon, le système de la chambre ne vous propose pas de regarder le même. Ou mieux, que si vous avez commencez un film dans le salon, vous puissiez rapidement le reprendre dans la chambre à l'endroit exact ou vous en étiez. (On peux aussi faire encore plus fun avec du dlna et en basculant l'affichage d'une vidéo d'une pièce à l'autre, le tout piloté par une seule machine...)

Pour résoudre ces deux soucis, il faut centraliser. Centraliser les fichiers, mais aussi et surtout centraliser la base de donnée. Une base qui par défaut est dans un fichier sqlite, et que vous allez devoir mettre dans une base mysql. La BDD est les fichiers devront bien évidement se trouver sur une troisième machine (serveur), ou votre NAS, ou votre raspberry pi, ou n'importe quoi qui chez vous tourne 24h/24.

Centraliser les fichiers

Concernant les fichiers, il existe plusieurs façon de procéder. On peut modifier grub pour lui indiquer directement un partage NFS pour la partition storage au lieu d'un emplacement local. Mais cela n'a pas toujours fonctionné dans mon cas. On peut réaliser des montages réseaux en éditant des fichiers spécifiques à openelec, mais de mon coté j'ai trouvé encore plus simple de créer le script de lancement : /storage/.config/autostart.sh Et d'ajouter les commandes suivantes :

#!/bin/sh
mount -t nfs -o nolock 192.168.1.2:/partages/pc1/.xbmc /storage/.xbmc
mount -t nfs -o nolock 192.168.1.2:/partages/all/Thumbnails /storage/.xbmc/userdata/Thumbnails

Ces partages NFS peuvent physiquement reposer sur n'importe quoi, par exemple des volumes logiques chiffrés. Ici j'utilise deux partages distincts, un pour les données spécifiques de ce média center (répertoire .xbmc) et un qui est commun à tous les médiacenter (les coverts, pochettes etc).

Mise en place d'une base mysql

L'utilisation d'une base mysql est prévue mais ce n'est pas encore vraiment intégré à xbmc. Pour parametrer ce genre ce chose, il faut créer le fichier : /storage/.xbmc/userdata/advancedsettings.xml, puis ajouter les lignes suivantes à l’intérieur (adaptez en fonction de votre configuration).

<advancedsettings>
  <videodatabase>
    <type>mysql</type>
    <host>192.168.1.2</host>
    <port>3306</port>
    <user>xbmc</user>
    <pass>********</pass>
  </videodatabase>
  <musicdatabase>
    <type>mysql</type>
    <host>192.168.1.2</host>
    <port>3306</port>
    <user>xbmc</user>
    <pass>*********</pass>
  </musicdatabase>
  <videolibrary>
    <importwatchedstate>true</importwatchedstate>
    <importresumepoint>true</importresumepoint>
  </videolibrary>
</advancedsettings>

Concernant la création de la base elle même, le plus simple et de suivre les instructions du wiki d'xbmc.

Conclusion

Pour avoir un truc vraiment joli, vraiment propre, bien customisé de partout, ça peut prendre un peu de temps. Mais au final je n'aurai passé que quelques heures sur la partie configuration. Ce qui m'a pris le plus de temps, c'est l'organisation des fichiers, la vérification des doublons, les renommages dans tous les sens pour que chaque films, chaque épisodes soient correctement identifiés du premier coup. Mais une fois que c'est fait, et à condition d'avoir chez soi un système audio/vidéo potable (son 5.1 et image correcte quoi), un média center c'est que du bonheur. En particulier avec openelec/xbmc qui est une distribution ultra stable (/ en lecture seule) hyper customisable, bourré de plugin divers et varié pour ajouter du fun à votre box. Quand à l’ergonomie, entre openelec pour le salon, et yunohost pour la partie serveur derrière, madame michue n'a plus aucune excuse pour ne plus avoir de l'informatique partout chez elle :)

Hatsune Miku

jeudi 5 juin 2014 à 14:56

Hatsune miku ! Tu serai pas un peu en retard ?

Oui et non... Le jeu vidéo hatsune miku project diva F n'est sorti que fin 2013 sur ps3. Et le second opus (qui devrait intégrer les morceaux dont je vous parle plus loin) ne sortira que fin 2014. Donc non, finalement, je suis pas si en retard que ça :)

hatsune_miku_project_diva_f_by_tobuei-d6742il.png

C'est à quel sujet ?

Si tout le monde connait le nom de cette chanteuse virtuelle, je pense qu'il y a beaucoup moins de gens qui ont eu l'occasion de l'écouter. Et encore moins d'écouter de bons titres, car comme n'importe qui peut la faire chanter (au sens propre), il y a forcément du bon, et du beaucoup moins bon.

Il faut écouter quoi ?

En premier lieu magnet. Il faut aussi écouter sa version de Kimi wo Nosete (générique de fin de Laputa, le château dans le ciel en français). Ainsi que Hikyou Sentai Urotandar (dont les paroles parodient les génériques de sentai), Romeo and Cinderella ou Cat Food.

C'est pas de la vraie musique ça !

Non, ce n'est pas que de la musique. C'est beaucoup mieux. Car derrière ces sonorités (Hatsune miku peut se traduire par "premier son du futur"), il faut entendre ces milliards d'opérations par seconde. Sentir le bonheur nippon, et le plaisir de la création numérique par tout un chacun. Ces mélodies sont un espoir. Le rêve que les IA ne seront pas seulement conçues pour nous diriger ou surveiller les peuples. Que l'informatique n'est pas qu'une technologie permettant de guider des missiles, ou de retrouver n'importe quoi sur la planète (à part les avions). Mais qu'elle peut aussi rendre le monde meilleur, tout simplement.

Cadeaux bonus

magnet_flou.jpg

Voici la traduction des paroles de magnet, ainsi qu'un extrait du concert "Miku's Thanksgiving Festival 39's Giving Day"

Enjoy !

media center et montage chez materiel.net

mardi 3 juin 2014 à 13:52

Comme je trouvais le Raspberry Pi un peu limité niveau puissance, j'ai décidé d'acheter une nouvelle machine pour le salon, basée sur le boitier Lascala LC19B-R (version silver pour moi)

LC19B-R.png

Le but de ce billet n'est pas de décrire la config (même si je vais le faire plus bas car ça peut intéresser certaines personnes quand même), mais de vous faire un retour d’expérience sur l'option "montage" proposée par matériel.net à 40€.

40€ pour monter un PC !? T'es pas capable de le monter toi même ?

Je ne suis pas très habile de mes mains, mais monter un PC ne m'a jamais fait peur. On peut même dire que j'ai une bonne expérience dans ce domaine. Alors pourquoi avoir choisi cette option ?

D’abord parce que j'ai été surpris de trouver sur le site plus de 400 avis hyper favorables. La longueur et la précision des témoignages laissait penser qu'on avait pas affaire à des messages bidons, mais à de vrais retours de clients ravis. En plus d'un montage soigné, cela permettait d'avoir la confirmation que le matériel choisi était cohérent. Ce qui dans mon cas était important car le boitier fait moins de 7 cm de haut, il ne fallait pas faire d'erreurs sur le choix du ventirad ou autre bêtises dans le genre. Leur laisser faire le montage offrait aussi la garantie que l'ensemble du matériel soit testé avant livraison, et donc de recevoir quelque chose qui fonctionne. (C'est toujours rageant de découvrir au moment du montage qu'une barrette de RAM est défectueuse, ou que l'on ai tombé sur une carte mère un peu capricieuse). Après plusieurs minutes de réflexions, j'ai décidé que 40€ ce n'était finalement pas si cher pour l'économie en temps que cela représentait, en plus des autres avantages décrits. Et voila pourquoi je ne regrette absolument pas mon choix.

Discussion par mail avant et pendant le montage

Quelques jours après la commande, je reçoit un premier mail très poli ou les techniciens m'informent que la carte mère que j'ai choisie ne possède pas de connecteur firewire et que, du coup, ils ne seraient pas en mesure de brancher la prise firewire présente sur le boitier. Je ne comptai de toute façon pas l'utiliser, mais c'était sympa de prévenir :)

Un câble manquant offert

Puis un nouveau mail m'informe que l'alimentation externe fournie avec le boitier est livrée sans câble secteur (la franchement, je vois pas comment j'aurai pu deviner ça). Le même mail me précise qu'une nouvelle commande à été crée dans mon espace client avec le câble manquant, commande dont le paiement sera pris en charge par matériel.net (8 euros le câble).

Réception du colis, déballage, ouverture du boitier

J'ai reçu, comme annoncé, deux colis. Le premier avec les boites vides. Le second avec le PC monté. Ce carton, contenant le carton, contenant un emballage renforcé en polystyrène, contenant le PC, faisait au moins 3 ou 4 fois la taille nécessaire. La première chose que je me suis dit en déballant tout ça, était que le matériel aurait pu résister à une chute d'avion.

A peine sorti de la boite, je me suis précipité sur un tournevis pour voir comment cela avait été monté à l’intérieur. Je pense que des photos valent mieux qu'un long discours :

LC19B-R_1.jpg

LC19B-R_2.jpg

C'est juste parfait. Allez, pour chipoter, j'ai du appuyer un tout petit peu sur une fiche d'alimentation qui n'était pas parfaitement enfoncée. Une imperfection minime peut être due aux vibrations durant le transport. Quoi qu'il en soit je rejoint donc les autres avis. Le service "montage" de matériel.net, c'est quelque chose de sérieux. Oui c'est 40 euros de plus, mais le service est rendu, et bien rendu.

La liste du matos

Pour ceux qui voudraient commander une configuration similaire, voici ce que j'ai mis dedans. (Encore une fois, on ne peut pas mettre n'importe quoi dans ce boitier...)

Note : Ce dernier câble est indispensable pour pouvoir brancher le graveur DVD slim.

Conclusion

Je ne suis pas un bloguer pro (et pense que ça ne devrait pas exister). Je ne suis pas, et ne serais jamais payé pour mes billets. Je fais aujourd'hui de la pub pour matériel.net parce que j'en ai envie, parce que je crois que dans ce cas c'est mérité. Peut être que j'en dirai du mal lors d'une prochaine commande. Mais pour le moment, chapeau bas aux techniciens du service montage, ne changez rien :)

Note : La suite (partie logicielle) est ici.