Remplacement de la Fox Board LX par la G20

78 views
Skip to first unread message

YohFox

unread,
Jan 26, 2011, 8:47:35 AM1/26/11
to groupe de discussion autour de Netus G20 et FOX Board G20
Bonjour,

je dois remplacer la fox board LX par la G20 intégrant un OS DEBIAN
sur une carte.
J essaie d' adapter le CGI écrit en C de la LX pour la G20.
Ce CGI comporte donc entre autres les bibliothèques suivantes:
#include <sys/ioctl.h>
#include <asm/etraxgpio.h>
Je me demande si je peux les réutiliser (ça m'étonnerais, vu que le
brochage n'est pas exactement le même);
Ou bien dois-je plutot utiliser la biblio gpio_dev.h utilisé dans le
tutoriel suivant : http://foxg20.acmesystems.it/doku.php?id=tutorial:gpio_dev
Mais en exécutant "Generate a square signal in C" de ce tuto, je n'ai
pas le fichier "/dev/gpio" (ou le trouver).

Merci de m'éclaircir

YohFox

unread,
Feb 10, 2011, 12:18:00 PM2/10/11
to groupe de discussion autour de Netus G20 et FOX Board G20

FOX G20 Kernel 2.6.35.4

J'ai pu générer un signal carré à l'aide du liens suivant :
http://docs.blackfin.uclinux.org/doku.php?id=linux-kernel:drivers:gpio-sysfs
Maitenant que mon CGI compile sur la fox g20, j'essaie de l'utiliser
avec le serveur web Lighttpd intégré.

Je test donc un CGI simple en perl, je le place avec tous les droits
d'exécution dans un fichier cgi-bin à var/www,
puis à usr/lib/cgi-bin. Je valide mod_cgi dans lighttpd.conf et la
commande "lighty-enable-mod cgi", je rajoute .cgi dans
"static-file.exclude-extensions" de lighttpd.conf.Je place ma page
html qui permmet d'appeller mon cgi dans var/www .
Sous ubuntu g réalisé les mêmes étapes et ça fonctionne, tandis que
sur la fox g20, il y a error 404 qui apparrait lors de l'appel du cgi.

Ce message s'adresse à ttes personnes ayant réussi de faire
fonctionner un CGI.

MERCI

SebFox

unread,
Feb 10, 2011, 2:12:04 PM2/10/11
to groupe de discussion autour de Netus G20 et FOX Board G20
Salut YohFox,

Merci pour ta contribution. Pour ma part je n'ai pas essayé d'utiliser
le CGI.
SebFox

On 10 fév, 18:18, YohFox <yohan.fou...@gmail.com> wrote:
> FOX G20  Kernel 2.6.35.4
>
> J'ai pu générer un signal carré à l'aide du liens suivant :http://docs.blackfin.uclinux.org/doku.php?id=linux-kernel:drivers:gpi...

Antonio Galea

unread,
Feb 10, 2011, 5:21:48 PM2/10/11
to groupe-de-discussion-autour-...@googlegroups.com
2011/2/10 YohFox <yohan....@gmail.com>:

>
> Je test donc un CGI simple en perl, je le place avec tous les droits
> d'exécution dans un fichier cgi-bin à var/www,
> puis à usr/lib/cgi-bin. Je valide mod_cgi dans lighttpd.conf et la
> commande "lighty-enable-mod cgi", je rajoute .cgi dans
> "static-file.exclude-extensions" de lighttpd.conf.Je place ma page
> html qui permmet d'appeller mon cgi dans var/www .
> Sous ubuntu g réalisé les mêmes étapes et ça fonctionne, tandis que
> sur la fox g20, il y a error 404 qui apparrait lors de l'appel du cgi.

Apres l'abilitation du mod_cgi, dans le fichier de
configuration de lighttpd, tu trouverais

/etc/lighttpd/conf-enabled/10-cgi.conf

Si je comprends bien, ce que manque est la definition du alias
"/cgi-bin/", qui est valide seulment avec un remote address de
127.0.0.1.

De toute façon, la Fox n'est pas trop riche de memoire: avoir
une instance de perl pour chaque requet va a etre un peu
lourd. Si tu peux, çe cerait mieux d'utilizer des metodes plus
performantes, comme fast CGI (apt-get install libfcgi-perl).
L'usage est tres simple:

http://cpansearch.perl.org/src/BOBTFISH/FCGI-0.71_01/echo.PL

Et meme la configuration du lighttpd n'est pas compliqué:

http://redmine.lighttpd.net/wiki/1/ApplicationsUsingLighttpd

Antonio

PS: perdonne moi mon français, s'il te plait!

eusebe BARCELO

unread,
Feb 11, 2011, 12:17:41 PM2/11/11
to groupe-de-discussion-autour-...@googlegroups.com
Bonjour,
 
J'ai essayé en PHP et cela ne m'a pas posé de problème.
A ta place je réaliserais un cgi le plus simple possible.

Bon courage.
 

YohFox

unread,
Feb 18, 2011, 11:06:38 AM2/18/11
to groupe de discussion autour de Netus G20 et FOX Board G20
Bonjour à tous,
J'ai donc fais fonctionner un simple CGI ("Hello world") en C qui
apparaît correctement sur le site.
Je l'ai complété pour qu'il commande une pin de la fox à '1' puis '0'.
Aucun souci d'exécution sur la fox,mais via le WebServeur, après un
temps d'exécution le CGI ("Hello world") apparait, mais rien ne varie
sur la pin.
Comment, commandez-vous la fox par le Serveur Web par CGI en C?
Dommage qu'il n'y ait pas d'exemples comme pour la LX, vivement!!...
Merci pour vos réponse

marco

unread,
Feb 19, 2011, 3:12:11 PM2/19/11
to groupe de discussion autour de Netus G20 et FOX Board G20
Bonjour,

J'ai essayé de commander directement une pin GPIO en php, lorsqu'il
est exécuter en commande, pas de problème, ça marche mais lorsque je
l'exécute à partir d'un navigateur, ça marche pas à cause des droits
d'accès aux fichiers de périphériques :
/sys/class/gpio/export : root root

Comme il faut ouvrir ce fichier en écriture pour y écrire l'adresse de
la pin utilisée afin de créer les fichier direction et value, il faut
absolument être root ou modifier les droits d'accès à ces fichiers.
J'ai tenté de modifier les droits et ça marche mais lorsque la carte
est débranchée puis rebranchée, ces fichiers disparaissent et tout est
à refaire.

Comme pour mon script php, ton cgi est exécuté par www-data qui est
l"utilisateur par défaut de lighttp. Il n'a donc pas les droits
d'exécuter ou d'écrire dans export. Lorsque tu l'exécute à la main, tu
es root donc pas de soucis.

Si tu trouve une solution, je suis preneur...

Courage, Marco.

YohFox

unread,
Mar 14, 2011, 1:06:15 PM3/14/11
to groupe de discussion autour de Netus G20 et FOX Board G20
Salut,

J'ai toujours des problèmes, concernant la commande d'une pin GPIO par
CGI via une page html,
même en autorisant tous les droits des fichiers /sys/class/gpio/export
comme indiqué par marco.
Je serais très intéréssé par des exemples simples.

Cordialement

PS: C'est quand même l'intéret d'une carte serveur web de piloter sa
carte depuis un site web! Je ne comprend pas.
> > Merci pour vos réponse- Masquer le texte des messages précédents -
>
> - Afficher le texte des messages précédents -

pierre-...@laposte.net

unread,
Mar 15, 2011, 10:17:02 AM3/15/11
to groupe-de-discussion-autour-...@googlegroups.com

Bonjour,
Je n'ai pas réussi non plus à piloter un bit GPIO avec un scipt CGI. Je soupçonne un problème de configuration de lihgttpd que je n'arrive pas à résoudre.

J'ai envoyé le mail suivant à acme-systems:
-----------------------------------
Destinataire:  in...@acmesystems.it
Date: 27/02/11 19:04
Objet: foxboard G20 CGI script problem

Hello Sir,

It seems that there is a problem on the foxboard G20 to enable CGI script in lighttpd.
The response of the server is always "404 not found".
- this is a very simple .sh script, but it is the same with python or perl
- the script is in /usr/lib/cgi-bin, with mode 777
- mod_cgi is enabled, lighttpd restarted, etc...
- the .conf files seems correct
I read google-groups and I don't found solution.
Would you help me ?
Thanks a lot
-------------------------------------
A ce jour, je n'ai pas eu de réponse.
Si personne n'a de solution, je propose qu'on se ligue pour aller leur casser la gueule.
Cordialement
P.Belot

> Message du 15/03/11 10:13
> De : "YohFox"
> A : "groupe de discussion autour de Netus G20 et FOX Board G20"
> Copie à :
> Objet : Re: Remplacement de la Fox Board LX par la G20


Pieddemail

marco

unread,
Mar 17, 2011, 5:49:37 PM3/17/11
to groupe de discussion autour de Netus G20 et FOX Board G20
Salut à tous,

Alors voila, j'ai réussi à piloter une pin gpio en tout ce qu'on veut.
Le principe est de créer le système de fichier virtuel (sysfs)
correspondant à l'Id de la pin, puis indiquer la direction et enfin
écrire ou lire sur la pin. J'ai suivis le tutoriel
http://www.acmesystems.it/foxg20/doku.php?id=tutorial:gpio dans sa
partie How Linux manages the GPIO lines (sysfs method).

debarm:/# echo 82 > /sys/class/gpio/export
=> Crée le dossier gpio82 dans /sys/class/gpio. Dedans on trouve les
fichiers direction et value
debarm:/# echo out > /sys/class/gpio/gpio82/direction
=>Configure J7.3 (Id 82) en sortie
debarm:/# echo 1 > /sys/class/gpio/gpio82/value
=>Mettre à 1 J7.3
debarm:/# echo 0 > /sys/class/gpio/gpio82/value
=>Mettre à 0 J7.3

A partir de là, il suffit de créer un fichier en C par exemple qui
écrit 0 ou 1 dans /sys/class/gpio/gpio82/value
Là ou les choses se corses, s'est quand on veut le faire en php à
partir d'un navigateur par exemple. Les fichiers virtuels créés
précédemment sont propriété de root et les autres utilisateurs ne
peuvent que les lires. En changeant les droits d'accès, tout marche.

chmod 777 /sys/class/gpio/gpio82/direction
chmod 777 /sys/class/gpio/gpio82/value

Mais tout n'est pas résolu car comme ces fichiers sont virtuels,
lorsque la carte est mise hors tension puis rebranchée, ils ont
disparus.

L'idée est donc de les créer au démarrage de l'OS en ecrivant un shell
placé dans /etc/init.d et un lien dans /etc/rc2.d :

créer le shell suivant dans /etc/init.d

#!/bin/sh

echo "Activer les ports GPIO"
echo -n "J7.3 : "
if test -e /sys/class/gpio/gpio82
then echo "Déja actif"
else echo 82 > /sys/class/gpio/export
chmod 777 /sys/class/gpio/gpio82/direction
chmod 777 /sys/class/gpio/gpio82/value
echo "OK"
fi

Le rendre exécutable

chmod +x ActivGpio.sh

créer le lien symbolique dans /etc/rc2.d

cd /etc/rc2.d
ln -s /etc/init.d/ActivGpio.sh S99ActivGpio.sh

Redémarrer la fox, si on observe la séquence de boot (sur le port
debugg), on voit l'exécution du script se faire lors du runlevel2
(après le lancement des deamons habituels). Dès lors ça marche !!!

J'ai aussi testé en cgi en C.

Cordialement, Marco



On 15 mar, 15:17, "pierre-h.be...@laposte.net" <pierre-
h.be...@laposte.net> wrote:
> Bonjour,
> Je n'ai pas réussi non plus à piloter un bit GPIO avec un scipt CGI. Je soupçonne un problème de configuration de lihgttpd que je n'arrive pas à résoudre.
> J'ai envoyé le mail suivant à acme-systems:
> -----------------------------------
> Destinataire:  i...@acmesystems.it
> Une messagerie gratuite, garantie à vie et des services en plus, ça vous tente ?
> Je crée ma boîte mailwww.laposte.net

SebFox

unread,
Mar 18, 2011, 6:08:59 AM3/18/11
to groupe de discussion autour de Netus G20 et FOX Board G20
Salut Marco,

Merci beaucoup pour ton analyse. Ca devrait aider beaucoup de
personnes sur ce forum.

SebFox
Reply all
Reply to author
Forward
0 new messages