01 avril 2013

Installer Magic Lantern

UPDATE 2023:
 
Depuis 2019 le développement de Magic Lantern semblait à l’arrêt. Mais en 2023 un post sur le Forum est venu annoncer que le développement reprenait et quels étaient les plans.

Il existe une extension gratuite et open source du firmware se trouvant nativement dans les appareils photo Canon EOS 5D Mark II, 5D Mark III, 50D, 60D, 500D, 550D, 600D ... Cette extension appelée Magic Lanterne, (ML), ajoute de nombreux perfectionnements et de nouvelles fonctionnalités aussi bien à la partie audio/vidéo qu'a la partie photo de votre EOS.

Dans un autre post je vous parlerai des extensions HDR et focus stacking. Mais tout d'abord voici comment installer cette extension dans votre 5D mark II ou mark III.

1) Télécharger le zip de Magic Lantern adapté à votre appareil ici: https://builds.magiclantern.fm/

2) Vérifier que votre EOS utilise bien la version du firmware pour laquelle Magic Lantern a été conçu. Si ce n'est pas le cas mettre à jour le firmware du 5D mk2 ou du 5D mk3 (le downgrade est possible avec l’appareil en mode Manuel et en utilisant EOS utilities).

Exemple: MagicLantern 5D2.212 fonctionne avec un 5D mk2 équipé du firmware version 2.1.2 de Canon.

NB: Il y a deux versions de ML pour le 5D mk3 suivant que la version installée dans l'appareil est la 1.1.3 ou la 1.2.3 (Toutes les fonctions de ML ne sont pas disponibles avec la version 1.2.3)

3) Mettre une carte CompactFlash (32Go maxi) dans le 5D mk2/mk3 et la formater depuis l'appareil. Bien sur tout sera supprimé sur cette carte !

4) Éteindre le 5D mk2/mk3, retirer la carte, la mettre dans un lecteur de carte relié à un PC ou MAC.

5) Depuis le fichier zip téléchargé contenant Magic Lantern, copier sur la carte fraîchement formaté:
- les 2 fichiers : autoexec.bin et 5D2_212.fir ou 5D3_113.fir ou 5D3_123.fir
- et le répertoire ML

6) Éjecter proprement la Compact Flash du PC/MAC, l'insérer dans le 5D mk2/mk3 et mettre l'appareil en marche. Jusque là rien de nouveau, votre appareil photo fonctionne exactement comme avant.

7) Effectuer depuis le 5D mk2/mk3 la même opération que pour une mise à jour normale du firmware :

cliquer sur la ligne indiquant le version actuelle

Cliquer sur "OK". Dans les 15 secondes qui suivent vous obtenez cet écran

8) Arrêter et remettre en marche le 5D mk3/mk2
A première vu, rien n'a changé. Tous les menus de Canon sont là et inchangés. Mais...
a) La version du firmware est maintenant:
(bien sur le suffixe ml-v2.3 dépend de la version de ML)

b) Effleurer le bouton de déclenchement puis appuyer sur la touche 'poubelle'. Vous obtenez le menu de Magic Lantern !

En fait Magic Lantern a très légèrement modifié la configuration en NVRAM du 5D pour qu'il détecte la présence de Magic Lantern sur la carte mémoire. Le firmware original de Canon n'est pas modifié. Si Magic Lantern est présent il est chargé au démarrage de l'appareil et s'attache au bouton 'poubelle'. Si vous changez de carte mémoire (ou ne mettez pas de carte) vous n'aurez pas accès aux fonctions de Magic Lantern, mais votre appareil fonctionnera normalement.

Si vous voulez avoir Magic Lantern sur d'autres cartes mémoire il suffit d'exécuter l'opération (5) pour chaque carte.

IMPORTANT 
A) Pour retirer la carte de l'appareil
    1) éteindre l'appareil (bouton en position off)
    2) ouvrir le volet
    3) ATTENDRE que la led clignote (soit au minimum 5 sec)
    4) éjecter la carte.


