Comments (13)
Hello,
I am successfully building and booting a core-weston-image, using meta-webkit master branch.
How can i get 'cog' to display full screen browser of my custom URL in kiosk mode at boot time?
That depends on the WPE backend used. Some backends allow configuration of the resolution via environment variables. Check https://github.com/Igalia/meta-webkit/wiki/WPE (read the description of the backends at the bottom, where it talks about the environment variables)
Currently, I am invoking cog manually, but it does not display full screen at all.
And how can I specify which browser to use? What is the default browser being used?
Cog is the browser :)
I am able to launch and access websites like youtube, but there is a fair amount of macro-blocking during playback. I suspect hardware acceleration is not enabled on my x86 target.
Is anyone using Chromium here? Is that being provided via meta-browser?
This layer doesn't provide chromium recipes. If you are looking for Chromium check meta-browser (and if more specifically you are looking for chromium on wayland check our fork of that at https://github.com/Igalia/meta-browser )
Any help will be appreciated.
from meta-webkit.
Thank you very much for that clarification.
I am using 'mesa' as the WPE backend because my platform is x86. Is this ok?
I will look up the link provided to see how that meets my requirements.
But so far, it is looking good :)
from meta-webkit.
I am using 'mesa' as the WPE backend because my platform is x86. Is this ok?
For backend mesa, there isn't any environment variable to set the resolution (AFAIK). You would have to patch it.
But with mesa-based graphics (x86), you can use instead of mesa backend the new wpebackend-fdo.
And then with Cog and wpebackend-fdo you can enable full-screen on cog by setting:
export COG_PLATFORM_FDO_VIEW_FULLSCREEN=1
or any custom resolution with
export COG_PLATFORM_FDO_VIEW_WIDTH=1920
export COG_PLATFORM_FDO_VIEW_HEIGHT=1080
from meta-webkit.
Hi Carlos, when i change backend to be 'fdo', i get the following build error:
It builds ok with backend set to 'mesa'.
Any ideas please?
| ERROR: oe_runmake failed
| /home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/recipe-sysroot-native/usr/bin/x86_64-poky-linux/x86_64-poky-linux-gcc -DCOG_INSIDE_COG__=1 -DG_LOG_DOMAIN="Cog" -Dcogplatform_fdo_EXPORTS -I/home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/build -I/home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/git/wayland -I/home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/recipe-sysroot/usr/include/wpe-webkit-0.1 -I/home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/recipe-sysroot/usr/include/libsoup-2.4 -I/home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/recipe-sysroot/usr/include/libxml2 -I/home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/recipe-sysroot/usr/include/glib-2.0 -I/home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/recipe-sysroot/usr/lib/glib-2.0/include -I/home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/recipe-sysroot/usr/include/wpe-fdo-0.1 -I/home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/recipe-sysroot/usr/include/wpe-0.1 -I/home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/recipe-sysroot/usr/include/libdrm -I/home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/git/core -m64 -march=corei7 -mtune=corei7 -mfpmath=sse -msse4.2 --sysroot=/home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/recipe-sysroot -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=/home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0=/usr/src/debug/cog/20180703-r0 -fdebug-prefix-map=/home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/recipe-sysroot-native= -fdebug-prefix-map=/home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/recipe-sysroot= -m64 -march=corei7 -mtune=corei7 -mfpmath=sse -msse4.2 --sysroot=/home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/recipe-sysroot -fPIC -pthread -std=gnu99 -o CMakeFiles/cogplatform-fdo.dir/platform/cog-platform-fdo.c.o -c /home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/git/platform/cog-platform-fdo.c
| /home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/git/platform/cog-platform-fdo.c: In function 'on_surface_frame':
| /home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/git/platform/cog-platform-fdo.c:997:9: warning: implicit declaration of function 'wpe_view_backend_exportable_fdo_egl_dispatch_release_image' [-Wimplicit-function-declaration]
| wpe_view_backend_exportable_fdo_egl_dispatch_release_image (wpe_host_data.exportable,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| /home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/git/platform/cog-platform-fdo.c: In function 'cog_platform_get_view_backend':
| /home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/git/platform/cog-platform-fdo.c:1356:19: error: variable 'exportable_egl_client' has initializer but incomplete type
| static struct wpe_view_backend_exportable_fdo_egl_client exportable_egl_client = {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| /home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/git/platform/cog-platform-fdo.c:1357:9: error: unknown field 'export_egl_image' specified in initializer
| .export_egl_image = on_export_egl_image,
| ^
| /home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/git/platform/cog-platform-fdo.c:1357:29: warning: excess elements in struct initializer
| .export_egl_image = on_export_egl_image,
| ^~~~~~~~~~~~~~~~~~~
| /home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/git/platform/cog-platform-fdo.c:1357:29: note: (near initialization for 'exportable_egl_client')
| /home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/git/platform/cog-platform-fdo.c:1356:62: error: storage size of 'exportable_egl_client' isn't known
| static struct wpe_view_backend_exportable_fdo_egl_client exportable_egl_client = {
| ^~~~~~~~~~~~~~~~~~~~~
| /home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/git/platform/cog-platform-fdo.c:1361:9: warning: implicit declaration of function 'wpe_view_backend_exportable_fdo_egl_create' [-Wimplicit-function-declaration]
| wpe_view_backend_exportable_fdo_egl_create (&exportable_egl_client,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| CMakeFiles/cogplatform-fdo.dir/build.make:65: recipe for target 'CMakeFiles/cogplatform-fdo.dir/platform/cog-platform-fdo.c.o' failed
| make[2]: *** [CMakeFiles/cogplatform-fdo.dir/platform/cog-platform-fdo.c.o] Error 1
| make[2]: Leaving directory '/home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/build'
| CMakeFiles/Makefile2:107: recipe for target 'CMakeFiles/cogplatform-fdo.dir/all' failed
| make[1]: *** [CMakeFiles/cogplatform-fdo.dir/all] Error 2
| make[1]: *** Waiting for unfinished jobs....
| [ 93%] Linking C executable cog
| /home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/recipe-sysroot-native/usr/bin/cmake -E cmake_link_script CMakeFiles/cog.dir/link.txt --verbose=1
| /home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/recipe-sysroot-native/usr/bin/x86_64-poky-linux/x86_64-poky-linux-gcc -m64 -march=corei7 -mtune=corei7 -mfpmath=sse -msse4.2 --sysroot=/home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/recipe-sysroot -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=/home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0=/usr/src/debug/cog/20180703-r0 -fdebug-prefix-map=/home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/recipe-sysroot-native= -fdebug-prefix-map=/home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/recipe-sysroot= -m64 -march=corei7 -mtune=corei7 -mfpmath=sse -msse4.2 --sysroot=/home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/recipe-sysroot -m64 -march=corei7 -mtune=corei7 -mfpmath=sse -msse4.2 --sysroot=/home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/recipe-sysroot -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed CMakeFiles/cog.dir/cog.c.o -o cog -Wl,-rpath,/home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/build: -rdynamic libcogcore.so.0.1.0 -ldl -lWPEWebKit-0.1 -lsoup-2.4 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lWPEBackend-0.1 -lsoup-2.4 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lWPEBackend-0.1
| make[2]: Leaving directory '/home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/build'
| [ 93%] Built target cog
| make[1]: Leaving directory '/home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/build'
| Makefile:130: recipe for target 'all' failed
| make: *** [all] Error 2
| ERROR: Function failed: do_compile (log file is located at /home/cchilumbu/projects/yocto-dr0081/build-aaeon/tmp/work/corei7-64-poky-linux/cog/20180703-r0/temp/log.do_compile.132131)
ERROR: Task (/home/cchilumbu/projects/yocto-dr0081/sources/meta-webkit/recipes-browser/cog/cog_git.bb:do_compile) failed with exit code '1'
NOTE: Tasks Summary: Attempted 5893 tasks of which 5286 didn't need to be rerun and 1 failed.
Summary: 1 task failed:
/home/cchilumbu/projects/yocto-dr0081/sources/meta-webkit/recipes-browser/cog/cog_git.bb:do_compile
from meta-webkit.
Because of the build failure in trying to use 'wpebackend-fdo', I have reverted to using 'wpebackend-mesa' for now.
However, I can not launch browser into full screen or resize it once launched.
I am also getting a lot of macro-blocking when playing youtube content. I suspect there are settings in 'Cog' that I can tweak to solve this?
Any chance of help please?
from meta-webkit.
That build error seems to be caused because the graphic library headers (mesa) misses some features? Just guessing.. but an idea may be to review the Mesa packageconfig options to ensure everything related to wayland, gles2 and dri/drm is enabled.
Another alternative approach to your goal ("Cog full-screen") is to try with wpebackend-rdk/wayland and set this environment variables matching your screen resolution before start.
# set on conf/local.conf
PREFERRED_PROVIDER_virtual/wpebackend = "wpebackend-rdk"
PACKAGECONFIG_pn-wpebackend-rdk = "wayland"
# on the board/machine running WPE
export WPE_INIT_VIEW_WIDTH=1280
export WPE_INIT_VIEW_HEIGHT=720
cog https://google.com
from meta-webkit.
Hello Carlos,
With the suggested changes, the full screen seems to work for a short while before target crashes :(
Actually the target seems to always crash after attempting to playback youtube content.
And the macro-blocking is still there :(
I am using 'core-image-weston', with rdk backend.
I am happy to try out further suggestions.
Thanks.
from meta-webkit.
Actually the target seems to always crash after attempting to playback youtube content.
And the macro-blocking is still there :(
Well, that's a different issue.
Just guessing, but that may be caused by missing the required gstreamer decoders for the media you are trying to play? If you don't have a hardware-based decoder supported by gstreamer, then you have to add at least the gstreamer software based decoders to the image. To do that, you have to add this in your conf/local.conf file
IMAGE_INSTALL_append = " gstreamer1.0-libav"
LICENSE_FLAGS_WHITELIST_append = " commercial"
from meta-webkit.
Thanks Carlos,
The full screen is working now, and target is not crashing when I set it before launching cog.
However, I am still getting macro-blocking when I playback youtube content. Could it be that cog is not using gpu acceleration? How can I set this?
Also, while in youtube, if i enable 'Full Screen' mode, the target crashes.
Any ideas please?
Many thanks
from meta-webkit.
Let me list pending issues:
-
Macro-blocking when using cog browser. I do not see this with Chromium or MPV.
-
Target crashes when youtube switches to full screen mode. I do not see this with Chromium or MPV.
-
Full screen mode is NOT working as expected as I reported earlier. Screen size remains the same, and background is blacked out. So Full Screen cog did NOT work.
-
While launching cog, I get a white screen first before page is loaded.
from meta-webkit.
Regarding the macro-block issues, can you try to play videos with gst-play-1.0
and see if those glitches are also visible there? If it's the case, please report a bug to the meta-gstreamer1.0 maintainers.
from meta-webkit.
Just FYI if anyone would come across errors as in the post: #22 (comment)
The error means exactly what is says: impilict function declaration
. Generally, the given cog
release was not compatible with the 0.1
(which was picked by default) release of the wpabackend-fdo
- for example the implementation of the following function was missing:
'wpe_view_backend_exportable_fdo_egl_dispatch_release_image' [-Wimplicit-function-declaration]
Ideally, if checks like this (version compatibility) would be checked during the configuration phase.
from meta-webkit.
The backlog is a bit hard to follow. Is there any issue left to address?
As a general remark, I would recommend to use the wpewebkit mailing list (https://lists.webkit.org/mailman/listinfo/webkit-wpe) for discussions instead of this issue tracker.
from meta-webkit.
Related Issues (20)
- Cog with drm frame buffer on Intel not working HOT 3
- Network freeze observed through websocket client running on page HOT 5
- cog not working on hardknott HOT 10
- vpu acceleration not working on kirkstone for a i.mx8 mini HOT 1
- no pointer mouse in kirkstone? HOT 4
- get_drm_fd error on stm32 HOT 9
- video src=rtsp:// HOT 5
- wpewebkit 2.38.4 build failure HOT 5
- WebkitGTK issue with libmanette dependency HOT 1
- core-image-weston build failure when adding wpewebkit and cog to IMAGE_INSTALL in local.conf HOT 2
- CMake configure error wpewebkit.2.40.1, AVIF (libavif) not found HOT 3
- `libavif` does not build with LLVM/clang as the default toolchain HOT 4
- EGL_NOT_INITIALIZED issue HOT 24
- Error when building cog and webkitgtk HOT 2
- Error while loading shared libraries: libwebkit2gtk-4.0 HOT 2
- When drawing a pixel, also the pixel above is impacted HOT 1
- Very disturbed output? HOT 3
- Start Cog as Service HOT 3
- Re-add the 0001-FELightningNEON.cpp-fails-to-build-NEON-fast-path-se.patch HOT 3
- RDEPENDS in the old override syntax
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from meta-webkit.