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 😉
bandix400
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.
Les derniers articles par bandix400 (tout voir)
- SonyX’2, le retour de la vengeance du fils caché … - 27 janvier 2018
- SFOS, mais en VO - 31 octobre 2017
- Sony’X, où Sailfish X sur Xperia X - 3 octobre 2017