[Tutoriel] Monter une Graph 90 en utilisateur sous Linux
Posté le 24/08/2018 18:29
Ce tutoriel est destiné à des utilisateurs Linux intermédiaires. Il s'agit d'autoriser un utilisateur ou un script à monter une Graph 90 en USB sans droits root. Je fais ça avec
udev ; ceux qui ont des configs sans systemd n'ont probablement pas besoin de ce tuto.
Le truc qui tape sur le système quand on utilise une Graph 90, c'est que si elle n'est pas montée rapidement (10~15 secondes), elle se déconnecte toute seule !
Monter manuellement la calculatrice
Pour monter la machine, la première chose à faire est de connaître son nom de périphérique dans
/dev. Une fois la calculatrice en mode réception, localisez avec
fdisk -l (en root) le système de fichiers FAT de 16M ; cette fois-là, chez moi, c'était
/dev/sdb.
Disk /dev/sdb: 16.1 MiB, 16852480 bytes, 32915 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
Disklabel type: dos
Disk identifier: 0x00000000
Device Boot Start End Sectors Size Id Type
/dev/sdb1 29 32914 32886 16.1M e W95 FAT16 (LBA)
Ensuite vous pouvez la monter comme n'importe quelle système de fichiers avec
mount, par exemple :
# mount /dev/sdb1 /run/media/prizm
Pareil pour la démonter avec
unmount. Elle ne se déconnecte toutefois pas automatiquement ; un coup de
eject est nécessaire.
eject peut renvoyer une erreur mais déconnecter quand même.
# unmount /dev/sdb1
% eject /dev/sdb
Autoriser un utilisateur à monter la Graph 90
L'idée est d'ajouter une entrée au
fstab qui donne à un utilisateur le droit de monter sans root. Pour cela, il faut spécifier un identifiant unique et des options de montage. Typiquement, l'identifiant unique est un UUID, mais la Prizm n'en a pas (essayez
blkid lorsqu'elle est montée).
À la place, on peut utiliser le nom de périphérique
/dev/sdb1, mais il change tout le temps. Je propose donc d'en fixer un bien unique comme
/dev/Prizm1 en utilisant une règle udev. Commencez par localiser le nom de modèle de la machine en l'ayant monté manuellement. Faites attention aux espaces ; copiez tout de
ATTRS au guillemet fermant.
% udevadm info -a /dev/sdb1 | grep model
ATTRS{model}=="ColorGraph "
Dans
/etc/udev/rules.d, créez un fichier sous le nom
60-prizm.rules (le
60 définit la priorité de la règle) avec les contenus suivants :
ATTRS{model}=="ColorGraph ", SYMLINK+="Prizm%n", OWNER="lephe"
La première partie avec
ATTRS{model} permet de sélectionner la Graph 90 ; ensuite
SYMLINK définit des liens symboliques type
/dev/Prizm1 -> /dev/sdb1 et
OWNER (avec votre nom d'utilisateur évidemment, pas le mien) indique le propriétaire du périphérique. C'est ça qui va nous permettre de passer à fstab.
Rechargez les règles de udev :
# udevadm control --reload
Vous devez maintenant voir apparaître des liens symboliques
/dev/Prizm* quand vous branchez la machine.
Ajoutez ensuite une entrée à la fstab, pour fixer le point de montage par défaut et autoriser le propriétaire à monter le système de fichiers. Dans mon cas le point de montage sera
/run/media/prizm, cela me donne donc :
/dev/Prizm1 /run/media/prizm vfat defaults,noauto,owner 0 0
L'option
noauto permet de ne pas monter la machine au démarrage, et
owner autoriser le
OWNER défini dans la règle udev à monter la calculatrice sans droits root.
Vous pouvez désormais brancher la machine et taper
mount /dev/Prizm1 pour la monter automatiquement. Ça marche aussi depuis un script/
Makefile/whatever et évite les droits root.
Voilà, c'est à peu près tout ! Je cherche encore à trouver comment la monter automatiquement avec
autofs, ce qui ne se passe pas encore très bien, donc la méthode va sûrement évoluer !
Citer : Posté le 24/08/2018 18:59 | #
Il me semble que la Graph90 est vue comme une simple clef USB / carte SD / etc., une fois branchée à un PC.
Du coup je pense qu'il suffit de traiter le problème de la même façon qu'une clef USB. Sur la plupart des distributions, ça juste marche©ra, et sur les autres, faut voir du côté de gvfs et udisks. J'ai pas ce qu'il faut pour tester, donc je peux pas valider cette idée.
Évidemment, avec le délai de timeout, il est mieux d'avoir configuré le montage automatique, la plupart des environnements de bureau le propose. Sinon faudra être rapide.