--
-- Recibiste este mensaje porque estás suscripto al Grupo Google Embebidos32. Para postear en este grupo, escribe un email a embeb...@googlegroups.com. Para des-suscribirte, envía un email a embebidos32...@googlegroups.com. Para más opciones, visita el sitio del grupo en https://groups.google.com/d/forum/embebidos32?hl=es
---
Has recibido este mensaje porque estás suscrito al grupo "Embebidos32" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a embebidos32...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
Nunca he usado Qt Embedded en una R-Pi pero puedo decirte que si tiene framebuffer Qt4-Embeddeed funciona sin ningun problema.
Otro tema seria el hardware como touch screen o teclado y raton, pero eso no depende de Qt embedded sino de los drivers del nucleo.
En general, Qt embedded está Deprecated y se migra a Qt+Wayland (que ya anda en R-Pi segun he visto) siendo esto la solución estandar en el futuro tanto para desktop como para embedded
--
Como opción madura, Qt4 usando framebuffer es lo mejor. X11 no tiene performance ni escala bien en este procesador,
y Wayland como bien decís esta un poco verde, pero de acá a un año va a ser el estándar de facto para sistemas embebidos, igual Qt5 soporta muchos tipos de window system como para pensar en quedarse sin soporte.
De todas formas, te confirmo que si se requiere un desarrollo estable, mi opción es Qt4.8 embedded usando solo el framebuffer y alguna que otra libreria (tslib me imagino)
Por las dudas, igual pegale una mirada a esto que estan haciendo la gente de Qt:Y parece bastante estable.
2014-08-01 12:26 GMT-03:00 martin ribelotta <martinr...@gmail.com>:
Como opción madura, Qt4 usando framebuffer es lo mejor. X11 no tiene performance ni escala bien en este procesador,Ok.
Una pregunta... el framebuffer que usa Qt4-Embedded es parte del X11 no? o tiene otro mecanismo? Digo por lo que decis de que X11 no escala bien.O más bien, tengo que tener X11 instalado para usar Qt4-Embeeded, no es cierto?
Recién hoy me puse a ver esto de Qt4-Embedded y todavía no termino de entender bien qué es exáctamente, y qué cosas necesita de la distro que pongamos en el R-Pi.
y Wayland como bien decís esta un poco verde, pero de acá a un año va a ser el estándar de facto para sistemas embebidos, igual Qt5 soporta muchos tipos de window system como para pensar en quedarse sin soporte.OK.Decididamente tenemos que mantener presente el progreso de Wayland. Algún lugar en especial para monitoriar esto que me puedas recomendar?
Uh, que bueno...De todas formas, te confirmo que si se requiere un desarrollo estable, mi opción es Qt4.8 embedded usando solo el framebuffer y alguna que otra libreria (tslib me imagino)OK
Por las dudas, igual pegale una mirada a esto que estan haciendo la gente de Qt:Y parece bastante estable.
--
--
El 1 de agosto de 2014, 12:54, Fernando Cacciola <fernando...@gmail.com> escribió:
2014-08-01 12:26 GMT-03:00 martin ribelotta <martinr...@gmail.com>:
Como opción madura, Qt4 usando framebuffer es lo mejor. X11 no tiene performance ni escala bien en este procesador,Ok.
Una pregunta... el framebuffer que usa Qt4-Embedded es parte del X11 no? o tiene otro mecanismo? Digo por lo que decis de que X11 no escala bien.O más bien, tengo que tener X11 instalado para usar Qt4-Embeeded, no es cierto?
Recién hoy me puse a ver esto de Qt4-Embedded y todavía no termino de entender bien qué es exáctamente, y qué cosas necesita de la distro que pongamos en el R-Pi.No, X11 y Qt-Embedded no tienen nada que ver el uno con el otro.El framebuffer de linux es una forma facil de acceder al hardware gráfico, pensada originalmente para mostrar el splash screen, pero usada con posterioridad como sistema gráfico de bajo nivel.X11 tambien puede acceder al framebuffer y dibujar sobre el usando el driver fbdev. Qt embedded, en vez de usar X11 para dibujar las ventanas, implementa un servidor grafico propio (QWS) para reemplazar a X11 y dibujar directamente sobre el framebuffer a pedido de las aplicaciones. Estas dibujan en buffers propios y luego el servidor QWS las compone sobre el area de memoria del framebuffer.
QWS puede correr como una tarea en background en una aplicación Qt embedded (modo por defecto) o correr como un servidor aparte y las apliaciones comunicarse con el como si fuera X11 pero con mucho menor consumo de recursos.
Hace mucho tiempo, hice una especie de desktop enviroment muy basico usando Qt embedded, tal vez te sirva para empezar:y Wayland como bien decís esta un poco verde, pero de acá a un año va a ser el estándar de facto para sistemas embebidos, igual Qt5 soporta muchos tipos de window system como para pensar en quedarse sin soporte.OK.Decididamente tenemos que mantener presente el progreso de Wayland. Algún lugar en especial para monitoriar esto que me puedas recomendar?Basicamente los repos git de todo:Y las paginas de cada proyecto. Wayland hace mucho que es un desarrollo estable, ocurre que los toolkits y los desktop enviroment deben ser portados (sin hablar de las aplicaciones que es lo que mas lleva)
X11 tambien puede acceder al framebuffer y dibujar sobre el usando el driver fbdev. Qt embedded, en vez de usar X11 para dibujar las ventanas, implementa un servidor grafico propio (QWS) para reemplazar a X11 y dibujar directamente sobre el framebuffer a pedido de las aplicaciones. Estas dibujan en buffers propios y luego el servidor QWS las compone sobre el area de memoria del framebuffer.Ahhhhh. OK. Eso fué lo que entedí primero, pero alguien del equipo acá me dijo que no puede ser y que tiene que ser sobre X11.
QWS puede correr como una tarea en background en una aplicación Qt embedded (modo por defecto) o correr como un servidor aparte y las apliaciones comunicarse con el como si fuera X11 pero con mucho menor consumo de recursos.OK
Hace mucho tiempo, hice una especie de desktop enviroment muy basico usando Qt embedded, tal vez te sirva para empezar:y Wayland como bien decís esta un poco verde, pero de acá a un año va a ser el estándar de facto para sistemas embebidos, igual Qt5 soporta muchos tipos de window system como para pensar en quedarse sin soporte.OK.Decididamente tenemos que mantener presente el progreso de Wayland. Algún lugar en especial para monitoriar esto que me puedas recomendar?Basicamente los repos git de todo:Y las paginas de cada proyecto. Wayland hace mucho que es un desarrollo estable, ocurre que los toolkits y los desktop enviroment deben ser portados (sin hablar de las aplicaciones que es lo que mas lleva)OK
--
On Fri, 1 Aug 2014 14:38:24 -0300Seguramente tenga que ver con la falta de EGL.
Santiago Pérez <pere...@gmail.com> wrote:
> En algunos foros decían que Qt 4.8.X (embebido en un ARM por ejemplo)
> solo podía hacer uso del GPU (OpenGL) si se usa X11, porque había
> problemas con QWS o acceso directo al framebuffer. No se si será
> exclusivo de Freescale o de una gama de micros (i.MX?). Sabes algo al
> respecto Martín?.
> Por otro lado, lo de QtQuick y todo lo nuevo que aporta Qt5La parte de scripting a veces viene útil...
> aparentemente es útil solo si las aplicaciones a desarrollar son
> pensadas para móviles y no tanto para escritorio (más widgets
> solamente aunque pueden ser con animaciones también), porque están
> muy pensados para el tipo de comportamiento al que nos hemos
> acostumbrado en los smartphones y tal cual como dice Martín, son "GPU
> mandatory".
2014-08-01 12:05 GMT-03:00 Ismael Luceno <ismael...@gmail.com>:
On Fri, 1 Aug 2014 10:55:37 -0300
>
Hola.
QT 4.8 y QT 5 deberían andar perfecto. Idealmente deberías aprovechar
QPA (Lighthouse), ya que en mi experiencia funciona mejor que QWS, y si
podés lidiar con QT 5, las mejoras son substanciales (he usado QT 5 en
entornos de producción desde fines del 2011 sin problemas).
OK.Estoy mirando QPA y parece bastante verde tambien.
--
Quizás podes ver diferencia a la hora de buscar soporte. Qt 4.8.5 está muy difundido y hay info y experiencias por todos lados. Mi experiencia es que al querer usar lo último de lo último, a veces te termina demorando y costando mucho tiempo/dinero. Personalmente uso Qt4.8.5 y deje Qt5 para un futuro cuando la tenga más clara y haya mas soporte en la comunidad de mi micro en particular.
X11 tambien puede acceder al framebuffer y dibujar sobre el usando el driver fbdev. Qt embedded, en vez de usar X11 para dibujar las ventanas, implementa un servidor grafico propio (QWS) para reemplazar a X11 y dibujar directamente sobre el framebuffer a pedido de las aplicaciones. Estas dibujan en buffers propios y luego el servidor QWS las compone sobre el area de memoria del framebuffer.Ahhhhh. OK. Eso fué lo que entedí primero, pero alguien del equipo acá me dijo que no puede ser y que tiene que ser sobre X11.Para nada, si usa X11, no es Qt Embedded (salvo por el simulador de QWS que corre como aplicación de X11 pero eso es como un VNC medio raro -perdón la falta de precisión pero no hay muchas formas de explicarlo sin mirar el código-De hecho, la prueba de que eso NO es así es el link que te pase al proyecto (unipersonal y ya abandonado) de QDE que es un desktop completo sin X11.
El 1 de agosto de 2014, 15:08, Fernando Cacciola <fernando...@gmail.com> escribió:
2014-08-01 12:05 GMT-03:00 Ismael Luceno <ismael...@gmail.com>:
On Fri, 1 Aug 2014 10:55:37 -0300
>
Hola.
QT 4.8 y QT 5 deberían andar perfecto. Idealmente deberías aprovechar
QPA (Lighthouse), ya que en mi experiencia funciona mejor que QWS, y si
podés lidiar con QT 5, las mejoras son substanciales (he usado QT 5 en
entornos de producción desde fines del 2011 sin problemas).
OK.Estoy mirando QPA y parece bastante verde tambien.
Para nada, QPA es una tecnología probada con mas de 4 años de desarrollo.Tal vez la confusión venga por el hecho de que QPA es una infraestructura mas que un producto acabado. Lo mismo que Wayland.
Aquí, en el mundillo de linux embebido, hablar de productos acabados o de cosas maduras es. tácitamente, hablar de servicios de terceros que se cobran.
Normalmente, todo esto, requiere de hacking bastante avanzado y no es nada parecido a un PIC que con algunas librerías salimos del paso.
Hay muchos proyectos avanzando en paralelo e interaccionando entre si para crear un sistema como Linux/Android/etc. y todos ellos tienen sus pros y sus contras, así que es parte del trabajo de ingeniería entender el ecosistema y dominar las herramientas que sean necesarias para el trabajo a realizar.
Personalmente, creo que por mucho que nos guste jugar con la parte técnica, hay una verdad incuestionable a la hora del diseño, esto es una parte de un todo y como tal, debe cumplir su cometido.Frente a eso, muchas veces debemos refrenar nuestra tendencia teki y buscar el camino critico de la solución. Cosa que no siempre es facil ni clara ;-) y mucho menos de respuesta única.
--
QPA es mayormente una API privada. Esto es, no hay documentación oficial debido a que no se comprometen a mantener un ABI estable entre version menor y version menor (4.X.Y to 4.Z.T o 5.a.b to 5.c.d)
De todas formas, lo ideal seria que poco se tenga que tocar de eso ya que hay varias infraestructuras que vienen de fabrica con QPA (plataform plugins):* directfb (linux)* Android (surface flinger sobre linux)* X11 (sistemas POSIX que tengan XCB como API para ser mas preciso)* win32 (solo en sistemas NT6+)* cocoa (MacOS/iOS)* QNX* VxWorks* fbdev (linux framebuffer) (solo una APP puede acceder al FB al mismo tiempo)* egl-es (OpenGL-ES en linux)* KMS (nueva infraestructura de linux framebuffer)Toda esta información la podes sacar del codigo fuente de Qt (sory, en este mundo es leer codigo o morir jejeje):
Y por supuesto el plugin de Wayland que ya te pase el link y es un proyecto aparte que implementa tanto plugin de aplicaciones como varios compositores que pueden hablarle al framebuffer, a opengl-es o a KMS.
Hola:
Yo estuve trabajando con Qt con Raspbian y Raspberry pi. Tuve muy malas experiencias. De hecho la exposición que vamos a realizar en el SASE habla sobre eso tmb. Primero usamos librerias cross compiladas con Qt 4.8 en Windows 7. Hasta ahi todo bien, incluso andaba OpenCv, pero luego quisimos acelerar con OpenGl y las librerias para Windows no soportan OpenGl.
Migramos a linux y Qt 5 que si lo soporta. Pero debido a un error de Qt, no funcionaba ninguna aplicación.
Consejo, ahorrate un problema, o usa Windows o no uses Qt
Saludos.
Martín
Así es, Qt4-embedded usando el framebuffer no puede acelerar el dibujado usando OpenGL.
Pero eso no quiere decir que Qt4-embedded no pueda dibujar usando OpenGL(-es) ya que QWS tiene un mecanismo plugeable de display drivers.Para conseguir dibujar con OpenGL(-ES), se reemplaza el driver del framebuffer por uno dependiente de la implementación Open-GL(-ES) que, utilizando el API EGL (estándar definido por el Kronos Group - los mismos de OpenGL) puede pedir uno o varios "framebuffers" a la placa de vídeo (normalmente embebida) que sirvan a la aplicación para dibujar con las librerías del fabricante de la placa.
Esa era la situación en Qt4 y por eso, se re implemento todo el subsistema QWS y se lo llamó QPA (Q Plataform Abstraction) que resuelve muchas de las limitaciones de QWS en cuanto a OpenGL y otros temas (renderizado de fuentes, sincronización, portabilidad, etc.)
De hecho, Qt5 es, en todas sus versiones, la misma librería Qt usando distintos plugins de QPA, con lo que podríamos decir, que Qt5 es Qt-embedded extendida en todas sus versiones (X11, Win32, MacOS-X, framebuffer o lo que sea)
Perdón si mis respuestas no son todo lo concretas que uno desearía, es porque hay muchos mas matices que el simple hecho de "es así" o "no es así"
Un saludo!
Martín, gracias por la respuesta y los detalles. Arrancando el lunes te contesto un poco más fresco.
El 8 de agosto de 2014, 17:59, martin ribelotta <martinr...@gmail.com> escribió:
Así es, Qt4-embedded usando el framebuffer no puede acelerar el dibujado usando OpenGL.Ahora me cierran muchas cosas...Pero eso no quiere decir que Qt4-embedded no pueda dibujar usando OpenGL(-es) ya que QWS tiene un mecanismo plugeable de display drivers.Para conseguir dibujar con OpenGL(-ES), se reemplaza el driver del framebuffer por uno dependiente de la implementación Open-GL(-ES) que, utilizando el API EGL (estándar definido por el Kronos Group - los mismos de OpenGL) puede pedir uno o varios "framebuffers" a la placa de vídeo (normalmente embebida) que sirvan a la aplicación para dibujar con las librerías del fabricante de la placa.Acá me perdí. Por ejemplo, yo tengo un micro que tiene su GPU. El vendor me provee de un driver para funcionar con OpenGLES, el cual incorporo a mi rootfs y utilizo para compilar mi versión de Qt4 embebida (en mi qmake.conf especifico este driver y el path correspondiente y agrego en el configure la opción correspondiente, la cual creo que es -opengl). Si compilo para QWS, que sería la llamada "embebida", ya puedo utilizar el framebuffer con opengl o estos plugins y drivers a los que haces referencia aún falta agregarlos?. Sería en la aplicación propiamente dicha o en la configuración de Qt4?.
Muchas preguntas, pero esta es la parte complicada me parece...
Esa era la situación en Qt4 y por eso, se re implemento todo el subsistema QWS y se lo llamó QPA (Q Plataform Abstraction) que resuelve muchas de las limitaciones de QWS en cuanto a OpenGL y otros temas (renderizado de fuentes, sincronización, portabilidad, etc.)De hecho, Qt5 es, en todas sus versiones, la misma librería Qt usando distintos plugins de QPA, con lo que podríamos decir, que Qt5 es Qt-embedded extendida en todas sus versiones (X11, Win32, MacOS-X, framebuffer o lo que sea)
O sea que si quiero usar Qt5, solo debo especificar el plugin a utilizar según mi hardware? En que parte del proceso sería? En la configuración/compilación de Qt? Lo de los plugins es medio confuso a veces, quizás hasta que uno le agarre la mano.
QT_QPA_PLATFORM con el mismo parametro.Eso funciona bien?Quisiera saber si alguno de uds ha tenido experiencia usando Qt for Embedded Linux.Estamos por comenzar con un desarollo y tenemos pensado usar un Raspberry, con Raspian y Qt for Embedded Linux.
--
Gracias por el tiempo y respuesta Martín, y citando a Fernando me sumo al "Han logrado que me sienta totalmente perdido....", jeje.A modo de resumen de tu último mail, veo que el soporte de GPU cpn Qt4 es bastante complicado (o poco uniforme digamos), sobre todo con QWS (aunque también con X11???).
Por otro lado, QPA parece ser más sencillo, lo que implica utilizar Qt5 y según se dijo alguna vez, necesitas mandatoriamente GPU con su driver para poder siquiera compilar Qt5 (aunque no se use). Corríjanme si en este punto estoy equivocado.
La semana pasada intenté utilizar The Yocto Project para generar mi rootfs con Qt y aceleración por hard (sobre todo por el tema aceleración de hard), ya que todo indica que está más desarrollado y actualizada la herramienta que por ejemplo LTIB, si se utiliza Freescale. Me quedé sin espacio en el disco al 80% del proceso... consume muchísimo de espacio porque baja y compila absolutamente todo... se habla, dependiendo de las características de la imagen a crear, de entre 20-40gB por lo menos (mi caso es más el segundo). En estas semanas voy a volver a intentarlo, porque soporta varios micros conocidos y está bastante activo el tema. Aviso novedades si este modo agiliza el tema del thread.