Pinephone

De wiki jackbot
Aller à la navigation Aller à la recherche


Le Pinephone est un téléphone utilisant des distributions linux. Disponible ici

Les systèmes d'exploitations disponibles

Il existe une tripoté de systèmes d'exploitations pour ce téléphone ! De Archlinux, jusqu'à Ubuntu Touch, en passant par Mobian, PostMarketOS et j'en passe. La meilleure façon que j'ai trouvé pour me faire une idée de ces différents systèmes est d'utiliser l'image multi-distro. Pour créer la carte µSD il suffit de suivre les instructions sur la page.

Voici un lien sur les instructions détaillées

Après quelques tests, arrivent en tête Mobian et PostMarketOS/Phosh. Mais ce n'est que mon point de vue, je vous invite à essayer et à vous faire votre propre avis.

Problème de la carte SD

Lorsque j'ai eu mon Pinephone, j'ai testé quelques système d'exploitation avant d'en installer un sur la mémoire interne. J'ai donc formater la carte SD que j'avais utilisé pour les tests afin de l'utiliser en tant que stockage. Cependant, mon Pinephone ne voulait pas démarrer avec cette carte SD. Cela vient du fait que même après un formatage les secteurs correspondant au u-boot, sont toujours présent. Pour s'en débarrasser il faut lancer la commande suivante :

dd if=/dev/zero of=/dev/mmcblk0 bs=1024 seek=8 count=2048

En remplaçant bien sûr "mmcblk0" par le nom de la carte SD. Une fois ces secteurs effacé, le Pinephone démarre normalement avec la carte SD en guise de stockage.

Les SMS

Problèmes

Il m'est arrivé de ne plus recevoir les sms. Il s'avère qu'il s'agit d'une sorte de bug lié à des fichiers persistants (SMS en cours de traitement). Afin de vérifier s'il y a effectivement un "trop plein" de fichier il est nécessaire d'utiliser le terminal et de préférence via SSH (c'est quand même plus pratique)

Connaître le chemin/index du modem

# mmcli -L
/org/freedesktop/ModemManager1/Modem/0 [QUALCOMM INCORPORATED] QUECTEL Mobile Broadband Module

Connaître le chemin/index de la SIM du modem

# mmcli -m 0 | grep SIM
SIM      |        primary sim path: /org/freedesktop/ModemManager1/SIM/0

On peut ici voir dans la réponse le chemin qui est utilisé par le système d'exploitation pour traiter tout ce qui touche aux différentes fonctions téléphone.

Lister les SMS en attente

Pour lister les sms en cours de traitement dans le modem du Pinephone il faut exécuter la commande suivante :

# mmcli -m 0 --messaging-list-sms
/org/freedesktop/ModemManager1/SMS/19 (sent)
/org/freedesktop/ModemManager1/SMS/18 (receiving)
/org/freedesktop/ModemManager1/SMS/17 (received)
/org/freedesktop/ModemManager1/SMS/16 (received)
/org/freedesktop/ModemManager1/SMS/15 (received)
/org/freedesktop/ModemManager1/SMS/14 (received)
/org/freedesktop/ModemManager1/SMS/13 (received)
/org/freedesktop/ModemManager1/SMS/12 (received)
/org/freedesktop/ModemManager1/SMS/11 (received)
/org/freedesktop/ModemManager1/SMS/10 (received)
/org/freedesktop/ModemManager1/SMS/9 (received)
/org/freedesktop/ModemManager1/SMS/8 (received)
/org/freedesktop/ModemManager1/SMS/7 (received)
/org/freedesktop/ModemManager1/SMS/6 (received)
/org/freedesktop/ModemManager1/SMS/5 (received)
/org/freedesktop/ModemManager1/SMS/4 (received)
/org/freedesktop/ModemManager1/SMS/3 (received)
/org/freedesktop/ModemManager1/SMS/2 (received)
/org/freedesktop/ModemManager1/SMS/1 (receiving)
/org/freedesktop/ModemManager1/SMS/0 (received)

