[poky] X11 incompatibilities using meta-oe with poky
Martin Jansa
martin.jansa at gmail.com
Sat Dec 28 00:32:38 PST 2013
On Fri, Dec 27, 2013 at 10:22:43PM +0100, Alexandre Belloni wrote:
> Hi,
>
> When using core-image-sato (latest dora), I encountered again an issue
> that I once solved by hacking around it. It has the following symptoms:
> - touchscreen calibration doesn't start the first time the board is booted
see
http://git.openembedded.org/meta-openembedded/commit/?id=98bfe33760acb74b67eba9d58ea7cac8cad6d810
I'll backport it to dora
> - matchbox-keyboard doesn't come up when touching the keyboard icon in
> the panel
> - matchbox-panel is ugly (compare
> http://www.ossystems.com.br/images/blog/boards/boundarydevices-nitrogen6x-hdmi-screenshot-fsl-image-gui.jpg
> with http://free-electrons.com/~alexandre/matchbox-panel.jpg)
>
> This time, I decided to investigate that issue a bit more. Here is what
> I found:
> The cause is the /etc/X11/Xsession script which at some point does:
> =-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> SESSIONFILES=`ls -X $SYSSESSIONDIR`
> if [ -n "$SESSIONFILES" ]; then
> for SESSIONFILE in $SESSIONFILES; do
> # Test if script is executable first before sourcing it
> if [ -x "$SYSSESSIONDIR/$SESSIONFILE" ]; then
> . $SYSSESSIONDIR/$SESSIONFILE
> fi
> done
> fi
> =-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>
> This is not working because ls -X is not sorting the files
> alphabetically but by extension:
> =-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> root at cfa10058:~# ls -X -1 /etc/X11/Xsession.d/
> 60xXDefaults
> 89xdgautostart
> 90xXWindowManager
> 30xinput_calibrate.sh
> 70settings-daemon.sh
> 80matchboxkeyboard.shbg
> =-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>
> So, obviously, matchbox is started before calibration and matchbox-keyboard.
> Now, why is that happening ?
>
> Looking at the build directory, one can find Xsession being provided by
> two packages !
> xserver-common 1.34-r8 and x11-common 0.1-r47 why ?
> The dependancies are:
> packagegroup-core-x11 -> x11-common
> packagegroup-core-x11 -> xserver-nodm-init -> xserver-common
>
> Which is what we ask for since
> poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11.bb has:
> =-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> # xserver-common, x11-common
> VIRTUAL-RUNTIME_xserver_common ?= "x11-common"
>
> # elsa, xserver-nodm-init
> VIRTUAL-RUNTIME_graphical_init_manager ?= "xserver-nodm-init"
>
> [...]
> RDEPENDS_${PN}-utils = "\
> ${VIRTUAL-RUNTIME_xserver_common} \
> ${VIRTUAL-RUNTIME_graphical_init_manager} \
> xauth \
> xhost \
> xset \
> xrandr \
> "
> =-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>
> What is really happening is that xserver-nodm-init is provided both by
> poky/meta/recipes-graphics/x11-common/xserver-nodm-init.bb and
> meta-openembedded/meta-oe/recipes-graphics/xserver-nodm-init/xserver-nodm-init_2.0.bb
>
> layer path priority
> ==========================================================================
> meta /home/alex/fsl/sources/poky/meta 5
> meta-yocto /home/alex/fsl/sources/poky/meta-yocto 5
> meta-oe /home/alex/fsl/sources/meta-openembedded/meta-oe 6
>
> The meta-oe one is selected ! That one can't actually work with the
> current
> poky/meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_git.bb recipe
> because of the "ls -X" sorting and it doesn't know how to handle shbg
> files this will hang trying to use 80matchboxkeyboard.shbg
>
> So my next step was to remove the meta-oe layer (or simply mask
> /meta-openembedded/meta-oe/recipes-graphics/). The final result is
> better but touch screen calibration (xtscal instead of
> xinput-calibrator) fails with:
> XCALIBRATE extension missing: Resource temporarily unavailable
> XCALIBRATE extension missing: Resource temporarily unavailable
> XCALIBRATE extension missing: Resource temporarily unavailable
>
>
> So, questions:
> - How do we solve that cleanly ?
> - Why doesn't xserver-common conflicts with x11-common despite
> RCONFLICTS_${PN} = "xserver-kdrive-common x11-common" ?
> - Shouldn't we stop using xtscal and use xinput-calibrator instead ?
> - Should we update the Xsession script from the poky recipes and stop
> using x11-common ?
>
> On my side, what I do is masking
> /meta-openembedded/meta-oe/recipes-graphics/ and replacing xtscal by
> xinput-calibrator as a dependency of x11-common but I believe we can do
> better.
>
> --
> Alexandre Belloni, Free Electrons
> Embedded Linux, Kernel and Android engineering
> http://free-electrons.com
>
> _______________________________________________
> poky mailing list
> poky at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/poky
--
Martin 'JaMa' Jansa jabber: Martin.Jansa at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.yoctoproject.org/pipermail/poky/attachments/20131228/f796a2a8/attachment.pgp>
More information about the poky
mailing list