Accueil

Retour d'expérience Ubuntu Touch

Mobilité12 Dec 2015

L'article peut sembler opportuniste par rapport aux rumeurs d'abandon de Firefox OS mais il n'en est rien (je le jure votre honneur). C'est seulement que j'ai eu la chance de toucher un Nexus 4 (merci Papa) et j'en ai profité pour tester le système Ubuntu Touch pendant une semaine dans mon utilisation quotidienne. En effet, ce téléphone est un des téléphones de référence pour la société Canonical, toujours maintenu alors que leur OS, très discret, fêtera bientôt sa 3ème bougie. Depuis le lancement de Ubuntu Touch, trois téléphones ont été commercialisés : deux modèles du constructeur espagnol BQ qui semblent très appréciés par la communauté Ubuntu et un modèle assez puissant, le MX4 du constructeur chinois Meizu.

A propos Ca commence donc par l'installation du système qui est assez simple car d'une part le Nexus 4 a un booloader facile à déverrouiller et Ubuntu Touch est basé sur un Android, on utilise donc des outils Android (adb, fastreboot) pour flasher le système. Ensuite les outils Canonical interviennent, la voie simple consiste donc à s'installer une version Desktop de Ubuntu 14.04 ou supérieure sur un PC afin d'obtenir ces outils facilement. Je me suis donc basé sur la documentation officielle du Ubuntu Developer (lien obsolète : https://developer.ubuntu.com/en/start/ubuntu-for-devices/installing-ubuntu-for-devices) et sur cet article qui apporte quelques précisions pour le Nexus 4. On a le choix entre deux canaux de mise à jour système : stable ou développement. Pour me faire une idée la plus juste du système et ne pas la fausser avec des bugs d'une version en cours de développement, j'ai choisi la version stable. Ce qui est intéressant avec Ubuntu Touch, c'est que la version mobile fait partie intégrante du développement de Ubuntu, il ne s'agit d'un développement à part, déconnecté de la version Desktop. Après une installation fraîche, on a donc un téléphone en version 15.04 et on reçoit des OTA (mise à jour) régulièrement. On devrait d'ailleurs bientôt basculer en version 15.10. Canonical a une vision précise de ce qu'il veulent obtenir avec leur système et cela s'appelle Convergence. Un système mobile qui, une fois connecté à un clavier / souris en bluetooth et à un moniteur se transforme en Ubuntu Desktop capable d'exécuter les applications usuelles comme Libre Office ou Gimp.

Pour moi, Convergence est un rêve de Geek et on a du mal à imaginer le quidam moyen utiliser son téléphone comme ordinateur. Et pourtant c'est un des principaux avantages de Touch : on n'a pas un système Unix-like castré mais un système GNU/linux complet. Je me suis plusieurs fois surpris à buter sur la manière de faire certaines choses parce que l'interface graphique n'est pas encore complète sur certains point et qu'il faut raisonner ligne de commande avec les outils usuels : du shell script (SH ou BASH) et des tâches CRON. Mais je m'emballe, faisons d'abord un petit tour en images du système.

L'écran de déverrouillage et ses statistiques amusantes :

ubuntu unlock

ubuntu unlock

L'écran principal avec ses applications en rang d'oignons:

ubuntu application

ubuntu application

Les applications favorites sur la gauche en faisant glisser le bord gauche de l'écran

et les applications lancées en faisant glisser le bord droit de l'écran :

ubuntu unity

ubuntu tasks

Les paramètres système et un aperçu du magasin d'applications :

ubuntu settings

ubuntu store

A part la particularité du tirage des bords d'écran pour faire apparaître la barre latérale ou passer d'une application à l'autre mais on pige vite le coup, on est dans une interface classique, on n'est pas perdu. Les paramètres sont similaires à ce qu'on peut trouver sur d'autres systèmes, le magasin Ubuntu Store est plus conséquent que ce à quoi je m'attendais. De ce que j'ai lu sur les forums de discussion Ubuntu, l'équipe Canonical a mis le focus sur le système dans un 1er temps, les applications viendront ensuite. Voici une liste de ce qui marche et de ce qui dysfonctionne sur le Nexus 4 en 15.04 OTA 8:

  • la téléphonie fonctionne (oui c'est bien de l'écrire pour rassurer tout le monde)
  • l'envoi de SMS et de MMS fonctionne mais j'ai un doute sur la réception MMS (je crois en avoir raté un)
  • le bluetooth est présent mais je n'ai pas réussi à le faire fonctionner avec mon main-libre Jabra malgré un appairage réussi.
  • le GPS est capricieux
  • le tethering USB fonctionne. la fonction Hotspot Wi-Fi est censée être présente mais je ne l'ai pas vu dans mes paramètres.
  • l'application e-mail officielle Dekko est fonctionnelle depuis peu. Elle est agréable à utiliser.
  • les applications contact et calendrier sont présentes et bien faîtes.
  • les performances du systèmes sont acceptables mais perfectibles (on a une patience d'1 à 2 secondes à chaque lancement d'application)

Deux sujets ont exigé de mettre le nez dans la ligne de commande car ils ne sont pas (encore) configurables par l'interface graphique : les sonneries personnalisées et la synchronisation des contacts et du calendrier.

D'abord il nous faut un accès SSH sur la bête. On active le mode développeur depuis les paramètres du téléphone et on se connecte avec adb shell pour activer le service SSH Ensuite on copie la clef publique de notre PC sous GNU/Linux dans le téléphone. Ca donne en gros les étape suivantes lues sur AskUbuntu

adb shell android-gadget-service enable ssh
adb shell mkdir /home/phablet/.ssh
adb push ~/.ssh/id_rsa.pub /home/phablet/.ssh/authorized_keys
adb shell chown -R phablet.phablet /home/phablet/.ssh
adb shell chmod 700 /home/phablet/.ssh
adb shell chmod 600 /home/phablet/.ssh/authorized_keys

Partant de là, on peut se passer de adb et se connecter directement en SSH sur le téléphone avec l'utilisateur phablet. Comme par défaut sur Ubuntu, le compte root est désactivé et l'utilisateur phablet doit utiliser sudo pour obtenir les super-pouvoirs. Ces pouvoirs ne permettent pas de modifier un fichier du système qui est en dehors du répertoire /home/phablet car par sécurité les partitions sont montées en lecture seule. Donc on sera souvent amené à remonter la partition en lecture-écriture avec la commande suivante :

sudo mount /dev/loop0 / -o remount,rw

On va configurer la synchronisation de nos contacts et du calendrier vers Owncloud par les protocoles de sychronisation cardav et caldav en s'inspirant de cette discussion sur AskUbuntu. D'abord on configure syncevolution :

# les valeurs username, password et syncurl doivent être adaptées
syncevolution --keyring=no --configure --template webdav username=yax password=??? syncurl="mycloud.madyanne.fr" target-config@owncloud
syncevolution --configure --template SyncEvolution_Client sync=none syncURL=local://@owncloud username= password= peerIsClient=1 owncloud

# on configure la synchro des contacts
syncevolution --configure database=https://mycloud.madyanne.fr/remote.php/carddav/addressbooks/yax/contacts backend=carddav target-config@owncloud contacts
syncevolution --configure sync=two-way backend=contacts database="Personnel" owncloud contacts

# on configure la synchro du calendrier
syncevolution --configure database=https://mycloud.madyanne.fr/remote.php/caldav/calendars/yax/personnel backend=caldav target-config@owncloud calendar
syncevolution --configure sync=two-way backend=events database="Personnel" owncloud calendar

# on lance une 1ère synchro qui donne priorité au serveur Owncloud
syncevolution --sync slow owncloud contacts
syncevolution --sync slow owncloud calendar

Ce qui manque juste, c'est une synchronisation périodique avec Owncloud par exemple une fois par heure. D'abord j'ai naïvement ajouté deux lignes dans la CRONTAB :

syncevolution owncloud contacts
syncevolution owncloud calendar

Et bien ça ne marche pas car syncevolution utilise DBUS et qu'en lançant hors shell utilisateur, les variables d'environnement DISPLAY et DBUS_SESSION_BUS_ADDRESS ne sont pas initialisées. Il faut donc récupérer ces valeurs dans le shell script qu'on va lancer en CRON, merci Alexandre. Donc finalement c'est ce script qu'on va mettre sous CRON :

export DISPLAY=:0.0
export DBUS_SESSION_BUS_ADDRESS=$(ps -u phablet e | grep -Eo 'dbus-daemon.*address=unix:abstract=/tmp/dbus-[A-Za-z0-9]{10}' | tail -c35)
syncevolution owncloud contacts
syncevolution owncloud calendar

Amusant non ? J'ai joué pas mal avec la synchronisation des calendriers et des contacts et je peux dire que syncevolution tient bien la route. Le dernier détail indispensable pour moi, c'était de récupérer ma sonnerie habituelle ; il n'y a pas encore la possibilité de télécharger une sonnerie personnalisée. Après le chantier de la synchronisation, c'est un jeu d'enfant : il suffit de la convertir au format OGG et de la placer dans le répertoire /usr/share/sounds/ubuntu/ringtones/.

Après une semaine d'utilisation quotidienne, j'ai trouvé le système crédible et agréable à utiliser. Qu'ils rajoutent un clavier physique et ce sera le meilleur du monde (troll inside !). Ubuntu Touch s'améliore régulièrement. Les développeurs se sont imposés un rythme de 6 semaines pour livrer une OTA. L'inconnue pour moi c'est comment Canonical espère monétiser son système et combien de temps ils réussiront à le pousser sans que ce soit rentable. En tout cas techniquement, c'est un petit bijou qui fait du pied aux Unixiens, un bol d'air frais quand les systèmes alternatifs au couple Android / IOS jettent l'éponge ou déposent le bilan l'un après l'autre.

Bonob0h - 2015-12-14 13:03:12

Informations interessantes ;) Reste que tu ne parle pas composant tel gyroscope, etc Qu'en est il ? Connaitrais tu une Tablette qui fonctionne bien sur ubuntu touch ? Penses-tu qu'une Nvidia Shield Tablet K1 pourrait bien fonctionner ? Il semble qu'il y ai compatibilité ... mais à voir.

