Termux sous Lollipop

Termux

Termux est un terminal d’émulation Unix sur système Android.

C’est une solution de dépannage qui vous permettra certainement d’utiliser quelques commande Unix d’appoint. Son installation se fait à partir du PlayStore.

En voici la présentation et un exemple pratique.

 

Particularités de Termux

hello_framedLes répertoires standards Unix tels que /bin, /usr/, /var et /etc n’existent pas.

Termux utilise en effet des répertoires particuliers à partir de la racine stockée dans la variable d’environnement $PREFIX (c’est à dire que les binaires sont dans $PREFIX/bin, et les fichiers de configuration dans $PREFIX/etc).

Cela peut amener à des limitations dont il faut avoir connaissance dès le départ 🙂

 

Il faut aussi savoir que les touches ci-dessous sont émulées avec des combinaisons de bouton/touche clavier :

Volume Up+E → Escape key
Volume Up+W → Up arrow key
Volume Up+A → Left arrow key
Volume Up+S → Down arrow key
Volume Up+D → Right arrow key
Volume down+C → Control C

Maintenant que la présentation est faite, passons sur un cas concret d’utilisation.

Mise en pratique

Pour cet exemple, je ne vais pas être très original car je vais reprendre la compilation du raytracer DKB Trace qui a déjà été porté sur NAS Synology. Après la compilation, nous verrons comment obtenir la génération de l’image de la scène 3D, pour terminer par la conversion dans un format type PNG et la récupérer sur ordinateur.

 

Configuration

htop_framed

De manière à ce que les répertoires de stockage soient visibles par Termux il vous faudra installer le paquet suivant :

$ termux-setup-storage

Enfin vous aurez aussi besoin des outils de compilation et de conversion d’images :

$ pkg install clang
$ pkg install make
$ pkg install imagemagick

Pour les curieux, voici la liste complète des paquets additionnels disponibles :

$ pkg list-all

 

Compilation de DKB Trace

Pour compiler DKB Trace, téléchargez les sources et décompressez les :

$ wget http://digitalbox.chez.com/sources/dkb-trace-2.2.tar.gz
$ tar -xvf dkb-trace-2.2.tar.gz
$ cd dkb-trace-2.2

Le fichier configure nécessite une adaptation car comme vu précédemment le répertoire « /bin » n’existe pas sur Termux. Editez-le  :

$ vi ./configure

Remplacez « /bin/sh » par « /system/bin/sh » en début de fichier et sauvegardez votre modification.

Vous pouvez maintenant lancer la configuration :

$ ./configure

Ensuite éditez le fichier « src/unix.c » car une erreur bloque la compilation:

$ vi src/unix.c

Cela va être une coupe franche dans le code (la nature de l’erreur n’a pu être corrigée). Remplacez tout le code suivant :

int matherr (x)
   struct exception *x;
   {
   switch(x->type)
     {
     case DOMAIN:
     case OVERFLOW:
        x->retval = 1.0e17;
        break;
     case SING:
     case UNDERFLOW:
        x->retval = 0.0;
        break;
     default:
        break;
     }
   return(1);
   }

Par cette simple ligne (en attendant mieux) 🙂

int matherr (x)
   {
   return(1);
   }

Sauvegardez et lancez la compilation :

$ make

La partie « make install » sera mise de côté par souci de simplicité.

Note : sachez que si vous voulez le faire, il faudra remplacer dans le script « install-sh », la chaine de caractères « /bin/sh » par « /system/bin/sh » et il vous faudra aussi modifier le fichier « src/Makefile » de manière à utiliser « $PREFIX/ » au lieu de « /usr/local/ » (qui contient le répertoire « bin » d’installation)

 

Génération d’une scène 3D

Il suffit de lancer la commande suivante pour générer la scène avec le vase :

./src/dkb-trace +idat/skyvase.dat +w320 +h240 +ldat +oskyvase.tga +ft +a

Ce qui donne :

Screenshot_20170626-211128

Avec le résultat suivant… Le rendu prend environ 9 secondes pour cet exemple :

Screenshot_20170626-211104

Il faut maintenant convertir l’image du format targa vers PNG et copier l’image dans le répertoire partagé « pictures » :

$ convert skyvase.tga skyvase.png
$ cp skyvase.png ~/storage/pictures/

Via le gestionnaire de fichiers (ASUS), votre image est bien visible en dehors de Termux:

Screenshot_20170626-225658

Enfin si vous voulez récupérez le fichier sur ordinateur, vous avez la possibilité d’en faire le transfert via « Android File Transfer ».

Une fois le câble USB connecté entre les deux machines, deux choses à vérifier :

  • Valider la notification sur votre tablette pour accepter le transfert de fichiers :

Capture d_écran 2017-06-27 à 22.40.09

Capture d_écran 2017-06-27 à 22.39.52

  • Si votre image n’est pas visible, il faudra vider le cache de votre tablette, en la redémarrant par exemple.

 

Votre chef d’oeuvre devrait être disponible sous cette forme :

skyvase

Rien ne vous empêche maintenant de réaliser d’autres tâches avec cet émulateur Unix qui se lancera sur votre tablette ou votre téléphone Android. Bonne découverte et pratique…

 

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s