Refaire fonctionner sa wiimote avec Kodi 17

Une wiimote fait une très bonne télécommande pour Kodi. Mais, depuis la version 17, ça ne fonctionnait plus. Obligé de revenir en version 16.

J’avais ouvert un ticket sur le bugtracker de Kodi, et quelqu’un a finalement travaillé dessus pour trouver une solution, d’ici que ce soit corrigé dans Kodi.

Sommaire

J’avais fait un article il y a longtemps sur mon installation de Kodi, qui marche toujours nickel d’un point de vue matériel. Mais je me suis retrouvé coincé à la version 16 de Kodi à cause de ce problème de Wiimote.

J’ai ouvert https://trac.kodi.tv/ticket/17313. Quelques mois plus tard, un certain chr[] propose des patchs qui fonctionnent : un grand merci à lui!

D’ici que ce soit corrigé dans Kodi, il est possible d’appliquer ces patchs et de recompiler le client wiimote. Mais pour les impatients, je fournis ci-dessous le résultat compilé .

Binaire compilé

J’ai compilé le client wiimote patché, pour Ubuntu 16.04 et 14.04 (en 64 bits dans les 2 cas) :

Dans le .tar.gz se trouve un fichier WiiRemote exécutable, qu’il faut utiliser à la place de /usr/bin/kodi-wiiremote. Chez moi, je le lance en tâche de fond avant de lancer kodi :

/path/to/WiiRemote &

Ou, à la place, vous pouvez renommer ce fichier WiiRemote en kodi-wiiremote, et le placer dans /usr/bin (en remplacement du fichier existant).

Compilation depuis les sources

Si vous avez utilisé le binaire du paragraphe ci-dessus, vous pouvez sauter ce paragraphe.

Mais si vous préférez compiler vous-même (ou si mes binaires ne correspondent pas à votre architecture ou à votre distribution), voici les étapes que j’ai suivies pour le faire.

D’abord télécharger les 3 patchs depuis le bugtracker, puis :

sudo apt install git
git clone https://github.com/xbmc/xbmc.git
cd xbmc
git checkout Krypton
patch -p1 <../0001-*.patch
patch -p1 <../0002-*.patch
patch -p1 <../0003-*.patch
sudo apt install build-essential autoconf libtool autopoint swig default-jre
./bootstrap
autoreconf -i

sur Ubuntu 16.04 :

sudo apt install libbluetooth-dev libcwiid-dev python-dev libgl-dev libglu-dev libmysqlclient-dev libass-dev libcurl-dev libcurl4-gnutls-dev libcurl4-gnutls-dev libbz2-dev liblzo2-dev libtinyxml-dev libcrossguid-dev libyajl-dev libsqlite3-dev libtag1-dev libcdio-dev libmicrohttpd-dev libssh-dev libsmbclient-dev cmake gperf libcdio-dev libiso9660-dev uuid-dev

sur Ubuntu 14.04 :

sudo apt install libbluetooth-dev libcwiid-dev python-dev libglu-dev libmysqlclient-dev libass-dev libcurl4-gnutls-dev libcurl4-gnutls-dev libbz2-dev liblzo2-dev libtinyxml-dev libyajl-dev libsqlite3-dev libcdio-dev libmicrohttpd-dev libssh-dev libsmbclient-dev cmake gperf libcdio-dev libiso9660-dev uuid-dev libxml2-dev libxslt1-dev libpcre3-dev libtag1-dev libxrandr-dev libegl1-mesa-dev libcap-dev yasm gawk
sudo make -C tools/depends/target/crossguid PREFIX=/usr/local

A noter que, sur Ubuntu 14.04, si Kodi est déjà installé, il y a un problème avec libtag1c2a qui est dans une version 1.9.1-2.2~ppa~trusty fournie par le PPA, alors qu’il faut exactement la version 1.9.1-2 pour installer libtag1-dev. On peut contourner le problème en désinstallant kodi et libtag1c2a, et en désactivant le PPA avant de réessayer. Après la compilation, on peut réinstaller kodi.

Enfin, quelle que soit la version d’Ubuntu :

./configure
cd tools/EventClients
make

Configuration du keymap

Dans tous les cas, pour que la wiimote fonctionne, il faut également définir son keymap dans Kodi.

Il suffit de copier le fichier WiiRemote.custom.xml (à récupérer dans WiiRemote.custom.xml.tar.gz) dans ~/.kodi/userdata/keymaps : j’y ai mis des mappings qui correspondent (quasiment) à ce qu’on avait avec Kodi 16. Mais libre à vous de les changer.

Statut et suite

Ca marche très bien, sauf un petit dysfonctionnement mineur chez moi, dans cette version : les LEDs de la wiimote continuent de clignoter après la connexion. Ce n’est pas très gênant, mais mériterait d’être corrigé avant que le correctif soit ré-intégré dans Kodi. J’espère que ça ne cache pas une race-condition qui serait plus difficile à corriger (je ne connais pas assez bien le sujet).

Quoi qu’il en soit, j’espère que ça finira en Pull Request sur le repo de Kodi, pour que ce soit intégré dans Kodi 18.

Si cette problématique vous concerne, ça aiderait probablement de mettre des commentaires sur le bugtracker, pour que l’équipe de développeurs de Kodi y prête attention.

A nouveau un grand merci à chr[] : c’est lui qui a fait tout le boulot.

