Retour à la page d'accueil de Aeropassion Le blog - Inspiration - Forum

Aller au contenu | Aller au menu | Aller à la recherche

décembre 15

Cross compilation pour un NAS Synology

La première chose à savoir, c'est qu'un programme est fait pour s'exécuter sur un type de processeur donné. Pour l'utiliser avec un autre type de processeur, il faut le recompiler. Sauf que toutes les plateformes cibles ne permettent pas de compiler directement un programme. C'est là qu'intervient la cross compilation.

Qu'est ce que la cross compilation ? C'est le fait de compiler les sources d'un programme sur une autre plateforme informatique que celle pour laquelle se destine le programme compilé.

Dans notre cas, nous allons compiler sur notre PC des drivers pour notre NAS Synology, afin de pouvoir y brancher un périphérique USB permettant de suivre la consommation électrique de la maison.

Pré-requis

Pour cross-compiler les drivers de votre Syno, nous avons besoin d'un PC tournant sous Linux. Si vous n'avez pas ça sous la main ou si vous n'y connaissez rien, pas de panique, tout est expliqué.

Si vous n'avez pas de PC sous linux, vous allez devoir télécharger (c'est gratuit et légal) :

  1. VMware Player : ce logiciel permet de créer une machine virtuel sur votre PC sous Windows
  2. Une distribution linux. J'ai choisi une des plus simples : Ubuntu.

Ensuite, il faut télécharger des fichiers fournis gratuitement par Synology :

  1. La toolchain Synology, dans notre cas gcc421_glibc25_88f6281-GPL.tgz
  2. Les sources du DSM qui contiennent les drivers, dans notre cas synogpl-3776-6281

Attention : Les fichiers Synology doivent être adaptés à votre modèle de NAS (en fonction du processeur) et à la version du DSM que vous utilisez. Dans mon cas c'est un DS212 avec DSM 4.3.

Installer un système linux

Si vous êtes déjà sur un PC avec Linux, passez à l'étape suivante, sinon c'est très simple :

  1. Installez VMware Player en lançant l'installateur et en suivant les consignes
  2. Exécutez VMWare Player, et cliquez sur Create a new virtual machine.
  3. VMWare_Player demande alors de sélectionner le lecteur ou l'ISO contenant le système d'exploitation à installer : Installez Ubuntu en sélectionnant le fichier d'installation que vous avez téléchargé.

Après cette étape, votre système Ubuntu doit se lancer dans une fenêtre Windows classique.

Cross compilation des drivers

Décompresser la toolchain

Attention, dans le texte qui suit, remplacez "monuser" par votre user sous linux (sans les guillemets).

  1. Copiez le fichier gcc421_glibc25_88f6281-GPL.tgz dans /home/"monuser"
  2. Ouvrez un terminal
  3. Pour obtenir les droits root, tapez :
sudo -i
  1. Allez dans le répertoire du fichier gcc421_glibc25_88f6281-GPL.tgz
  2. Tapez la commande suivante :
tar zxpf gcc421_glibc25_88f6281-GPL.tgz -C /usr/local/

Positionner des variables d'environnements

Ensuite il faut préparer l’environnement de compilation en positionnant différentes variables avec ces commandes.

Attention, il faut adapter ces valeurs en fonction de la toolchain que vous avez téléchargée. Si votre NAS est basé sur une architecture PowerPC, il faudra remplacer arm-none-linux-gnueabi par powerpc-linux-gnuspe par exemple.

  1. Tapez les commandes suivantes:
export CFLAGS="-I/usr/local/arm-none-linux-gnueabi/include"
export LDFLAGS="-L/usr/local/arm-none-linux-gnueabi/lib"
export RANLIB=/usr/local/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-ranlib
export LD=/usr/local/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-ld
export CC=/usr/local/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-gcc
export LD_LIBRARY_PATH=/usr/local/arm-none-linux-gnueabi/lib
export ARCH=arm

Préparer les sources du DSM

Il faut décompresser les fichiers :

  1. Copiez l'archive contenant les sources du DSM dans le même répertoire que gcc421_glibc25_88f6281-GPL.tgz
  2. Décompressez les fichiers avec la commande :
tar -xjvf synogpl-3776-6281 -C /usr/local/arm-none-linux-gnueabi/

Ensuite, il faut configurer le kernel pour le processeur de votre Nas Synology. Pour ça il faut copier le fichier de configuration de votre processeur à la racine de la source du kernel :

cp /usr/local/arm-none-linux-gnueabi/source/linux-2.6.32/synoconfigs/88f6281 /usr/local/arm-none-linux-gnueabi/source/linux-2.6.32/.config