D'après ce que j'ai pu lire à droite et à gauche, il ne devrait jamais y avoir plus de 10 sms en cours de traitement. Or là dans mon cas il y en a bien plus, ce qui pour une raison que j'ignore bloque complètement la réception des nouveaux SMS entrant.

Suppression des SMS

Vous aurez beau chercher, mais ces fichiers là n'apparaissent pas dans la racine du système, impossible donc de les effacer à coup de rm. Pour y arriver il faut lancer la commande :

# mmcli -m 0 --messaging-delete-sms=1
successfully deleted SMS from modem

Ce qui aura pour effet d'effacer le SMS numéro 1. J'imagine que vu que le 0 correspond à la SIM il ne vaut mieux pas y toucher. Je vais donc réitérer la manip pour tous les sms coincés. Une fois ceci fait, le Pinephone accepte à nouveau de recevoir des SMS.

Sauvegarder ses SMS

Les SMS sont gérés par le logiciel purple, on retrouve donc toutes les données dans :

/home/mobian/.purple

Pour être plus précis les SMS sont stockés dans une base de données sqlite3 qui se trouve ici :

/home/mobian/.purple/chatty/db/chatty-history.db

Envoyer un SMS en ligne de commande

Il peut y avoir plusieurs raisons pour lesquelles on souhaite envoyer un SMS en ligne de commande. Dans un premier temps il faut lister les modem présent :

$ mmcli -L
    /org/freedesktop/ModemManager1/Modem/0 [QUALCOMM INCORPORATED] QUECTEL Mobile Broadband Module

On voit ici que le modem à le numéro 0, s'il n'est pas activé il faut alors exécuter la commande :

$ sudo mmcli -m 0 -e
successfully enabled the modem

On peut maintenant créer un SMS :

sudo mmcli -m 0 --messaging-create-sms="text='Hello world',number='+1234567890'"
Successfully created new SMS: /org/freedesktop/ModemManager1/SMS/8

Le message est le numéro 8, pour l'envoyer il faut donc préciser ce numéro :

$ sudo mmcli -s 8 --send
successfully sent the SMS

Et voilà le SMS vient de partir.

Gérer un crash

Il m'est arrivé dernièrement de voir mon pinephone ne plus vouloir démarrer, "Don't panic !". La première chose à faire est de récupérer une image d'un système d'exploitation pour créer une carte µSD bootable. Voir Les systèmes d'exploitations disponibles

Une fois la carte créée et le pinephone démarré, il est possible que vous puissiez régler le problème à partir de ce système d'exploitation tout frais. Dans le cas contraire, il va falloir aller plus loin et chrooter le système existant

Chrooter le système

Dans la suite je suppose que vous être en root. Un prérequis à ça est d'installer qemu-user-static simplement avec la commande :

apt-get install qemu-user-static

Une fois ceci fait il faut monter les partitions de votre système défaillant

mount /dev/mmcblk2p2 /mnt/ -o noatime
mount /dev/mmcblk2p1 /mnt/boot -o noatime

Puis copyer qemu emulator dans le système à chrooter :

cp -u /usr/bin/qemu-aarch64-static /mnt/usr/bin

Puis enfin chrooter le système à proprement parler :

chroot /mnt qemu-aarch64-static /bin/bash

Il est également nécessaire de monter d'autres dossier basiques :

mount none -t devtmpfs /dev
mount none -t devpts /dev/pts
mount none -t proc /proc
mount none -t tmpfs /tmp

Voilà maintenant vous êtes dans le système de fichier défaillant et maintenant on peut chercher vraiment d'où vient le problème. Bien entendu la première chose à faire c'est de regarder les logs :

journalctl -r

Sortir du système chrooté

Rien de bien compliqué dans cette étape, il suffit de démonter les différents dossiers dans l'ordre inverse :

umount /dev/pts /dev /proc /tmp
exit
umount /mnt/boot /mnt