cm-t - 2015-12-14 13:13:14

la téléphonie fonctionne (oui c'est bien de l'écrire pour rassurer tout le monde)

oui, il y a même la gestion de multi appel :)

l'envoi de SMS et de MMS fonctionne mais j'ai un doute sur la réception MMS (je crois en avoir raté un)

ça marche, sauf si ton opérateur n'est pas encore référencé (c'était le cas pour free il y a quelque mois). Bon après je t'avous que je suis à 99% sur telegram..

le bluetooth est présent mais je n'ai pas réussi à le faire fonctionner avec mon main-libre Jabra malgré un appairage réussi.

J'ai essayé avec diverses enceintes ou même ma montre pebble (https://launchpad.net/upebble), "chez moi ça marche". Penses-tu pouvoir ouvrir un bug ?

le GPS est capricieux

Ouais, le fix à 10 minutes est toujours trop long, mais activer le wifi+data permet d'avoir une position fine en moins d'une minute (+activer toutes les option dans l'indicator position)

le tethering USB fonctionne. la fonction Hotspot Wi-Fi est censée être présente mais je ne l'ai pas vu dans mes paramètres.

Dans la zone de notification ou dans parametre systeme, va dans réseau, et cherche "Point d'accés"

l'application e-mail officielle Dekko est fonctionnelle depuis peu. Elle est agréable à utiliser.

Elle gère d'ailleur les multi identité, utile quand on a plein d'alias ^^

les applications contact et calendrier sont présentes et bien faîtes.

les performances du systèmes sont acceptables mais perfectibles (on a une patience d'1 à 2 secondes à chaque lancement d'application)

Tout à fait d'accord

Merci pour cet article :')

cm-t - 2015-12-14 13:17:14

@Bonob0h, je te conseil la nexus5 pour être sur du support. Après il risque d'avoir une annonce à ce sujet début 2016. Sinon, pour tout les modèles où un port (principalement communautaire) est présent sont/seront référencer ici

Yax - 2015-12-14 13:23:15

@Bonob0h C'est vrai que je n'ai pas testé le gyroscope, je n'ai installé aucune application qui en a besoin. Je vais regarder du côté des jeux du Store et je ferais un retour dans les commentaires de cet article :-)

cm-t - 2015-12-14 13:33:17

@Yax Pour chercher des applications, je te conseil http://uappexplorer.com/ (catalogue non officiel, mais branché sur l'api officielle du store, renvoi sur la page du store pour l'install, ya une webapp et une scope).

Quelques applications que je connais utilisant gyroscope etc:

Il doit y en avoir d'autres, surement ^^

Yax - 2015-12-14 13:35:18

@cm-t Je vais ouvrir un bug pour le bluetooth. Pour le GPS, Je ne savais pas que le fix du GPS était à 10 minutes, ceci explique peut-être mon problème de navigation : j'étais localisé dans la maison, j'ai programmé mon itinéraire avec OSMScout, je suis sorti, et j'ai commencé à conduire. J'étais localisé mais ma position n'a plus bougé. Le passage de Wifi à 3G avec l'appli de navigation s'est peut-être mal passé... Je vais le retester.

Merci pour ces retours de la communauté Ubuntu :-)

