Ceci est sur un PI de framboise.
Voici la sortie de sudo ls -ll/sys/classe/gpio/gpio18:
-rwxrwx--- 1 root gpio 4096 Mar 8 10:50 active_low
-rwxrwx--- 1 root gpio 4096 Mar 8 10:52 direction
-rwxrwx--- 1 cameron cameron 4096 Mar 8 10:50 Edge
drwxrwx--- 2 root gpio 0 Mar 8 10:50 power
drwxrwx--- 2 root gpio 0 Mar 8 10:50 subsystem
-rwxrwx--- 1 root gpio 4096 Mar 8 10:50 uevent
-rwxrwx--- 1 cameron cameron 4096 Mar 8 10:50 value
On dirait que je devrais maintenant avoir accès à la valeur, génial. Pourtant:
cameron@raspberrypi~ $ echo 1 > /sys/class/gpio/gpio18/value
-bash: /sys/class/gpio/gpio18/value: Permission denied
Que se passe-t-il? Si je chmod 777 tout, alors ça marche, mais je ne devrais pas avoir à le faire quand je possède le fichier.
J'ai résolu le problème en ajoutant Cameron au groupe GPIO:
Sudo usermod -aG gpio cameron
gpio export 18 out
echo 1 > /sys/class/gpio/gpio18/value
Maintenant tout fonctionne.
En tant que LGGeRett mentionne comme un commentaire ci-dessus,
/sys
est un système de fichiers pseudo fourni par le noyau, si le noyau exige que l'auteur soit root, il s'agit d'une exigence fixe du noyau et ne peut pas être modifiée par des attributs et des propriétaires.
Ceci est expliqué plus en détail avec cette réponse sur la question: Comment définir les autorisations dans/sys/sys/permanent qui fournit une solution pour accéder à un tel fichier à l'aide de la commande sudo et fournit une recette à modifier /etc/sudoers
Pour éviter de devoir taper un mot de passe à chaque fois.
Cela ne serait-il pas logique de renommer aucun de ces fichiers le serait-il?
Ce fichier est-il un lien symbolique à un autre endroit? Parce que dans ce cas, le fichier d'origine peut avoir une propriété différente que le lien.
Quelles sont les autorisations du répertoire (vérifiez le répertoire LS -L un).
Avez-vous changé la propriété de ce dossier? Parce que sys
est un système de fichiers virtuel spécial qui reflète l'état interne du noyau, la plupart de ces variables sont donc immuables par nature, peu importe ce que le système de fichiers dit.