B) NE JAMAIS SUPPRIMER LES FICHIERS DE MAGIC LANTERN A LA MAIN.
Les fonction de formatage et mise à jour ont été modifiées pour gérer la suppression de ML
- Pour supprimer ML d'une carte: utiliser la fonction de formatage intégrée à l'appareil et suivre les instructions.
- Pour supprimer ML de l'appareil: utiliser la fonction de mise à jour du firmware intégrée à l'appareil et suivre les instructions. (Note: réinstaller le firmware d'origine ne supprime pas Magic Lantern de l'appareil.)


L'aide est intégrée au logiciel mais est aussi disponible avec un peu plus de détails ici : http://wiki.magiclantern.fm/userguide






05 décembre 2012

Chrome Enterprise dans Program Files

Le navigateur Google Chrome à la très fâcheuse habitude de s’installer dans l’espace de l’utilisateur (C:\Documents and Settings\username\Local Settings\Application Data\Google) au lieu du classique «C:\Program Files\Google ». Ceci est très gênant pour 3 raisons :
  • Il y a un gros problèmes de sécurité puisque les fichiers dans l'espace utilisateur sont modifiables sans avoir les droits d’administration.
  • Il faut installer chrome pour chaque utilisateur de la machine.
  • L’installeur est générique, il a besoin d’une connexion à l’internet public au moment de l’installation pour télécharger le navigateur Chrome au complet. Pas pratique dans les intranets.
Il existe cependant une méthode officielle. Il suffit d’utiliser cette url : https://www.google.com/intl/en/chrome/business/browser/admin/ On obtient le téléchargement d’un fichier nommé GoogleChromeStandaloneEnterprise.msi  contenant le navigateur au complet, et qui s’installe dans « C:\Program Files\Google\Chrome ».



Bien sur il faut être admin pour installer cette version


Comme on peut le voir ci-dessous, ChromeSetup.exe ne contient pas le navigateur chrome (746Ko) contrairement à la version msi.

Une fois installé pour tout le monde dans "Program Files", si un utilisateur tente d'installer Chrome dans son espace perso, il obtiendra l'erreur Error 0x00000003


Notes: Fut une époque ou cette méthode ne donnait accès qu’aux versions bêta de Chrome, ce n’est plus le cas.

L’historique de révisions de Chrome est ici : http://googlechromereleases.blogspot.fr/
Les news fraiches à propos de Chrome sont là: http://chrome.blogspot.fr/

15 novembre 2012

virt-clone

Par souci de performance on utilise des volumes logiques (LV) pour installer les machines virtuelle. Ce gain de performance se paye par un système de backup un peut moins habituel que dans le cas d’un fichier. Voici comment proceder.
Commencons par obtenir la description du LV utilisé par la machine virtuelle actuelle.

# lvdiplay

  --- Logical volume ---
  LV Name                /dev/vg_srv0/lv_vm2
  VG Name                vg_srv0
  LV UUID                MIzDop-R7NY-qvQP-kmN1-C9hT-jD1p-7zQFTP
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                20.00 GiB
  Current LE             640
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:4


Le LV /dev/vg_srv0/lv_vm2, qui contient la machine virtuelle vm2, fait donc exactement 20Go.

On va créer, une fois pour toute, le LV /dev/vg_srv0/lv_vm2_back, de la même taille, pour y stoker un clone de la machine existante vm2.

 lvcreate -L 20G -n lv_vm2_back vg_srv0

Ensuite il suffit de faire le clonage, en prenant soin d’arreter la machine virtuelle vm2 pendant le clonage.

 virsh shutdown vm2 
 virt-clone  -o vm2 -n vm2_back -f /dev/vg_srv0/lv_vm2_back
 virsh start vm2

-o donne le nom de la machine virtuelle Originale
-n donne le nom de la Nouvelle machine virtuelle
-f désigne la destination du clonage (le LV crée avec lvcreate)

Il faut environ 6 min pour : arrêter, cloner 20Go, redémarrer.

Notez que virt-clone a créé le fichier /etc/libvirt/qemu/vm2_back.xml en personnalisant l’adresse mac et le uuid pour éviter les conflits avec l’original mais il n’a pas changer les fichiers dans le clone. Des paramètres, comme l’adresse ip, restent donc les mêmes.

