2011-06-23 13 views
21

Pracuję nad projektem, w którym muszę uruchomić Google Chrome na Linuksie FrameBuffer, muszę uruchomić go bez zależności od systemu okienkowego (powinien on rysować na buforze, który dostarczamy do rysowania, to będzie sprawić, by jego portowanie do dowolnego systemu wbudowanego było bardzo łatwe), nie potrzebuję jego GUI z wieloma kartami, po prostu potrzebuję swojego okna renderera w buforze, czy jakiekolwiek ciało kiedykolwiek próbowało tego? Jakiej pomocy powinienem użyć w tym celu?Google Chrome na Linuksie FrameBuffer

+4

Myślę, że lepiej odszukać WebKit, niż kompletną przeglądarkę Chromium. –

+0

@Andrew Aylett, Cóż, szukam przeglądarki chrome, ponieważ port chrome jest jedynym stabilnym, aktywnym portem, wypróbowałem najnowszy port Gtk i Qt. Nie renderuje on wielu stron poprawnie. – SunnyShah

+0

Nie związanych z programowaniem http://stackoverflow.com/tags/embedded/info, retagged. –

Odpowiedz

13

Jeśli potrzebujesz mieć bezpośrednią kontrolę nad funkcjami okna lub chcesz zaglądać w danych DOM, to właściwym sposobem rozwiązania tego problemu jest prawdopodobnie spojrzenie na osadzanie webkita bezpośrednio. To będzie znacznie szybsze i czystsze niż to, co zamierzam zasugerować.

Przypuśćmy teraz, że nie potrzebujesz tej wymyślnej kontroli i że jesteś naprawdę leniwy. Starożytnym, nisko technicznym rozwiązaniem problemu może być utworzenie wirtualnego bufora ramek, a następnie bezpośrednie odczytanie jego zawartości. Aby to zrobić, można skonfigurować Xvfb na serwerze:

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

Xvfb jest stary UNIX narzędzie, które pozwala na stworzenie wirtualnego serwera X z niezależnie od typu konfiguracji chcesz. Co ważniejsze, można go skonfigurować tak, aby zapisywał zawartość ekranu serwera X bezpośrednio do pliku odwzorowanego w pamięci! Możesz również ustawić go tak, aby korzystał z pamięci współdzielonej, która jest nieco szybsza, ale i bardziej skomplikowana.

+2

Cóż, mam zamiar uruchomić widelec google chrome i uczynić go niezależnym od zależności Gtk, wiem, że jest to ogromna praca w tym zakresie, ale w branży wbudowanej to może zdziałać cuda – SunnyShah

+0

Będę aktualizować moje lokalizacja repozytorium kodu Google tutaj: – SunnyShah

1

Projekt:

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

Osiąga to. Działa Webkit na wirtualnym wyświetlaczu i przechwytuje renderowany wynik w postaci pliku PDF. Możesz dostosować to zrobić coś innego.

LUB możesz utworzyć wyświetlacz z tigthvnc i ustawić zmienną DISPLAY, aby Chrome wyświetlała się na tym ekranie.

+0

wkhtmltopdf jest oparty na QtWebkit, muszę pracować tylko z portem webkita Google Chrome (ponieważ jest to jedyny stabilny ma bardzo mniej problemów z renderowaniem.) – SunnyShah

+0

czy możesz podać nam kilka przykładów stron, które nie wyświetlały się poprawnie na stronie wkhtmltopdf? –

+0

spróbuj, http://www.yatra.com w QtWebkit i tak samo na mozilla lub Chrome, będziesz mógł znaleźć różnicę – SunnyShah

4

Sądzę, że będziesz miał więcej szczęścia z uzbl i GTK/DirectFB. Ten sam silnik i działa z javascripts. Jeśli chodzi o problem z czatem na Facebooku, po prostu trzeba zmienić ciąg znaków user-agent.

+0

+1 za link, bardzo interesujące rozwiązanie – Krumelur

1

Istnieje Origyn Web Browser, która ma być wbudowaną przeglądarką opartą na WebKit, która wygląda na przenośną i nie zależy od "ciężkich" bibliotek (takich jak GTK). Ich strona internetowa to http://www.sand-labs.org/owb, ale wygląda na to, że ich baza danych się zawiesiła, co może trochę martwić.

1

Możesz kupić jedną z pozostałych 10 (lub mniej) tablic OGD1. http://en.wikipedia.org/wiki/Open_Graphics_Project

Następnie można rozmawiać bezpośrednio ze sprzętem za pomocą biblioteki libpci.

Jednak nadal będzie potrzebny kod, który rysuje obraz w buforze pamięci.

Zdaję sobie sprawę, że ta odpowiedź jest bardziej bezwstydną wtyczką. Ale ludzie, którzy są zainteresowani twoim pytaniem, mogą chcieć takiej tablicy. Mam już taką tablicę, która bardzo by pomogła, gdyby miała więcej ekspozycji.

1

Proponuję pomocą webkit2pdf pakiet (który jest dostępny dla wielu dystrybucji systemu Linux). Następnie użyj funkcji buforowania ramek dla programu bufora ramek fbgs, który wyświetla pliki PDF bezpośrednio w buforze ramki.