Comptant tester et évaluer le media player du Jolla et accessoirement apprécier la qualité de l’écran, j’ai copié quelques films sur une Carte µSD (micro-SD). Après m’être fait jeté par le player au prétexte que Gstreamer ne possédait pas le bon codec, j’ai tout simplement installé Android-VLC, disponible sur les boutiques Aptoid, Yandex ou encore Android-Me.

Exécution de VLC … recherche de fichiers … que nenni! Le file-browser reste bloqué sur SDCARD et impossible de « descendre plus bas »! Cette application Androïd semble cantonnée (« conteneurisée » même) aux 16GO de la carte SD interne du smartphone! Bigre! Impossible de lire une µSD avec VLC ?

En fait si …

SD-où-t-es ?

Pas bien loin… La méthode est assez simple, mais il faut connaître quelques usages des systèmes UNIX :

Tout d’abord, pour identifier cette µSD, il existe plusieurs méthodes  :

> df  -h

qui répond :

...
/dev/mmcblk0p9         48M   11M   38M  22% /var/systemlog
/dev/mmcblk0p25       8.0M  4.2M  3.8M  54% /persist
/dev/mmcblk1p1         63G  1.5G   60G   3% /media/sdcard/77ad9de7-49c7-400d-8593-80441fa51f2e
...

Ainsi la carte µSD a bien été reconnue, et est identifiée par le chemin /dev/mmcblk1p1, accessible à partir du chemin /media/sdcard/77ad9de7-49c7-400d-8593-80441fa51f2e.

En plus d’être peu pratique, ce chemin est le plus souvent ignoré des logiciels qui s’attendent à un chemin pré-défini comme VLC, LLS-vPlayer,…

Notons que ce n’est pas la seule façon de faire, car on peut également appeler la commande suivante qui s’assure de la présence du disque en /dev/mmcblk1

> /sbin/blkid -c /dev/null -o export /dev/mmcblk1
DEVNAME=/dev/mmcblk1
UUID=2012-06-02-00-08-08-00
LABEL=Mageia-2-i586
TYPE=iso9660
PTTYPE=dos

Pour vérifier ensuite que la partition existe (/dev/mmcblk1/P1) :

> fdisk -l /dev/mmcblk1
Disk /dev/mmcblk1: 67.1 GB, 67108864000 bytes, 131072000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x7456463e
Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk1p1   *        2048   131071999    65534976   83  Linux

Et enfin

> /sbin/blkid -c /dev/null -o export /dev/mmcblk1p1
DEVNAME=/dev/mmcblk1p1
LABEL=Jolla
UUID=77ad9de7-49c7-400d-8593-80441fa51f2e
UUID_SUB=4b24edac-dacb-4b57-a6e3-2d4f01c58cce
TYPE=btrfs

Certes, et comment la rendre accessible ?

Il est possible de créer des liens symboliques, mais parfois, ils ne peuvent être suivis quand la conteneurisation est forte. Ce ne sera pas la solution retenue ici. On va préférer « monter » ces différents chemins en « bind », ce qui est plus robuste. Le comportement sera similaire à un « portal » du file-system.

La syntaxe bind de mount est de plus fort simple :

mount -o bind Path-Départ Path-Arrivée

Dans le cas qui nous occupe, le point de départ est :

/media/sdcard/77ad9de7-49c7-400d-8593-80441fa51f2e

et les points d’arrivées sont :

/home/nemo/SD64 (pour être directement accessible de Nemo)

/data/SDCARD/SD64 (pour être accessible d’Alien-Android).

Comme il s’agit d’opérations système, il est nécessaire de passer en mode root (commande devel-su, mode développeur actif).

D’abord, n’oublions pas de créer ces répertoires :

> mkdir -p /home/nemo/SD64
> mkdir -p /data/sdcard/SD64
> chown nemo:nemo /data/sdcard/SD64 /home/nemo/SD64

Finalement montons les. Cela se fait en 3 commandes :

> SDCARD=/media/sdcard/77ad9de7-49c7-400d-8593-80441fa51f2e
> mount -o bind $SDCARD /home/nemo/SD64
> mount -o bind $SDCARD /data/sdcard/SD64

Comme le chemin « 77ad9de7-49c7-400d-8593-80441fa51f2e » dépend de la µSD, il est alors préférable de l’obtenir via une instruction plus généraliste :

> set — `df -h | grep mmcblk1p1`; SDCARD=$6

Évidemment, ces instructions sont à réaliser à chaque reboot du Jolla. Il serait plus confortable d’en faire un « script shell », que l’on appellerait, par exemple : mount-my-SD.sh. Le contenu de ce script est le suivant :

#!/bin/sh
set — `df -h | grep mmcblk1p1`
SDCARD=$6
mkdir -p /home/nemo/SD64
chown nemo:nemo /home/nemo/SD64
mount -o bind $SDCARD /home/nemo/SD64
mkdir -p /data/sdcard/SD64
chown nemo:nemo /data/sdcard/SD64
mount -o bind $SDCARD /data/sdcard/SD64

Pour l’écriture de ce fichier, une solution simple consiste à utiliser la commande « echo » :

> echo '#!/bin/sh
set — `df -h | grep mmcblk1p1`
SDCARD=$6 
mkdir -p /home/nemo/SD64
chown nemo:nemo /home/nemo/SD64 
mount -o bind $SDCARD /home/nemo/SD64 
mkdir -p /data/sdcard/SD64
chown nemo:nemo /data/sdcard/SD64 
mount -o bind $SDCARD /data/sdcard/SD64' >mount-my-SD.sh

Il est également nécessaire de rendre ce script exécutable :

> chmod +x mount-my-SD.sh

et de le copier dans un répertoire connu , tel que /usr/local/bin

> cp mount-my-SD.sh /usr/local/bin

Voilà, à chaque redémarrage, il suffira d’invoquer mount-my-SD.sh dans un terminal pour rétablir les « portal ».

> devel-su '/usr/local/bin/mount-my-sd.sh'

Et c’est tout ?

En gros, oui… encore que je vois déjà les critiques : que se passe-t-il si je dois démonter ma µSD à chaud ? Ca doit pas être bien beau! Alors, soit vous faites preuve d’imagination, soit vous attendez le prochain tutoriel:

LA µSD, toute une Mount-agne (Partie 2)Et maintenant je dois démonter ma µsd à chaud.

Mais ceci est une autre histoire 😉

Forum_Lien

bandix400

bandix400

Auteur

Je suis passionné de génétique, d’informatique, de mécanique, et je m’arrête là car je manque déjà de temps pour tout faire ; autrement j’y rajouterais volontiers l’électronique, la musique, l’aquariophilie, le graphisme, le jeu Vidéo (simulation de conduite/FPS) et du ju-jitsu traditionnel.
bandix400

Les derniers articles par bandix400 (tout voir)

Faire de DuckDuckGo votre moteur de recherche par défaut
Introduction à la compilation sous Linux