Mise en place d'un serveur web

Serveur HTTP

Installer le serveur

Le serveur web busybox httpd est fourni avec PetaLinux.

  1. Configurez votre image Linux de la manière suivante :
petalinux-config -c rootfs
  1. Sélectionnez Filesystem Packagesbasebusybox et cochez la case busybox-httpd.
  2. Sélectionnez Filesystem Packagesbase/shellbash et cochez la case bash.
  3. Sélectionnez Filesystem Packagesconsole/networkdropbear et cochez la case dropbear.

Le serveur HTTP servira les fichiers présents dans le dossier /srv/www. Le sous-dossier /srv/www/cgi-bin contiendra des scripts que le serveur HTTP exécutera à chaque fois qu’on cherchera à y accéder.

Créer un script exécuté par le serveur web

  1. Créez une application PetaLinux précompilée
petalinux-create --type apps --template install --name zybo-acl-app --enable
  1. Modifiez le fichier components/apps/zybo-acl-app/Makefile afin que la cible install soit :
install:
    $(TARGETINST) -d -p 755 data/zybo-acl-app /srv/www/cgi-bin/zybo-acl-app
  1. Modifiez le fichier components/apps/zybo-acl-app/data/zybo-acl-app :
#!/bin/bash
echo 'Content-type: text/html'
echo
echo '<h1>Hello</h1>'
  1. Reconstruisez, empaquetez et redémarrez votre image Linux :
petalinux-build
petalinux-package --force --prebuilt --fpga ../zybo-first-project-vivado/zybo-first-project-vivado.runs/impl_1/zybo_first_design_wrapper.bit
petalinux-boot --jtag --prebuilt 3

Si votre carte a l’adresse IP 192.168.5.12, alors l’accès à l’adresse http://192.168.5.12/cgi-bin/zybo-acl-app retournera une page avec un titre de premier niveau « Hello ».

Interroger le capteur à travers le web

En vous inspirant du squelette ci-desous, modifiez le script zybo-acl-app afin d’afficher l’état de l’accéléromètre dans une page web.

#!/bin/bash

# Vérifier si le pilote du contrôleur SPI a déjà été chargé.
if [ ! -e /sys/class/eseo/zybo-spi-device ]; then
    # Charger le pilote du contrôleur SPI.
    modprobe zybo-spi-module

    # Configurer le contrôleur SPI.
    # À compléter...

    # Initialiser l'accéléromètre.
    # À compléter...
fi

# Lire la valeur courante de l'accélération en X, Y et Z
# À compléter...

# Générer la page web avec rechargement automatique toutes les 2 secondes.
echo 'Content-type: text/html'
echo
echo '<meta http-equiv="refresh" content="2">'
echo '<h1>Acceleration</h1>'
echo "<p>$X $Y $Z</p>"

Pour vous aider à configurer l’accéléromètre et à lire l’accélération, une documentation minimale de l’accéléromètre ADXL345 est disponible.