Problema para ejecutar GNU radio con Docker

Problema para ejecutar GNU radio con Docker

de Estefano Lautaro Bargas Nuñez -
Número de respuestas: 6

Hola, hice todos los pasos para correr el container de https://github.com/git-artes/docker-gnuradio y al querer ejecutar gnuradio me aparece lo siguiente:


gnuradio@thinkqft:~$ gnuradio-companion
Authorization required, but no authorization protocol specified
Authorization required, but no authorization protocol specified
Authorization required, but no authorization protocol specified
Gtk init_check failed. GRC might not be able to start a GUI.
Traceback (most recent call last):
  File "/usr/bin/gnuradio-companion", line 103, in <module>
    run_main()
  File "/usr/bin/gnuradio-companion", line 96, in run_main
    sys.exit(main())
  File "/usr/lib/python3/dist-packages/gnuradio/grc/main.py", line 80, in main
    from .gui.Platform import Platform
  File "/usr/lib/python3/dist-packages/gnuradio/grc/gui/Platform.py", line 14, in <module>
    from . import canvas
  File "/usr/lib/python3/dist-packages/gnuradio/grc/gui/canvas/__init__.py", line 10, in <module>
    from .param import Param
  File "/usr/lib/python3/dist-packages/gnuradio/grc/gui/canvas/param.py", line 11, in <module>
    from .. import ParamWidgets, Utils, Constants, Actions
  File "/usr/lib/python3/dist-packages/gnuradio/grc/gui/ParamWidgets.py", line 61, in <module>
    add_style_provider()
  File "/usr/lib/python3/dist-packages/gnuradio/grc/gui/ParamWidgets.py", line 54, in add_style_provider
    Gtk.StyleContext.add_provider_for_screen(
TypeError: Argument 0 does not allow None as a value


algunos detalles:

  • Mi maquina tiene arch linux con wayland (capaz por algun tema de seguridad no puede correr el GUI?)
  • Estoy corriendo docker como usuario no como root (probe ambos llego a lo mismo)
En respuesta a Estefano Lautaro Bargas Nuñez

Re: Problema para ejecutar GNU radio con Docker

de Federico "Larroca" La Rocca -

Hola, 

Dos posibilidades: 

 1 - Hiciste los post-installation steps? https://docs.docker.com/engine/install/linux-postinstall/

 2 - Hay que autorizar el docker para que se conecte al servidor X. La solución "quick and dirty" es autorizar a todo el mundo, usando: 

  $ xhost +

pero capaz que después podés ver bien a quiénes autorizás. Por ejemplo $ xhost +local:root autoriza al root, pero eso serviría si vas a ejecutar el docker con sudo, algo que no es muy recomendable.

saludos

En respuesta a Federico "Larroca" La Rocca

Re: Problema para ejecutar GNU radio con Docker

de Estefano Lautaro Bargas Nuñez -
Hice los pasos, y el tema es que no tengo X sino Wayland

Segui los pasos de una pregunta de stackoverflow que perdi el link, pero el comando final quedo

docker run -e XDG_RUNTIME_DIR=/tmp -e WAYLAND_DISPLAY=$WAYLAND_DISPLAY -v $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY:/tmp/$WAYLAND_DISPLAY --user=$(id -u):$(id -g) --net=host --env="DISPLAY" --volume="$HOME/.Xauthority:/root/.Xauthority:rw" --device /dev/snd -v persistent:/home/gnuradio/persistent --group-add=audio -e QT_QPA_PLATFORM="wayland;xcb" -it ubuntu:gnuradio-releases39 gnuradio-companion

entonces ahora corre gnuradio, pero al ejecutar el flowgraph falla con un error parecido (en la terminal de gnuradio):

Warning: failed to XInitThreads()
qt.qpa.plugin: Could not find the Qt platform plugin "wayland" in ""
Authorization required, but no authorization protocol specified
qt.qpa.xcb: could not connect to display :1
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Ahora creo que gnuradio no detecta el servidor de fondo (X o Wayland) como para mandar graficos Qt
En respuesta a Estefano Lautaro Bargas Nuñez

Re: Problema para ejecutar GNU radio con Docker

de Matias Gabriel Magallanes Martinez -

Si te esta dando drama lo del docker, abrite una maquima virtual con ubuntu 22.04 y usa el comando "sudo apt-get install gnuradio" para instalarlo, deberia instalar la version 3.10.1.1 y con esa yo no tuve problema.
Si usas la ultima ver de linux te pasa a la 3.10.7.0 y ahi ya no funciona el sdl video

En respuesta a Estefano Lautaro Bargas Nuñez

Re: Problema para ejecutar GNU radio con Docker

de Estefano Lautaro Bargas Nuñez -
Al final fui a la raiz del problema, encontre este issue https://github.com/gnuradio/gnuradio/issues/3669 y use la solucion que escribio esa persona https://github.com/MKesenheimer/SDLDisplay y parece que funciona, luego iremos a comparar como se ve en las maquinas de la FING por las dudas. La idea de usar una VM tambien la estabamos llevando a cabo. Gracias a ambos!