Index: /tt-tools/ChangeLog
===================================================================
--- /tt-tools/ChangeLog	(revision 6)
+++ /tt-tools/ChangeLog	(revision 6)
@@ -0,0 +1,72 @@
+2008-03-05  Guillaume Bougard  <gbougard@pkg.fr> - tt-tools - 0.1
+
+	* bin/maj-tt-tools.sh: Script de mise à jour de l'environnement sur le TwinTact
+
+2008-03-04  Guillaume Bougard  <gbougard@pkg.fr>
+
+	* release/tt-tools-0.1.tar.gz: tt-tools v0.1
+	  Outils pour la recompilation de busybox & dropbear
+	  Outils pour l'intégration au PC hôte
+	* release/tt-tools-0.1-on-tt.tar.gz: tt-tools v0.1 pour le TwinTact
+	  Dropbear & Busybox pour le TwinTact
+	* config/dropbear/authorized_keys.majtmp: Exemple de fichier de clés publiques
+	  pour lesquelles on autorise l'accés par authentification par clé
+	* config/dropbear/motd.majtmp: Exemple de fichier motd pour dropbear
+	* config/dropbear/shell.majtmp: Base de script shell devant être lancé
+	  automatiquement sur le TwinTact par le service dropbear. Ce script est
+	  installé par maj-tt-tools.sh
+	* udev/twintact.rules: Règles udev à installer pour une reconnaissance
+	  automatique du TwinTact lors de la connection USB
+	* bin/twintact-udev: Script regroupant les actions possibles lors de la connection
+	  du TwinTact. Notamment il configure automatiquement l'interface usb0 pour
+	  accéder au TwinTact depuis le PC hôte. Le script ajoute aussi une ligne
+	  temporaire dans le fichier /etc/hosts pour résoudre le nom dns 'twintact'
+	* bin/synchro_net.sh: Script lancé pour la synchro à la connection du TwinTact
+	  Ce script permet d'exécuter des tâches avancées sur le TT comme une mise à l'heure
+	  ou encore reconfigurer le routage sur le TT pour utiliser le PC comme une
+	  passerelle
+	* bin/busybox: busybox v1.9.1 compilé pour le TwinTact
+	* bin/dropbearmulti: dropbear 0.50 compilé pour le TwinTact
+	  Remarque, le port par défaut est 2222
+
+2008-02-27  Guillaume Bougard  <gbougard@pkg.fr> - tt-tools
+
+	* versions.sh: Configuration des versions utilisées
+	* telecharge.sh: Script pour automatiser le téléchargement des packages
+	* environnement-de-cross-compilation.sh: Permet la mise à jour de
+	  l'environnement du shell pour préparer une cross-compilation
+	* dossiers-de-cross-compilation.sh: Script pour préparer les dossiers de
+	  cross-compilation
+	* creer-patchs.sh: Script automatisant la création des patchs
+	* compile-dropbear.sh: Script automatisant la cross-compilation de dropbear
+	  La compilation est paramétrée pour définir le port par défaut à 2222  
+	* compile-busybox.sh: Script automatisant la cross-compilation de busybox
+	* patchs/busybox-1.9.1.clean.sh: Script de nettoyage de l'environnement
+	  de cross-compilation de busybox afin de pouvoir créer un patch
+	* patchs/busybox-1.9.1.config: Configuration de busybox pour compiler une
+	  version plus riches en applet que les versions disponibles sur le TwinTact
+	* patchs/dropbear-0.50.clean.sh: Script de nettoyage de l'environnement
+	  de cross-compilation de dropbear afin de pouvoir créer un patch
+	* patchs/dropbear-0.50.patch: Patch permettant de compiler
+	  dropbear pour être utilisé sur un TwinTact:
+	  - les configurations de dropbear sont à mettre dans
+	    /usr/share/config/dropbear
+	  - utilisation d'un define TWINTACT pour activer des particularités liées
+	    au TwinTact:
+	     - forcer l'utilisation du fichier des clés autorisées:
+	       /usr/share/config/dropbear/authorized_keys
+	     - forcer l'exécution d'un script shell donné car le shell root dans /etc/passwd est faux
+	       /usr/share/config/dropbear/shell
+	     - forcer le répertoire HOME pour pouvoir configurer son environnement
+	       /usr/share
+	     - le fichier MOTD est forcé à /usr/share/config/dropbear/motd
+	     - le chemin vers sftp-server est forcé à /usr/share/dropbear/sftp-server
+	       mais nous n'en disposons pas encore
+	     - le chemin de dbclient est forcé à /usr/share/dropbear/dbclient
+	     - le mot de passe n'est pas testé pour savoir s'il est vide car sur le
+	       TwinTact, il n'y a que l'utilisateur root et son mot de passe est vide
+	     - le comportement de l'option -s est inversée: il faut l'utiliser pour
+	       activer l'authentification par mot de passe, ce qui revient au même
+	       comportement non sécurisé de telnetd car le mot de passe root est vide
+	       sinon seule l'authentification par clé ssh est utilisée
+	* generer-archive.sh: Script pour générer les archives tt-tools
Index: /tt-tools/LisezMoi.txt
===================================================================
--- /tt-tools/LisezMoi.txt	(revision 6)
+++ /tt-tools/LisezMoi.txt	(revision 6)
@@ -0,0 +1,71 @@
+
+tt-tools, des outils pour le TwinTact
+=====================================
+
+Intro:
+Ce package regroupe le nécessaire pour compiler des outils OpenSource pour le
+TwinTact.
+
+Public concerné:
+A priori des développeurs ou hackers désirant utiliser des fonctions standards
+d'un système linux sur leur Twintact
+Si vous ne savez pas ce qu'est un shell et comment l'utilisez cet outils n'est
+pas pour vous, mais rien ne vous empêche de demander des outils qui vous
+semblerait utile pour votre TwinTact, pour ça commencez par faire un tour sur
+http://www.opentwin.org, ensuite pour nous contacter, faite le par la liste de
+diffusion ou encore sur IRC (voir le site)
+
+Pré-requis:
+un environnement unix... sous windows, l'environnement cygwin pourrait faire
+l'affaire, mais je ne l'ai pas testé et surtout il faudrait peut-être recompiler
+le toolchain...
+Remarque: ce package a été développé et testé sur une distribution Fedora 8
+
+Licence: voir les licences des packages utilisés
+
+Installation:
+ 1. Créer un dossier quelconque, y mettre l'archive tt-tools-X.X.tar.gz 
+    et y ouvrir un shell
+ 2. Décompressez l'archive depuis ce dossier avec:
+    $ tar xzf tt-tools-X.X.tar.gz
+    où X.X est le numéro de la version du package de tt-tools
+
+Cross-compilation:
+ 1. Commencez par faire la procédure d'installation
+ 2. Lancez le script 'telecharge.sh' avec
+    $ ./telecharge.sh
+    pour télécharger directement le package à utiliser, notamment busybox,
+    dropbear & le toolchain. Le script vérifie aussi l'empreinte SHA1 des
+    package
+    Remarque: vous pouvez télécharger manuellement les packages et les mettre
+    dans un sous-dossier archives
+ 3. Lancez le script 'dossiers-de-cross-compilation.sh' pour préparer
+    l'environnement de cross-compilation à partir des archives disponibles:
+    $ ./dossiers-de-cross-compilation.sh
+ 4. Enfin, exécutez 'compile-YYYYYYY.sh' où YYYYYYY correspond à l'outil que
+    vous voulez recompiler
+
+Installation sur le TwinTact:
+ 1. Utiliser le package tt-tools-X.Y-on-tt.tar.gz ou le générer avec le
+    script generer-archive.sh
+ 2. Télécharger l'archive sur le TwinTact dans le dossier /usr/share
+ 3. Décompresser l'archive depuis ce dossier
+ 4. Exécuter le script /usr/share/bin/maj-tt-tools.sh:
+    * busybox et dropbear sont installés
+    * un clé privée pour le service dropbear est éventuellement générée
+
+Contribuer:
+ 1. Vous pouvez modifier ensuite les sources dans les dossiers utilisés
+ 2. Recompilez en utilisant les scripts du 4 ci-dessus ou en encore faites un:
+    $ source environnement-de-cross-compilation.sh
+    et lancez vous même les commandes adéquates de compilation en vous inspirant
+    éventuellement de celle disponibles dans les scripts compile-YYYYYYY.sh
+ 3. Une fois que vos modifs sont testés utilisez les scripts 'creer-patchs.sh et
+    generer-archive.sh pour nous soumettre vos modifications sur la liste de
+    diffusion par exemple
+ 4. Si vous avez besoin d'un coup de pouce essayez le canal IRC (voir le site
+    http://www.opentwin.org)
+ 5. N'oubliez pas de jeter un oeil au ChangeLog
+
+Merci d'être arriver jusqu'ici ;-)
+
Index: /tt-tools/bin/maj-tt-tools.sh
===================================================================
--- /tt-tools/bin/maj-tt-tools.sh	(revision 6)
+++ /tt-tools/bin/maj-tt-tools.sh	(revision 6)
@@ -0,0 +1,96 @@
+#! /usr/share/bin/busybox ash
+
+die () {
+	echo "Erreur: $*" >&2
+	exit 1
+}
+
+# Initialisation de commandes utilisées dans ce script
+BB='/usr/share/bin/busybox'
+LS="$BB ls"
+CUT="$BB cut"
+SED="$BB sed"
+STRIP="$SED -r -e 's/^[\\t ]+//' -e 's/[\[ ]+/ /g'"
+TR="$BB tr"
+GREP="$BB grep"
+RM="$BB rm -f"
+MV="$BB mv -f"
+CHMOD="$BB chmod"
+DROPBEARKEY="/usr/share/bin/dropbearkey -t dss"
+
+cd /usr/share/bin || die "Binaires tt-tools non disponible"
+[ -x busybox ] || die "Binaire busybox non disponible"
+[ -x dropbearmulti ] || die "Binaire dropbear non disponible"
+
+# A. Création des liens vers busybox
+echo "Mise à jour des liens pour Busybox"
+
+# Le cas des lien pour '[' & '[[' ne passe pas dans la moulinette automatique
+ln -sf busybox [
+ln -sf busybox [[
+
+# On récupère l'i-node de busybox pour simplifier le filtrage
+bbi="$($LS -i busybox | eval $STRIP | $CUT -d ' ' -f1)"
+bbloGREP="$GREP -E \"^[ ]+$bbi \""
+
+# On récupère la liste des liens existants en gardant des espaces aux extrémités
+# de la chaine pour faciliter la suppression des liens utiles en exploitant
+# les propriétés d'extractions de 'chemin' dans les variables
+bblo="$($LS -iLw0 | eval $bbloGREP | $GREP -v busybox | eval $STRIP | $CUT -d ' ' -f2)"
+bblo=" $(echo -n $bblo) "
+
+# On récupère la liste des liens à avoir
+bbll="$($BB | $GREP ',' | $GREP -v Copyright | $TR ',' ' ' | eval $STRIP)"
+
+let lmax=40 lf=lmax
+for lien in $bbll
+do
+	l=$lien
+	[ "$l" == '[' ] && l='\[' || [ "$l" == '[[' ] && l='\[\['
+	loA="${bblo% $l *}"
+	if [ "$bblo" != "$loA" ]; then
+		echo -n .
+		# Le lien existe, on le supprime de la liste locale
+		bblo="$loA ${bblo#* $l }"
+	else
+		echo -n '*'
+		# On crée le lien nécessaire
+		ln -sf busybox $lien
+	fi
+	let lf=--lf?lf:lmax ; [ "$lf" -eq "$lmax" ] && echo
+done
+echo
+
+# Enfin, on supprime les liens qui ne sont plus à utiliser s'il en existe
+if [ -n "$(echo -n $bblo)" ]; then
+	echo "Supression des liens inutiles: $(echo $bblo)"
+	$RM -f $bblo
+fi
+
+echo "Installation de busybox terminée"
+echo
+
+# B. On installe dropbear si nécessaire
+# B.1. On installe les liens
+for lien in dropbear dbclient dropbearkey scp
+do
+	ln -sf dropbearmulti $lien
+done
+
+# B.2. On contrôle s'il faut installer la configuration par défaut
+cd /usr/share/config/dropbear || die "Configuration de dropbear non disponible"
+for conf in authorized_keys motd shell
+do
+	# On supprime si la conf est déjà installée, sinon on l'installe
+	[ -e "$conf" ] && $RM "$conf.majtmp" || $MV "$conf.majtmp" "$conf"
+done
+
+# B.3. On crée une clé privée si elle n'existe pas
+[ -e dropbear_dss_host_key ] || $DROPBEARKEY dropbear_dss_host_key
+
+# B.4. On mets à jour les droits
+$CHMOD 600 authorized_keys dropbear_dss_host_key
+$CHMOD 755 shell
+
+echo "Installation de dropbear terminée"
+echo
Index: /tt-tools/bin/synchro_net.sh
===================================================================
--- /tt-tools/bin/synchro_net.sh	(revision 6)
+++ /tt-tools/bin/synchro_net.sh	(revision 6)
@@ -0,0 +1,25 @@
+#! /bin/sh
+
+SSH="ssh -p ${TWINTACT_PORT} -i ${TWINTACT_SHARE}/id_dsa root@twintact"
+
+# Mettre à jour l'heure sur le TwinTact si trop différente de l'heure de l'hôte
+# Par exemple après un long arrêt du TwinTact
+TTTIME=$($SSH date +%s)
+MYTIME=$(date +%s)
+let DIFFTIME=MYTIME-TTTIME
+logger -i -p kern.debug -t TwinTact "Horloge TwinTact DIFFTIME=${DIFFTIME}"
+if [ "${DIFFTIME/-}" -gt 10000 ]; then
+	$SSH date -s `date +%m%d%H%M%Y.%S`
+	logger -i -p kern.info -t TwinTact "Horloge TwinTact synchronisée"
+fi
+
+# Ajout d'une route par défaut au réseau du TT pour utiliser le PC comme passerelle
+# Sortir aussi l'état de la table de routage en cas de débogage
+echo "route add -net 0.0.0.0 gw ${TWINTACT_BIND} ; route -n " | $SSH ash -s
+logger -i -p kern.info -t TwinTact "Routage sur TwinTact à jour"
+
+# Eventuellement utiliser un scrip perso si ça peut être utile
+# Par exemple peut être utilisé pour activer un syslog renvoyant le log système sur
+# la machine cette machine
+[ -x "${TWINTACT_SHARE}/synchro_net_perso.sh" ] && \
+	. "${TWINTACT_SHARE}/synchro_net_perso.sh"
Index: /tt-tools/bin/synchro_net_perso.sh
===================================================================
--- /tt-tools/bin/synchro_net_perso.sh	(revision 6)
+++ /tt-tools/bin/synchro_net_perso.sh	(revision 6)
@@ -0,0 +1,10 @@
+#! /bin/sh
+
+SSH="ssh -p ${TWINTACT_PORT} -i ${TWINTACT_SHARE}/id_dsa root@twintact"
+
+echo "
+	pkill syslogd
+	syslogd -R 192.168.0.5
+	" | $SSH ash -s
+
+logger -i -p kern.info -t TwinTact "Syslog TwinTact relancé"
Index: /tt-tools/bin/twintact-udev
===================================================================
--- /tt-tools/bin/twintact-udev	(revision 6)
+++ /tt-tools/bin/twintact-udev	(revision 6)
@@ -0,0 +1,110 @@
+#! /bin/sh
+
+me=`basename $0`
+
+export TWINTACT_ADDRESS="169.254.0.2"
+export TWINTACT_BIND="169.254.0.1"
+export TWINTACT_PORT="2222"
+export TWINTACT_SHARE="/usr/local/share/twintact"
+
+OMAPTTPATH="/usr/local/libexec/omap-tt"
+OMAPTTBIN="omap-tt"
+OMAPTT="$OMAPTTPATH/$OMAPTTBIN"
+
+LOG='/dev/null'
+DEBUGFILE="twintact.log"
+
+if [ -n "${DEBUG_TT_UDEV}" ]; then
+	LOG="/tmp/$DEBUGFILE"
+	if [ "${DEBUG_TT_UDEV}" == "trace" ]; then
+		LOG="$LOG.$$"
+	else
+		touch -d "10 seconds ago" "$LOG.tmp"
+		[ "$LOG.tmp" -nt "$LOG" ] && rm -f "$LOG"
+		rm -f "$LOG.tmp"
+	fi
+	(
+		echo "-`date`---------------------------------"$$
+		echo env
+		env
+		echo "-`date`---------------------------------"$$
+		echo set
+		set
+		echo "-`date`---------------------------------"$$
+	) >>$LOG
+fi
+
+MODE="$1"
+case "${ACTION}_${MODE}" in
+	add_omap)
+		lockme="/var/run/$me.lck"
+		
+		logger -i -p kern.debug -t TwinTact "Lock sur le TwinTact"
+		# On ne désire pas être exécuté plusieurs fois d'un coup
+		if lockfile -r 0 -s 1 -l 20 "$lockme" ; then
+			if [ -x "$OMAPTT" ]; then
+				logger -i -p kern.info -t TwinTact "Connection TT OMAP"
+				cd "$OMAPTTPATH"
+				export PATH="$OMAPTTPATH:$PATH"
+				$OMAPTTBIN hook.bin >>$LOG 2>&1
+				logger -i -p kern.info -t TwinTact "Transfert avec le TwinTact terminé (ret=$?)"
+			else
+				logger -i -p kern.info -t TwinTact "Connection TT OMAP disponible mais TT OMAP n'est pas installé"
+			fi
+		fi
+		;;
+		
+	remove_omap)
+		logger -i -p kern.info -t TwinTact "TT OMAP déconnecté" ;;
+	
+	add_synchro_net)
+		if [ "$PHYSDEVDRIVER" == "zaurus" ]; then
+			(
+			# Attendre que NetworkManager fasse sa sauce s'il est chargé
+			pgrep NetworkManager >/dev/null 2>&1 && sleep 1
+			
+			# Mettre à jour le fichier host pour désigner le twintact
+			if grep -Eq "^${TWINTACT_ADDRESS}.*twintact" /etc/hosts ; then
+				grep -Ev "^${TWINTACT_ADDRESS}.*twintact" /etc/hosts >/etc/hosts.$me-tmp
+			else
+				cp -a /etc/hosts /etc/hosts.$me-tmp
+			fi
+			echo -e "${TWINTACT_ADDRESS}\ttwintact" >>/etc/hosts.$me-tmp
+			mv -f /etc/hosts /etc/hosts.$me-bak
+			mv -f /etc/hosts.$me-tmp /etc/hosts
+			
+			# On redirige plutôt la sortie vers /dev/null à cause de selinux
+			/sbin/ifconfig $INTERFACE $TWINTACT_BIND
+			
+			# Si la clé privée spécifiée existe l'utiliser pour ce connecter
+			# au TwinTact pour exécuter quelques commandes utiles
+			if [ -e "${TWINTACT_SHARE}/id_dsa" -a -x "${TWINTACT_SHARE}/synchro_net.sh" ]; then
+				"${TWINTACT_SHARE}/synchro_net.sh" >>$LOG 2>&1
+				[ "$?" -eq 0 ] && logger -i -p kern.info -t TwinTact "TwinTact synchro_net effectuée (ret=$?)"
+			fi
+			
+			logger -i -p kern.info -t TwinTact "TwinTact disponible à l'adresse ${TWINTACT_ADDRESS} sur $INTERFACE"
+			) &
+		else
+			logger -i -p kern.debug -t TwinTact "TwinTact, rien à ajouter pour $PHYSDEVDRIVER"
+		fi
+		;;
+		
+	remove_synchro_net)
+		if [ "$PHYSDEVDRIVER" == "zaurus" ]; then
+			/sbin/ifconfig $INTERFACE down
+			[ -s "/etc/hosts.$me-bak" ] && mv -f "/etc/hosts.$me-bak" /etc/hosts
+			logger -i -p kern.info -t TwinTact "TwinTact sur $INTERFACE déconnecté"
+		else
+			logger -i -p kern.debug -t TwinTact "TwinTact, rien à enlever pour $PHYSDEVDRIVER"
+		fi
+		;;
+
+	*)
+		command=''
+		[ -n "$*" ] && command=" avec l'action '$ACTION' pour le mode '$MODE'"
+		logger -i -p kern.notice -t TwinTact "TwinTact, rien à faire$command"
+		;;
+esac
+
+exit 0
Index: /tt-tools/compile-busybox.sh
===================================================================
--- /tt-tools/compile-busybox.sh	(revision 6)
+++ /tt-tools/compile-busybox.sh	(revision 6)
@@ -0,0 +1,9 @@
+#! /bin/bash
+
+source versions.sh
+source environnement-de-cross-compilation.sh
+
+cd $BUSYBOX_BAS
+
+# Compiler busybox
+make CROSS_COMPILE=$PLATEFORME-
Index: /tt-tools/compile-dropbear.sh
===================================================================
--- /tt-tools/compile-dropbear.sh	(revision 6)
+++ /tt-tools/compile-dropbear.sh	(revision 6)
@@ -0,0 +1,29 @@
+#! /bin/sh
+
+SSH_PORT=2222
+
+MAKE_FLAGS="-DTWINTACT"
+[ -n "${SSH_PORT}" ] && MAKE_FLAGS="${MAKE_FLAGS} -D'DROPBEAR_DEFPORT=\"${SSH_PORT}\"'"
+[ "$1" == 'trace' ] && MAKE_FLAGS="${MAKE_FLAGS} -DDEBUG_TRACE"
+
+source versions.sh
+source environnement-de-cross-compilation.sh
+
+cd ${DROPBEAR_BAS}-tt
+
+# Configurer dropbear si le Makefile n'y est pas
+if [ ! -e Makefile -o "$1" == 'trace' ]; then
+	./configure --host=$PLATEFORME \
+		--disable-shadow --disable-lastlog --disable-utmp --disable-utmpx \
+		--disable-wtmp --disable-wtmpx --disable-pam --disable-zlib \
+		--sysconfdir=/usr/share/config
+	
+	make clean
+fi
+
+# Compiler dropbear en statique et en mode multi
+make strip PROGRAMS="dropbear dbclient dropbearkey scp" MULTI=1 STATIC=1 SCPPROGRESS=0 \
+	CPPFLAGS="${MAKE_FLAGS}"
+
+# Utiliser upx pour compresser le binaire si disponible
+[ -e dropbearmulti -a "$1" != 'trace' ] && upx --version >/dev/null 2>&1 && upx dropbearmulti
Index: /tt-tools/config/dropbear/authorized_keys.majtmp
===================================================================
--- /tt-tools/config/dropbear/authorized_keys.majtmp	(revision 6)
+++ /tt-tools/config/dropbear/authorized_keys.majtmp	(revision 6)
@@ -0,0 +1,10 @@
+#
+# Exemple de clé publique à insérer: décommenter pour permettre à Tequila
+# d'accéder à votre téléphone quand il est dans le même réseau wifi où si vous
+# obtenez une adresse publique et que vous lui demandez d'accédez à votre TwinTact
+#
+# Vous trouverez votre clef publique à insérer ici dans votre fichier ~/.ssh/id_dsa.pub
+# Si ce fichier n'existe pas lancez la commande ssh-keygen -t dsa pour le créer
+# Cette méthode est la plus sûre pour accéder à votre TwinTact
+#
+#ssh-dss AAAAB3NzaC1kc3MAAACBAKAUxM3As4sFxd6P+Pn+Z1+IW2SlMEhd3/vVxO2REJSUKlBNNXki+k+Cwo7r7P0dC9cUnkWq4rpb9mD/BBJWA7HAG088VO/Nt/FygUruxTRZ4sdj6hAbHo0+sbS1v7xHQ5NS16rsAE1kwbQuOAdcAkrn5E55xQzsl59RxC4xqJH/AAAAFQCtWbeRLZTBIRyVSPDXNszH5w1W5wAAAIA+Jl0yUS3xx660AzGt/vuzYpOXbBx/R0VaBx9Btu1cLrAxKMRw74WnCGgFTh1ksR+0RuLEMq/6qxtEr70jHUfboG4W6FEKyDz15sabhkXbzMwCn/PRulgFpsuDApHMri4+mDtjxCKNFwM3kz6Am7oh/aRWHo2Tfl5PkbfkQlooDQAAAIAgz38ZeXJd9hkRVDLOOzEPCbHLPyY181XphCnxzKqaaDUFdpDEOPw4UlD0CIFZj5gdPWpTAuNF2hLAC485CEmRs8Z/TQIy73mqkp2UUa8YuZu27aZalR9NIjlQ30tUzaJk+BfThvHz0VvFiWDz4d+veulj6u4gCV7y1VnKmeye7A== tequila
Index: /tt-tools/config/dropbear/motd.majtmp
===================================================================
--- /tt-tools/config/dropbear/motd.majtmp	(revision 6)
+++ /tt-tools/config/dropbear/motd.majtmp	(revision 6)
@@ -0,0 +1,1 @@
+Bienvenue sur le TwinTact
Index: /tt-tools/config/dropbear/shell.majtmp
===================================================================
--- /tt-tools/config/dropbear/shell.majtmp	(revision 6)
+++ /tt-tools/config/dropbear/shell.majtmp	(revision 6)
@@ -0,0 +1,7 @@
+#! /bin/sh
+cd $HOME
+export SHELL=ash PATH=/usr/share/bin:$PATH
+[ "$1" == "-c" ] && shift && exec $*
+[ -e /usr/share/.lastlogin ] && echo "Last login: $(cat /usr/share/.lastlogin)"
+date >/usr/share/.lastlogin
+exec $SHELL -l
Index: /tt-tools/creer-patchs.sh
===================================================================
--- /tt-tools/creer-patchs.sh	(revision 6)
+++ /tt-tools/creer-patchs.sh	(revision 6)
@@ -0,0 +1,36 @@
+#! /bin/bash
+
+source versions.sh
+source environnement_de_cross_compilation.sh
+
+for a in $ARCHIVES
+do
+	eval bas="\${${a}_BAS}"
+	
+	if [ ! -d "$bas" ]; then
+		echo "Impossible de créer un patch si le dossier '$bas' n'existe pas"
+		exit 1
+	fi
+	
+	if [ ! -d "$bas-tt" ]; then
+		echo "Impossible de créer un patch pour $bas si le dossier '$bas-tt' n'existe pas"
+		echo "C'est ce dossier qui doit contenir la version modifiée de $bas"
+		echo
+		continue
+	fi
+	
+	if [ -e "patchs/$bas.patch" ]; then
+		echo "Sauvegarde du patch patchs/$bas.patch en patchs/$bas.patch.bak"
+		mv -vf patchs/$bas.patch patchs/$bas.patch.bak
+	fi
+	
+	if [ -e "patchs/$bas.clean.sh" ]; then
+		echo "Nettoyage de l'environnement de compilation $bas-tt"
+		cd $bas-tt
+		source "../patchs/$bas.clean.sh"
+		cd ..
+	fi
+	
+	#  --ignore-blank-lines ?
+	diff -Naurw $bas $bas-tt >patchs/$bas.patch
+done
Index: /tt-tools/dossiers-de-cross-compilation.sh
===================================================================
--- /tt-tools/dossiers-de-cross-compilation.sh	(revision 6)
+++ /tt-tools/dossiers-de-cross-compilation.sh	(revision 6)
@@ -0,0 +1,56 @@
+#! /bin/bash
+
+source versions.sh
+
+for a in $ARCHIVES
+do
+	eval tar="\${${a}_TAR}"
+	eval sha="\${${a}_SHA}"
+	eval bas="\${${a}_BAS}"
+	
+	if [ -e "archives/$tar" ]; then
+		chk="$(sha1sum archives/$tar|cut -d' ' -f1)"
+		if [ "$chk" == "$sha" ]; then
+			echo "L'archive $tar est disponible"
+		else
+			echo "L'archive $tar est présente mais semble être corrompue..."
+			echo "SHA1 du fichier local: $chk"
+			echo "Empreinte SHA1 attendue: $sha"
+			echo
+			echo "Effacez le fichier '$PWD/archives/$tar' et lancez le téléchargement"
+			exit 1
+		fi
+	fi
+	
+	# Effacer le dossier local si nécessaire
+	if [ -d "$bas" ]; then
+		echo "L'archive $tar semble être déjà décompressée"
+	else
+	
+		# Contrôle de l'option à utiliser pour tar
+		Z='z'
+		[ "${tar/tar.bz2}" == "$tar" ] || Z='j'
+	
+		echo "Décompression de archives/$tar"
+		tar x${Z}f archives/$tar
+	fi
+	
+	if [ -e "patchs/$bas.patch" ]; then
+		# Contrôler le dossier local de travail
+		[ -d "$bas-tt.bak" ] && rm -rf "$bas-tt.bak"
+		[ -d "$bas-tt" ]     && mv -vf "$bas-tt" "$bas-tt.bak"
+		
+		echo "Copie du package $bas dans $bas-tt"
+		cp -a $bas $bas-tt
+		cd $bas-tt
+		echo "Application du patch patchs/$bas.patch sur $bas-tt"
+		patch -p1 <../patchs/$bas.patch
+		cd ..
+	fi
+	
+	if [ -e "patchs/$bas.config" ]; then
+		echo "Copie de la configuration patchs/$bas.config dans $bas"
+		cp -a "patchs/$bas.config" "$bas/.config"
+	fi
+	
+done
Index: /tt-tools/environnement-de-cross-compilation.sh
===================================================================
--- /tt-tools/environnement-de-cross-compilation.sh	(revision 6)
+++ /tt-tools/environnement-de-cross-compilation.sh	(revision 6)
@@ -0,0 +1,5 @@
+#! /bin/bash
+
+export PATH=$PWD/armv4tl-hardhat-linux/bin:$PATH
+
+PLATEFORME=armv4tl-hardhat-linux
Index: /tt-tools/generer-archive.sh
===================================================================
--- /tt-tools/generer-archive.sh	(revision 6)
+++ /tt-tools/generer-archive.sh	(revision 6)
@@ -0,0 +1,35 @@
+#! /bin/sh
+
+source versions.sh
+
+archive_tools="release/tt-tools-${TT_TOOLS_VERSIONS}.tar.gz"
+archive_twint="release/tt-tools-${TT_TOOLS_VERSIONS}-on-tt.tar.gz"
+
+# Garde une copie des archives existantes
+[ -e "$archive_tools" ] && mv -vf  "$archive_tools" "$archive_tools.old"
+[ -e "$archive_twint" ] && mv -vf  "$archive_twint" "$archive_twint.old"
+
+# Récupére les derniers binaires compilés si disponibles
+for file in ${BUSYBOX_BAS}/busybox ${DROPBEAR_BAS}-tt/dropbearmulti
+do
+	[ ! -e "$file" ] && continue
+	bin="${file/.*\/}"
+	# Ne pas copier le binaire s'il n'est pas plus récent
+	[ "bin/$bin" -ot "$file" ] || continue
+	cp -vf $file bin
+done
+
+# Crée une archive pour les fichiers utiles à la cross-compilation
+tar czf "$archive_tools" compile-busybox.sh compile-dropbear.sh creer-patchs.sh \
+	dossiers-de-cross-compilation.sh generer-archive.sh versions.sh \
+	environnement-de-cross-compilation.sh telecharge.sh ChangeLog LisezMoi.txt \
+	patchs/${DROPBEAR_BAS}.patch patchs/${DROPBEAR_BAS}.clean.sh \
+	patchs/${BUSYBOX_BAS}.clean.sh patchs/${BUSYBOX_BAS}.config \
+	bin/twintact-udev udev/twintact.rules bin/synchro_net.sh \
+	&& echo "Archive $archive_tools créée"
+
+# Crée une archive pour être directement téléchargée sur le twintact
+tar czf "$archive_twint" bin/dropbearmulti bin/busybox \
+	config/dropbear/shell.majtmp config/dropbear/motd.majtmp \
+	config/dropbear/authorized_keys.majtmp bin/maj-tt-tools.sh \
+	&& echo "Archive $archive_twint créée"
Index: /tt-tools/patchs/busybox-1.9.1.clean.sh
===================================================================
--- /tt-tools/patchs/busybox-1.9.1.clean.sh	(revision 6)
+++ /tt-tools/patchs/busybox-1.9.1.clean.sh	(revision 6)
@@ -0,0 +1,6 @@
+# Script de nettoyage à intégrer avec source
+
+# On garde la config avant de nettoyer
+cp -avf .config /tmp/busybox-config
+make distclean
+mv -v /tmp/busybox-config .config
Index: /tt-tools/patchs/busybox-1.9.1.config
===================================================================
--- /tt-tools/patchs/busybox-1.9.1.config	(revision 6)
+++ /tt-tools/patchs/busybox-1.9.1.config	(revision 6)
@@ -0,0 +1,772 @@
+#
+# Automatically generated make config: don't edit
+# Busybox version: 1.9.1
+# Fri Feb 22 15:01:14 2008
+#
+CONFIG_HAVE_DOT_CONFIG=y
+
+#
+# Busybox Settings
+#
+
+#
+# General Configuration
+#
+CONFIG_NITPICK=y
+CONFIG_DESKTOP=y
+CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
+# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
+# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
+CONFIG_SHOW_USAGE=y
+CONFIG_FEATURE_VERBOSE_USAGE=y
+CONFIG_FEATURE_COMPRESS_USAGE=y
+CONFIG_FEATURE_INSTALLER=y
+# CONFIG_LOCALE_SUPPORT is not set
+CONFIG_GETOPT_LONG=y
+CONFIG_FEATURE_DEVPTS=y
+# CONFIG_FEATURE_CLEAN_UP is not set
+CONFIG_FEATURE_PIDFILE=y
+CONFIG_FEATURE_SUID=y
+# CONFIG_FEATURE_SUID_CONFIG is not set
+# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set
+# CONFIG_SELINUX is not set
+# CONFIG_FEATURE_PREFER_APPLETS is not set
+CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
+CONFIG_FEATURE_SYSLOG=y
+CONFIG_FEATURE_HAVE_RPC=y
+
+#
+# Build Options
+#
+# CONFIG_STATIC is not set
+# CONFIG_BUILD_LIBBUSYBOX is not set
+# CONFIG_FEATURE_INDIVIDUAL is not set
+# CONFIG_FEATURE_SHARED_BUSYBOX is not set
+# CONFIG_LFS is not set
+
+#
+# Debugging Options
+#
+# CONFIG_DEBUG is not set
+# CONFIG_WERROR is not set
+CONFIG_NO_DEBUG_LIB=y
+# CONFIG_DMALLOC is not set
+# CONFIG_EFENCE is not set
+CONFIG_INCLUDE_SUSv2=y
+
+#
+# Installation Options
+#
+# CONFIG_INSTALL_NO_USR is not set
+CONFIG_INSTALL_APPLET_SYMLINKS=y
+# CONFIG_INSTALL_APPLET_HARDLINKS is not set
+# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set
+# CONFIG_INSTALL_APPLET_DONT is not set
+# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set
+# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set
+# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set
+CONFIG_PREFIX="./_install"
+
+#
+# Busybox Library Tuning
+#
+CONFIG_PASSWORD_MINLEN=6
+CONFIG_MD5_SIZE_VS_SPEED=2
+CONFIG_FEATURE_FAST_TOP=y
+# CONFIG_FEATURE_ETC_NETWORKS is not set
+CONFIG_FEATURE_EDITING=y
+CONFIG_FEATURE_EDITING_MAX_LEN=1024
+# CONFIG_FEATURE_EDITING_FANCY_KEYS is not set
+CONFIG_FEATURE_EDITING_VI=y
+CONFIG_FEATURE_EDITING_HISTORY=15
+CONFIG_FEATURE_EDITING_SAVEHISTORY=y
+CONFIG_FEATURE_TAB_COMPLETION=y
+# CONFIG_FEATURE_USERNAME_COMPLETION is not set
+# CONFIG_FEATURE_EDITING_FANCY_PROMPT is not set
+CONFIG_FEATURE_COPYBUF_KB=4
+# CONFIG_MONOTONIC_SYSCALL is not set
+CONFIG_IOCTL_HEX2STR_ERROR=y
+
+#
+# Applets
+#
+
+#
+# Archival Utilities
+#
+# CONFIG_AR is not set
+# CONFIG_FEATURE_AR_LONG_FILENAMES is not set
+CONFIG_BUNZIP2=y
+CONFIG_BZIP2=y
+CONFIG_CPIO=y
+# CONFIG_DPKG is not set
+# CONFIG_DPKG_DEB is not set
+# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set
+CONFIG_GUNZIP=y
+CONFIG_FEATURE_GUNZIP_UNCOMPRESS=y
+CONFIG_GZIP=y
+# CONFIG_RPM2CPIO is not set
+# CONFIG_RPM is not set
+# CONFIG_FEATURE_RPM_BZ2 is not set
+CONFIG_TAR=y
+CONFIG_FEATURE_TAR_CREATE=y
+CONFIG_FEATURE_TAR_BZIP2=y
+CONFIG_FEATURE_TAR_LZMA=y
+CONFIG_FEATURE_TAR_FROM=y
+CONFIG_FEATURE_TAR_GZIP=y
+CONFIG_FEATURE_TAR_COMPRESS=y
+CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y
+CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY=y
+CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
+CONFIG_FEATURE_TAR_LONG_OPTIONS=y
+CONFIG_UNCOMPRESS=y
+CONFIG_UNLZMA=y
+CONFIG_FEATURE_LZMA_FAST=y
+CONFIG_UNZIP=y
+
+#
+# Common options for cpio and tar
+#
+CONFIG_FEATURE_UNARCHIVE_TAPE=y
+# CONFIG_FEATURE_DEB_TAR_GZ is not set
+# CONFIG_FEATURE_DEB_TAR_BZ2 is not set
+# CONFIG_FEATURE_DEB_TAR_LZMA is not set
+
+#
+# Coreutils
+#
+CONFIG_BASENAME=y
+# CONFIG_CAL is not set
+CONFIG_CAT=y
+# CONFIG_CATV is not set
+CONFIG_CHGRP=y
+CONFIG_CHMOD=y
+CONFIG_CHOWN=y
+CONFIG_CHROOT=y
+CONFIG_CKSUM=y
+CONFIG_COMM=y
+CONFIG_CP=y
+CONFIG_CUT=y
+CONFIG_DATE=y
+CONFIG_FEATURE_DATE_ISOFMT=y
+CONFIG_DD=y
+CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
+CONFIG_FEATURE_DD_IBS_OBS=y
+CONFIG_DF=y
+CONFIG_FEATURE_DF_INODE=y
+CONFIG_DIRNAME=y
+CONFIG_DOS2UNIX=y
+CONFIG_UNIX2DOS=y
+CONFIG_DU=y
+CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y
+CONFIG_ECHO=y
+CONFIG_FEATURE_FANCY_ECHO=y
+CONFIG_ENV=y
+CONFIG_FEATURE_ENV_LONG_OPTIONS=y
+CONFIG_EXPAND=y
+CONFIG_FEATURE_EXPAND_LONG_OPTIONS=y
+CONFIG_EXPR=y
+CONFIG_EXPR_MATH_SUPPORT_64=y
+CONFIG_FALSE=y
+CONFIG_FOLD=y
+CONFIG_HEAD=y
+CONFIG_FEATURE_FANCY_HEAD=y
+CONFIG_HOSTID=y
+CONFIG_ID=y
+CONFIG_INSTALL=y
+CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y
+CONFIG_LENGTH=y
+CONFIG_LN=y
+CONFIG_LOGNAME=y
+CONFIG_LS=y
+CONFIG_FEATURE_LS_FILETYPES=y
+CONFIG_FEATURE_LS_FOLLOWLINKS=y
+CONFIG_FEATURE_LS_RECURSIVE=y
+CONFIG_FEATURE_LS_SORTFILES=y
+CONFIG_FEATURE_LS_TIMESTAMPS=y
+CONFIG_FEATURE_LS_USERNAME=y
+CONFIG_FEATURE_LS_COLOR=y
+CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y
+CONFIG_MD5SUM=y
+CONFIG_MKDIR=y
+CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y
+CONFIG_MKFIFO=y
+CONFIG_MKNOD=y
+CONFIG_MV=y
+CONFIG_FEATURE_MV_LONG_OPTIONS=y
+CONFIG_NICE=y
+CONFIG_NOHUP=y
+CONFIG_OD=y
+CONFIG_PRINTENV=y
+CONFIG_PRINTF=y
+CONFIG_PWD=y
+CONFIG_READLINK=y
+CONFIG_FEATURE_READLINK_FOLLOW=y
+CONFIG_REALPATH=y
+CONFIG_RM=y
+CONFIG_RMDIR=y
+CONFIG_SEQ=y
+CONFIG_SHA1SUM=y
+CONFIG_SLEEP=y
+CONFIG_FEATURE_FANCY_SLEEP=y
+CONFIG_SORT=y
+CONFIG_FEATURE_SORT_BIG=y
+CONFIG_SPLIT=y
+CONFIG_FEATURE_SPLIT_FANCY=y
+CONFIG_STAT=y
+CONFIG_FEATURE_STAT_FORMAT=y
+CONFIG_STTY=y
+CONFIG_SUM=y
+CONFIG_SYNC=y
+CONFIG_TAIL=y
+CONFIG_FEATURE_FANCY_TAIL=y
+CONFIG_TEE=y
+CONFIG_FEATURE_TEE_USE_BLOCK_IO=y
+CONFIG_TEST=y
+CONFIG_FEATURE_TEST_64=y
+CONFIG_TOUCH=y
+CONFIG_TR=y
+CONFIG_FEATURE_TR_CLASSES=y
+CONFIG_FEATURE_TR_EQUIV=y
+CONFIG_TRUE=y
+CONFIG_TTY=y
+CONFIG_UNAME=y
+CONFIG_UNEXPAND=y
+CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS=y
+CONFIG_UNIQ=y
+CONFIG_USLEEP=y
+CONFIG_UUDECODE=y
+CONFIG_UUENCODE=y
+CONFIG_WC=y
+CONFIG_FEATURE_WC_LARGE=y
+CONFIG_WHO=y
+CONFIG_WHOAMI=y
+CONFIG_YES=y
+
+#
+# Common options for cp and mv
+#
+CONFIG_FEATURE_PRESERVE_HARDLINKS=y
+
+#
+# Common options for ls, more and telnet
+#
+CONFIG_FEATURE_AUTOWIDTH=y
+
+#
+# Common options for df, du, ls
+#
+CONFIG_FEATURE_HUMAN_READABLE=y
+
+#
+# Common options for md5sum, sha1sum
+#
+CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
+
+#
+# Console Utilities
+#
+CONFIG_CHVT=y
+CONFIG_CLEAR=y
+CONFIG_DEALLOCVT=y
+CONFIG_DUMPKMAP=y
+CONFIG_KBD_MODE=y
+CONFIG_LOADFONT=y
+CONFIG_LOADKMAP=y
+CONFIG_OPENVT=y
+CONFIG_RESET=y
+CONFIG_RESIZE=y
+CONFIG_FEATURE_RESIZE_PRINT=y
+CONFIG_SETCONSOLE=y
+CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS=y
+CONFIG_SETKEYCODES=y
+CONFIG_SETLOGCONS=y
+
+#
+# Debian Utilities
+#
+CONFIG_MKTEMP=y
+CONFIG_PIPE_PROGRESS=y
+# CONFIG_RUN_PARTS is not set
+# CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS is not set
+# CONFIG_FEATURE_RUN_PARTS_FANCY is not set
+# CONFIG_START_STOP_DAEMON is not set
+# CONFIG_FEATURE_START_STOP_DAEMON_FANCY is not set
+# CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS is not set
+CONFIG_WHICH=y
+
+#
+# Editors
+#
+CONFIG_AWK=y
+CONFIG_FEATURE_AWK_MATH=y
+CONFIG_CMP=y
+CONFIG_DIFF=y
+CONFIG_FEATURE_DIFF_BINARY=y
+CONFIG_FEATURE_DIFF_DIR=y
+CONFIG_FEATURE_DIFF_MINIMAL=y
+CONFIG_ED=y
+CONFIG_PATCH=y
+CONFIG_SED=y
+CONFIG_VI=y
+CONFIG_FEATURE_VI_MAX_LEN=4096
+# CONFIG_FEATURE_VI_8BIT is not set
+CONFIG_FEATURE_VI_COLON=y
+CONFIG_FEATURE_VI_YANKMARK=y
+CONFIG_FEATURE_VI_SEARCH=y
+CONFIG_FEATURE_VI_USE_SIGNALS=y
+CONFIG_FEATURE_VI_DOT_CMD=y
+CONFIG_FEATURE_VI_READONLY=y
+CONFIG_FEATURE_VI_SETOPTS=y
+CONFIG_FEATURE_VI_SET=y
+CONFIG_FEATURE_VI_WIN_RESIZE=y
+CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y
+CONFIG_FEATURE_ALLOW_EXEC=y
+
+#
+# Finding Utilities
+#
+CONFIG_FIND=y
+CONFIG_FEATURE_FIND_PRINT0=y
+CONFIG_FEATURE_FIND_MTIME=y
+CONFIG_FEATURE_FIND_MMIN=y
+CONFIG_FEATURE_FIND_PERM=y
+CONFIG_FEATURE_FIND_TYPE=y
+CONFIG_FEATURE_FIND_XDEV=y
+CONFIG_FEATURE_FIND_MAXDEPTH=y
+CONFIG_FEATURE_FIND_NEWER=y
+CONFIG_FEATURE_FIND_INUM=y
+CONFIG_FEATURE_FIND_EXEC=y
+CONFIG_FEATURE_FIND_USER=y
+CONFIG_FEATURE_FIND_GROUP=y
+CONFIG_FEATURE_FIND_NOT=y
+CONFIG_FEATURE_FIND_DEPTH=y
+CONFIG_FEATURE_FIND_PAREN=y
+CONFIG_FEATURE_FIND_SIZE=y
+CONFIG_FEATURE_FIND_PRUNE=y
+CONFIG_FEATURE_FIND_DELETE=y
+CONFIG_FEATURE_FIND_PATH=y
+CONFIG_FEATURE_FIND_REGEX=y
+# CONFIG_FEATURE_FIND_CONTEXT is not set
+CONFIG_GREP=y
+CONFIG_FEATURE_GREP_EGREP_ALIAS=y
+CONFIG_FEATURE_GREP_FGREP_ALIAS=y
+CONFIG_FEATURE_GREP_CONTEXT=y
+CONFIG_XARGS=y
+CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y
+CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
+CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
+CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
+
+#
+# Init Utilities
+#
+CONFIG_INIT=y
+# CONFIG_DEBUG_INIT is not set
+CONFIG_FEATURE_USE_INITTAB=y
+CONFIG_FEATURE_INIT_SCTTY=y
+# CONFIG_FEATURE_INIT_SYSLOG is not set
+CONFIG_FEATURE_EXTRA_QUIET=y
+# CONFIG_FEATURE_INIT_COREDUMPS is not set
+# CONFIG_FEATURE_INITRD is not set
+CONFIG_HALT=y
+CONFIG_MESG=y
+
+#
+# Login/Password Management Utilities
+#
+# CONFIG_FEATURE_SHADOWPASSWDS is not set
+# CONFIG_USE_BB_SHADOW is not set
+CONFIG_USE_BB_PWD_GRP=y
+CONFIG_ADDGROUP=y
+CONFIG_FEATURE_ADDUSER_TO_GROUP=y
+CONFIG_DELGROUP=y
+CONFIG_FEATURE_DEL_USER_FROM_GROUP=y
+CONFIG_ADDUSER=y
+CONFIG_DELUSER=y
+CONFIG_GETTY=y
+CONFIG_FEATURE_UTMP=y
+CONFIG_FEATURE_WTMP=y
+CONFIG_LOGIN=y
+# CONFIG_PAM is not set
+# CONFIG_LOGIN_SCRIPTS is not set
+# CONFIG_FEATURE_NOLOGIN is not set
+# CONFIG_FEATURE_SECURETTY is not set
+CONFIG_PASSWD=y
+CONFIG_FEATURE_PASSWD_WEAK_CHECK=y
+CONFIG_CRYPTPW=y
+CONFIG_CHPASSWD=y
+CONFIG_SU=y
+CONFIG_FEATURE_SU_SYSLOG=y
+CONFIG_FEATURE_SU_CHECKS_SHELLS=y
+CONFIG_SULOGIN=y
+CONFIG_VLOCK=y
+
+#
+# Linux Ext2 FS Progs
+#
+CONFIG_CHATTR=y
+CONFIG_FSCK=y
+CONFIG_LSATTR=y
+
+#
+# Linux Module Utilities
+#
+CONFIG_INSMOD=y
+CONFIG_FEATURE_INSMOD_VERSION_CHECKING=y
+CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS=y
+CONFIG_FEATURE_INSMOD_LOADINKMEM=y
+CONFIG_FEATURE_INSMOD_LOAD_MAP=y
+CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL=y
+CONFIG_RMMOD=y
+CONFIG_LSMOD=y
+# CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set
+CONFIG_MODPROBE=y
+CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y
+# CONFIG_FEATURE_MODPROBE_FANCY_ALIAS is not set
+
+#
+# Options common to multiple modutils
+#
+CONFIG_FEATURE_CHECK_TAINTED_MODULE=y
+CONFIG_FEATURE_2_4_MODULES=y
+# CONFIG_FEATURE_2_6_MODULES is not set
+CONFIG_FEATURE_QUERY_MODULE_INTERFACE=y
+
+#
+# Linux System Utilities
+#
+CONFIG_DMESG=y
+CONFIG_FEATURE_DMESG_PRETTY=y
+CONFIG_FBSET=y
+CONFIG_FEATURE_FBSET_FANCY=y
+CONFIG_FEATURE_FBSET_READMODE=y
+CONFIG_FDFLUSH=y
+CONFIG_FDFORMAT=y
+CONFIG_FDISK=y
+# CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set
+# CONFIG_FEATURE_FDISK_WRITABLE is not set
+# CONFIG_FEATURE_AIX_LABEL is not set
+# CONFIG_FEATURE_SGI_LABEL is not set
+# CONFIG_FEATURE_SUN_LABEL is not set
+# CONFIG_FEATURE_OSF_LABEL is not set
+# CONFIG_FEATURE_FDISK_ADVANCED is not set
+# CONFIG_FREERAMDISK is not set
+# CONFIG_FSCK_MINIX is not set
+# CONFIG_MKFS_MINIX is not set
+# CONFIG_FEATURE_MINIX2 is not set
+CONFIG_GETOPT=y
+CONFIG_HEXDUMP=y
+# CONFIG_HD is not set
+# CONFIG_FEATURE_HEXDUMP_REVERSE is not set
+CONFIG_HWCLOCK=y
+CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y
+# CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set
+# CONFIG_IPCRM is not set
+# CONFIG_IPCS is not set
+CONFIG_LOSETUP=y
+# CONFIG_MDEV is not set
+# CONFIG_FEATURE_MDEV_CONF is not set
+# CONFIG_FEATURE_MDEV_EXEC is not set
+# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set
+CONFIG_MKSWAP=y
+# CONFIG_FEATURE_MKSWAP_V0 is not set
+CONFIG_MORE=y
+CONFIG_FEATURE_USE_TERMIOS=y
+CONFIG_MOUNT=y
+# CONFIG_FEATURE_MOUNT_HELPERS is not set
+# CONFIG_FEATURE_MOUNT_NFS is not set
+# CONFIG_FEATURE_MOUNT_CIFS is not set
+CONFIG_FEATURE_MOUNT_FLAGS=y
+CONFIG_FEATURE_MOUNT_FSTAB=y
+CONFIG_PIVOT_ROOT=y
+# CONFIG_RDATE is not set
+CONFIG_READPROFILE=y
+# CONFIG_SETARCH is not set
+CONFIG_SWAPONOFF=y
+CONFIG_SWITCH_ROOT=y
+CONFIG_UMOUNT=y
+CONFIG_FEATURE_UMOUNT_ALL=y
+
+#
+# Common options for mount/umount
+#
+CONFIG_FEATURE_MOUNT_LOOP=y
+# CONFIG_FEATURE_MTAB_SUPPORT is not set
+
+#
+# Miscellaneous Utilities
+#
+CONFIG_ADJTIMEX=y
+CONFIG_BBCONFIG=y
+CONFIG_CHRT=y
+CONFIG_CROND=y
+# CONFIG_DEBUG_CROND_OPTION is not set
+# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
+# CONFIG_CRONTAB is not set
+CONFIG_DC=y
+# CONFIG_DEVFSD is not set
+# CONFIG_DEVFSD_MODLOAD is not set
+# CONFIG_DEVFSD_FG_NP is not set
+# CONFIG_DEVFSD_VERBOSE is not set
+# CONFIG_FEATURE_DEVFS is not set
+# CONFIG_EJECT is not set
+CONFIG_LAST=y
+CONFIG_LESS=y
+CONFIG_FEATURE_LESS_MAXLINES=999999
+CONFIG_FEATURE_LESS_BRACKETS=y
+CONFIG_FEATURE_LESS_FLAGS=y
+CONFIG_FEATURE_LESS_FLAGCS=y
+CONFIG_FEATURE_LESS_MARKS=y
+CONFIG_FEATURE_LESS_REGEXP=y
+# CONFIG_HDPARM is not set
+# CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set
+# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set
+# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set
+# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set
+# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set
+# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set
+CONFIG_MAKEDEVS=y
+# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
+CONFIG_FEATURE_MAKEDEVS_TABLE=y
+# CONFIG_MICROCOM is not set
+CONFIG_MOUNTPOINT=y
+# CONFIG_MT is not set
+# CONFIG_RAIDAUTORUN is not set
+# CONFIG_READAHEAD is not set
+# CONFIG_RUNLEVEL is not set
+# CONFIG_RX is not set
+CONFIG_STRINGS=y
+CONFIG_SETSID=y
+# CONFIG_TASKSET is not set
+# CONFIG_FEATURE_TASKSET_FANCY is not set
+CONFIG_TIME=y
+CONFIG_TTYSIZE=y
+CONFIG_WATCHDOG=y
+
+#
+# Networking Utilities
+#
+# CONFIG_FEATURE_IPV6 is not set
+# CONFIG_FEATURE_PREFER_IPV4_ADDRESS is not set
+# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
+CONFIG_ARP=y
+CONFIG_ARPING=y
+# CONFIG_DNSD is not set
+# CONFIG_ETHER_WAKE is not set
+# CONFIG_FAKEIDENTD is not set
+CONFIG_FTPGET=y
+CONFIG_FTPPUT=y
+CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y
+CONFIG_HOSTNAME=y
+CONFIG_HTTPD=y
+CONFIG_FEATURE_HTTPD_RANGES=y
+CONFIG_FEATURE_HTTPD_USE_SENDFILE=y
+CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP=y
+CONFIG_FEATURE_HTTPD_SETUID=y
+CONFIG_FEATURE_HTTPD_BASIC_AUTH=y
+CONFIG_FEATURE_HTTPD_AUTH_MD5=y
+CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES=y
+CONFIG_FEATURE_HTTPD_CGI=y
+CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR=y
+CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV=y
+CONFIG_FEATURE_HTTPD_ENCODE_URL_STR=y
+CONFIG_FEATURE_HTTPD_ERROR_PAGES=y
+# CONFIG_FEATURE_HTTPD_PROXY is not set
+CONFIG_IFCONFIG=y
+CONFIG_FEATURE_IFCONFIG_STATUS=y
+# CONFIG_FEATURE_IFCONFIG_SLIP is not set
+# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set
+# CONFIG_FEATURE_IFCONFIG_HW is not set
+CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y
+CONFIG_IFUPDOWN=y
+CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate"
+CONFIG_FEATURE_IFUPDOWN_IP=y
+CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y
+# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set
+CONFIG_FEATURE_IFUPDOWN_IPV4=y
+# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set
+CONFIG_FEATURE_IFUPDOWN_MAPPING=y
+# CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set
+CONFIG_INETD=y
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set
+# CONFIG_FEATURE_INETD_RPC is not set
+CONFIG_IP=y
+CONFIG_FEATURE_IP_ADDRESS=y
+CONFIG_FEATURE_IP_LINK=y
+CONFIG_FEATURE_IP_ROUTE=y
+CONFIG_FEATURE_IP_TUNNEL=y
+CONFIG_FEATURE_IP_RULE=y
+CONFIG_FEATURE_IP_SHORT_FORMS=y
+# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
+CONFIG_IPADDR=y
+CONFIG_IPLINK=y
+CONFIG_IPROUTE=y
+CONFIG_IPTUNNEL=y
+CONFIG_IPRULE=y
+CONFIG_IPCALC=y
+CONFIG_FEATURE_IPCALC_FANCY=y
+CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y
+CONFIG_NAMEIF=y
+# CONFIG_FEATURE_NAMEIF_EXTENDED is not set
+CONFIG_NC=y
+CONFIG_NC_SERVER=y
+CONFIG_NC_EXTRA=y
+CONFIG_NETSTAT=y
+CONFIG_FEATURE_NETSTAT_WIDE=y
+# CONFIG_NSLOOKUP is not set
+CONFIG_PING=y
+# CONFIG_PING6 is not set
+CONFIG_PSCAN=y
+CONFIG_FEATURE_FANCY_PING=y
+CONFIG_ROUTE=y
+# CONFIG_SLATTACH is not set
+CONFIG_TELNET=y
+CONFIG_FEATURE_TELNET_TTYPE=y
+CONFIG_FEATURE_TELNET_AUTOLOGIN=y
+CONFIG_TELNETD=y
+CONFIG_FEATURE_TELNETD_STANDALONE=y
+CONFIG_TFTP=y
+CONFIG_FEATURE_TFTP_GET=y
+CONFIG_FEATURE_TFTP_PUT=y
+CONFIG_FEATURE_TFTP_BLOCKSIZE=y
+# CONFIG_DEBUG_TFTP is not set
+CONFIG_TRACEROUTE=y
+# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set
+# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set
+# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
+# CONFIG_APP_UDHCPD is not set
+# CONFIG_APP_DHCPRELAY is not set
+# CONFIG_APP_DUMPLEASES is not set
+# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
+CONFIG_APP_UDHCPC=y
+CONFIG_FEATURE_UDHCPC_ARPING=y
+# CONFIG_FEATURE_UDHCP_DEBUG is not set
+# CONFIG_FEATURE_RFC3397 is not set
+CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80
+CONFIG_VCONFIG=y
+CONFIG_WGET=y
+CONFIG_FEATURE_WGET_STATUSBAR=y
+CONFIG_FEATURE_WGET_AUTHENTICATION=y
+CONFIG_FEATURE_WGET_LONG_OPTIONS=y
+# CONFIG_ZCIP is not set
+
+#
+# Process Utilities
+#
+CONFIG_FREE=y
+CONFIG_FUSER=y
+CONFIG_KILL=y
+CONFIG_KILLALL=y
+CONFIG_KILLALL5=y
+CONFIG_NMETER=y
+CONFIG_PGREP=y
+CONFIG_PIDOF=y
+CONFIG_FEATURE_PIDOF_SINGLE=y
+CONFIG_FEATURE_PIDOF_OMIT=y
+CONFIG_PKILL=y
+CONFIG_PS=y
+CONFIG_FEATURE_PS_WIDE=y
+CONFIG_RENICE=y
+CONFIG_BB_SYSCTL=y
+CONFIG_TOP=y
+CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y
+CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y
+CONFIG_FEATURE_TOP_DECIMALS=y
+CONFIG_FEATURE_TOPMEM=y
+CONFIG_UPTIME=y
+CONFIG_WATCH=y
+
+#
+# Shells
+#
+CONFIG_FEATURE_SH_IS_ASH=y
+# CONFIG_FEATURE_SH_IS_HUSH is not set
+# CONFIG_FEATURE_SH_IS_MSH is not set
+# CONFIG_FEATURE_SH_IS_NONE is not set
+CONFIG_ASH=y
+
+#
+# Ash Shell Options
+#
+CONFIG_ASH_JOB_CONTROL=y
+CONFIG_ASH_READ_NCHARS=y
+CONFIG_ASH_READ_TIMEOUT=y
+CONFIG_ASH_ALIAS=y
+CONFIG_ASH_MATH_SUPPORT=y
+CONFIG_ASH_MATH_SUPPORT_64=y
+CONFIG_ASH_GETOPTS=y
+CONFIG_ASH_BUILTIN_ECHO=y
+CONFIG_ASH_BUILTIN_TEST=y
+CONFIG_ASH_CMDCMD=y
+# CONFIG_ASH_MAIL is not set
+CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
+CONFIG_ASH_RANDOM_SUPPORT=y
+# CONFIG_ASH_EXPAND_PRMT is not set
+# CONFIG_HUSH is not set
+# CONFIG_HUSH_HELP is not set
+# CONFIG_HUSH_INTERACTIVE is not set
+# CONFIG_HUSH_JOB is not set
+# CONFIG_HUSH_TICK is not set
+# CONFIG_HUSH_IF is not set
+# CONFIG_HUSH_LOOPS is not set
+# CONFIG_LASH is not set
+# CONFIG_MSH is not set
+
+#
+# Bourne Shell Options
+#
+CONFIG_FEATURE_SH_EXTRA_QUIET=y
+# CONFIG_FEATURE_SH_STANDALONE is not set
+# CONFIG_CTTYHACK is not set
+
+#
+# System Logging Utilities
+#
+CONFIG_SYSLOGD=y
+CONFIG_FEATURE_ROTATE_LOGFILE=y
+CONFIG_FEATURE_REMOTE_LOG=y
+CONFIG_FEATURE_IPC_SYSLOG=y
+CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16
+CONFIG_LOGREAD=y
+CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y
+CONFIG_KLOGD=y
+CONFIG_LOGGER=y
+
+#
+# Runit Utilities
+#
+CONFIG_RUNSV=y
+CONFIG_RUNSVDIR=y
+CONFIG_SV=y
+CONFIG_SVLOGD=y
+CONFIG_CHPST=y
+CONFIG_SETUIDGID=y
+CONFIG_ENVUIDGID=y
+CONFIG_ENVDIR=y
+CONFIG_SOFTLIMIT=y
+# CONFIG_CHCON is not set
+# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set
+# CONFIG_GETENFORCE is not set
+# CONFIG_GETSEBOOL is not set
+# CONFIG_LOAD_POLICY is not set
+# CONFIG_MATCHPATHCON is not set
+# CONFIG_RESTORECON is not set
+# CONFIG_RUNCON is not set
+# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set
+# CONFIG_SELINUXENABLED is not set
+# CONFIG_SETENFORCE is not set
+# CONFIG_SETFILES is not set
+# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set
+# CONFIG_SETSEBOOL is not set
+# CONFIG_SESTATUS is not set
+
+#
+# ipsvd utilities
+#
+CONFIG_TCPSVD=y
+CONFIG_UDPSVD=y
Index: /tt-tools/patchs/dropbear-0.50.clean.sh
===================================================================
--- /tt-tools/patchs/dropbear-0.50.clean.sh	(revision 6)
+++ /tt-tools/patchs/dropbear-0.50.clean.sh	(revision 6)
@@ -0,0 +1,8 @@
+# Script de nettoyage à intégrer avec source
+
+[ -e Makefile ] && make distclean >/dev/null 2>&1
+
+rm -f conf*.sh config.log config.status .lineno \
+	libtomcrypt/Makefile libtommath/Makefile
+
+rmdir libtomcrypt/src/misc/mpi libtomcrypt/src/pk/dh libtomcrypt/src/prng 2>/dev/null
Index: /tt-tools/patchs/dropbear-0.50.patch
===================================================================
--- /tt-tools/patchs/dropbear-0.50.patch	(revision 6)
+++ /tt-tools/patchs/dropbear-0.50.patch	(revision 6)
@@ -0,0 +1,333 @@
+diff -Naurw dropbear-0.50/options.h dropbear-0.50-tt/options.h
+--- dropbear-0.50/options.h	2007-08-08 17:39:37.000000000 +0200
++++ dropbear-0.50-tt/options.h	2008-02-26 19:05:02.000000000 +0100
+@@ -21,10 +21,25 @@
+ 
+ /* Default hostkey paths - these can be specified on the command line */
+ #ifndef DSS_PRIV_FILENAME
+-#define DSS_PRIV_FILENAME "/etc/dropbear/dropbear_dss_host_key"
++#define DSS_PRIV_FILENAME "/usr/share/config/dropbear/dropbear_dss_host_key"
+ #endif
+ #ifndef RSA_PRIV_FILENAME
+-#define RSA_PRIV_FILENAME "/etc/dropbear/dropbear_rsa_host_key"
++#define RSA_PRIV_FILENAME "/usr/share/config/dropbear/dropbear_rsa_host_key"
++#endif
++
++#ifdef TWINTACT
++/* Add few tweak for TwinTact device */
++#ifndef AUTHORIZED_KEYS
++#define AUTHORIZED_KEYS "/usr/share/config/dropbear/authorized_keys"
++#endif
++
++#ifndef FORCED_SHELL
++#define FORCED_SHELL "/usr/share/config/dropbear/shell"
++#endif
++
++#ifndef FORCED_HOME
++#define FORCED_HOME "/usr/share"
++#endif
+ #endif
+ 
+ /* Set NON_INETD_MODE if you require daemon functionality (ie Dropbear listens
+@@ -38,7 +53,7 @@
+  * Both of these flags can be defined at once, don't compile without at least
+  * one of them. */
+ #define NON_INETD_MODE
+-#define INETD_MODE
++//#define INETD_MODE
+ 
+ /* Setting this disables the fast exptmod bignum code. It saves ~5kB, but is
+  * perhaps 20% slower for pubkey operations (it is probably worth experimenting
+@@ -51,7 +66,7 @@
+ #define DROPBEAR_SMALL_CODE
+ 
+ /* Enable X11 Forwarding - server only */
+-#define ENABLE_X11FWD
++//#define ENABLE_X11FWD
+ 
+ /* Enable TCP Fowarding */
+ /* 'Local' is "-L" style (client listening port forwarded via server)
+@@ -64,7 +79,7 @@
+ #define ENABLE_SVR_REMOTETCPFWD
+ 
+ /* Enable Authentication Agent Forwarding - server only for now */
+-#define ENABLE_AGENTFWD
++//#define ENABLE_AGENTFWD
+ 
+ /* Encryption - at least one required.
+  * RFC Draft requires 3DES and recommends AES128 for interoperability.
+@@ -73,9 +88,9 @@
+ #define DROPBEAR_AES128_CBC
+ #define DROPBEAR_3DES_CBC
+ #define DROPBEAR_AES256_CBC
+-#define DROPBEAR_BLOWFISH_CBC
+-#define DROPBEAR_TWOFISH256_CBC
+-#define DROPBEAR_TWOFISH128_CBC
++//#define DROPBEAR_BLOWFISH_CBC
++//#define DROPBEAR_TWOFISH256_CBC
++//#define DROPBEAR_TWOFISH128_CBC
+ 
+ /* Message Integrity - at least one required.
+  * RFC Draft requires sha1 and recommends sha1-96.
+@@ -112,7 +127,7 @@
+ /* #define DSS_PROTOK */
+ 
+ /* Whether to do reverse DNS lookups. */
+-#define DO_HOST_LOOKUP
++//#define DO_HOST_LOOKUP
+ 
+ /* Whether to print the message of the day (MOTD). This doesn't add much code
+  * size */
+@@ -120,7 +135,7 @@
+ 
+ /* The MOTD file path */
+ #ifndef MOTD_FILENAME
+-#define MOTD_FILENAME "/etc/motd"
++#define MOTD_FILENAME "/usr/share/config/dropbear/motd"
+ #endif
+ 
+ /* Authentication Types - at least one required.
+@@ -174,13 +189,13 @@
+  * not yet authenticated. After this limit, connections are rejected */
+ /* The first setting is per-IP, to avoid denial of service */
+ #ifndef MAX_UNAUTH_PER_IP
+-#define MAX_UNAUTH_PER_IP 5
++#define MAX_UNAUTH_PER_IP 2
+ #endif
+ 
+ /* And then a global limit to avoid chewing memory if connections 
+  * come from many IPs */
+ #ifndef MAX_UNAUTH_CLIENTS
+-#define MAX_UNAUTH_CLIENTS 30
++#define MAX_UNAUTH_CLIENTS 10
+ #endif
+ 
+ /* Maximum number of failed authentication tries (server option) */
+@@ -204,17 +219,17 @@
+  * OpenSSH), set the path below. If the path isn't defined, sftp will not
+  * be enabled */
+ #ifndef SFTPSERVER_PATH
+-#define SFTPSERVER_PATH "/usr/libexec/sftp-server"
++#define SFTPSERVER_PATH "/usr/share/bin/sftp-server"
+ #endif
+ 
+ /* This is used by the scp binary when used as a client binary. If you're
+  * not using the Dropbear client, you'll need to change it */
+-#define _PATH_SSH_PROGRAM "/usr/bin/dbclient"
++#define _PATH_SSH_PROGRAM "/usr/share/bin/dbclient"
+ 
+ /* Whether to log commands executed by a client. This only logs the 
+  * (single) command sent to the server, not what a user did in a 
+  * shell/sftp session etc. */
+-/* #define LOG_COMMANDS */
++#define LOG_COMMANDS
+ 
+ /* Window size limits. These tend to be a trade-off between memory
+    usage and network performance: */
+@@ -233,14 +248,14 @@
+ 
+ /* Ensure that data is transmitted every KEEPALIVE seconds. This can
+ be overridden at runtime with -K. 0 disables keepalives */
+-#define DEFAULT_KEEPALIVE 0
++#define DEFAULT_KEEPALIVE 30
+ 
+ /*******************************************************************
+  * You shouldn't edit below here unless you know you need to.
+  *******************************************************************/
+ 
+ #ifndef DROPBEAR_VERSION
+-#define DROPBEAR_VERSION "0.50"
++#define DROPBEAR_VERSION "0.50-TwinTact"
+ #endif
+ 
+ #define LOCAL_IDENT "SSH-2.0-dropbear_" DROPBEAR_VERSION
+diff -Naurw dropbear-0.50/svr-auth.c dropbear-0.50-tt/svr-auth.c
+--- dropbear-0.50/svr-auth.c	2007-08-08 17:39:37.000000000 +0200
++++ dropbear-0.50-tt/svr-auth.c	2008-02-26 15:34:36.000000000 +0100
+@@ -215,6 +215,11 @@
+ 			m_free(ses.authstate.printableuser);
+ 	}
+ 
++#ifdef FORCED_SHELL
++    TRACE(("Forcing shell to %s", FORCED_SHELL))
++    ses.authstate.pw->pw_shell = FORCED_SHELL ;
++#endif
++
+ 	/* check that user exists */
+ 	if (ses.authstate.pw == NULL) {
+ 		TRACE(("leave checkusername: user '%s' doesn't exist", username))
+@@ -236,6 +241,8 @@
+ 		return DROPBEAR_FAILURE;
+ 	}
+ 
++/* Skip password check on twintact */
++#ifndef TWINTACT
+ 	/* check for an empty password */
+ 	if (ses.authstate.pw->pw_passwd[0] == '\0') {
+ 		TRACE(("leave checkusername: empty pword"))
+@@ -244,6 +251,7 @@
+ 		send_msg_userauth_failure(0, 1);
+ 		return DROPBEAR_FAILURE;
+ 	}
++#endif
+ 
+ 	TRACE(("shell is %s", ses.authstate.pw->pw_shell))
+ 
+@@ -254,6 +262,11 @@
+ 		usershell = "/bin/sh";
+ 	}
+ 
++#ifdef FORCED_SHELL
++    // Skip checking the shell... just trust it
++    goto goodshell;
++#endif
++
+ 	/* check the shell is valid. If /etc/shells doesn't exist, getusershell()
+ 	 * should return some standard shells like "/bin/sh" and "/bin/csh" (this
+ 	 * is platform-specific) */
+diff -Naurw dropbear-0.50/svr-authpasswd.c dropbear-0.50-tt/svr-authpasswd.c
+--- dropbear-0.50/svr-authpasswd.c	2007-08-08 17:39:37.000000000 +0200
++++ dropbear-0.50-tt/svr-authpasswd.c	2008-02-26 15:50:08.000000000 +0100
+@@ -60,6 +60,7 @@
+ 	passwdcrypt = DEBUG_HACKCRYPT;
+ #endif
+ 
++#ifndef TWINTACT
+ 	/* check for empty password - need to do this again here
+ 	 * since the shadow password may differ to that tested
+ 	 * in auth.c */
+@@ -69,6 +70,7 @@
+ 		send_msg_userauth_failure(0, 1);
+ 		return;
+ 	}
++#endif
+ 
+ 	/* check if client wants to change password */
+ 	changepw = buf_getbool(ses.payload);
+diff -Naurw dropbear-0.50/svr-authpubkey.c dropbear-0.50-tt/svr-authpubkey.c
+--- dropbear-0.50/svr-authpubkey.c	2007-08-08 17:39:37.000000000 +0200
++++ dropbear-0.50-tt/svr-authpubkey.c	2008-02-26 16:49:39.000000000 +0100
+@@ -176,6 +176,9 @@
+ 		goto out;
+ 	}
+ 
++#ifdef AUTHORIZED_KEYS
++    filename = (char *) AUTHORIZED_KEYS ;
++#else
+ 	/* we don't need to check pw and pw_dir for validity, since
+ 	 * its been done in checkpubkeyperms. */
+ 	len = strlen(ses.authstate.pw->pw_dir);
+@@ -184,6 +187,7 @@
+ 	filename = m_malloc(len + 22);
+ 	snprintf(filename, len + 22, "%s/.ssh/authorized_keys", 
+ 				ses.authstate.pw->pw_dir);
++#endif
+ 
+ 	/* open the file */
+ 	authfile = fopen(filename, "r");
+@@ -247,7 +251,9 @@
+ 	if (line) {
+ 		buf_free(line);
+ 	}
++#ifndef AUTHORIZED_KEYS
+ 	m_free(filename);
++#endif
+ 	TRACE(("leave checkpubkey: ret=%d", ret))
+ 	return ret;
+ }
+@@ -274,6 +280,9 @@
+ 		goto out;
+ 	}
+ 
++#ifdef AUTHORIZED_KEYS
++    filename = (char *) AUTHORIZED_KEYS ;
++#else
+ 	/* allocate max required pathname storage,
+ 	 * = path + "/.ssh/authorized_keys" + '\0' = pathlen + 22 */
+ 	filename = m_malloc(len + 22);
+@@ -292,6 +301,7 @@
+ 
+ 	/* now check ~/.ssh/authorized_keys */
+ 	strncat(filename, "/authorized_keys", 16);
++#endif
+ 	if (checkfileperm(filename) != DROPBEAR_SUCCESS) {
+ 		goto out;
+ 	}
+@@ -300,7 +310,9 @@
+ 	ret = DROPBEAR_SUCCESS;
+ 	
+ out:
++#ifndef AUTHORIZED_KEYS
+ 	m_free(filename);
++#endif
+ 
+ 	TRACE(("leave checkpubkeyperms"))
+ 	return ret;
+diff -Naurw dropbear-0.50/svr-chansession.c dropbear-0.50-tt/svr-chansession.c
+--- dropbear-0.50/svr-chansession.c	2007-08-08 17:39:37.000000000 +0200
++++ dropbear-0.50-tt/svr-chansession.c	2008-02-26 17:00:02.000000000 +0100
+@@ -929,17 +929,25 @@
+ 		}
+ 	}
+ 
++#ifdef FORCED_SHELL
++    usershell = FORCED_SHELL ;
++#else
+ 	/* an empty shell should be interpreted as "/bin/sh" */
+ 	if (ses.authstate.pw->pw_shell[0] == '\0') {
+ 		usershell = "/bin/sh";
+ 	} else {
+ 		usershell = ses.authstate.pw->pw_shell;
+ 	}
++#endif
+ 
+ 	/* set env vars */
+ 	addnewvar("USER", ses.authstate.pw->pw_name);
+ 	addnewvar("LOGNAME", ses.authstate.pw->pw_name);
++#ifdef FORCED_HOME
++    addnewvar("HOME", FORCED_HOME );
++#else
+ 	addnewvar("HOME", ses.authstate.pw->pw_dir);
++#endif
+ 	addnewvar("SHELL", usershell);
+ 	if (chansess->term != NULL) {
+ 		addnewvar("TERM", chansess->term);
+diff -Naurw dropbear-0.50/svr-runopts.c dropbear-0.50-tt/svr-runopts.c
+--- dropbear-0.50/svr-runopts.c	2007-08-08 17:39:37.000000000 +0200
++++ dropbear-0.50-tt/svr-runopts.c	2008-02-26 19:08:27.000000000 +0100
+@@ -61,7 +61,11 @@
+ #endif
+ 					"-w		Disallow root logins\n"
+ #if defined(ENABLE_SVR_PASSWORD_AUTH) || defined(ENABLE_SVR_PAM_AUTH)
++#ifdef TWINTACT
++					"-s		Enable password logins\n"
++#else
+ 					"-s		Disable password logins\n"
++#endif
+ 					"-g		Disable password logins for root\n"
+ #endif
+ #ifdef ENABLE_SVR_LOCALTCPFWD
+@@ -111,7 +115,11 @@
+ 	svr_opts.banner = NULL;
+ 	svr_opts.forkbg = 1;
+ 	svr_opts.norootlogin = 0;
++#ifdef TWINTACT
++	svr_opts.noauthpass = 1;
++#else
+ 	svr_opts.noauthpass = 0;
++#endif
+ 	svr_opts.norootpass = 0;
+ 	svr_opts.inetdmode = 0;
+ 	svr_opts.portcount = 0;
+@@ -220,7 +228,11 @@
+ 					break;
+ #if defined(ENABLE_SVR_PASSWORD_AUTH) || defined(ENABLE_SVR_PAM_AUTH)
+ 				case 's':
++#ifdef TWINTACT
++					svr_opts.noauthpass = 0;
++#else
+ 					svr_opts.noauthpass = 1;
++#endif
+ 					break;
+ 				case 'g':
+ 					svr_opts.norootpass = 1;
Index: /tt-tools/telecharge.sh
===================================================================
--- /tt-tools/telecharge.sh	(revision 6)
+++ /tt-tools/telecharge.sh	(revision 6)
@@ -0,0 +1,39 @@
+#! /bin/bash
+
+source versions.sh
+
+[ -d archives ] || mkdir archives
+cd archives
+
+for a in $ARCHIVES
+do
+	eval tar="\${${a}_TAR}"
+	eval url="\${${a}_URL}"
+	eval sha="\${${a}_SHA}"
+	
+	if [ -e "$tar" ]; then
+		chk="$(sha1sum $tar|cut -d' ' -f1)"
+		if [ "$chk" == "$sha" ]; then
+			echo "L'archive $tar est déjà présente"
+			continue
+		else
+			echo "L'archive $tar est déjà présente mais semble être corrompue..."
+			echo "SHA1 du fichier local: $chk"
+			echo "Empreinte SHA1 attendue: $sha"
+			echo
+			echo "Effacez le fichier '$PWD/$tar' et recommencez le téléchargement"
+			exit 1
+		fi
+	fi
+	
+	# Télécharger l'archive
+	wget -nd "${url}/${tar}"
+	
+	chk="$(sha1sum $tar|cut -d' ' -f1)"
+	if [ "$chk" == "$sha" ]; then
+		echo "L'empreinte SHA1 de l'archive téléchargée est correcte"
+	else
+		echo "ATTENTION ! L'archive '$PWD/$tar' semble corrompue"
+		exit 2
+	fi
+done
Index: /tt-tools/udev/twintact.rules
===================================================================
--- /tt-tools/udev/twintact.rules	(revision 6)
+++ /tt-tools/udev/twintact.rules	(revision 6)
@@ -0,0 +1,13 @@
+# Fichier à installer dans un dossier de configuration de udev
+# Par exemple, sur Fedora 8, il peut s'installer dans le dossier /etc/udev/rules.d
+# en tant que fichier "99-twintact.rules"
+
+# Twintact system boot omap interface
+BUS=="usb", SYSFS{idVendor}=="0451", SYSFS{idProduct}=="3f01", ENV{DEBUG_TT_UDEV}="", RUN+="/usr/local/sbin/twintact-udev omap"
+#BUS=="usb", SYSFS{idVendor}=="0451", SYSFS{idProduct}=="3f01", ENV{DEBUG_TT_UDEV}="oui", RUN+="/usr/local/sbin/twintact-udev omap"
+
+# Twintact, mode synchro_net <=> Synchro PC -> Périphérique mobile
+KERNEL=="usb0", SUBSYSTEM=="net", ENV{DEBUG_TT_UDEV}="", RUN+="/usr/local/sbin/twintact-udev synchro_net"
+#KERNEL=="usb0", SUBSYSTEM=="net", ENV{DEBUG_TT_UDEV}="trace", RUN+="/usr/local/sbin/twintact-udev synchro_net"
+
+#BUS=="usb", ENV{DEBUG_TT_UDEV}="trace", RUN+="/usr/local/sbin/twintact-udev trace"
Index: /tt-tools/versions.sh
===================================================================
--- /tt-tools/versions.sh	(revision 6)
+++ /tt-tools/versions.sh	(revision 6)
@@ -0,0 +1,31 @@
+#! /bin/bash
+
+# Un numéro de version pour générer une archive
+TT_TOOLS_VERSIONS='0.1'
+
+# Liste des archives disponibles
+ARCHIVES='BUSYBOX DROPBEAR TOOLCHAIN'
+
+# Paramètres pour busybox
+BUSYBOX_REV='1.9.1'
+BUSYBOX_URL='http://busybox.net/downloads'
+BUSYBOX_SHA='f978834055e9cc65395e23672de1a57904a61791'
+
+# Paramètres pour dropbear
+DROPBEAR_REV='0.50'
+DROPBEAR_URL='http://matt.ucc.asn.au/dropbear/releases'
+DROPBEAR_SHA='97f31bbe1d36f156ec895de97ecc1d400da5f0e5'
+
+TOOLCHAIN_REV='armv4tl-hardhat-linux'
+TOOLCHAIN_URL='http://opentwin.org/files'
+TOOLCHAIN_SHA='4de3aed2835c0b80e291c3f59550d495efd6b8ed'
+
+# Variables statiques
+BUSYBOX_BAS="busybox-${BUSYBOX_REV}"
+BUSYBOX_TAR="${BUSYBOX_BAS}.tar.bz2"
+
+DROPBEAR_BAS="dropbear-${DROPBEAR_REV}"
+DROPBEAR_TAR="${DROPBEAR_BAS}.tar.bz2"
+
+TOOLCHAIN_BAS="${TOOLCHAIN_REV}"
+TOOLCHAIN_TAR="${TOOLCHAIN_BAS}.tar.bz2"
