Bug 12147

Summary: Packages tslib-conf, tslib-tests and tslib-calibrate do not get installed in root filesystem.
Product: [Build System, Metadata & Runtime] OE-Core Reporter: Clay Montgomery <clay>
Component: graphicsAssignee: Ross Burton <ross.burton>
Status: RESOLVED NOTABUG QA Contact:
Severity: normal    
Priority: Undecided CC: meta.mr.watcher, meta.watcher
Version: 2.3.2   
Target Milestone: ---   
Hardware: All   
OS: Multiple   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: No (bug/feature does not impact docs)

Description Clay Montgomery 2017-09-30 21:11:58 UTC
I am building and testing Pyro for the Freescale i.MX6 Wandboard, but I suspect this issue affects all platforms using the tslib touch-screen library.

The problem is that these utils are not getting installed into the root filesystem:

ts_calibrate
ts_finddev
ts_harvest
ts_print
ts_print_mt
ts_print_raw
ts_test
ts_test_mt
ts_uinput

This is a new issue with Pyro. I know it was working correctly in Fido and Krogoth, but I have not tried Morty. With Pyro, these utils are nowhere in the root file system and the touch-screen will not function at all without running ts_calibrate at least once to create the required touch-screen calibration file (pointercal).

I have compared the old and new recipes for tslib, but I do not see the cause of the problem. The relevant lines in tslib_1.1.bb have not changed:

DEBIAN_NOAUTONAME_tslib-conf = "1"
DEBIAN_NOAUTONAME_tslib-tests = "1"
DEBIAN_NOAUTONAME_tslib-calibrate = "1"

RDEPENDS_${PN} = "tslib-conf"
RRECOMMENDS_${PN} = "pointercal"

FILES_${PN}-dev += "${libdir}/ts/*.la"
FILES_tslib-conf = "${sysconfdir}/ts.conf ${sysconfdir}/profile.d/tslib.sh ${datadir}/tslib"
FILES_${PN} = "${libdir}/*.so.* ${libdir}/ts/*.so*"
FILES_tslib-calibrate += "${bindir}/ts_calibrate"
FILES_tslib-tests = "${bindir}/ts_harvest ${bindir}/ts_print ${bindir}/ts_print_raw ${bindir}/ts_test"

So, I'm not sure if the problem is here or elsewhere.

Regards, Clay
Comment 1 Ross Burton 2017-09-30 22:36:36 UTC
That would be because in Pyro the X touchscreen calibration support was moved to use Xinput (+xinput-calibrate) instead of tslib.

If your BSP still needs tslib, then it should be including it.
Comment 2 Clay Montgomery 2017-09-30 23:14:21 UTC
   Our BSP does need tslib and it does include it. The libs are built and installed. However, we do not include X11. Freescale (NXP) supports 4 distros, 2 with X11 and 2 without. I have copied the relevant lines from their documentation below from:
http://freescale.github.io/doc/release-notes/current/

The following distros are supported by FSL Community BSP:

    fslc-framebuffer: Distro for Framebuffer graphical backend. This distro doesn’t include x11 and wayland features.
    fslc-wayland: Distro for Wayland without X11. This distro include wayland feature but doesn’t has x11 support.
    fslc-x11: Distro for X11 without wayland. This distro include x11 feature and doesn’ has wayland support.
    fslc-xwayland: Distro for Wayland with X11. This distro include both wayland and x11 features.

We are using fslc-framebuffer on Pyro. We used to do this on Krogoth with:
DISTRO_FEATURES_remove = "x11 wayland"
Comment 3 Ross Burton 2017-10-01 20:01:12 UTC
This is not the main support channel for Freescale BSPs, I recommend talking to freescale directly.
Comment 4 Clay Montgomery 2017-10-01 21:02:04 UTC
Freescale did not write the recipes for tslib. Do you think this should be fixed in their BSP distro layers? Just need to be clear about that before I take it to them.

I suspect touch-screen (tslib) support is probably not functional on any and all BSPs that do not include X11.

I can work around this issue easy enough. I just wanted to give back to the project since I do a lot of testing of Yocto on Freescale.
Comment 5 Ross Burton 2017-10-01 22:11:54 UTC
Yes, the tslib recipes still exist but are not installed in the default images because the default images migrated to xinput+xcalibrate.  If the Freescale BSP needs tslib still, then it should be pulling the recipes in.

If Freescale doesn't always need tslib and its a feature of your peripherals that they only have tslib drivers and not kernel input drivers, then it is your responsibility to ensure your images have the drivers.