Pour vérifier la configuration du kernel, tapez les commandes suivantes :

cd /usr/local/arm-none-linux-gnueabi/source/linux-2.6.32/
make oldconfig

Ensuite vous pouvez modifier la configuration avec la commande :

make menuconfig

Attention, vous pouvez parfois rencontrer l'erreur suivante :

 *** Unable to find the ncurses libraries or the
 *** required header files.

Il suffit de taper cette commande :

sudo apt-get install libncurses5-dev

Grace à menuconfig, vous pouvez très facilement choisir quels drivers vous souhaitez compiler.

Ici je veux compiler les drivers usb/séries. Ils se trouvent dans Device Drivers > USB Support > USB serial converter.

Il faut mettre un M en fasse des drivers qui vous intéressent.

Pour info, les drivers pour les webcams ce trouve dans Device Drivers > Multimédia support > Video For Linux.

Après avoir sauvegarder le .config modifié (faire exit jusqu’à ce que le programme demande si vous souhaitez enregistrer vos modification), vous pouvez lancer la compilation des drivers avec la commande :

make modules

Attention, vous allez peut être rencontrer l'erreur suivante :

make: /usr/local/powerpc-none-linux-gnuspe/bin/powerpc-none-linux-gnuspe-gcc: Command not found
scripts/kconfig/conf -s arch/arm/Kconfig

Pour passer cette étape, vous devez modifier le fichier Makefile. Dans ce fichier, recherchez ARCH et CROSS_COMPILE, et indiquez les valeurs adaptées à votre NAS.

Par exemple :

ARCH=arm
CROSS_COMPILE=/usr/local/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-

La compilation est longue, pas de panique, c'est normal.

Une fois terminée, les drivers que vous avez compilés sont dans ce répertoire :

drivers/usb/serial/

novembre 27

Drivers USB pour DS212 et DSM 4.3

Pour ceux qui ont lu le projet de suivi de la consommation électrique via le signal de téléinformation d'un compteur EDF, vous savez que ce projet nécessite l'installation de drivers usb sur le NAS Synology.

Ce projet a été lancé sur la version 4.2 du DSM et plus rien ne fonctionnait après la mise à jour du DSM 4.3. Après quelques recherches, la solution était simple : il fallait recompiler les drivers.

En attendant de publier un guide détaillé sur la compilation des drivers, vous pouvez télécharger les drivers suivant pour DS212 et tous les NAS Synology avec un processeur Marvell Kirkwood mv6282 ou mv6281 :

  • usbserial.ko
  • ftdi_sio.ko
  • cp210x.ko

avril 21

Un programme pour lire les informations de la téléinformation EDF

Pour ceux qui n'aurait pas suivi, j'ai commencé la rédaction d'un dossier expliquant comment relever sa consommation électrique avec la téléinformation et un NAS Synology. Et là dernière fois je m'étais arrêté à la création de la base de données sur le NAS Synology.

Maintenant que le NAS reçoit les informations envoyées par votre compteur d'électricité, et que vous avez créer la base de données pour les enregistrer, il faut mettre en place le programme qui va lire régulièrement ces informations, et les enregistrer dans la base de données.

Je suis parti d'un programme en C que j'ai trouvé sur le net (pour le copyright, voir le source du programme en pièce jointe). J'ai adapté un peu le programme à mes besoins, et ensuite j'ai dû le compiler.

Sachez que vous pourrez trouver des programmes qui font la même chose en Python ou en PHP. J'ai essayé la solution PHP, mais le script s'arrêtait sans raison. Je n'ai jamais compris pourquoi, alors j'ai changé de solution.

Le programme fourni sur cette page a été modifié pour un compteur monophasé et j'ai uniquement gardé les informations du compteur qui me semblaient utiles. Il était initialement prévu pour du triphasé (la modification inverse est très simple).

Lire la suite...

avril 6

Création de la base de données pour le relevé de consommation EDF

Si vous avez suivi les précédentes étapes, votre modem de téléinformation est connecté au NAS Synology et vous voyez défiler les informations de votre compteur si vous tapez la commande :

cat /dev/ttyUSB0

Recevoir les données du compteur EDF était la première étape. Maintenant il faut mettre en place un programme qui lit ces données, et qui les enregistre dans la base de données.

La création d'une base de données est très simple sur un NAS Synology.

Activer le serveur de base de données sur votre NAS Synology

