J’ai récemment fait l’acquisition d’une télécommande universelle Logitech Harmony® 525. Suite à cela je me suis demandé comment j’allais configurer la bête depuis ma station Ubuntu Lucid Lynx car le logiciel fourni par Logitech est seulement compatible Windows ou Mac.
La première idée fut d’utiliser une machine virtuelle sous VirtualBox OSE avec comme système d’exploitation client Window XP mais le problème est que cette version de VirtualBox ne gère pas l’USB.
La deuxième idée, découlant de la première, fut de migrer sous VirtualBox PUEL qui elle gère les ports USB hôtes.
La dernière idée,celle qui a retenue mon attention, est l’utilisation de Concordance couplé à la GUI Congruity.

Concordance

Concordance est un logiciel codé en C++ sous licence GPLv3 (GNU General Public Licence), encore en version béta, qui permet de configurer/programmer les télécommandes universelles Logitech Harmony depuis GNU/Linux. Pour le moment tous les modèles ne sont pas supportés mais vu l’activité du projet cela va évoluer. Vous pouvez trouver la liste de compatibilité sur le site du développeur (lien).
A l’heure ou j’écris cet article la version disponible dans les dépôts Ubuntu est la version 0.21 tandis que sur le site du projet vous pouvez trouver la version 0.23.

Installation automatique

Si les dépôts de votre distribution dispose de la source d’installation une simple ligne de commande suffit:

# sudo apt-get install concordance

ou

# sudo aptitude install concordance

Si vous aimez les choses simple avec votre navigateur préféré il suffit de cliquer sur le lien suivant: apt://concordance.

NB: Si vous souhaitez installer la toute dernière version du logiciel, il vous faudra passer par l’installation manuelle.

Installation manuelle

Le logiciel étant développé en C++ si vous souhaitez l’installer manuellement vous aurez besoin du compilateur g++ ainsi que de la librairie libusb-1.0-0 et libusb-dev:

# sudo apt-get install g++ libusb-1.0-0 libusb-dev

ou

# sudo aptitude install g++ libusb-1.0-0 libusb-dev

Une fois les pré-requis installés il faut:

  • Récupérer les sources d’installation:
  • # mkdir /tmp/concordance
    # cd /tmp/concordance
    # wget "http://sourceforge.net/projects/concordance/files/concordance/0.23/concordance-0.23.tar.bz2/download" -O concordance-0.23.tar.bz2

  • Détarer l’archive:
  • # tar -xvjf concordance-0.23.tar.bz2

  • Compiler libconcord:
  • # cd concordance-0.23/libconcord
    # ./configure
    # make
    # sudo make install
    # make policykit
    # sudo make install_policykit

  • Compiler concordance:
  • # cd ../concordance
    # ./configure
    # make
    # sudo make install

A ce stade de l’installation, Concordance est fonctionnel mais seulement en ligne de commande.

Congruity

Congruity est une GUI pour Concordance egalement sous licence GPL.
Version disponible dans les dépôts officiels Ubuntu 1.3 et 1.5 sur le site du projet.

Installation automatique

Tout comme pour concordance, si les dépôts de votre distribution dispose des sources d’installations:

# sudo apt-get install congruity

ou

# sudo aptitude install congruity

Installation manuelle

Congruity dépend de python qui est généralement installé par défaut sur l’ensemble des distributions GNU/Linux.

Pour installer manuellement Congruity voici la marche à suivre:

  • Télécharger la source d’installation:
  • # mkdir /tmp/congruity
    # cd /tmp/congruity
    # wget "http://sourceforge.net/projects/congruity/files/congruity/15/congruity-15.tar.bz2/download" -O congruity-15.tar.bz2

  • Détarer l’archive:
  • # tar -xvjf congruity-15.tar.bz2

  • Compiler:
  • # make
    # sudo make install

Post installation

Si vous ne travaillez pas directement avec le compte « root » (ce que j’espère) et que vous utilisez habituellement « sudo » il va falloir créer une règle udev afin de pouvoir accéder tranquillement à votre télécommande Harmony via le port USB.

Récupérer les informations hardware de la télécommande

  • Connecter votre télécommande en USB à votre ordinateur
  • Dans un terminal lister les périphériques USB en filtrant sur Logitech
  • # lsusb | grep Logitech
    Bus 002 Device 002: ID 046d:c01d Logitech, Inc. MX510 Optical Mouse
    Bus 001 Device 005: ID 046d:c111 Logitech, Inc.

    Ici je dispose de 2 périphériques Logitech, le premier étant ma souris le second est donc la télécommande.

  • Créer la règle udev
  • Par rapport au résultat de la commande précédente (Vendor Id 046d et Product Id c111) il faut créer une nouvelle règle udev:

    # echo SYSFS{idVendor}=="046d", SYSFS{idProduct}=="c111", MODE="666" \
    > | sudo tee /etc/udev/rules.d/99-harmony.rules
    SYSFS{idVendor}==046d, SYSFS{idProduct}==c111, MODE=666
    # cat sudo tee /etc/udev/rules.d/99-harmony.rules
    SYSFS{idVendor}==046d, SYSFS{idProduct}==c111, MODE=666

  • Configurer ensuite votre navigateur afin qu’il vous prompte sur l’action à effectuer lors du téléchargement d’un fichier
  • Sous Firefox il faut positioner la directive « browser.download.useDownloadDir » à « false » via « about:config »

Utilisation

Maintenant vous pouvez configurer votre télécommande, pour cela rendez-vous à l’adresse http://members.harmonyremote.com/ et suivre le guide.
NB: Il vous faudra créer un compte sur le site afin de créer votre profil car toutes les configurations que vous allez définir ne sont pas stockées sur votre ordinateur mais bel et bien sur le site.