diff options
13 files changed, 122 insertions, 84 deletions
diff --git a/meta-agl-bsp/meta-freescale-layer/recipes-graphics/wayland/weston-ini-conf/fbdev.cfg b/meta-agl-bsp/meta-freescale-layer/recipes-graphics/wayland/weston-ini-conf/fbdev.cfg deleted file mode 100644 index b1a1f3cc9..000000000 --- a/meta-agl-bsp/meta-freescale-layer/recipes-graphics/wayland/weston-ini-conf/fbdev.cfg +++ /dev/null @@ -1,3 +0,0 @@ -[output] -name=fbdev -transform=270 diff --git a/meta-agl-bsp/meta-raspberrypi/recipes-graphics/wayland/weston-ini-conf.bbappend b/meta-agl-bsp/meta-raspberrypi/recipes-graphics/wayland/weston-ini-conf.bbappend index 33dfd6a23..086fff751 100644 --- a/meta-agl-bsp/meta-raspberrypi/recipes-graphics/wayland/weston-ini-conf.bbappend +++ b/meta-agl-bsp/meta-raspberrypi/recipes-graphics/wayland/weston-ini-conf.bbappend @@ -1,3 +1,3 @@ -FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" +FILESEXTRAPATHS_prepend_raspberrypi := "${THISDIR}/${PN}:" -SRC_URI += "file://dsi.cfg" +SRC_URI_append_raspberrypi = " file://dsi.cfg" diff --git a/meta-agl-bsp/meta-rcar-gen3/recipes-graphics/wayland/weston-ini-conf.bbappend b/meta-agl-bsp/meta-rcar-gen3/recipes-graphics/wayland/weston-ini-conf.bbappend index 44615c331..2fd50c3d9 100644 --- a/meta-agl-bsp/meta-rcar-gen3/recipes-graphics/wayland/weston-ini-conf.bbappend +++ b/meta-agl-bsp/meta-rcar-gen3/recipes-graphics/wayland/weston-ini-conf.bbappend @@ -1,12 +1,15 @@ -FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" +FILESEXTRAPATHS_prepend_rcar-gen3 := "${THISDIR}/${PN}:" -SRC_URI_append_ulcb = " file://kingfisher_output.cfg" -SRC_URI_append_ebisu = " file://ebisu_output.cfg" -SRC_URI_append_salvator-x = " file://salvator-x_output.cfg" +SRC_URI_append_rcar-gen3 = " \ + file://kingfisher_output.cfg \ + file://ebisu_output.cfg \ + file://salvator-x_output.cfg \ +" -do_configure() { - echo repaint-window=34 >> ${WORKDIR}/core.cfg +WESTON_FRAGMENTS_append_ulcb = " kingfisher_output" +WESTON_FRAGMENTS_append_ebisu = " ebisu_output" +WESTON_FRAGMENTS_append_salvator-x = " salvator-x_output" - echo transition-duration=300 >> ${WORKDIR}/ivishell.cfg - echo cursor-theme=default >> ${WORKDIR}/ivishell.cfg +do_configure_append_rcar-gen3() { + echo repaint-window=34 >> ${WORKDIR}/core.cfg } diff --git a/meta-agl-bsp/meta-ti/recipes-graphics/wayland/weston-ini-conf.bbappend b/meta-agl-bsp/meta-ti/recipes-graphics/wayland/weston-ini-conf.bbappend deleted file mode 100644 index 684031eae..000000000 --- a/meta-agl-bsp/meta-ti/recipes-graphics/wayland/weston-ini-conf.bbappend +++ /dev/null @@ -1,7 +0,0 @@ -FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" - -# While we could have a panel attached to HDMI, we only use the default -# panel isntead. -SRC_URI_remove_dra7xx-evm = "file://hdmi-a-1-270.cfg" -# Our DPI panel shows up as "UNNAMED-1" -SRC_URI_append_dra7xx-evm = " file://unnamed.cfg" diff --git a/meta-agl-bsp/meta-ti/recipes-graphics/wayland/weston-ini-conf/unnamed.cfg b/meta-agl-bsp/meta-ti/recipes-graphics/wayland/weston-ini-conf/unnamed.cfg deleted file mode 100644 index 29544932e..000000000 --- a/meta-agl-bsp/meta-ti/recipes-graphics/wayland/weston-ini-conf/unnamed.cfg +++ /dev/null @@ -1,3 +0,0 @@ -[output] -name=UNNAMED-1 -transform=270 diff --git a/meta-agl-core/recipes-graphics/wayland/Readme.weston-ini-conf b/meta-agl-core/recipes-graphics/wayland/Readme.weston-ini-conf index bbd5a80c4..bb66fd2bb 100644 --- a/meta-agl-core/recipes-graphics/wayland/Readme.weston-ini-conf +++ b/meta-agl-core/recipes-graphics/wayland/Readme.weston-ini-conf @@ -1,10 +1,11 @@ ##Generate a weston.ini file: -To modify any of the default sections (core, shell, ivi-shell), add a -do_configure() function to your bbappend: +To modify any of the default sections (core, shell), add a +do_configure() function to your bbappend, using machine (e.g. h3ulcb) +overrides (i.e. use the MACHINE name where "machine" is used below): ''' -do_configure() { +do_configure_machine() { echo repaint-window=34 >> ${WORKDIR}/core.cfg echo transition-duration=300 >> ${WORKDIR}/ivishell.cfg @@ -13,22 +14,30 @@ do_configure() { ''' or: ''' -do_configure() { +do_configure_machine() { sed -i -e 's/drm-backend/fbdev-backend/' ${WORKDIR}/core.cfg } ''' -To change the display from the default assumption of an HDMI-1-A connected -screen that needs to be rotated 270 degrees: - -''' -SRC_URI_remove = "file://hdmi-a-1-270.cfg" -SRC_URI += "file://hdmi-a-1-90.cfg" +To add new non-display sections, just list them in SRC_URI and WESTON_FRAGMENTS: ''' +FILESEXTRAPATHS_prepend_machine := "${THISDIR}/${PN}:" + +SRC_URI_append_machine = " file://foo.cfg" +WESTON_FRAGMENTS_append_machine = " foo" -To add new sections just list them in SRC_URI: ''' -FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" -SRC_URI += "file://dsi.cfg" +To change the display, for example from the default assumption of an +HDMI-1-A connected screen that needs to be rotated 270 degrees to one +that is rotated 90 degrees, redefine the WESTON_DISPLAYS variable: + +''' +WESTON_DISPLAYS_machine = "hdmi-a-1-90" ''' + +Note that the weston-ini-conf recipe automatically generates a landscape +orientation version of weston.ini by replacing 90/270 degree rotation +fragments for HDMI-A-1 and the virtual output into 180 and 0 degrees, +respectively. This landscape configuration can be used in an image by +pulling in weston-ini-conf-landscape instead of weston-ini-conf. diff --git a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bb b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bb index 16c0f046d..70130f74a 100644 --- a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bb +++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bb @@ -1,41 +1,86 @@ -SUMMARY = "Startup script and systemd unit file for the Weston Wayland compositor" +SUMMARY = "Configuration file for the Weston and AGL Wayland compositors" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" -SRC_URI = "file://core.cfg \ - file://shell.cfg \ - file://hdmi-a-1-270.cfg \ - " - -# cluster and html5-landscape -# core, shell, hdmi-a-1-180.cfg, virtual-landscape.cfg -SRC_URI_remove_landscape = " \ - file://hdmi-a-1-270.cfg \ +SRC_URI = " \ + file://core.cfg \ + file://shell.cfg \ file://hdmi-a-1-90.cfg \ - file://virtual.cfg \ -" -SRC_URI_append_landscape = " \ file://hdmi-a-1-180.cfg \ - file://virtual-landscape.cfg \ + file://hdmi-a-1-270.cfg \ + file://remote-output.cfg \ + file://virtual-270.cfg \ + file://virtual-0.cfg \ " - S = "${WORKDIR}" -PACKAGE_ARCH = "${MACHINE_ARCH}" +inherit update-alternatives + +# Default primary display/orientation fragment +WESTON_DISPLAYS ?= "hdmi-a-1-270" + +# Configuration fragments to use in weston.ini.* +# Note that some may be replaced/removed when building the landscape +# configuration. +WESTON_FRAGMENTS = "core shell ${WESTON_DISPLAYS}" + +# On-target weston.ini directory +weston_ini_dir = "${sysconfdir}/xdg/weston" do_compile() { - # Put all of our cfg files together. - rm -f ${WORKDIR}/weston.ini - for F in ${WORKDIR}/*.cfg; do - cat $F >> ${WORKDIR}/weston.ini - echo >> ${WORKDIR}/weston.ini + # Put all of our cfg files together for a default portrait + # orientation configuration + rm -f ${WORKDIR}/weston.ini.default + for F in ${WESTON_FRAGMENTS}; do + cat ${WORKDIR}/${F}.cfg >> ${WORKDIR}/weston.ini.default + echo >> ${WORKDIR}/weston.ini.default done - sed -i -e '$ d' ${WORKDIR}/weston.ini + sed -i -e '$ d' ${WORKDIR}/weston.ini.default + + # Do it again, but filter fragments to configure for landscape + rm -f ${WORKDIR}/weston.ini.landscape + for F in ${WESTON_FRAGMENTS}; do + if echo $F | grep '^hdmi-a-1-\(90\|270\)$'; then + F="hdmi-a-1-180" + elif echo $F | grep '^virtual-270$'; then + F="virtual-0" + fi + cat ${WORKDIR}/${F}.cfg >> ${WORKDIR}/weston.ini.landscape + echo >> ${WORKDIR}/weston.ini.landscape + done + sed -i -e '$ d' ${WORKDIR}/weston.ini.landscape } do_install_append() { - WESTON_INI_CONFIG=${sysconfdir}/xdg/weston - install -d ${D}${WESTON_INI_CONFIG} - install -m 0644 ${WORKDIR}/weston.ini ${D}${WESTON_INI_CONFIG}/weston.ini + install -d ${D}${weston_ini_dir} + install -m 0644 ${WORKDIR}/weston.ini.default ${D}${weston_ini_dir}/ + install -m 0644 ${WORKDIR}/weston.ini.landscape ${D}${weston_ini_dir}/ } + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +# Use the alternative mechanism to handle multiple packages providing +# weston.ini. This seems simpler than other possible approaches. +# Note that for now the generated packages are being marked as +# incompatible with each other for simplicity, that can be changed if +# a usecase where switching between alternatives at runtime is desirable +# appears. + +ALTERNATIVE_LINK_NAME[weston.ini] = "${weston_ini_dir}/weston.ini" + +RDEPENDS_${PN} = "weston-init" +RPROVIDES_${PN} = "weston-ini" +RCONFLICTS_${PN} = "${PN}-landscape" +ALTERNATIVE_${PN} = "weston.ini" +ALTERNATIVE_TARGET_${PN} = "${weston_ini_dir}/weston.ini.default" + +PACKAGE_BEFORE_PN += "${PN}-landscape" + +FILES_${PN}-landscape = "${weston_ini_dir}/weston.ini.landscape" + +RDEPENDS_${PN}-landscape = "weston-init" +RPROVIDES_${PN}-landscape = "weston-ini" +RCONFLICTS_${PN}-landscape = "${PN}" +ALTERNATIVE_${PN}-landscape = "weston.ini" +ALTERNATIVE_TARGET_${PN}-landscape = "${weston_ini_dir}/weston.ini.landscape" diff --git a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bbappend b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bbappend index 179004094..0f51d5971 100644 --- a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bbappend +++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bbappend @@ -2,11 +2,10 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" PACKAGE_ARCH = "${MACHINE_ARCH}" -SRC_URI += "${@bb.utils.contains("DISTRO_FEATURES", "weston-remoting", "file://remote-output.cfg", "",d)}" - +WESTON_DISPLAYS_append = "${@bb.utils.contains("DISTRO_FEATURES", "weston-remoting", " remote-output", "", d)}" # For virtual machines and intel-corei7-64 we want to support both the HDMI-A-1 # and Virtual-1 outputs. This allows us to run virtual images on real hardware # and vice versa. -SRC_URI_append_qemuall = " file://virtual.cfg" -SRC_URI_append_intel-corei7-64 = " file://virtual.cfg" +WESTON_DISPLAYS_append_qemuall = " virtual-270" +WESTON_DISPLAYS_append_intel-corei7-64 = " virtual-270" diff --git a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-180.cfg b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-180.cfg new file mode 100644 index 000000000..7648c779b --- /dev/null +++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-180.cfg @@ -0,0 +1,4 @@ +# A display is connected to HDMI-A-1 +[output] +name=HDMI-A-1 +transform=180 diff --git a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/virtual-0.cfg b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/virtual-0.cfg new file mode 100644 index 000000000..d69253639 --- /dev/null +++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/virtual-0.cfg @@ -0,0 +1,3 @@ +[output] +name=Virtual-1 +mode=1920x1080 diff --git a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/virtual-270.cfg b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/virtual-270.cfg new file mode 100644 index 000000000..0e5b536a6 --- /dev/null +++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/virtual-270.cfg @@ -0,0 +1,4 @@ +[output] +name=Virtual-1 +mode=1920x1080 +transform=270 diff --git a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/virtual.cfg b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/virtual.cfg deleted file mode 100644 index 25a8fae94..000000000 --- a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/virtual.cfg +++ /dev/null @@ -1,18 +0,0 @@ -[output] -name=Virtual-1 -transform=270 -mode=1920x1080 -#mode=1600x1200 -#mode=1680x1050 -#mode=1400x1050 -#mode=1600x900 -#mode=1280x1024 -#mode=1440x900 -#mode=1280x960 -#mode=1360x768 -#mode=1280x800 -#mode=1280x768 -#mode=1280x720 -#mode=800x600 -#mode=848x480 -#mode=640x480 diff --git a/meta-agl-core/recipes-graphics/wayland/weston-init_aglcore.inc b/meta-agl-core/recipes-graphics/wayland/weston-init_aglcore.inc index 51c59ae4d..fc6ab5d97 100644 --- a/meta-agl-core/recipes-graphics/wayland/weston-init_aglcore.inc +++ b/meta-agl-core/recipes-graphics/wayland/weston-init_aglcore.inc @@ -1,6 +1,8 @@ +SYSTEMD_AUTO_ENABLE = "enable" + do_install_append() { # Remove upstream weston.ini to avoid conflict with weston-ini-conf package rm -f ${D}${sysconfdir}/xdg/weston/weston.ini } -SYSTEMD_AUTO_ENABLE = "enable" +RDEPENDS_${PN} += "weston-ini" |