Forum KNX francophone / English KNX forum
Plantage eibd - Version imprimable

+- Forum KNX francophone / English KNX forum (https://www.knx-fr.com)
+-- Forum : Français (https://www.knx-fr.com/forumdisplay.php?fid=3)
+--- Forum : Logiciels libres (linknx, knxweb, pKNyX,...) (https://www.knx-fr.com/forumdisplay.php?fid=10)
+--- Sujet : Plantage eibd (/showthread.php?tid=2974)



Plantage eibd - proof42 - 29/05/2014

Bonjour,

Je tente d'installer le trio eibd-linknx-knxweb2 sur une Ubuntu 14.4 tournant sous Virtualbox 4.3.12 (sous Windows 7 pro)
J'ai une passerelle Siemens 148-1AB22 dont l'adresse DHCP est 192.168.1.19.
J'ai suivi principalement le tutoriel situé à la page http://diyfltm.blogspot.fr/2012/11/installer-eibd-linknx-et-knxweb2-sur.html.
je bute sur le lancement du processus eibd, qui plante systématiquement.
Mes connaissances de linux sont modestes.
Je précise les étapes que j'ai effectuées, en mode terminal:

Variables d'environnement
*************************
KNXDIR=$HOME/knx
INSTALLDIR=${KNXDIR}/local
export LD_LIBRARY_PATH=${INSTALLDIR}/lib
mkdir ${KNXDIR}
cd ${KNXDIR}
Installation des composants
***************************
installation pth_sem
----------------------
wget http://downloads.sourceforge.net/sourceforge/bcusdk/pthsem_2.0.8.tar.gz
tar -xzf pthsem_2.0.8.tar.gz
cd pthsem-2.0.8/
./configure --prefix=${INSTALLDIR}/
make
make test
make install
cd ..
Installation linknx:
--------------------
wget http://downloads.sourceforge.net/sourceforge/linknx/linknx-0.0.1.30.tar.gz
tar -xzf linknx-0.0.1.30.tar.gz
cd linknx-0.0.1.30/
./configure --without-log4cpp --without-lua --prefix=${INSTALLDIR}/ --with-pth=${INSTALLDIR}/
make
make install
cd ..
Installation eibd
------------------
wget http://freefr.dl.sourceforge.net/project/bcusdk/bcusdk/bcusdk_0.0.5.tar.gz
tar -xzf bcusdk_0.0.5.tar.gz
cd bcusdk-0.0.5/
./configure --enable-onlyeibd --enable-eibnetiptunnel --enable-usb --enable-eibnetipserver --enable-ft12 --prefix=${INSTALLDIR}/ --with-pth=${INSTALLDIR}/
make
make install
cd ..
Installation apache2
---------------------
sudo apt-get install apache2 php5 mysql-server libapache2-mod-php5 php5-mysql
Une fois les paquets installés, j'ouvre comme indiqué la page: http://127.0.0.1/, et j'obtiens le message « It works! »
Le serveur est donc correctement installé
Installation knxweb2
-----------------------
wget -O knxweb2.tar "http://linknx.cvs.sourceforge.net/viewvc/linknx/knxweb/knxweb2/?view=tar"
tar xvf knxweb2.tar
Tout s'étant déroulé sans erreur, je suis passé à la configuration:
****************************************************
linknx:
--------
cp ${INSTALLDIR}/share/doc/linknx/linknx.xml ${KNXDIR}
knxweb2:
---------
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/knxweb.conf
sudo perl -pi -e "s{/var/www}{${KNXDIR}/knxweb2}g" /etc/apache2/sites-available/knxweb.conf
sudo a2disssite 000-default.conf
sudo a2ensite knxweb.conf
sudo service apache2 reload
Lancement de eibd
*****************
${INSTALLDIR}/bin/eibd -D -T -R -S -i -u --daemon=${KNXDIR}/eibd.log ipt:192.168.1.19
Et là, plantage direct, j'obtiens l'erreur: Erreur de segmentation (core dumped)
Je note que la commande ${INSTALLDIR}/bin/eibd --help fonctionne correctement. Une commande ne comprenant pas l'option -i ou une adresse ip provoque un message d'erreur cohérent, signalant l'erreur de syntaxe. Toute commande comprenant -i et ipt[:quelque soit l'adresse y compris vide] plante.
Aucun fichier de log n'est créé, ni dans le répertoire KNXDIR, ni dans /var/log
La passerelle ip est pingable en 192.168.1.19.
Après lecture de plusieurs discussions, j'ai effectué la manoeuvre permettant à la passerelle de gérer plusieurs adresses individuelles (appui entre 5 et 10 secondes sur le bouton de programmation). Ceci m'a changé l'adresse individuelle de la passerelle de 15.15.254 en 1.1.112. La passerelle reste accessible à ETS4. Le lancement de eibd provoque le même plantage.

Quelqu'un pourrait-il m'aider à résoudre ce problème qui dépasse mes compétences?
Merci par avance.





RE: Plantage eibd - tru - 29/05/2014

(29/05/2014, 15:57:14)proof42 a écrit : Installation eibd
------------------
wget http://freefr.dl.sourceforge.net/project/bcusdk/bcusdk/bcusdk_0.0.5.tar.gz
tar -xzf bcusdk_0.0.5.tar.gz
cd bcusdk-0.0.5/
./configure --enable-onlyeibd --enable-eibnetiptunnel --enable-usb --enable-eibnetipserver --enable-ft12 --prefix=${INSTALLDIR}/ --with-pth=${INSTALLDIR}/
make
make install
cd ..

Try with the attached patch for USB and let us know if it helps

Regards, Othmar



RE: Plantage eibd - proof42 - 29/05/2014

Thank you Othmar,

How do I use the patch (sorry, I'm not an expert in building programs)?


RE: Plantage eibd - tru - 30/05/2014


cd bcusdk-0.0.5/
patch -p1 < patchfilename



RE: Plantage eibd - proof42 - 30/05/2014

Thank you, great, it works fine!
I used the patch then built again, and now the eibd daemon works! Linknx daemon too.
Now I have to solve an Apache2 access problem, that didn't exist just after Apache2's installation.
I'll study this this week-end and let you know


RE: Plantage eibd - proof42 - 01/06/2014

Hello,
After patching and rebuilding eibd, eibd is running, but il can't connect to the Siemens 148-1AB22.
I used the command: ./eibd -t65535 -i ipt:192.168.1.19
The result is that eibd fails to connect and loops (connectretry loops), as shown below (I stopped eibd after a few loops):
ubuntu@ubuntu-VirtualBox:~/knx/local/bin$ ./eibd -t65535 -i ipt:192.168.1.19
Layer 2(088B1668,538AFEB5) Open
Layer 0(088B1B30,538AFEB5) Open
Layer 0(088B1B30,538AFEB5) Openend
Layer 2(088B1668,538AFEB5) Opened
Layer 3(088D2278,538AFEB5) Open
Layer 8(088B1C10,538AFEB5) OpenInetSocket 6720
Layer 8(088B1C10,538AFEB5) InetSocket opened
Layer 4(088F2960,538AFEB5) GroupCacheInit
Layer 1(088B1B30,538AFEB5) Send(020): 08 01 0A 00 02 0F 0E 58 08 01 0A 00 02 0F 0E 58 04 04 02 00
Layer 0(088B1B30,538AFEB5) Send(026): 06 10 02 05 00 1A 08 01 0A 00 02 0F 0E 58 08 01 0A 00 02 0F 0E 58 04 04 02 00
Layer 1(088B1668,538AFEBF) Connectretry
Layer 1(088B1B30,538AFEBF) Send(020): 08 01 0A 00 02 0F 0E 58 08 01 0A 00 02 0F 0E 58 04 04 02 00
Layer 0(088B1B30,538AFEBF) Send(026): 06 10 02 05 00 1A 08 01 0A 00 02 0F 0E 58 08 01 0A 00 02 0F 0E 58 04 04 02 00
Layer 1(088B1668,538AFEC9) Connectretry
Layer 1(088B1B30,538AFEC9) Send(020): 08 01 0A 00 02 0F 0E 58 08 01 0A 00 02 0F 0E 58 04 04 02 00
Layer 0(088B1B30,538AFEC9) Send(026): 06 10 02 05 00 1A 08 01 0A 00 02 0F 0E 58 08 01 0A 00 02 0F 0E 58 04 04 02 00
Layer 1(088B1668,538AFED3) Connectretry
Layer 1(088B1B30,538AFED3) Send(020): 08 01 0A 00 02 0F 0E 58 08 01 0A 00 02 0F 0E 58 04 04 02 00
Layer 0(088B1B30,538AFED3) Send(026): 06 10 02 05 00 1A 08 01 0A 00 02 0F 0E 58 08 01 0A 00 02 0F 0E 58 04 04 02 00
^CLayer 8(088B1C10,538AFED4) StopServer
Layer 8(088B1C10,538AFED4) Server ended
Layer 4(088F2960,538AFED4) GroupCacheDestroy
Layer 4(088F2960,538AFED4) GroupCacheClear
Layer 3(088D2278,538AFED4) Close
Layer 2(088B1668,538AFED4) Close
Layer 0(088B1B30,538AFED4) Close
Siemens device is pingable at 198.168.1.19.
I've tried to enable multiple personnal adresses and pushed de program button within 5 and 10 sec, but il didn't change anything.
I acceded then to Siemens device with ETS4 under Windows, without problem, ip=198.168.1.19, and personnal adress is now 1.1.136.
I tried then with an usb connection using a Siemens 148-1AB11, activating the connection usb for this device in the virtual machine, but ./findknxusb does'nt find any device.
Have you got ideas?


RE: Plantage eibd - vf62 - 02/06/2014

Je ne suis pas sùr que le port soit optionnel:

eibd -d -D -S -T -i ipt:192.x.x.x:3671

Vincent


RE: Plantage eibd - proof42 - 02/06/2014

Merci Vincent,
La commande:
./eibd -D -S -T -t65535 -i ipt:192.168.1.19:3671
donne strictement le même résultat que le précédent.


RE: Plantage eibd - Weevil - 03/06/2014

Depuis ta machine Ubuntu sous VirtualBox, peux-tu essayer un :
telnet 192.168.1.19 3671

Histoire d'être sûr que le port est bien accessible depuis ta machine virtuelle. S'il n'est pas ouvert tu auras un message d'erreur. S'il est ouvert, un écran noir avec un curseur qui clignote en attendant des commandes.


RE: Plantage eibd - proof42 - 03/06/2014

Merci Weevil,
La commande telnet affiche effectivement une erreur après un certain temps:
ubuntu@ubuntu-VirtualBox:~$ telnet 192.168.1.19 3671
Trying 192.168.1.19...
telnet: Unable to connect to remote host: Connection timed out
Quelques infos sur mon réseau: livebox, baie de brassage, pc connecté en filaire
Que dois-je faire pour que le port soit accessible?


RE: Plantage eibd - tru - 04/06/2014

(03/06/2014, 22:21:58)proof42 a écrit : Que dois-je faire pour que le port soit accessible?
Don't get confused with "telnet". You cannot verify the port like that because it's based on UDP and telnet can only talk over TCP.
But you may still check firewall rules both directions and routing. I just sniffed my network traffic and there are ports 3671 and 3672 involved. BTW: you don't need to specify the port, should be assigned automatically.

Regards, Othmar


RE: Plantage eibd - proof42 - 04/06/2014

Thank you,
I'm discovering iptables. Virtualbox/Ubuntu installation is brand new, and it seems that there are no rules blocking anything:
ubuntu@ubuntu-VirtualBox:~$ sudo iptables -L
[sudo] password for ubuntu:
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination


I've also desactivated Kaspersky Internet Security on Windows, but without more succes with eibd command


RE: Plantage eibd - Weevil - 04/06/2014

Thanks Othmar for your remark. There are other tools to test UDP connections :
Have a look here : http://www.thelinuxwiki.in/2013/02/how-to-test-udp-connectivity.html

The nc command seems to match your needs :
nc -vzu 192.168.1.19 3671-3672
@proof42 : what is your Ubuntu virtual machine IP address ?

ifconfig or
ifconfig eth0


RE: Plantage eibd - proof42 - 04/06/2014

@Weevil
nc command gives:
----4ubuntu@ubuntu-VirtualBox:~$ nc -vzu 192.168.1.19 3671-3672
Connection to 192.168.1.19 3671 port [udp/*] succeeded!

But Ubuntu virtual machine IP address is 10.0.2.15, is it a problem?
ubuntu@ubuntu-VirtualBox:~$ ifconfig eth0
eth0 Link encap:Ethernet HWaddr 08:00:27:ed:d0:42
inet adr:10.0.2.15 Bcast:10.0.2.255 Masque:255.255.255.0
adr inet6: fe80::a00:27ff:feed:d042/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Packets reçus:1784 erreurs:0 :0 overruns:0 frame:0
TX packets:1120 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
Octets reçus:1660820 (1.6 MB) Octets transmis:161280 (161.2 KB)


RE: Plantage eibd - Weevil - 04/06/2014

I think so ... should be on the same network (I think). Can you configure it in DHCP in order to get your IP address from the router or force it to be 192.168.1.xx ?


RE: Plantage eibd - proof42 - 04/06/2014

Thanks to all, it works!
Ubuntu virtual machine'ip was the problem.
For those who will have the same problem, I did:
- close my Ubuntu virtual machine
- Virtualbox -> Configuration -> Réseau -> onglet 1: I replaced "NAT" with "Accès par Pont"
- then I launched again Ubuntu wm: ip address has changed in 198.168.1.24
Now, when I launch eibd, I can see the knx messages in the terminal
Next step: linknx, knxweb...



RE: Plantage eibd - Weevil - 04/06/2014

Congrats Big Grin


RE: Plantage eibd - vf62 - 04/06/2014

arf ...

back to basics .. everytime before testing upper layers ..

je pensais que ta vm avait déjà accès au réseau interne.

Content pour toi que cela fonctionne à présent !


RE: Plantage eibd - proof42 - 04/06/2014

Et oui, je manque de bases. Et ça se voit pour la suite!
Je passe à linknx.
Je lance le processus par la commande:
ubuntu@ubuntu-VirtualBox:~/knx/local/bin$ ./linknx --config=/home/ubuntu/knx/linknx.xml --daemon=/home/ubuntu/knx/linknx.log
et j'obtiens le message d'erreur:
./linknx: error while loading shared libraries: libpthsem.so.20: cannot open shared object file: No such file or directory
Je vérifie, libpthsem.so.20 se trouve dans le répertoire /home/ubuntu/knx/local/lib. Ce fichier est désigné de type "lien vers inconnu". Pour info, j'ai un fichier nommé pthsem-config dans /home/ubuntu/knx/local/bin.
Ai-je fais une erreur quelque part?

Je me réponds à moi-même
Il s'agit de l'omission de la commande: export LD_LIBRARY_PATH=${INSTALLDIR}/lib
Cette commande ne vaut manifestement que pour la session du terminal, et doit être retapée à chaque fois.
J'en viens donc à la suite: utilisation d'Apache2.
J'ai installé apache2 ainsi qu'expliqué plus haut, ainsi que knxweb2.
J'ai accès, par l'intermédiaire d'un navigateur, à apache2 en tapant l'adresse localhost. J'obtiens la page de démarrage générique d'apache2. Mais ceci ne vaut que pour la session ubuntu en cours. Si j'arrête Ubuntu, au prochain lancement, toute tentative de connection à localhost se solde pour un refus d'accès:

Forbidden
You don't have permission to access / on this server.
Apache/2.4.7 (Ubuntu) Server at localhost Port 80

J'ai lu de la doc, c'est assez compliqué. J'ai tenté de modifier des règles d'accès dans le fichier /etc/apache2/apache2.conf, en rajoutant un bloc du type:
<Directory /home/ubuntu/knx/knxweb2>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
puis en rechargeant les fichiers de config (services apache2 reload), mais sans succès.
La commande apache2 -t me donne tout un tas d'erreurs:

ubuntu@ubuntu-VirtualBox:~/knx/local/bin$ apache2 -t
[Wed Jun 04 17:06:59.749393 2014] [core:warn] [pid 4866] AH00111: Config variable ${APACHE_LOCK_DIR} is not defined
[Wed Jun 04 17:06:59.752339 2014] [core:warn] [pid 4866] AH00111: Config variable ${APACHE_PID_FILE} is not defined
[Wed Jun 04 17:06:59.752340 2014] [core:warn] [pid 4866] AH00111: Config variable ${APACHE_RUN_USER} is not defined
[Wed Jun 04 17:06:59.752341 2014] [core:warn] [pid 4866] AH00111: Config variable ${APACHE_RUN_GROUP} is not defined
[Wed Jun 04 17:06:59.752341 2014] [core:warn] [pid 4866] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Wed Jun 04 17:06:59.767355 2014] [core:warn] [pid 4866] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Wed Jun 04 17:06:59.767861 2014] [core:warn] [pid 4866] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Wed Jun 04 17:06:59.767979 2014] [core:warn] [pid 4866] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
AH00526: Syntax error on line 74 of /etc/apache2/apache2.conf:
Invalid Mutex directory in argument file:${APACHE_LOCK_DIR}

Apparemment, ma configuration est mauvaise.
Quelqu'un peut-il encore m'aider?


RE: Plantage eibd - Weevil - 04/06/2014

Ne serait-ce pas un problème d'utilisateur ? Quand ça fonctionne (tu as la page par défaut d'apache), tu lances apache en étant quel user (avec un sudo? en étant connecté en root ?) ?
Quand tu redémarres, tu es connecté avec quel user ? as-tu créé un script de démarrage automatique d'Apache ?


RE: Plantage eibd - proof42 - 04/06/2014

Quand ça fonctionne, c'est après l'installation, apache2 s'est lancé tout seul.
Quand ça fonctionne pas, c'est la même chose, c'est lancé automatiquement.
J'ai effectué les commandes suivantes

ubuntu@ubuntu-VirtualBox:~/knx/local/bin$ service apache2 stop
* Stopping web server apache2 *
ubuntu@ubuntu-VirtualBox:~/knx/local/bin$ ps -aux | grep apache
root 1229 0.0 0.3 102060 13048 ? Ss 11:40 0:01 /usr/sbin/apache2 -k start
www-data 1244 0.0 0.1 102124 4496 ? S 11:40 0:00 /usr/sbin/apache2 -k start
www-data 1245 0.0 0.1 102124 4496 ? S 11:40 0:00 /usr/sbin/apache2 -k start
www-data 1246 0.0 0.1 102124 4496 ? S 11:40 0:00 /usr/sbin/apache2 -k start
www-data 1247 0.0 0.1 102124 4496 ? S 11:40 0:00 /usr/sbin/apache2 -k start
www-data 1248 0.0 0.1 102124 4496 ? S 11:40 0:00 /usr/sbin/apache2 -k start
www-data 2789 0.0 0.1 102124 4496 ? S 12:36 0:00 /usr/sbin/apache2 -k start
ubuntu 5204 0.0 0.0 4704 824 pts/9 S+ 17:32 0:00 grep --color=auto apache
ubuntu@ubuntu-VirtualBox:~/knx/local/bin$ sudo service apache2 stop
* Stopping web server apache2 *
ubuntu@ubuntu-VirtualBox:~/knx/local/bin$ ps -aux | grep apache
ubuntu 5239 0.0 0.0 4700 820 pts/9 S+ 17:32 0:00 grep --color=auto apache
ubuntu@ubuntu-VirtualBox:~/knx/local/bin$ service apache2 start
* Starting web server apache2 AH00112: Warning: DocumentRoot [/home/ubuntu/knx/knxweb2/html] does not exist
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
(13)Permission denied: AH00072: make_sock: could not bind to address [::]:80
(13)Permission denied: AH00072: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
AH00015: Unable to open logs
Action 'start' failed.
The Apache error log may have more information.
*
* The apache2 instance did not start within 20 seconds. Please read the log files to discover problems
ubuntu@ubuntu-VirtualBox:~/knx/local/bin$ sudo service apache2 start
* Starting web server apache2 AH00112: Warning: DocumentRoot [/home/ubuntu/knx/knxweb2/html] does not exist
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
*

Dois-je en déduire que apache2 est lancé automatiquement en tant que root (il semble ne s'arrêter qu'avec sudo).
Le lancement sans sudo échoue, et celui avec sudo signale une erreur


RE: Plantage eibd - tru - 04/06/2014

(04/06/2014, 16:39:30)proof42 a écrit : Dois-je en déduire que apache2 est lancé automatiquement en tant que root (il semble ne s'arrêter qu'avec sudo).
Le lancement sans sudo échoue, et celui avec sudo signale une erreur
Every service using a port <1024 needs to be started as root. So either use sudo or login as root. While booting all the scripts are started by the init process run under root. Most of the processes are then turned over to run with reduced priviledges with some service user id.

When working with Apache better always check the configuration first and reload it afterwards. You can do this by using the apachectl tool:
- sudo apachectl configtest
- sudo apachectl restart

The AH00558 message line is normal in the Ubuntu default configuration when reverse dns lookup for your IP-address does not return a FQDN. It's only a warning. You can omit it by adding this line somewhere (put it as last line) in the apache2.conf:
ServerName put.your.servername.here

bonne chance.
Othmar


RE: Plantage eibd - proof42 - 04/06/2014

Thank you,
I'll study to find how to do. I hope I come soon, probably this week-end to tell you if I succeded. And learn linknx too...



RE: Plantage eibd - vf62 - 05/06/2014

Hello,

Dans tes erreurs, je vois une IP en 127.0.1.1, ce qui n'est pas correct.
Soit tu utilises l'IP de ta VM (192.168.1.19) soit l'IP générique locale 127.0.0.1

Je ne pense pas que ce soit la source de ton tes problèmes mais ça supprimera au moins un message d'erreur.

Un autre message pas "normal", c'est : "DocumentRoot [/home/ubuntu/knx/knxweb2/html] does not exist"
Il n'a pas l'air de trouver ce répertoire, peux tu vérifier l'endroit où tu as placer knxweb2 ?

Vincent


RE: Plantage eibd - proof42 - 05/06/2014

Bonsoir et merci à tous,
Ca y est, étape franchie. L'erreur principale venait du fichier knxweb.conf, dont la ligne DocumentRoot /home/ubuntu/knx/knxweb2/html devait être remplacée par la ligne DocumentRoot /home/ubuntu/knx/knxweb2/ (merci vf62!)
J'avais aussi modifié quelques autorisations d'accès aux répertoires dans apache2.conf, mais je pense que ça n'a pas été utile, ce n'était pas véritablement un problème de configuration d'apache2.
J'accède maintenant à l'interface web de knxweb2. J'arrive pas encore à allumer la lampe de la cuisine, mais comme vous m'avez donné vos lumières, ce n'est pas trop grave!