CALAOS-OS

Calaos-OS est un système d'exploitation basé sur Linux et Yocto/OpenEmbedded. Il comprend toutes les couches logicielles nécessaires au fonctionnement d'une installation domotique Calaos.

Les paquets logiciels disponibles sont désactivés par défaut et doivent être activés au besoin.

Logiciels disponibles

  • calaos-server
  • calaos-home
  • calaos-webapp

Configuration

Console SSH

Pour configurer Calaos-OS, il faut au préalable se connecter en SSH sur la machine.

Connexion en SSH

Commandes

systemctl

Calaos-OS utilise systemd pour gérer les services. On peut donc activer/désactiver calaos-server ou calaos-home en utilisant les commandes:

systemctl enable calaos-server
systemctl disable calaos-server

Ou bien pour calaos-home:

systemctl enable calaos-home
systemctl disable calaos-home

journalctl

Cette commande permet de voir le log système de tous les services. Pour voir les logs de calaos-server:

journalctl -lu calaos-server

pour voir ceux de calaos-home (moins utile mais pratique en cas de soucis):

journalctl -lu calaos-home

Configurer les interfaces réseaux

Calaos-OS utilise maintenant “connman” pour gérer les interfaces réseau. Il faut donc:

connmanctl services

qui affiche la liste des services réseaux, par exemple :

root@n450:~# connmanctl services
*AR Wired                ethernet_000bab451b09_cable
*AR Wired                ethernet_000bab451b08_cable

“ethernet000bab451b08cable” pour une connexion Ethernet, l'adresse MAC et “cable” pour une connexion filaire. La configuration manuellement se fait via les commandes suivantes. La configuration également d'un serveur DNS, dans l'exemple il s'agit de la Freebox.

connmanctl config ethernet_000bab451b09_cable --ipv4 manual 10.0.0.1 255.255.255.0 192.168.0.254
connmanctl config ethernet_000bab451b08_cable --ipv4 manual 192.168.0.100 255.255.255.0 192.168.0.254
connmanctl config ethernet_000bab451b08_cable nameservers 192.168.0.254

Pour mettre une interface avec la config en DHCP:

connmanctl config ethernet_000bab451b09_cable --ipv4 dhcp