Si on veut exécuter vm2_back en parallèle de son origianl vm2, il faudra eviter les conflits et donc reconfigurer certains fichiers de vm2_back avec des commandes du type :

  guestfish -d vm2_back  -i edit xxxxx

Pour plus d'info sur l'utilisation de guestfish voir ce post.

guestfish

Les machines virtuelle c’est bien mais …
… comment extraire des fichiers d’une machine virtuelle sans avoir à la démarrer, ou, plus grave, quand elle ne veut pas démarrer ?

Le cœur de la solution s’appelle guestfish. Il s’agit d’un shell permettant de ‘dialoguer’ avec une machine virtuelle en fonctionnement mais surtout à l’arrêt. Il faut cependant que le daemon libvirtd fonctionne (/etc/init.d/libvirtd start)

Dans ce qui suit:
  • --ro : indique un accès en lecture seule, ce qui permet d’accéder à une machine virtuelle en cours de fonctionnement sans risques.
  • -i : a pour effet d’inspecter la machine virtuelle et de monter ses divers filesystem automatiquement.
  • /path/to/file et /path/to/dir : sont des chemins absolus dans la machine virtuelle.
  • local/dir et local/file : sont relatifs ou absolus sur la machine hôte.

A) Commandes de base pour extraire des fichiers d'une machine virtuelle (domaine) nommée ‘vm1’:
guestfish -d vm1  --ro  -i  cat      /path/to/file
guestfish -d vm1  --ro  -i  download /path/to/file  local/file
guestfish -d vm1  --ro  -i  tar-out  /path/to/dir   local/file
guestfish -d vm1  --ro  -i  copy-out /path/to/dir   local/dir


Note: 'copy-out' effectue une copie récursive en combinant download et tar-out.

Ces commandes sont très utiles pour ausculer les logs et fichiers de conf d'une machine virtuelle qui ne boote pas, ou pour sauvegarder des fichiers avant de reconstruire la machine virtuelle.

B) Commandes de base pour modifier des fichiers d'une machine virtuelle (domaine) nommée ‘vm1’. Cette machine virtuelle doit impérativement être à l’arrêt. (shutdown)
guestfish -d vm1  -i  edit     /path/to/file
guestfish -d vm1  -i  upload   local/file    /path/to/file
guestfish -d vm1  -i  tar-in   local/tarfile /path/to/dir
guestfish -d vm1  -i  copy-out local/dir     /path/to/dir


Note: 'edit' combine download + édition en local avec $EDITOR + upload. Si votre editeur est vi ou emacs vous pouvez remplacer la commande 'edit' par 'vi' ou 'emacs'. Pour utiliser un autre éditeur il faudra configurer la variable $EDITOR.

Ces commandes sont très utiles pour corriger les fichiers de conf comme /boot/grub/grub.conf, ou /etc/passwd, d'une machine virtuelle qui ne boote pas, ou pour personaliser des machinesvirtuelles bâties sur le même master (hostname, ip, domaine, ect...)


C) Enfin, comme avec tout shell on peut entrer en mode interactif avec guestfish et le quitter avec ^D ou exit ou quit. Pour automatiser certaines taches vous pouvez écrire des scripts guestfish, comme avec bash ou perl. Il suffit de commencer le script par :

#!/usr/bin/guestfish –f

Puis de taper les commandes.

Une autre solution est de faire un script bash en y invoquant guestfish et en lui passant les commandes via une redirection de stdin :

#!/bin/sh

guestfish <<_EOF_
domain vm1
run
write /etc/resolv.conf "nameserver 8.8.8.8"
_EOF_


Cette méthode est plus souple car on bénéficie de la puissance de bash pour, par exemple, traiter les paramètres du script et les résultats retournés par guestfish.

Plus d’info :
La référence: http://libguestfs.org/guestfish.1.html à lire absolument pour voir l'étendu des possibiltés.
Plein de petits scripts: http://libguestfs.org/guestfs-recipes.1.html
Pour les cas graves: http://libguestfs.org/virt-rescue.1.html