cm-t - 2015-12-14 14:29:26

@Yax Pour le GPS, je te conseil vivement la superbe application de Marcos Costales: uNav

Bonob0h - 2015-12-14 14:39:28

@cm-t Le besoin est une tablette qui a les capacité graphique les plus importantes ... C'est notamment pour le besoin d'utiliser avec un environnement virtuel 3D libre et décentralisé en relation avec pas mal de développements et notamment de besoins en matières éducatives. Pour info nous cherchons des participants

@Yax la porte est ouverte si tu veux t'amuser tester en incluant le giroscope ;) déjà avec une tablette

Guillaume Chocteau - 2016-05-05 19:05:06

Bonjour,

Je suis dans l'attente du Meizu Pro 5 sous Ubuntu et de quitter Android. Déjà sous Ubuntu sur mon ordinateur, je suis impatient. Tu as levé qques questionnements que je me faisais encore même si les versions ont évolué depuis ton article. C'est la synchroniser Owncloud qui est mon point de suspens car j'en ai une utilisation professionnelle et cela sera clivant. Je ne suis pas geek, pas informaticien, juste militant.

Mais j'y crois !

Merci

Guillaume - 2016-06-22 07:54:27

Bonjour,

Merci pour le tuto. Je viens de faire l'acquisition d'une tablette BQ M10. J'utilise owncloud sur un serveur mutualisé OVH. Grâce à vos indications j'ai réussi à synchroniser un agenda. Mais j'utilise plusieurs agendas sur la même instance owncloud et je me demande quels sont les paramètres à modifier pour synchroniser le deuxième agenda. J'imagine que les premières lignes ne sont plus nécessaires puisqu'on a déjà configuré l'accès au serveur. Donc :

  1. Je modifie les valeurs https://... pour les faire correspondre à l'adresse caldav du deuxième agenda (pour info avec owncloud version 9 les valeurs sont un peu différentes mais ça fonctionne).
  2. Je modifie la valeur de database="Personnel" pour le remplacer par un autre déjà créé dans la tablette.

Est-ce tout ? Que va-t-il se passer quand on va faire : syncevolution --sync slow owncloud calendar Va-t-il synchroniser les 2 agendas ?

Yax - 2016-06-22 13:19:33

@Guillaume Je n'ai jamais testé avec deux instances de calendrier mais votre démarche me semble pertinente : créer deux bases distinctes en local. Je rajouterais un nommage de config différent pour la 2ème instance de calendrier (calendar2 dans mon exemple ci-dessous).

syncevolution --configure database=https://mycloud.madyanne.fr/remote.php/caldav/calendars/calendar2.../personnel backend=caldav target-config@owncloud calendar2
syncevolution --configure sync=two-way backend=events database="Personnel" owncloud calendar2
syncevolution --sync slow owncloud contacts
syncevolution --sync slow owncloud calendar
syncevolution --sync slow owncloud calendar2

Guillaume - 2016-06-23 08:27:02

Parfait, ça fonctionne. Merci beaucoup :)

Autre question. Comment fait-on pour mettre le script de synchro périodique en CRON ?

Yax - 2016-06-24 10:48:09

@Guillaume Tu peux éditer /etc/crontab ou utiliser la commande crontab -e pour éditer la crontab du compte root.

Votre commentaire