Support du CM15a (driver iplc) pour le kernel 3.x

Edit
Ayant eu trop de crash avec ce module, je me suis rabattu sur un CM11a, depuis plus de problème

Je me suis enfin lancé, depuis le temps que j’attendais ça .

Malheureusement l’introduction a été difficile, d’une part pour trouver la technologie qui corresponde le mieux à mes besoins et d’autre part que celle ci soit compatible linux.

Comme le CM11 n’est plus fabriqué et qu’il est une ressource rare dans le marché de l’occasion, Je me suis rabattu sur le CM15a (semble t’il moyennement supporté avec heyu).

Le CM15a ça sert à quoi ?

Il permet de piloter l’ensemble des modules X10 depuis votre PC, il peut également recevoir ou envoyer (pas supporté sous linux) des ordres via son récepteur RF

Compilation du module

Voici la démarche pour créer le module qui ajoute le support du CM15a sur un kernel 3.x.

#!/bin/bash

TMP=/tmp/iplc

# Création repertoire temporaire
mkdir -p $TMP
cd $TMP

# Récupération des sources
wget "http://www.absurde.org/wp-content/uploads/2011/10/iplc-2.6.36.patch_.txt"
wget "http://www.linuxha.com/common/iplcd/iplc-driver.tgz"

# Decompression et patch
tar -xvzf iplc-driver.tgz
patch  iplc/driver/linux-2.6/device.c <  iplc-2.6.36.patch_.txt
sed -i 's#linux/autoconf.h#generated/autoconf.h#'  iplc/driver/linux-2.6/device.c
sed -i 's#\\#include <linux/smp_lock.h>#//\\#include <linux/smp_lock.h>#' iplc/driver/linux-2.6/device.c

# Compilation
cd iplc/driver/linux-2.6/
make cm15a

Nous avons dorénavant un module dans le répertoire cm15a.d/cm15a.ko, nous pouvons monter le module en faisant insmod cm15a.ko

Exemple de script pour monter automatiquement le module lors du démarrage du système (modifiez les emplacements suivant votre distribution)

#!/bin/bash
insmod cm15a.ko
chmod 750 /dev/cm15a0

Test du fonctionnement

Pour tester le bon fonctionnement du module nous allons compiler un binaire qui permet de piloter l’allumage ou l’extinction d’une lampe.

#!/bin/bash
wget "http://www.eclipsehomeauto.com/cm15a_on_linux/cm15ademo.tar.gz"
tar -xvzf cm15ademo.tar.gz
make
cp cm15ademo /usr/bin/

Exemple d’utilisation

#!/bin/bash
cm15ademo a1 on # Allume la lampe de code a1
cm15ademo a2 off # Etteind la lampe de code a2
cm15ademo a1 dim 20 # Diminue la puissance de la lampe a1 de 20 %
cm15ademo a1 bri 20 # Augmente la puissance de la lampe a1 de 20 %

Installation sur archlinux

J’ai également créé les paquets iplc & cm15ademo pour la distribution archlinux que vous pouvez installer avec la commande suivante

#!/bin/bash
yaourt -S iplc cm15ademo
Vus : 355
Publié par jesuislibre : 59