Attention En aucun cas le serveur Calaos ne doit être mis en production en DHCP ! Techniquement cela fonctionnera via une réservation DHCP par exemple mais vous vous exposez à des problèmes à un moment ou un autre (panne de courant, panne de box Internet, doublon d'adresse IP, etc).

Remplacez le nom de l'interface réseau par celle listée lors de la première commande. Si l'interface n'est pas “active” par défaut, utilisez la commande:

connmanctl connect ethernet_000bab451b08_cable
connmanctl connect ethernet_000bab451b09_cable 

!! Documentation non terminée !!

calaos_config

Le premier lancement du service calaos va créer automatiquement les fichiers de configuration dans /etc/calaos.

 systemctl start calaos-server

Le fichier important est /etc/calaos/local_config.xml qui comporte le nom et mot de passe par défaut “user” et “pass”.

<?xml version="1.0" encoding="UTF-8" ?>
  <calaos:config xmlns:calaos="http://www.calaos.fr">
  <calaos:option name="show_cursor" value="true" />
  <calaos:option name="dpms_enable" value="false" />
  <calaos:option name="smtp_server" value="" />
  <calaos:option name="cn_user" value="user" />
  <calaos:option name="cn_pass" value="pass" />
  <calaos:option name="longitude" value="2.322235" />
  <calaos:option name="latitude" value="48.864715" />
</calaos:config>

Ils peuvent être changés par les commandes:

 calaos_config set cn_user user
 calaos_config set cn_pass pass

Pour configurer les options propres à calaos (comme le nom d'utilisateur, le mot de passe, etc.), il faut utiliser calaos_config.

Configuration avec calaos_config

Branchement de l'ecran

Ecran tactile RS232

On peut utiliser un écran tactile RS232 soit par un port RS232 présent sur la machine, soit en utilisant un convertisseur Serie<>USB. On peut utiliser des convertisseurs compatibles Linux tels que: http://www.ldlc.com/fiche/PB00144601.html

Pour faire fonctionner le port série, il faut activer un service avec systemd:

Avec un adaptateur Serie<>USB:

systemctl enable usb-serial-touchscreen@ttyUSB0

Avec un port série classique:

systemctl enable usb-serial-touchscreen@ttyS0

Une fois la configuration activée, il faut redémarrer la machine pour que tout soit chargé au démarrage correctement.

Ecran tactile USB

Un écran tactile USB sera automatiquement détecté dès son branchement. S'il ne fonctionne pas automatiquement, cela signifie que le driver est manquant.

Calibration de l'écran tactile

Pour calibrer l'écran, il faut lancer la commande suivante:

DISPLAY=:0 xinput_calibrator

Puis aller sur l'écran et appuyer sur les points demandés. Une fois que c'est fait, il faut retourner dans la console et voir les valeurs qui sont affichées.

Il faut ensuite créé un fichier 90-calib.conf avec le contenu suivant:

Section "InputClass"
      Identifier      "calibration"
      MatchProduct    "XXXXXXXX"
      Option  "Calibration"   "YYYYYYYYY"
      Option  "SwapAxes"      "0"
EndSection

Les valeurs XXXX et YYYY doivent être remplacées par celles données par xinput_calibrator.

Une fois le fichier créé, il faut le placer dans /usr/share/X11/xorg.conf.d/90-calib.conf

:!: A partir de la v3.0, le fichier 90-calib.conf peut être directement écrit grâce à la commande suivante:

DISPLAY=:0 xinput_calibrator --output-filename /usr/share/X11/xorg.conf.d/90-calib.conf

Puis redémarrer la machine.

Date et heure

Après l'installation, il faudra aussi régler l'heure. Pour cela il faut paramétrer le fuseau horaire qui correspond au votre. Par defaut, le fuseau horaire GMT est utilisé et celui-ci est représenté par le fichier /etc/localtime

Par exemple, pour configurer sur le fuseau horaire francais (Paris):

ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime

Pour vérifier la date et l'heure courante, il faut utiliser la commande suivante:

root@nuc:~# date
Wed Sep  1 12:48:23 CEST 2014

La date et l'heure sont par defaut configurées pour se mettre a jour automatiquement via NTP. Le serveur calaos.fr est utilisé comme serveur de temps (configuré dans le fichier /etc/ntp.conf). Il est possible de le changer s'il ne convient pas a votre localisation (calaos.fr étant situé en France).

La mise à jour de l'horloge se fait automatiquement par le service ntp, mais il est également possible de forcer la mise à jour de l'horloge via NTP. Cela se fait de cette manière:

systemctl stop ntpd
ntpd -gq
systemctl start ntpd

ou pour forcer une date et une heure, par exemple:

systemctl stop ntpd
date -s 2015.09.08-12:59:00

Position Géographique

Pour changer la position géographique de votre maison et pouvoir profiter de la fonction lever/coucher du soleil, les commandes sont:

calaos_config set latitude xx.xxxx
calaos_config set longitude yy.yyyy

Remplacer les X et Y par les coordonnées de votre maison. Vous pouvez utiliser ce site Coordonnees GPS pour obtenir les coordonnées exactes de votre localisation.

Langue

Il est possible à partir de la beta4, de changer la langue de calaos_home. Pour cela, il faut se connecter en SSH et utiliser la commande suivante (pour le francais):

root@nuc:~# localectl set-locale LANG="fr_FR.UTF-8"
root@nuc:~# localectl set-keymap fr
root@nuc:~# localectl set-x11-keymap fr

Puis vérifier avec:

root@nuc:~# localectl
   System Locale: LANG=fr_FR.UTF-8
       VC Keymap: fr
      X11 Layout: fr

Curseur

Pour faciliter les tests avant la version finale de Calaos-OS, le curseur de la souris (rond) est visible par défaut. Il est possible de le désactiver ou non grâce à la commande:

calaos_config set show_cursor false

Configuration du mail sortant

Sur évènement, Calaos peut envoyer des emails, pour cela il faut que le réseau soit fonctionnel. Il est simple de le tester avec, par exemple, la commande ping:

ping google.fr
PING google.fr (74.125.206.94): 56 data bytes
64 bytes from 74.125.206.94: seq=0 ttl=45 time=37.426 ms
64 bytes from 74.125.206.94: seq=1 ttl=45 time=37.084 ms
64 bytes from 74.125.206.94: seq=2 ttl=45 time=39.349 ms

La réponse indiquant un délai de réponse, le réseau fonctionne bien jusque sur Internet. Parfait, sinon revoir votre configuration. La configuration du serveur SMTP sera spécifique en fonction de votre opérateur:

Abonnés Free, depuis chez vous, sans authentification:

calaos_config set smtp_server smtp://smtp.free.fr
calaos_config set smtp_port 25
calaos_config set smtp_auth false

Ces options seront visibles dans /etc/calaos/local_config.xml. Il est possible de tester l'envoi d'un email via la commande:

calaos_mail --from votre_adresse@free.fr --to votre_email@free.fr --subject TEST --body TEST --verbose

Si tout va bien, vous pouvez envoyer des emails depuis Calaos.

Migration

Migration de la configuration v2+ vers v3

A partir de la v3.0, un outil de migration est présent. Il permet de faciliter la mise à jour de calaos-os sur les machines ou il est possible de démarrer sur une clé USB. L'outil est capable de recupérer la config complète de la machine (config calaos, calibration de l'écran tactile, config réseau connman, etc…) depuis une version installé sur un disque dur interne. Les versions 2 et supérieurs de calaos-os sont supportés.

Procédure

  • Flasher l'image v3 sur une clé USB
  • Démarrer sur la clé USB
  • Se connecter en SSH sur la machine
  • lancer la commande: calaos_migrate.sh
  • L'outil va rechercher une installation existante, et demander une validation avant de procéder.
  • La machine redémarre d'elle même, tout devrait être lancé et configuré comme auparavant
  • Il est maintenant possible de garder la version 3+ sur la clé USB et tester pendant un temps. En cas de soucis, on peut toujours revenir en arriere sur la version installé sur le disque dur interne.
  • Pour finaliser l'installation, il suffit de démarrer sur le clé USB et de sélectionner “Install” sur le menu de démarrage. Cela écrasera la version installé avec celle sur la clé USB.