Skip to content

meta-wpe-image is a Yocto BSP to build images with WPEWebKit for evaluation

License

Notifications You must be signed in to change notification settings

Igalia/meta-wpe-image

Folders and files

NameName
Last commit message
Last commit date
Feb 20, 2025
Feb 25, 2025
Jan 22, 2025
Jan 22, 2025
Jan 22, 2025
Jan 25, 2025
Feb 25, 2025
Jan 22, 2025
Jan 25, 2025
Jan 22, 2025
Jan 25, 2025
Jan 25, 2025
Jan 22, 2025
Feb 25, 2025
Jun 2, 2023
Jan 25, 2025
Jan 25, 2025
Jan 25, 2025
Mar 7, 2023
Mar 1, 2023
Mar 1, 2023
Jan 25, 2025
Jan 22, 2025
Mar 7, 2023

Repository files navigation

Getting the BSP

  • Install repo: apt-get install repo

  • Install the required Yocto dependencies in your system.

  • Create your workdir:

    CI_COMMIT_REF_NAME="main"
    YOCTO_RELEASE="kirkstone"
    
    mkdir -p ~/workdir/wpe-image
    cd ~/workdir/wpe-image
    repo init -u https://github.com/igalia/meta-wpe-image.git -m manifest-${YOCTO_RELEASE}.xml -b $CI_COMMIT_REF_NAME
    repo sync --force-sync

Activating your work environment

Several environments can be defined your build environment. For example:

  • RPI3:

    $ source setup-environment rpi3-mesa-wpe-nightly raspberrypi3-mesa poky-wayland layers.raspberrypi conf.wpe-nightly --update-config
  • RPI4-64 using the propietary graphics stack (vc4graphics):

    $ source setup-environment rpi4-mesa-wpe-nightly raspberrypi4-64-mesa poky-wayland layers.raspberrypi conf.wpe-nightly --update-config

See more options running the command with no arguments:

$ source setup-environment
Usage: setup-environment targetname
       setup-environment targetname machine distro bblayers presets --update-config

Targets:

<<new>>
mynewone
...

Machines:

...

Distros:

poky-wayland

Bitbake layers:

...

Presets:

...

Building the image

Once activated your working environment, you can build your target image:

 $ bitbake-layers show-recipes  "*image*" | grep -B 1 meta-wpe-image
core-image-weston-wpe:
  meta-wpe-image    1.0
...
rm -rf tmp
bitbake core-image-weston-wpe

The image will be available in tmp/deploy/images/<<machine>>/

SDK Toolchain

Preparing the SDK Toolchain

The following steps are for a Wandboard+mesa but you can reuse it with small changes for any other machine variant:

source setup-environment wandboard-mesa-wpe-base-trunk raspberrypi3-mesa poky-wayland layers.raspberrypi conf.wpe-nightly --update-config
rm -rf tmp
bitbake core-image-wpe-base -c populate_sdk
# The resulting image:
ls ./tmp/deploy/sdk/poky-wayland-*-raspberrypi3-mesa-toolchain-*.sh

Installing the SDK Toolchain

# execute the desired version
./tmp/deploy/sdk/poky-wayland-*-raspberrypi3-mesa-toolchain-*.sh -d ~/toolchain_env -y

Activating the SDK Toolchain

. ~/toolchain_env/environment-setup-*
$ env | grep OE
...
OECORE_SDK_VERSION=2.6.1
OECORE_NATIVE_SYSROOT="${HOME}"/toolchain_env/sysroots/x86_64-pokysdk-linux
OECORE_TARGET_OS=linux-gnueabi
OECORE_TARGET_ARCH=arm
...

$ env | grep poky
...
CC=arm-poky-linux-gnueabi-gcc  ...
CXX=arm-poky-linux-gnueabi-g++ ...
...

Running WPE launcher:

  • WPE with FDO backend in Weston: /usr/bin/wpe-exported-wayland https://wpewebkit.org
  • WPE with DRM backend directly in framebuffer: export WPE_DISPLAY="wpe-display-drm"; /usr/bin/wpe-exported-wayland https://wpewebkit.org

All this commands will execute the browsers as weston user.

How to contribute

Contributions are welcomed. Please send your patches as Pull Requests or fill a Issue report in case you need to ask for help.