Pour activer le serveur de base de données :

  1. Connectez vous à l'interface graphique de votre NAS via votre navigateur préféré (en admin)
  2. Cliquez sur Panneau de configuration puis sur Service web
  3. Cochez les cases Activer Web Station et Activer MySQL comme le montre la photo ci-dessous.

Teleinformation_-_Activez_la_base_de_donnees.png

Lire la suite...

avril 6

Créer un shell qui se lancera au démarrage sur un NAS Synology

Dans le cadre de la création d'un système de relevé de la consommation électrique via un NAS Synology et un modem de téléinformation USB, j'ai déjà décrit comment installer les drivers USB/Série et les tester.

La suite logique est de créer un script qui se lancera au démarrage pour ne pas perdre votre configuration à chaque reboot du NAS.

Sur un NAS Synology, il est conseillé de déposer vos scripts de démarrage maison dans cette bibliothèque : /opt/etc/init.d/

Cette bibliothèque a l'avantage de ne pas être re-initialisée lors de la mise à jour du DSM (le système des NAS Synology).

Dans cette bibliothèque, il faut créer un fichier texte. Je l'ai appelé S50modules (le numéro 50 dans le nom du fichier permet de prioriser le lancement des différents scripts si vous en avez plusieurs dans ce répertoire).

Lire la suite...

février 27

Installer les drivers USB-série sur un NAS Synology

Pour utiliser un nouveau périphérique sur votre PC ou MAC, il est indispensable d'avoir le bon driver. Ce dernier est soit installé par défaut sur le système d'exploitation, soit il faut l'installer soit même.

La suite de cette page présente la façon de procéder pour installer les drivers nécessaire au fonctionnement d'un module de téléinformation (ou modem de téléinformation), sur un NAS Synology.

Pré-requis

Vous devez :

  • Activer les connexions SSH sur votre NAS Synology
  • Télécharger putty sur votre PC pour pouvoir ouvrir une connexion SSH
  • Installer ipkg sur votre NAS
  • Avoir acheté un module de téléinformation USB (à base de puce FTDI de préférence)

Si ce que je viens d'écrire est du chinois pour vous, dite le dans les commentaires de cette page, et je verrai pour apporter des précisions.

Dans les exemples ci-dessous, je n'avais aucun périphérique USB connecté au NAS. Le modem de téléinformation était le premier périphérique.

Lire la suite...

février 16

Relevé et suivi de la consommation électrique sur un NAS Synology

Table des matières

  1. Introduction : qu'est ce que la téléinformation ?
  2. Le matériel nécessaire : le module (ou modem) de téléinformation
  3. Trouver ou compiler les drivers USB/série correspondant à votre modèle de NAS.
  4. Créer un shell pour configurer le NAS, shell qui sera lancé automatiquement à chaque démarrage du NAS.
  5. Créer une base de donnée pour stocker les valeurs du signal de téléinformation.
  6. Créer un programme permettant d’interpréter les messages reçus via le module de téléinformation USB, et les enregistrer dans une base de donnée.
  7. Modifier la crontab pour lancer le programme au rythme voulu (exemple : une mesure toutes les 5 minutes).
  8. Créer une page web sur le NAS qui affichera les courbes représentant la consommation électrique

Introduction : qu'est ce que la téléinformation ?

Une particularité des compteurs électriques français est de posséder deux borniers (I1 et I2 pour brancher 2 fils) permettant de récupérer le signal de téléinformation du compteur.

Le signal de téléinformation du compteur EDF est un signal électrique de faible tension contenant des informations liées à votre abonnement.

En fonction de votre abonnement, voici les informations que le compteur envoie de façon périodique :

Lire la suite...

février 2

NAS Synology - Un cerveau numérique au coeur de la maison

Le besoin initial

Je suis parti de 2 constats :

  • Un disque dur ou le contrôleur d'une carte mère qui fatigue , et ce sont plusieurs années de travail et de photos qui disparaissent... Mes disques et PC vieillissent, il faut donc sécuriser les données (un disque m'a déjà lâché...),
  • Certaines photos sont dupliquées sur plusieurs PC, voir même dans les téléphones : c'est difficile de s'y retrouver, leur sauvegarde est compliquée, et l'utilisation des disques durs n'est pas optimisée. Et pour visualiser les photos c'est toujours compliqué : qui emmènent ses amis dans le bureau pour regarder les photos de vacance ? Ce n'est pas convivial.

Il fallait trouver une solution économique et efficace pour centraliser les données en les rendant accessibles à tous les appareils connectés de la maison. Une fois centralisé, l'utilisation des fichiers et leur sauvegarde serait simplifié.

Lire la suite...