dimanche 14 octobre 2012

Karotz Bootstrap JQuery CGI Template

Objectif : installer un template Bootstrap+JQuery+CGI pour le serveur web du Karotz désormais intégré dans la mise à jour de la BusyBox et accéder ainsi à tout son système au travers des scripts cgi en Python et Shell. Ce template sera une excellente base pour le développement des web apps autour du Karotz.

+ une base de simulateur de télécommande pour déclencher les applications hébergés directement depuis son navigateur (reste plusieurs points à approfondir : passage des paramètres des appz, arrêt de l'appz lancée, etc...)

Une fois connecté en telnet sur le Karotz
Installation sous /usr/www - le répertoire racine par défaut du serveur httpd

# cd /usr/www
wget http://karotz.wizz.cc/wizz_www.tar
# tar xvf wizz_www.tar

Vérification et ajustement des droits si besoin
# chmod -R og-w *
# chmod -R +x cgi-bin

Se connecter à l'aide son navigateur sur l'ip de son Karotz

On peut alors lui envoyer des commandes en direct, lancer des musiques, des radios (avec la commande mplayer), allumer ou éteindre la lumière, etc... A chacun d'inventer les scripts dont il a besoin. Enjoy !


Karotz web Server Bootstrap+JQuery+CGI Template
Karotz web Server Bootstrap+JQuery+CGI Template

Google+

samedi 6 octobre 2012

Karotz - BusyBox update : Servers Web & Ftp


Objectif : Installer une version pré-compilée pour ARM de la dernière version stable BusyBox pour bénéficier de commandes supplémentaires et notamment des serveurs ftpd et httpd intégrés. On se passera ainsi des serveurs python ftpd et httpd abordés précédemment et beaucoup moins performants.

Note : La dernière version de Busybox v 1.20.0 est désormais intégrée dans la nouvelle mise à jour du RootFS release r2.

On procède à l'installation du binaire dans /usr/bin dont la partition est modifiable à volonté.

Une fois connecté en telnet sur le Karotz
Installation sur /usr/bin ou sbin au choix
# cd /usr/bin
# mkdir busybox.120

# cd busy*
# wget http://www.busybox.net/downloads/binaries/latest/busybox-armv4tl
# mv busybox-armv4tl busybox
# chmod +x busybox

Vérification de la version
# ./busybox | head

On peut installer quelques liens symboliques si nécessaire
# cd /usr/bin
# ln -s /usr/bin/busybox.120/busybox ftpd
# ln -s /usr/bin/busybox.120/busybox httpd

# httpd --help
# ftpd --help

On démarrera ensuite les serveurs Web httpd et Ftp ftpd avec inetd.

Exemple de script wizz_start.sh à appeler à la fin de yaffs_start.sh

#!/bin/bash
#
# Start ftpd & httpd daemon
WIZZ_INETD_MORE=/tmp/wizz_inetd_more.conf
echo "21 stream tcp nowait root /usr/bin/ftpd ftpd -w /usr" > $WIZZ_INETD_MORE
echo "80 stream tcp nowait root /usr/bin/httpd httpd -i -c /usr/httpd.conf -h /usr/www" >> $WIZZ_INETD_MORE
/sbin/inetd $WIZZ_INETD_MORE

Le répertoire HOME du serveur Web est ici /usr/www.

Les scripts cgi/system exécutables - #!bin/sh ou #!/usr/bin/python - (chmod +x ...) doivent être posés dans /usr/www/cgi-bin

Ajouter un fichier de conf pour le serveur Web httpd dans /usr/httpd.conf

# define the server root. It will override -h
# H:/usr/www
# Allow address from 196.168.0.0
A:192.168.
A:127.0.0.1
# Deny from other IP connections
D:*
# 404 (not found) error page
# E404:/usr/www/404.html
# Show index.html when a directory is requested
# I:index.html

Note : Voir aussi le post sur le template Bootstrap+JQuery+CGI.

Cf docs :
 - http://www.busybox.net/downloads/BusyBox.html
 - http://git.busybox.net/busybox/tree/networking/httpd.c