12 réflexions sur « Refaire fonctionner sa wiimote avec Kodi 17 »

  1. Excellent !

    Tu saurais comment faire pour que cela tourne sur un Raspberry ? J’utilise la distri OSMC

    J’aimerai tellement retrouver ma Wiimote !

    Merci

  2. Les Raspberry Pi utilisent une architecture ARM donc les binaires que je fournis ne vont pas fonctionner.
    Il y a de grande chances qu’il soit possible de compiler le client wiimote en architecture ARM sur OSMC. Puisque c’est basé sur Debian, il faut probablement suivre les instructions de http://kodi.wiki/view/HOW-TO:Compile_Kodi_for_Linux_on_Debian/Ubuntu pour installer les librairies de développement nécessaires (sudo apt-get build-dep kodi), et lancer la compilation (pas la peine de compiler tout Kodi : uniquement le client wiimote). Mais je n’ai pas eu l’occasion de tester.

  3. Salut,

    Merci pour ton post Mossroy. Je suis dans la même problématique que toi.
    J’utillise Kodi 17.6 sur ubuntu 17.10, et malgré le fait que la wiimote soit bien détectée, aucun bouton ne marche sur kodi.
    J’ai essayer de suivre ton tutoriel, mais je bloque sur le ./configure :
    checking for mysql_config… no
    Or, quand j’essaye d’installer libmysqlclient-dev, j’ai un problème de dépendance que je ne comprend pas :

    libmysqlclient-dev : Dépend: libmysqlclient20 (= 5.7.19-0ubuntu1) mais 5.7.20-0ubuntu0.16.04.1 devra être installé

    (j’ai l’impression d’avoir un pb de dépendance a cause du repo xbmc artful, mais je sais pas trop comment m’en sortir)

      1. Non, il balance un msg d’erreur en boucle à propos d’une librairie bluetooth.
        J’ai pas testé plus loin du coup.

        1. Au pire, il est a priori possible de forcer apt à installer les versions qu’on souhaite, en ignorant les problèmes de dépendance.
          Ce ne sera pas un problème pour le client wiimote (puisqu’il n’est pas du tout lié à mysql). Si tu compiles dans une VM (ou un conteneur Docker, ou un quelconque environnement jetable), ça se tente. Mais j’aurais tendance à éviter de le faire sur une machine « de production ».
          Ce qui est dommage, c’est qu’on est obligé de tirer toutes les dépendances de Kodi, uniquement pour pouvoir faire le configure. Ensuite on ne compile qu’une toute petite sous-partie qui n’a pas besoin de toutes ces dépendances.

          1. Merci pour l’idée, j’ai installé une VM vite fait et j’ai compilé le Wiiremote avec les 3 fichiers patch.
            Ca fonctionne.
            Les diodes clignotent beaucoup au début puis ca s’arrête en appuyant sur 1 et 2 en même temps il me semble (mais je ne suis pas un habitué de la wiimote sur Kodi donc je sais pas trop.
            Par contre, mon kodi étant démarré 24/7 j’ai l’impression que la wiimote reste allumée tout le temps ce qui risque de cramer les piles assez rapidement. Je vais continuer à tester un peu voir si ca me convient.
            En tout cas ça a marché pour moi, merci.

          2. Cool, bonne nouvelle!
            Ca serait bien que tu mettes à disposition ton binaire d’une manière ou d’une autre : ça pourrait servir à d’autres.
            Le fonctionnement de la wiimote que tu décris me parait normal.
            Et je confirme que la wiimote consommera rapidement les piles si elle reste allumée (ce qui sera le cas si le Kodi reste allumé aussi).
            Une solution de contournement consiste à enlever puis remettre une pile de la wiimote après utilisation. C’est pas hyper pratique mais facile et efficace. Ou alors redémarrer Kodi donne le même résultat.
            Il est probable que tu puisses faire mieux en lançant un script sur la machine qui fait tourner Kodi, qui killerait le processus du client wiimote, attendrait quelques seconde, puis le relancerait. Mais je vois pas de moyen très simple pour lancer ça depuis l’interface de Kodi (à part à développer un addon…)

  4. Pour compléter le sujet : J’ai essayé de nouveau ton binaire 16.04. Je ne m’y étais pas bien pris la première fois. Je confirme qu’il fonctionne sur une Ubuntu 17.10 (+Kodi 17.6) aussi bien que celui que j’ai compilé directement sur ma 17.10.

  5. Hello,
    j’ai essayé de recompiler tout sur un Raspberry 3, mais c’est une galere sans nom.

    Je me dois d’abandonner, faute de temps. J’espere que la correction apparaitra sous Kodi 17 ou 18.

    Il faudrait que quelqu’un puisse faire un pull request chez Kodi pour partager le travail réalisé.

    Merci pour les contributions en tout cas…

  6. Hello !

    J’ai trouvé une solution pour Kodi (Sur OSMC), inspirée d’un tutorial de Retropie.

    En effet, on peut installer KODI sous Retropie avec utilisation de la WII en telecommande.

    Donc logiquement, la WIIMote devrait pouvoir fonctionner sous KODI/OSMC avec ce tuto..;

    https://github.com/RetroPie/RetroPie-Setup/wiki/Wiimote-Controller

    Prendre la partie Method 2 (MoltenGamepad):

    Ca marche avec la derniere version de KODI, sans patch ni rien du tout.

    Faut juste configurer correctement les touches de la WII.

    J’aimerai eteindre la WIIMote apres 5 minutes de NON-activité.

    Pour le moment, j’ai un crontab bourrin qui deconnecte l’appairage toutes les 5 minutes, mais ce n’est pas exactement ce que je veux.

    Ceci dit, je suis très content d’avoir retrouvé ma WIIMote sous KODI !!!

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *