[meta-freescale] [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/meta-freescale/attachments/20131228/f796a2a8/attachment.pgp>


More information about the meta-freescale mailing list