Déclarer un nouvel appareil pour gPhoto

Nouveau propriétaire d'un Kodak EasyShare Z915, je me trouvais fort ennuyé de ne pas retrouver celui-ci dans la liste des appareils supportés par gPhoto.

Or, après quelques tests, il s'avère que celui fonctionne fort bien, du fait de la gestion générique du protocole PTP pour dialoguer avec l'appareil.

Restait donc à "officialiser" le support par gPhoto et le bon fonctionnement sur ma Slackware 13.0 (testé également sur une Slackware 12.1, avec une ancienne version de gPhoto).

Retrouver les informations sur l'appareil photo

Très simplement : brancher l'appareil, le mettre sous tension et lancer la commande lsusb depuis le compte root.

Bus 001 Device 003: ID 040a:05cf Kodak Co.

Les valeurs intéressantes sont 040a pour le fabriquant et 05cf pour le modèle.

Modifier les règles udev

Le branchement d'un périphérique à chaud est pris en compte par udev, il faut créer une règle correspondante pour permettre l'utilisation pour tous les utilisateurs.

Le fichier à modifier est /lib/udev/rules.d/90-libgphoto2.rules (dont vous ferez une sauvegarde par avance, comme pour tout fichier à modifier par la suite).

Il faut y ajouter la ligne suivante, qui donne les droits de manipulation pour les membres du groupe plugdev :

ATTRS{idVendor}=="040a", ATTRS{idProduct}=="05cf", MODE="0660", OWNER="root", GROUP="plugdev"

On y retrouve les identifiants numériques du constructeur et du modèle.

Modifier les fichiers de gPhoto

Le principe est assez proche du précédent, il faut déclarer le modèle d'appareil dans deux fichiers pour que celui-ci soit pris en compte.

Mais pour une raison qui m'échappe, les identifiants numériques doivent être convertis de l'hexadécimal en décimal ; ce que l'on peut faire en une simple commande depuis un terminal :

printf "%d\n" 0x040a 0x05cf

Le préfixe 0x indique que la valeur est en hexadécimal et les résultats correspondants sont donc : 1034 et 1487.

Les fichiers à modifier sont /usr/share/hal/fdi/information/20thirdparty/10-camera-libgphoto2.fdi et /usr/share/hal/fdi/information/20thirdparty/10-camera-libgphoto2-device.fdi.

Pour chacun de ces fichiers il faut ajouter un bloc XML comme ceux correspondants aux autres appareils, en modifiant les identifiants numériques (en décimal) et le nom de l'appareil.

Validation et test

Vous devez relancer les processus de gestion du matériel pour que les règles udev soient prises en compte :

/etc/rc.d/rc.udev restart
/etc/rc.d/rc.hald restart

Et depuis votre compte utilisateur, vous devriez pouvoir récupérer vos photos avec la commande habituelle, gphoto2 -P.

Si vous effectuez toutes ces opérations avec succès pour un appareil encore non connu par gPhoto, il vous reste alors à ouvrir une nouvelle demande sur le tracker du projet.

publié le 13 novembre 2009