Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

Message d'erreur incompréhensible.
#1

Bonjour à tous,
Ceci est ma première visite sur ce Forum et je tiens donc à me présenter. J'ai 75 ans mais aussi une carrière de 37 ans 1/2 en informatique. J'appartiens à la catégorie des "Papys de l'informatique" de Belgique... J'ai acheté un Raspberry et je n'éprouve aucune difficulté à le programmer en Python vu mon expérience dans bien d'autres langages. Toutefois, je viens d'essuyer un revers en tentant d'utiliser le port GPIO avec le programme ci-après :
#! /usr/bin/env python3
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(23, GPIO.OUT)
CNT1 = 0
while (CNT1 < 11) :
GPIO.output(23, GPIO.LOW)
time.sleep(3)
GPIO.output(23, GPIO.HIGH)
time.sleep(3)
CNT1 = CNT1 + 1

Après avoir rendu le programme exécutable, j'ai bien tenté de l'exécuter mais il bute toujours sur la deuxième ligne avec le message d'erreur suivant :
RPi.GPIO.setupException: No access to /dev/mem. Try running as root!
Je suppose qu'il s'agit d'un accès pour lequel je ne dispose pas des permissions nécessaires?.... Mais je ne vois pas comment résoudre le problème.
Donc, je l'ai contourné de la manière suivante :
1) J'ai ajouté l'instruction GPIO.setwarnings(False)
2) J'ai rendu la nouvelle version exécutable
3) Je lance le programme depuis le "Terminal administrateur".
ET CA MARCHE!!!
Mais pour moi, ce n'est pas normal. Bref, quelqu'un peut-il me dire pourquoi l'accès à /dev/mem est refusé et (si possible) comment rendre cet accès possible.

Merci d'avance à tous les jeunets qui pourraient m'aider et bonne soirée à tous (il est 21 h 12').

mathusalem
Répondre
#2

Salut et bienvenue.
A mon avis, c'est ta troisième opération qui a résolu ton problème.
Répondre
#3

mathusalem a écrit :RPi.GPIO.setupException: No access to /dev/mem. Try running as root!

Salut,

Pour accéder au périphérique /dev/mem, comme dit le message tu dois avoir les droits d'accés d'administration du système donc être "root".
Il faut taper :

$ sudo ./monprogrammeGPIO.py
Répondre
#4

Merci à chevelu et Nekrofage pour leurs indications, mais cela ne résout pas une question quasi existentielle :
POURQUOI ne puis-je pas avoir accès en tant que "simple utilisateur normal" à /dev/mem?
ET comment contourner cet obstacle, car ce n'est absolument pas normal. J'en veux pour preuve que tous les exercices donnés par Christian Tavernier dans son livre sur le Raspberry au chapitre consacré au port GPIO s'écrivent et s'exécutent pour un utilisateur normal et non pour le "super-utilisateur"!
Ceci étant dit, je précise deux choses :
a) pour chevelu d'abord : ce n'est pas la troisième option SEULE qui a résolu mon problème; car telle quelle mais sans l'ajout de l'instruction
GPIO.setwarnings(False), elle ne fonctionnait pas non plus. Il faut donc LES DEUX.
b) pour Nekrofage : si je suis ta suggestion en ajoutant "sudo" au début de ma commande, cela revient au même qu'utiliser le "Terminal administrateur";
je suis considéré par le système comme étant le "super-utilisateur"...
A mon humble avis, il doit y avoir (peut-être au moment de la configuration initiale?... mais sûrement après aussi) un moyen de faire savoir au système que /dev/mem doit être accessible à tout utilisateur. En effet /dev n'est autre que le répertoire où sont renseignés tous les périphériques du système. On devrait donc pouvoir y accéder librement pour effectuer un certain nombre de commandes (copies de fichiers d'un périphérique à un autre, p. ex.)
De toute façon, je ne me décourage pas : JE CONTINUE A CHERCHER!!!

mathusalem
Répondre
#5

mathusalem a écrit :POURQUOI ne puis-je pas avoir accès en tant que "simple utilisateur normal" à /dev/mem?

Cela correspond à un certain niveau de sécurité.

mathusalem a écrit :ET comment contourner cet obstacle, car ce n'est absolument pas normal.

Si c'est normal.
Pour contourner ce problème, cf. les liens suivant :
http://www.raspberrypi.org/forum/viewtop...29&t=22515
http://www.element14.com/community/threa...thout-sudo
http://www.mobilewill.us/2012/07/raspber...sions.html

mathusalem a écrit :b) pour Nekrofage : si je suis ta suggestion en ajoutant "sudo" au début de ma commande, cela revient au même qu'utiliser le "Terminal administrateur";
je suis considéré par le système comme étant le "super-utilisateur"...

Oui.

mathusalem a écrit :On devrait donc pouvoir y accéder librement pour effectuer un certain nombre de commandes (copies de fichiers d'un périphérique à un autre, p. ex.)

Non, question de sécurité.
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)