summaryrefslogtreecommitdiffstats
path: root/meta-agl
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2017-10-18 09:38:05 -0400
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>2017-10-20 22:18:30 +0000
commit7f8b394a694491ffd94874c26fa83057efaa0dfc (patch)
tree0b845d3a5bece2d0985e01b1eed0f2aa86060177 /meta-agl
parent1c09a2155d1c5fe1701d33cc2567ebb53d7069b3 (diff)
weston-ini-conf: Rework to use fragments to construct weston.ini
Switch to constructing the weston.ini from fragments of files instead of variables and variable flags. This allows for much easier tracking of signatures by leveraging existing mechanisms. Update the Readme to explain how to do the various operations with fragments as well. Note that for QEMU we do not need to pass -show-cursor as it's already provided and we do want to change the VGA driver to one that reliably provides DRM support. For the HDMI connected screens, rather than name them by vendor name them first for connection and then required transformation for correct orientation. For board-specific options, move them to the board directories. When we need to change existing cfg options, rather than replace them the proper location to do this in is the do_configure function. Bug-AGL: SPEC-964 Change-Id: I2cceb4fd64f51eb2ab1d47419b77153cf02d7c12 Signed-off-by: Tom Rini <trini@konsulko.com> Reviewed-on: https://gerrit.automotivelinux.org/gerrit/11375 Reviewed-by: Stéphane Desneux <stephane.desneux@iot.bzh> Tested-by: Jenkins Job builder account <agl-jobbuilder@automotivelinux.org> ci-image-build: Jenkins Job builder account <agl-jobbuilder@automotivelinux.org> ci-image-boot-test: Jenkins Job builder account <agl-jobbuilder@automotivelinux.org> Reviewed-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
Diffstat (limited to 'meta-agl')
-rw-r--r--meta-agl/recipes-graphics/wayland/Readme.weston-ini-conf42
-rw-r--r--meta-agl/recipes-graphics/wayland/weston-ini-conf.bb61
-rw-r--r--meta-agl/recipes-graphics/wayland/weston-ini-conf/core.cfg4
-rw-r--r--meta-agl/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-270.cfg6
-rw-r--r--meta-agl/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-90.cfg6
-rw-r--r--meta-agl/recipes-graphics/wayland/weston-ini-conf/ivishell.cfg3
-rw-r--r--meta-agl/recipes-graphics/wayland/weston-ini-conf/screen.inc5
-rw-r--r--meta-agl/recipes-graphics/wayland/weston-ini-conf/screen_DSI.inc4
-rw-r--r--meta-agl/recipes-graphics/wayland/weston-ini-conf/screen_GeChic.inc6
-rw-r--r--meta-agl/recipes-graphics/wayland/weston-ini-conf/screen_dell.inc4
-rw-r--r--meta-agl/recipes-graphics/wayland/weston-ini-conf/screen_eGalax.inc4
-rw-r--r--meta-agl/recipes-graphics/wayland/weston-ini-conf/screen_qemu.inc18
-rw-r--r--meta-agl/recipes-graphics/wayland/weston-ini-conf/shell.cfg3
13 files changed, 57 insertions, 109 deletions
diff --git a/meta-agl/recipes-graphics/wayland/Readme.weston-ini-conf b/meta-agl/recipes-graphics/wayland/Readme.weston-ini-conf
index eb30a9a96..bbd5a80c4 100644
--- a/meta-agl/recipes-graphics/wayland/Readme.weston-ini-conf
+++ b/meta-agl/recipes-graphics/wayland/Readme.weston-ini-conf
@@ -1,36 +1,34 @@
-#Generate a weston.ini file:
+##Generate a weston.ini file:
-To generate the weston.ini file:
+To modify any of the default sections (core, shell, ivi-shell), add a
+do_configure() function to your bbappend:
'''
-[core]
-backend=drm-backend.so
-shell=desktop-shell.so
-'''
-
-Just create a Variable Flag:
+do_configure() {
+ echo repaint-window=34 >> ${WORKDIR}/core.cfg
+ echo transition-duration=300 >> ${WORKDIR}/ivishell.cfg
+ echo cursor-theme=default >> ${WORKDIR}/ivishell.cfg
+}
'''
-WESTONCORE[backend]??="drm-backend.so"
-WESTONCORE[shell]??="desktop-shell.so"
-'''
-
-And add it to the Variable Flag WESTONSECTION, with the name of the section:
+or:
'''
-WESTONSECTION[WESTONCORE]?="core"
+do_configure() {
+ sed -i -e 's/drm-backend/fbdev-backend/' ${WORKDIR}/core.cfg
+}
'''
-#You can custumize weston.ini by create a weston-ini-conf.bbappend:
+To change the display from the default assumption of an HDMI-1-A connected
+screen that needs to be rotated 270 degrees:
'''
-WESTONCORE[repaint-window] ??= "34"
+SRC_URI_remove = "file://hdmi-a-1-270.cfg"
+SRC_URI += "file://hdmi-a-1-90.cfg"
'''
-This will generate weston.ini file:
-
+To add new sections just list them in SRC_URI:
'''
-[core]
-backend=drm-backend.so
-shell=ivi-shell.so
-repaint-window=34
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+SRC_URI += "file://dsi.cfg"
'''
diff --git a/meta-agl/recipes-graphics/wayland/weston-ini-conf.bb b/meta-agl/recipes-graphics/wayland/weston-ini-conf.bb
index 0edc05d24..9ba49bf2e 100644
--- a/meta-agl/recipes-graphics/wayland/weston-ini-conf.bb
+++ b/meta-agl/recipes-graphics/wayland/weston-ini-conf.bb
@@ -2,57 +2,26 @@ SUMMARY = "Startup script and systemd unit file for the Weston Wayland composito
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690"
-S = "${WORKDIR}"
-
-require weston-ini-conf/screen.inc
-
-DEFAULT_SCREEN[transform]?="270"
-DEFAULT_SCREEN[name]?="HDMI-A-1"
-
-WESTONCORE[shell]??="desktop-shell.so"
-WESTONCORE[backend]??="drm-backend.so"
-WESTONCORE[require-input]??="false"
-
-WESTONSHELL[locking]="true"
-# hide panel
-WESTONSHELL[panel-location]="none"
+SRC_URI = "file://core.cfg \
+ file://ivishell.cfg \
+ file://shell.cfg \
+ file://hdmi-a-1-270.cfg \
+ "
+S = "${WORKDIR}"
-WESTONOUTPUT1[agl_screen]??="DEFAULT_SCREEN"
-
-WESTONSECTION[WESTONCORE]?="core"
-WESTONSECTION[WESTONSHELL]?="shell"
-WESTONSECTION[WESTONOUTPUT1]?="output"
-
-python do_generate_weston_init() {
- with open(d.getVar('WORKDIR', True)+"/weston.ini" ,'w') as weston_ini:
- dicoSection=d.getVarFlags('WESTONSECTION')
- keysSection=list(dicoSection.keys())
- keysSection.sort()
- for section in keysSection:
- weston_ini.writelines( "["+dicoSection[section]+"]\n")
- dicoSectionValues=d.getVarFlags(section)
- keysSectionValues=list(dicoSectionValues.keys())
- keysSectionValues.sort()
- for sectionValue in keysSectionValues:
- if (dicoSection[section] == "output" and sectionValue == "agl_screen"):
- screen=dicoSectionValues[sectionValue]
- dicoScreenConfig=d.getVarFlags(screen)
- keysScreenConfig=list(dicoScreenConfig.keys())
- keysScreenConfig.sort()
- for screenConfig in keysScreenConfig:
- weston_ini.writelines( screenConfig+"="+dicoScreenConfig[screenConfig]+"\n")
- else:
- weston_ini.writelines( str(sectionValue)+"="+str(dicoSectionValues[sectionValue])+"\n")
+PACKAGE_ARCH = "${MACHINE_ARCH}"
- weston_ini.writelines( "\n")
+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
+ done
+ sed -i -e '$ d' ${WORKDIR}/weston.ini
}
-#ar_src = d.getVarFlag('ARCHIVER_MODE', 'src', True)
-
-addtask do_generate_weston_init after do_compile before do_install
-do_generate_weston_init[vardeps] = "DEFAULT_SCREEN WESTONCORE WESTONSHELL WESTONOUTPUT1 WESTONSECTION"
-
do_install_append() {
WESTON_INI_CONFIG=${sysconfdir}/xdg/weston
install -d ${D}${WESTON_INI_CONFIG}
diff --git a/meta-agl/recipes-graphics/wayland/weston-ini-conf/core.cfg b/meta-agl/recipes-graphics/wayland/weston-ini-conf/core.cfg
new file mode 100644
index 000000000..a0ec1e181
--- /dev/null
+++ b/meta-agl/recipes-graphics/wayland/weston-ini-conf/core.cfg
@@ -0,0 +1,4 @@
+[core]
+shell=ivi-shell.so
+backend=drm-backend.so
+require-input=false
diff --git a/meta-agl/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-270.cfg b/meta-agl/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-270.cfg
new file mode 100644
index 000000000..dffc2b6dd
--- /dev/null
+++ b/meta-agl/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-270.cfg
@@ -0,0 +1,6 @@
+# A display is connected to HDMI-A-1 and needs to be rotated 270 degrees
+# to have a proper orientation of the homescreen. For example the various sizes
+# of the GeChic display or the Dell display.
+[output]
+name=HDMI-A-1
+transform=270
diff --git a/meta-agl/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-90.cfg b/meta-agl/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-90.cfg
new file mode 100644
index 000000000..88a692a1b
--- /dev/null
+++ b/meta-agl/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-90.cfg
@@ -0,0 +1,6 @@
+# A display is connected to HDMI-A-1 and needs to be rotated 90 degrees
+# to have a proper orientation of the homescreen. For example, the 'eGalax'
+# display used in some instances.
+[output]
+name=HDMI-A-1
+transform=90
diff --git a/meta-agl/recipes-graphics/wayland/weston-ini-conf/ivishell.cfg b/meta-agl/recipes-graphics/wayland/weston-ini-conf/ivishell.cfg
new file mode 100644
index 000000000..1c4304cdd
--- /dev/null
+++ b/meta-agl/recipes-graphics/wayland/weston-ini-conf/ivishell.cfg
@@ -0,0 +1,3 @@
+[ivi-shell]
+ivi-input-module=ivi-input-controller.so
+ivi-module=ivi-controller.so
diff --git a/meta-agl/recipes-graphics/wayland/weston-ini-conf/screen.inc b/meta-agl/recipes-graphics/wayland/weston-ini-conf/screen.inc
deleted file mode 100644
index e91e90212..000000000
--- a/meta-agl/recipes-graphics/wayland/weston-ini-conf/screen.inc
+++ /dev/null
@@ -1,5 +0,0 @@
-require screen_dell.inc
-require screen_qemu.inc
-require screen_GeChic.inc
-require screen_DSI.inc
-require screen_eGalax.inc
diff --git a/meta-agl/recipes-graphics/wayland/weston-ini-conf/screen_DSI.inc b/meta-agl/recipes-graphics/wayland/weston-ini-conf/screen_DSI.inc
deleted file mode 100644
index e0b39b3a3..000000000
--- a/meta-agl/recipes-graphics/wayland/weston-ini-conf/screen_DSI.inc
+++ /dev/null
@@ -1,4 +0,0 @@
-SCREEN_DSI[name] ?= "DSI-1"
-SCREEN_DSI[transform] ?= "270"
-
-do_generate_weston_init[vardeps] += "SCREEN_DSI"
diff --git a/meta-agl/recipes-graphics/wayland/weston-ini-conf/screen_GeChic.inc b/meta-agl/recipes-graphics/wayland/weston-ini-conf/screen_GeChic.inc
deleted file mode 100644
index 846e0592e..000000000
--- a/meta-agl/recipes-graphics/wayland/weston-ini-conf/screen_GeChic.inc
+++ /dev/null
@@ -1,6 +0,0 @@
-SCREEN_GECHIC[name] ?= "HDMI-A-1"
-SCREEN_GECHIC[transform] ?= "270"
-# for 1080p on GeChic 1502i:
-SCREEN_GECHIC[mode] = "173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync"
-
-do_generate_weston_init[vardeps] += "SCREEN_GECHIC"
diff --git a/meta-agl/recipes-graphics/wayland/weston-ini-conf/screen_dell.inc b/meta-agl/recipes-graphics/wayland/weston-ini-conf/screen_dell.inc
deleted file mode 100644
index 9d4119120..000000000
--- a/meta-agl/recipes-graphics/wayland/weston-ini-conf/screen_dell.inc
+++ /dev/null
@@ -1,4 +0,0 @@
-SCREEN_DELL[name]?="HDMI-A-1"
-SCREEN_DELL[transform]?="180"
-
-do_generate_weston_init[vardeps] += "SCREEN_DELL"
diff --git a/meta-agl/recipes-graphics/wayland/weston-ini-conf/screen_eGalax.inc b/meta-agl/recipes-graphics/wayland/weston-ini-conf/screen_eGalax.inc
deleted file mode 100644
index ecbba19e6..000000000
--- a/meta-agl/recipes-graphics/wayland/weston-ini-conf/screen_eGalax.inc
+++ /dev/null
@@ -1,4 +0,0 @@
-SCREEN_eGalax[name] ?= "HDMI-A-1"
-SCREEN_eGalax[transform] ?= "90"
-
-do_generate_weston_init[vardeps] += "SCREEN_eGalax"
diff --git a/meta-agl/recipes-graphics/wayland/weston-ini-conf/screen_qemu.inc b/meta-agl/recipes-graphics/wayland/weston-ini-conf/screen_qemu.inc
deleted file mode 100644
index c7f3abeba..000000000
--- a/meta-agl/recipes-graphics/wayland/weston-ini-conf/screen_qemu.inc
+++ /dev/null
@@ -1,18 +0,0 @@
-SCREEN_QEMU[name]?="Virtual-1"
-#mode=1920x1080
-#mode=1600x1200
-#mode=1680x1050
-#mode=1400x1050
-SCREEN_QEMU[mode]?="1600x900"
-#mode=1280x1024
-#mode=1440x900
-#mode=1280x960
-#mode=1360x768
-#mode=1280x800
-#mode=1280x768
-#mode=1280x720
-#mode=800x600
-#mode=848x480
-#mode=640x480
-
-do_generate_weston_init[vardeps] += "SCREEN_QEMU"
diff --git a/meta-agl/recipes-graphics/wayland/weston-ini-conf/shell.cfg b/meta-agl/recipes-graphics/wayland/weston-ini-conf/shell.cfg
new file mode 100644
index 000000000..056770427
--- /dev/null
+++ b/meta-agl/recipes-graphics/wayland/weston-ini-conf/shell.cfg
@@ -0,0 +1,3 @@
+[shell]
+locking=true
+panel-location=none