2011-06-23 26 views
21

Estoy trabajando en un proyecto donde necesito ejecutar Google Chrome sobre Linux FrameBuffer, necesito ejecutarlo sin ninguna dependencia del sistema de ventanas (debe dibujar en el buffer que le proporcionamos para dibujar, esto lo hará hacer que su portabilidad a cualquier sistema integrado sea muy fácil), no necesito su GUI de múltiples pestañas, solo necesito su ventana de renderizador en el búfer, ¿alguna vez alguien ha intentado esto? ¿Alguna ayuda sobre qué enfoque debo usar para esto?Google Chrome sobre Linux FrameBuffer

+4

Creo que sería mejor que miraras WebKit, en lugar de ver el navegador completo de Chromium. –

+0

@Andrew Aylett, Bueno, estoy buscando el navegador Chrome, porque el puerto Chrome es el único puerto activo estable, probé el último puerto Gtk y Qt. No representa muchos sitios web correctamente. – SunnyShah

+0

Programación no integrada relacionada http://stackoverflow.com/tags/embedded/info, retagged. –

Respuesta

13

Si necesita tener un control directo de las funciones de la ventana, o quiere hurgar en los datos de DOM, entonces la mejor manera de resolver este problema es mirar directamente a la incrustación de webkit. Esto será mucho más rápido y más limpio de lo que estoy a punto de sugerir.

Ahora, supongamos que no necesita todo ese control sofisticado y que es realmente vago. Una solución antigua y de baja tecnología para su problema podría ser crear un búfer virtual y luego leer sus contenidos directamente. Para ello, se puede configurar en su servidor XVFB:

http://www.x.org/releases/X11R7.6/doc/man/man1/Xvfb.1.xhtml

XVFB Es una antigua herramienta UNIX que permite crear un x-servidor virtual con cualquier tipo de configuración que desea. Más importante aún, ¡se puede configurar para escribir el contenido de la pantalla de su servidor X directamente en un archivo mapeado en la memoria! También puede configurarlo para usar la memoria compartida, que es un poco más rápida pero también más complicada.

+2

Bueno, estoy planeando comenzar una bifurcación de Google Chrome y hacerlo independiente de la dependencia de Gtk, sé que esto es un gran trabajo involucrado en esto, pero en la industria integrada esto puede hacer maravillas. – SunnyShah

+0

Voy a actualizar mi ubicación del repositorio del código de Google aquí. – SunnyShah

1

Este proyecto:

http://code.google.com/p/wkhtmltopdf/

consigue que. Ejecuta Webkit en una pantalla virtual y captura el resultado representado en forma de PDF. Puedes personalizar eso y hacer otra cosa.

O puede crear una pantalla con tigthvnc y establecer la variable DISPLAY para que Chrome se muestre en esa pantalla.

+0

wkhtmltopdf se basa en QtWebkit, tengo que trabajar solo con el puerto de webkit de Google Chrome (porque es el único estable tiene menos problemas de procesador. – SunnyShah

+0

¿podría darnos algunos ejemplos de sitios web que no se procesaron correctamente en wkhtmltopdf? –

+0

prueba, http://www.yatra.com en QtWebkit y lo mismo en mozilla o Chrome, podrás encontrar la diferencia. – SunnyShah

4

Supongo que tendrás mejor suerte con uzbl y GTK/DirectFB. Mismo motor, y funciona con javascripts. Para el problema del chat de Facebook, creo que solo tienes que cambiar la cadena user-agent.

+0

+1 para el enlace, solución muy interesante – Krumelur

1

Existe el navegador web Origyn, que se supone que es un navegador basado en WebKit que parece portátil y no depende de librerías "pesadas" (como GTK). Su página web es http://www.sand-labs.org/owb pero parece que su base de datos se colgó, lo cual es un poco preocupante.

1

Puede comprar una de las 10 placas OGD1 restantes (aproximadamente). http://en.wikipedia.org/wiki/Open_Graphics_Project

Luego puede hablar directamente con el hardware usando libpci.

Sin embargo, seguirá necesitando un código que dibuje una imagen en un búfer de memoria.

Me doy cuenta de que esta respuesta es más un enchufe desvergonzado. Pero las personas que estén interesadas en su pregunta tal vez deseen tal consejo. Ya tengo una placa como esta y sería de mucha ayuda si tuviera más exposición.

1

sugiere emplear la webkit2pdf paquete (que está disponible para diferentes distribuciones de Linux). A continuación, utilice fbgs que es un contenedor para el fbi programa de búfer de trama, que muestra archivos PDF directamente en el búfer de trama.