mencey
Posts: 15
Joined: Sun Jun 17, 2012 6:09 pm

Porblema al ejecutar codigo OpenCV como su

Thu Apr 09, 2015 10:40 am

Pues eso que tengo problemas para poder ejecutar código en Python con OpenCV, si lo hago como superusuario (con comando su). Si lo ejecuto como usuario pi no da problemas.
La razón de querer ejecutarlo como su, es que en otro código que estoy haciendo utilizo RPi.GPIO, como sabeis el acceso a /dev/mem esta restringido a superusuario, con lo cual si ejecuto como usuario pi no funciona gpio, y si ejecuto como su no funciona OpenCV. Dandome este error Not Authorized client to connect to server.
He probado a darle permisos a todos en la xhos + y no va tanto si lo ejecuto accediendo por vnc como accediendo al escritorio normalmente. a ver si alguien me pueda ayudar un saludo.

pfvidal
Posts: 50
Joined: Mon Oct 29, 2012 4:00 pm

Re: Porblema al ejecutar codigo OpenCV como su

Thu Apr 09, 2015 11:04 am

Buenas yo no he tenido problemas con xhost+... peo cada sistema es diferente.
Sabiendo que este tipo de problema en concreto lleva tiempo dando guerra a mucha gente (por favor indica versión de so y software usado) permiteme una propuesta y una petición:
Propuesta: porque no usas tu código con los mínimos privilegios y solo actúas como root cuando lo necesitas.
petición: si lo ejecutas como terminal, sin opencv al principio del msg y en su titulo interpretó que si funciona, pero al final del mismo interpretó que tampoco como terminal te termina de funcionar. Me lo podría aclarar.
Gracias y suerte

mencey
Posts: 15
Joined: Sun Jun 17, 2012 6:09 pm

Re: Porblema al ejecutar codigo OpenCV como su

Thu Apr 09, 2015 11:23 am

Gracias por contestar tan rápido. lo primero comentarte que el harware es:
Raspberry_pi2
Raspicam v1.3
Raspbian la ultima versión la del mes de Enero creo que es la ultima y actualizada a los últimos parches.
OpenCV 2.4.11 conpilado en el kernel.
Ultimo driver UV4l para raspicam.

Después de instalar opencv he probado con código mío y con el código que viene en el directorio /samples y funciona todo correcto, eso si... si lo hago con el usuario pi.
Cualquier código que ejecute con derechos administrativos (su Python prueba.py) me da el error que comentaba en el anterior post.
Hasta aquí todo bien pues es fácil ejecuto el código como usuario pi y funciona todo.

El problema es que ahora quiero añadir a ese código la librería RPi.GPIO para en función de ciertos eventos que se producen en OpenCV activar o deactiva las entradas GPIO. y que ocurre?
Pues que GPIO no funciona si no tienes derechos administrativos con lo cual para que funcionen los GPIO tengo que ejecutarlo como usuario su y al ejecutarlo asi entonces me falla el openCV. Un saludo.

Es el mismo problema que le ocurre a este forero y el código que pone es muy parecido.
viewtopic.php?f=32&t=76107&p=736341#p736341

raspdroid
Posts: 1603
Joined: Thu Nov 06, 2014 9:15 am
Location: Gran Canaria :: España

Re: Porblema al ejecutar codigo OpenCV como su

Thu Apr 09, 2015 11:41 am

Hola mencey,

¿La instalación de open-cv la hiciste con el usuario pi?, ¿Has mirado si durante la instalación de open-cv se creó un grupo dónde no esté root sino pi?.

Si es eso con meter a root en el mismo grupo debería de funcionar.

Saludos

mencey
Posts: 15
Joined: Sun Jun 17, 2012 6:09 pm

Re: Porblema al ejecutar codigo OpenCV como su

Thu Apr 09, 2015 11:59 am

Gracias RaspDtroid:
He mirado el articulo en el blog que utilice para hacer la instalación de OpenCV y no veo nada raro de permisos a lo que se suele hacer, pero googleando he visto algo que si puede ser y esta relacionado con el driver uv4l en su archivo de configuración hay una opción de password para el servidor de video. No se como esta el mio, a la tarde lo miro, espero que sea el problema.
pego lo que encontré relacionado con el driver uv4l:

Para añadir protección por contraseña para la transmisión de vídeo o para desactivarlo, agregue las líneas siguientes a la /etc/uv4l/uv4l-raspicam.conf sección de opciones de núcleo y reiniciar el controlador.
enable-server = auto #'auto', 'required', 'off' server-option = --port=8080 #streaming server port server-option = --admin-password=helloworld #streaming server 'admin' password server-option = --user-password=hellow #streaming server 'user' password

Un saludo.

Return to “Español”