Patchwork [meta-fsl-demos,1/2] qt-in-industrial-embedded-common: add init script for the smarthome demo

login
register
mail settings
Submitter Mario Domenech Goulart
Date Jan. 17, 2014, 2:02 p.m.
Message ID <1389967366-2718-1-git-send-email-mario@ossystems.com.br>
Download mbox | patch
Permalink /patch/65087/
State Accepted
Delegated to: Otavio Salvador
Headers show

Comments

Mario Domenech Goulart - Jan. 17, 2014, 2:02 p.m.
Currently, qt-in-industrial-embedded starts no demo automatically when
installed.  This patch adds an init script so that the smarthome demo
can be automatically started on boot.

Signed-off-by: Mario Domenech Goulart <mario@ossystems.com.br>
---
 recipes-qt/qt-in-use/files/smarthome               |   37 ++++++++++++++++++++
 .../qt-in-use/qt-in-industrial-embedded-common.inc |   13 +++++--
 2 files changed, 48 insertions(+), 2 deletions(-)
 create mode 100644 recipes-qt/qt-in-use/files/smarthome
Eric Nelson - Jan. 28, 2014, 12:41 a.m.
Hi Mario,

On 01/17/2014 07:02 AM, Mario Domenech Goulart wrote:
> Currently, qt-in-industrial-embedded starts no demo automatically when
> installed.  This patch adds an init script so that the smarthome demo
> can be automatically started on boot.
>
> Signed-off-by: Mario Domenech Goulart <mario@ossystems.com.br>
> ---
>   recipes-qt/qt-in-use/files/smarthome               |   37 ++++++++++++++++++++
>   .../qt-in-use/qt-in-industrial-embedded-common.inc |   13 +++++--
>   2 files changed, 48 insertions(+), 2 deletions(-)
>   create mode 100644 recipes-qt/qt-in-use/files/smarthome
>
> diff --git a/recipes-qt/qt-in-use/files/smarthome b/recipes-qt/qt-in-use/files/smarthome
> new file mode 100644
> index 0000000..c0aa575
> --- /dev/null
> +++ b/recipes-qt/qt-in-use/files/smarthome
> @@ -0,0 +1,37 @@
> +#!/bin/sh
> +
> +set -e
> +
> +SMARTHOME="smarthome"
> +SMARTHOME_ARGS="`[ -x '__BINDIR__/X' ] && echo '' || echo '-qws'`"
> +
> +case "$1" in
> +  start)
> +	echo "Starting $SMARTHOME"
> +	if [ -f __SYSCONFDIR__/profile.d/tslib.sh ]; then
> +		. __SYSCONFDIR__/profile.d/tslib.sh
> +	fi
> +	if [ -e "$TSLIB_TSDEVICE" ]; then
> +		if [ ! -f __SYSCONFDIR__/pointercal ]; then
> +			__BINDIR__/ts_calibrate
> +		fi
> +                QWS_MOUSE_PROTO=tslib:$TSLIB_TSDEVICE $SMARTHOME $SMARTHOME_ARGS &
> +	else
> +		$SMARTHOME $SMARTHOME_ARGS &
> +	fi
> +	;;
> +  stop)
> +	echo "Stopping $SMARTHOME"
> +        killall $SMARTHOME
> +	;;
> +  restart)
> +	$0 stop
> +	$0 start
> +	;;
> +  *)
> +	echo "usage: $0 { start | stop | restart }" >&2
> +	exit 1
> +	;;
> +esac
> +
> +exit 0
> diff --git a/recipes-qt/qt-in-use/qt-in-industrial-embedded-common.inc b/recipes-qt/qt-in-use/qt-in-industrial-embedded-common.inc
> index ea4feef..ad879c5 100644
> --- a/recipes-qt/qt-in-use/qt-in-industrial-embedded-common.inc
> +++ b/recipes-qt/qt-in-use/qt-in-industrial-embedded-common.inc
> @@ -1,10 +1,12 @@
>   DESCRIPTION = "Demos from the industrial embedded segment"
>
> -inherit autotools
> +inherit autotools update-rc.d
>
>   PV = "0.0+gitr${SRCPV}"
>   SRCREV = "4b10cbfd32391c83251bbc61520eeab03461db0a"
> -SRC_URI = "git://gitorious.org/qt-in-use/qt-in-industrial-embedded.git"
> +SRC_URI = "git://gitorious.org/qt-in-use/qt-in-industrial-embedded.git \
> +           file://smarthome \
> +          "
>
>   PR = "r3"
>
> @@ -18,6 +20,10 @@ do_configure_prepend() {
>   do_install_append () {
>       # Set the correct smarthome binary path
>       sed -i -e 's:Exec=.*:Exec=${bindir}/smarthome:g' ${D}${datadir}/applications/smarthome.desktop

This should only be installed when not using X, right?

> +
> +    install -d ${D}${sysconfdir}/init.d
> +    install -m 755 ${WORKDIR}/smarthome ${D}${sysconfdir}/init.d/
> +    sed -i -e 's:__BINDIR__:${bindir}:g; s:__SYSCONFDIR__:${sysconfdir}:g' ${D}${sysconfdir}/init.d/smarthome
>   }
>

When testing using fsl-image-gui on the master branch today, I
immediately got a ts_calibrate prompt on my HDMI monitor, which was
frustrating since it doesn't happen to have a touch screen.

Please advise,


Eric
Otavio Salvador - Jan. 28, 2014, 12:44 a.m.
Hello,

On Mon, Jan 27, 2014 at 10:41 PM, Eric Nelson
<eric.nelson@boundarydevices.com> wrote:
> On 01/17/2014 07:02 AM, Mario Domenech Goulart wrote:
>> Currently, qt-in-industrial-embedded starts no demo automatically when
>> installed.  This patch adds an init script so that the smarthome demo
>> can be automatically started on boot.
>>
>> Signed-off-by: Mario Domenech Goulart <mario@ossystems.com.br>
>> ---
>>   recipes-qt/qt-in-use/files/smarthome               |   37
>> ++++++++++++++++++++
>>   .../qt-in-use/qt-in-industrial-embedded-common.inc |   13 +++++--
>>   2 files changed, 48 insertions(+), 2 deletions(-)
>>   create mode 100644 recipes-qt/qt-in-use/files/smarthome
>>
>> diff --git a/recipes-qt/qt-in-use/files/smarthome
>> b/recipes-qt/qt-in-use/files/smarthome
>> new file mode 100644
>> index 0000000..c0aa575
>> --- /dev/null
>> +++ b/recipes-qt/qt-in-use/files/smarthome
>> @@ -0,0 +1,37 @@
>> +#!/bin/sh
>> +
>> +set -e
>> +
>> +SMARTHOME="smarthome"
>> +SMARTHOME_ARGS="`[ -x '__BINDIR__/X' ] && echo '' || echo '-qws'`"
>> +
>> +case "$1" in
>> +  start)
>> +       echo "Starting $SMARTHOME"
>> +       if [ -f __SYSCONFDIR__/profile.d/tslib.sh ]; then
>> +               . __SYSCONFDIR__/profile.d/tslib.sh
>> +       fi
>> +       if [ -e "$TSLIB_TSDEVICE" ]; then
>> +               if [ ! -f __SYSCONFDIR__/pointercal ]; then
>> +                       __BINDIR__/ts_calibrate
>> +               fi
>> +                QWS_MOUSE_PROTO=tslib:$TSLIB_TSDEVICE $SMARTHOME
>> $SMARTHOME_ARGS &
>> +       else
>> +               $SMARTHOME $SMARTHOME_ARGS &
>> +       fi
>> +       ;;
>> +  stop)
>> +       echo "Stopping $SMARTHOME"
>> +        killall $SMARTHOME
>> +       ;;
>> +  restart)
>> +       $0 stop
>> +       $0 start
>> +       ;;
>> +  *)
>> +       echo "usage: $0 { start | stop | restart }" >&2
>> +       exit 1
>> +       ;;
>> +esac
>> +
>> +exit 0
>> diff --git a/recipes-qt/qt-in-use/qt-in-industrial-embedded-common.inc
>> b/recipes-qt/qt-in-use/qt-in-industrial-embedded-common.inc
>> index ea4feef..ad879c5 100644
>> --- a/recipes-qt/qt-in-use/qt-in-industrial-embedded-common.inc
>> +++ b/recipes-qt/qt-in-use/qt-in-industrial-embedded-common.inc
>> @@ -1,10 +1,12 @@
>>   DESCRIPTION = "Demos from the industrial embedded segment"
>>
>> -inherit autotools
>> +inherit autotools update-rc.d
>>
>>   PV = "0.0+gitr${SRCPV}"
>>   SRCREV = "4b10cbfd32391c83251bbc61520eeab03461db0a"
>> -SRC_URI = "git://gitorious.org/qt-in-use/qt-in-industrial-embedded.git"
>> +SRC_URI = "git://gitorious.org/qt-in-use/qt-in-industrial-embedded.git \
>> +           file://smarthome \
>> +          "
>>
>>   PR = "r3"
>>
>> @@ -18,6 +20,10 @@ do_configure_prepend() {
>>   do_install_append () {
>>       # Set the correct smarthome binary path
>>       sed -i -e 's:Exec=.*:Exec=${bindir}/smarthome:g'
>> ${D}${datadir}/applications/smarthome.desktop
>
>
> This should only be installed when not using X, right?
>
>
>> +
>> +    install -d ${D}${sysconfdir}/init.d
>> +    install -m 755 ${WORKDIR}/smarthome ${D}${sysconfdir}/init.d/
>> +    sed -i -e 's:__BINDIR__:${bindir}:g;
>> s:__SYSCONFDIR__:${sysconfdir}:g' ${D}${sysconfdir}/init.d/smarthome
>>   }
>>
>
> When testing using fsl-image-gui on the master branch today, I
> immediately got a ts_calibrate prompt on my HDMI monitor, which was
> frustrating since it doesn't happen to have a touch screen.

We'll test it again tomorrow but in theory it wouldn't be called if
tslib is not installed and this should be the case for X11 based
images.
Mario Domenech Goulart - Jan. 31, 2014, 1:26 p.m.
Hi Eric,

Sorry for taking so long to reply.  Please, see some comments below.

On Mon, 27 Jan 2014 17:41:37 -0700 Eric Nelson <eric.nelson@boundarydevices.com> wrote:

> On 01/17/2014 07:02 AM, Mario Domenech Goulart wrote:
>> Currently, qt-in-industrial-embedded starts no demo automatically when
>> installed.  This patch adds an init script so that the smarthome demo
>> can be automatically started on boot.
>>
>> Signed-off-by: Mario Domenech Goulart <mario@ossystems.com.br>
>> ---
>>   recipes-qt/qt-in-use/files/smarthome               |   37 ++++++++++++++++++++
>>   .../qt-in-use/qt-in-industrial-embedded-common.inc |   13 +++++--
>>   2 files changed, 48 insertions(+), 2 deletions(-)
>>   create mode 100644 recipes-qt/qt-in-use/files/smarthome
>>
>> diff --git a/recipes-qt/qt-in-use/files/smarthome b/recipes-qt/qt-in-use/files/smarthome
>> new file mode 100644
>> index 0000000..c0aa575
>> --- /dev/null
>> +++ b/recipes-qt/qt-in-use/files/smarthome
>> @@ -0,0 +1,37 @@
>> +#!/bin/sh
>> +
>> +set -e
>> +
>> +SMARTHOME="smarthome"
>> +SMARTHOME_ARGS="`[ -x '__BINDIR__/X' ] && echo '' || echo '-qws'`"
>> +
>> +case "$1" in
>> +  start)
>> +	echo "Starting $SMARTHOME"
>> +	if [ -f __SYSCONFDIR__/profile.d/tslib.sh ]; then
>> +		. __SYSCONFDIR__/profile.d/tslib.sh
>> +	fi
>> +	if [ -e "$TSLIB_TSDEVICE" ]; then
>> +		if [ ! -f __SYSCONFDIR__/pointercal ]; then
>> +			__BINDIR__/ts_calibrate
>> +		fi
>> +                QWS_MOUSE_PROTO=tslib:$TSLIB_TSDEVICE $SMARTHOME $SMARTHOME_ARGS &
>> +	else
>> +		$SMARTHOME $SMARTHOME_ARGS &
>> +	fi
>> +	;;
>> +  stop)
>> +	echo "Stopping $SMARTHOME"
>> +        killall $SMARTHOME
>> +	;;
>> +  restart)
>> +	$0 stop
>> +	$0 start
>> +	;;
>> +  *)
>> +	echo "usage: $0 { start | stop | restart }" >&2
>> +	exit 1
>> +	;;
>> +esac
>> +
>> +exit 0
>> diff --git a/recipes-qt/qt-in-use/qt-in-industrial-embedded-common.inc b/recipes-qt/qt-in-use/qt-in-industrial-embedded-common.inc
>> index ea4feef..ad879c5 100644
>> --- a/recipes-qt/qt-in-use/qt-in-industrial-embedded-common.inc
>> +++ b/recipes-qt/qt-in-use/qt-in-industrial-embedded-common.inc
>> @@ -1,10 +1,12 @@
>>   DESCRIPTION = "Demos from the industrial embedded segment"
>>
>> -inherit autotools
>> +inherit autotools update-rc.d
>>
>>   PV = "0.0+gitr${SRCPV}"
>>   SRCREV = "4b10cbfd32391c83251bbc61520eeab03461db0a"
>> -SRC_URI = "git://gitorious.org/qt-in-use/qt-in-industrial-embedded.git"
>> +SRC_URI = "git://gitorious.org/qt-in-use/qt-in-industrial-embedded.git \
>> +           file://smarthome \
>> +          "
>>
>>   PR = "r3"
>>
>> @@ -18,6 +20,10 @@ do_configure_prepend() {
>>   do_install_append () {
>>       # Set the correct smarthome binary path
>>       sed -i -e 's:Exec=.*:Exec=${bindir}/smarthome:g' ${D}${datadir}/applications/smarthome.desktop
>
> This should only be installed when not using X, right?

I'm not sure.  I actually haven't touched that recipe part.


>> +
>> +    install -d ${D}${sysconfdir}/init.d
>> +    install -m 755 ${WORKDIR}/smarthome ${D}${sysconfdir}/init.d/
>> +    sed -i -e 's:__BINDIR__:${bindir}:g; s:__SYSCONFDIR__:${sysconfdir}:g' ${D}${sysconfdir}/init.d/smarthome
>>   }
>>
>
> When testing using fsl-image-gui on the master branch today, I
> immediately got a ts_calibrate prompt on my HDMI monitor, which was
> frustrating since it doesn't happen to have a touch screen.
>
> Please advise,

It seems that packagegroup-core-tools-testapps is dragging
tslib-calibrate into the image (via RDEPENDS).
packagegroup-core-tools-testapps is added to the image because
fsl-image-gui.bb has

    SOC_EXTRA_IMAGE_FEATURES ?= "tools-testapps"

    EXTRA_IMAGE_FEATURES += " \
       ${SOC_EXTRA_IMAGE_FEATURES} \
       ...

The "tools-testapps" feature makes core-image.bbclass add
packagegroup-core-tools-testapps to the image.

To work around that, you can add

   EXTRA_IMAGE_FEATURES_remove = "tools-testapps"

to local.conf.  However, a bunch of other packages will be removed from
the image (don't know if they are relevant for your purposes, though --
they sould be "testapps").

I suppose packagegroup-core-tools-testapps should check for
"touchscreen" in MACHINE_FEATURES to avoid the dependency on tslib for
boards that don't have touch devices.

Best wishes.
Mario
Rogerio Nunes - Feb. 3, 2014, 2:44 p.m.
On Fri, Jan 31, 2014 at 8:26 AM, Mario Domenech Goulart
<mario@ossystems.com.br> wrote:
> Hi Eric,
>
> Sorry for taking so long to reply.  Please, see some comments below.
>
> On Mon, 27 Jan 2014 17:41:37 -0700 Eric Nelson <eric.nelson@boundarydevices.com> wrote:
>
>> On 01/17/2014 07:02 AM, Mario Domenech Goulart wrote:
>>> Currently, qt-in-industrial-embedded starts no demo automatically when
>>> installed.  This patch adds an init script so that the smarthome demo
>>> can be automatically started on boot.
>>>
>>> Signed-off-by: Mario Domenech Goulart <mario@ossystems.com.br>
>>> ---
>>>   recipes-qt/qt-in-use/files/smarthome               |   37 ++++++++++++++++++++
>>>   .../qt-in-use/qt-in-industrial-embedded-common.inc |   13 +++++--
>>>   2 files changed, 48 insertions(+), 2 deletions(-)
>>>   create mode 100644 recipes-qt/qt-in-use/files/smarthome
>>>
>>> diff --git a/recipes-qt/qt-in-use/files/smarthome b/recipes-qt/qt-in-use/files/smarthome
>>> new file mode 100644
>>> index 0000000..c0aa575
>>> --- /dev/null
>>> +++ b/recipes-qt/qt-in-use/files/smarthome
>>> @@ -0,0 +1,37 @@
>>> +#!/bin/sh
>>> +
>>> +set -e
>>> +
>>> +SMARTHOME="smarthome"
>>> +SMARTHOME_ARGS="`[ -x '__BINDIR__/X' ] && echo '' || echo '-qws'`"
>>> +
>>> +case "$1" in
>>> +  start)
>>> +    echo "Starting $SMARTHOME"
>>> +    if [ -f __SYSCONFDIR__/profile.d/tslib.sh ]; then
>>> +            . __SYSCONFDIR__/profile.d/tslib.sh
>>> +    fi
>>> +    if [ -e "$TSLIB_TSDEVICE" ]; then
>>> +            if [ ! -f __SYSCONFDIR__/pointercal ]; then
>>> +                    __BINDIR__/ts_calibrate
>>> +            fi
>>> +                QWS_MOUSE_PROTO=tslib:$TSLIB_TSDEVICE $SMARTHOME $SMARTHOME_ARGS &
>>> +    else
>>> +            $SMARTHOME $SMARTHOME_ARGS &
>>> +    fi
>>> +    ;;
>>> +  stop)
>>> +    echo "Stopping $SMARTHOME"
>>> +        killall $SMARTHOME
>>> +    ;;
>>> +  restart)
>>> +    $0 stop
>>> +    $0 start
>>> +    ;;
>>> +  *)
>>> +    echo "usage: $0 { start | stop | restart }" >&2
>>> +    exit 1
>>> +    ;;
>>> +esac
>>> +
>>> +exit 0
>>> diff --git a/recipes-qt/qt-in-use/qt-in-industrial-embedded-common.inc b/recipes-qt/qt-in-use/qt-in-industrial-embedded-common.inc
>>> index ea4feef..ad879c5 100644
>>> --- a/recipes-qt/qt-in-use/qt-in-industrial-embedded-common.inc
>>> +++ b/recipes-qt/qt-in-use/qt-in-industrial-embedded-common.inc
>>> @@ -1,10 +1,12 @@
>>>   DESCRIPTION = "Demos from the industrial embedded segment"
>>>
>>> -inherit autotools
>>> +inherit autotools update-rc.d
>>>
>>>   PV = "0.0+gitr${SRCPV}"
>>>   SRCREV = "4b10cbfd32391c83251bbc61520eeab03461db0a"
>>> -SRC_URI = "git://gitorious.org/qt-in-use/qt-in-industrial-embedded.git"
>>> +SRC_URI = "git://gitorious.org/qt-in-use/qt-in-industrial-embedded.git \
>>> +           file://smarthome \
>>> +          "
>>>
>>>   PR = "r3"
>>>
>>> @@ -18,6 +20,10 @@ do_configure_prepend() {
>>>   do_install_append () {
>>>       # Set the correct smarthome binary path
>>>       sed -i -e 's:Exec=.*:Exec=${bindir}/smarthome:g' ${D}${datadir}/applications/smarthome.desktop
>>
>> This should only be installed when not using X, right?
>
> I'm not sure.  I actually haven't touched that recipe part.
>
>
>>> +
>>> +    install -d ${D}${sysconfdir}/init.d
>>> +    install -m 755 ${WORKDIR}/smarthome ${D}${sysconfdir}/init.d/
>>> +    sed -i -e 's:__BINDIR__:${bindir}:g; s:__SYSCONFDIR__:${sysconfdir}:g' ${D}${sysconfdir}/init.d/smarthome
>>>   }
>>>
>>
>> When testing using fsl-image-gui on the master branch today, I
>> immediately got a ts_calibrate prompt on my HDMI monitor, which was
>> frustrating since it doesn't happen to have a touch screen.
>>
>> Please advise,
>
> It seems that packagegroup-core-tools-testapps is dragging
> tslib-calibrate into the image (via RDEPENDS).
> packagegroup-core-tools-testapps is added to the image because
> fsl-image-gui.bb has
>
>     SOC_EXTRA_IMAGE_FEATURES ?= "tools-testapps"
>
>     EXTRA_IMAGE_FEATURES += " \
>        ${SOC_EXTRA_IMAGE_FEATURES} \
>        ...
>
> The "tools-testapps" feature makes core-image.bbclass add
> packagegroup-core-tools-testapps to the image.
>
> To work around that, you can add
>
>    EXTRA_IMAGE_FEATURES_remove = "tools-testapps"
>
> to local.conf.  However, a bunch of other packages will be removed from
> the image (don't know if they are relevant for your purposes, though --
> they sould be "testapps").

Actually packagegroup-fsl-tools-testapps is explicitly included in
IMAGE_INSTALL...

>
> I suppose packagegroup-core-tools-testapps should check for
> "touchscreen" in MACHINE_FEATURES to avoid the dependency on tslib for
> boards that don't have touch devices.

Agree.

>
> Best wishes.
> Mario
> --
> http://www.ossystems.com.br
> _______________________________________________
> meta-freescale mailing list
> meta-freescale@yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-freescale
Eric Nelson - Feb. 3, 2014, 5:29 p.m.
Hi Rogerio,

On 02/03/2014 07:44 AM, Rogerio Nunes wrote:
> On Fri, Jan 31, 2014 at 8:26 AM, Mario Domenech Goulart
> <mario@ossystems.com.br> wrote:
>> Hi Eric,
>>
>> Sorry for taking so long to reply.  Please, see some comments below.
>>
>> On Mon, 27 Jan 2014 17:41:37 -0700 Eric Nelson <eric.nelson@boundarydevices.com> wrote:
>>
>>> On 01/17/2014 07:02 AM, Mario Domenech Goulart wrote:
>>>> Currently, qt-in-industrial-embedded starts no demo automatically when
>>>> installed.  This patch adds an init script so that the smarthome demo
>>>> can be automatically started on boot.
>>>>
>>>>  <snip>
>>>>
>>>> +SRC_URI = "git://gitorious.org/qt-in-use/qt-in-industrial-embedded.git \
>>>> +           file://smarthome \
>>>> +          "
>>>>
>>>>    PR = "r3"
>>>>
>>>> @@ -18,6 +20,10 @@ do_configure_prepend() {
>>>>    do_install_append () {
>>>>        # Set the correct smarthome binary path
>>>>        sed -i -e 's:Exec=.*:Exec=${bindir}/smarthome:g' ${D}${datadir}/applications/smarthome.desktop
>>>
>>> This should only be installed when not using X, right?
>>
>> I'm not sure.  I actually haven't touched that recipe part.
>>
>>
>>>> +
>>>> +    install -d ${D}${sysconfdir}/init.d
>>>> +    install -m 755 ${WORKDIR}/smarthome ${D}${sysconfdir}/init.d/
>>>> +    sed -i -e 's:__BINDIR__:${bindir}:g; s:__SYSCONFDIR__:${sysconfdir}:g' ${D}${sysconfdir}/init.d/smarthome
>>>>    }
>>>>
>>>
>>> When testing using fsl-image-gui on the master branch today, I
>>> immediately got a ts_calibrate prompt on my HDMI monitor, which was
>>> frustrating since it doesn't happen to have a touch screen.
>>>
>>> Please advise,
>>
>> It seems that packagegroup-core-tools-testapps is dragging
>> tslib-calibrate into the image (via RDEPENDS).
>> packagegroup-core-tools-testapps is added to the image because
>> fsl-image-gui.bb has
>>
>>      SOC_EXTRA_IMAGE_FEATURES ?= "tools-testapps"
>>
>>      EXTRA_IMAGE_FEATURES += " \
>>         ${SOC_EXTRA_IMAGE_FEATURES} \
>>         ...
>>
>> The "tools-testapps" feature makes core-image.bbclass add
>> packagegroup-core-tools-testapps to the image.
>>
>> To work around that, you can add
>>
>>     EXTRA_IMAGE_FEATURES_remove = "tools-testapps"
>>
>> to local.conf.  However, a bunch of other packages will be removed from
>> the image (don't know if they are relevant for your purposes, though --
>> they sould be "testapps").
>
> Actually packagegroup-fsl-tools-testapps is explicitly included in
> IMAGE_INSTALL...
>
>>
>> I suppose packagegroup-core-tools-testapps should check for
>> "touchscreen" in MACHINE_FEATURES to avoid the dependency on tslib for
>> boards that don't have touch devices.
>
> Agree.
>

I suspect that this leaves us in the same position, since essentially
all i.MX6 boards support some form of touch screen, yet they can
also be used without touch (e.g. with HDMI + mouse/keyboard), right?

It seems that a run-time test may be the right thing here for the
most common case. On our Nitrogen boards, and I expect on Freescale
boards with Hannstar displays, we could test /dev/input/ to see
whether a a touch screen is present because the I2C touch controller
is essentially a part of the display.

This doesn't work on other boards like our Nitrogen6_Lite though.
On that board, a resistive touch controller is a part of the main
board, so a touch-screen input device will be present even if no
touch screen is physically connected.

Regards,


Eric
Otavio Salvador - Feb. 3, 2014, 5:38 p.m.
Hello Eric,

On Mon, Feb 3, 2014 at 3:29 PM, Eric Nelson
<eric.nelson@boundarydevices.com> wrote:
> On 02/03/2014 07:44 AM, Rogerio Nunes wrote:
>> On Fri, Jan 31, 2014 at 8:26 AM, Mario Domenech Goulart
>> <mario@ossystems.com.br> wrote:
>>> I suppose packagegroup-core-tools-testapps should check for
>>> "touchscreen" in MACHINE_FEATURES to avoid the dependency on tslib for
>>> boards that don't have touch devices.
>>
>>
>> Agree.
>>
>
> I suspect that this leaves us in the same position, since essentially
> all i.MX6 boards support some form of touch screen, yet they can
> also be used without touch (e.g. with HDMI + mouse/keyboard), right?
>
> It seems that a run-time test may be the right thing here for the
> most common case. On our Nitrogen boards, and I expect on Freescale
> boards with Hannstar displays, we could test /dev/input/ to see
> whether a a touch screen is present because the I2C touch controller
> is essentially a part of the display.

This is handled already. If no /dev/input/touchscreen0 is found it
will not start the ts_calibrate.

> This doesn't work on other boards like our Nitrogen6_Lite though.
> On that board, a resistive touch controller is a part of the main
> board, so a touch-screen input device will be present even if no
> touch screen is physically connected.

This complicates things. I also see another missing point in the
puzzle ... we cannot decide if we intend to use tslib or xinput.

Do you have any idea how we can workaround it in Nitrogen6_Lite case?
Eric Nelson - Feb. 3, 2014, 6:11 p.m.
Hi Otavio,

On 02/03/2014 10:38 AM, Otavio Salvador wrote:
> Hello Eric,
>
> On Mon, Feb 3, 2014 at 3:29 PM, Eric Nelson
> <eric.nelson@boundarydevices.com> wrote:
>> On 02/03/2014 07:44 AM, Rogerio Nunes wrote:
>>> On Fri, Jan 31, 2014 at 8:26 AM, Mario Domenech Goulart
>>> <mario@ossystems.com.br> wrote:
>>>> I suppose packagegroup-core-tools-testapps should check for
>>>> "touchscreen" in MACHINE_FEATURES to avoid the dependency on tslib for
>>>> boards that don't have touch devices.
>>>
>>>
>>> Agree.
>>>
>>
>> I suspect that this leaves us in the same position, since essentially
>> all i.MX6 boards support some form of touch screen, yet they can
>> also be used without touch (e.g. with HDMI + mouse/keyboard), right?
>>
>> It seems that a run-time test may be the right thing here for the
>> most common case. On our Nitrogen boards, and I expect on Freescale
>> boards with Hannstar displays, we could test /dev/input/ to see
>> whether a a touch screen is present because the I2C touch controller
>> is essentially a part of the display.
>
> This is handled already. If no /dev/input/touchscreen0 is found it
> will not start the ts_calibrate.
>

Hmmm. I'll have to re-test this. I thought I saw ts_calibrate
running on a Nitrogen6X, though it may have been Nitrogen6_Lite.

>> This doesn't work on other boards like our Nitrogen6_Lite though.
>> On that board, a resistive touch controller is a part of the main
>> board, so a touch-screen input device will be present even if no
>> touch screen is physically connected.
>
> This complicates things. I also see another missing point in the
> puzzle ... we cannot decide if we intend to use tslib or xinput.
>

Right. Does a machine saying it **supports** tslib mean that it
always wants it?

> Do you have any idea how we can workaround it in Nitrogen6_Lite case?
>

In general, we've been moving away from tslib for use with X.

Since all of our machines support Android, we've added kernel-driver
calibration to each of the resistive touch drivers we support,
and only want tslib when the target image doesn't include X
(Qt, DirectFB).

It seems that at a minimum, there should be a way to disable
the automatic ts_calibrate in X startup.

Regards,


Eric
Eric BENARD - Feb. 5, 2014, 8:31 a.m.
Hi Eric,

Le Mon, 03 Feb 2014 11:11:45 -0700,
Eric Nelson <eric.nelson@boundarydevices.com> a écrit :
> It seems that at a minimum, there should be a way to disable
> the automatic ts_calibrate in X startup.
> 
as you detect the display in u-boot, you can use the command line
to pass a parameter that you can parse in the script which launch
ts_calibrate to enable/disable calibration based on a white list of
display.

Eric
Eric Nelson - Feb. 5, 2014, 3:20 p.m.
Hi Eric,

On 02/05/2014 01:31 AM, Eric Bénard wrote:
> Hi Eric,
>
> Le Mon, 03 Feb 2014 11:11:45 -0700,
> Eric Nelson <eric.nelson@boundarydevices.com> a écrit :
>> It seems that at a minimum, there should be a way to disable
>> the automatic ts_calibrate in X startup.
>>
> as you detect the display in u-boot, you can use the command line
> to pass a parameter that you can parse in the script which launch
> ts_calibrate to enable/disable calibration based on a white list of
> display.
>

:) Sometimes we can have too many tools!

In the case of the Nitrogen6_Lite, the auto-detection of
displays doesn't quite work, since a touch controller
is soldered onto the board.

Also, the ts_calibrate decision might depend on whether
the image uses X or Qt-Embedded.

That said, we could (and have) done table-lookups based
on screen resolution and connection type (parallel, LVDS, HDMI)
to determine which touch screen goes with which display for
multi-display setups like this:

	http://boundarydevices.com/timesys-2013-03-release/

All of this is relatively straightforward when working
for a specific target. It only gets difficult when trying
to balance the needs of multiple boards, displays from
multiple vendors, etc.

Regards,


Eric

Patch

diff --git a/recipes-qt/qt-in-use/files/smarthome b/recipes-qt/qt-in-use/files/smarthome
new file mode 100644
index 0000000..c0aa575
--- /dev/null
+++ b/recipes-qt/qt-in-use/files/smarthome
@@ -0,0 +1,37 @@ 
+#!/bin/sh
+
+set -e
+
+SMARTHOME="smarthome"
+SMARTHOME_ARGS="`[ -x '__BINDIR__/X' ] && echo '' || echo '-qws'`"
+
+case "$1" in
+  start)
+	echo "Starting $SMARTHOME"
+	if [ -f __SYSCONFDIR__/profile.d/tslib.sh ]; then
+		. __SYSCONFDIR__/profile.d/tslib.sh
+	fi
+	if [ -e "$TSLIB_TSDEVICE" ]; then
+		if [ ! -f __SYSCONFDIR__/pointercal ]; then
+			__BINDIR__/ts_calibrate
+		fi
+                QWS_MOUSE_PROTO=tslib:$TSLIB_TSDEVICE $SMARTHOME $SMARTHOME_ARGS &
+	else
+		$SMARTHOME $SMARTHOME_ARGS &
+	fi
+	;;
+  stop)
+	echo "Stopping $SMARTHOME"
+        killall $SMARTHOME
+	;;
+  restart)
+	$0 stop
+	$0 start
+	;;
+  *)
+	echo "usage: $0 { start | stop | restart }" >&2
+	exit 1
+	;;
+esac
+
+exit 0
diff --git a/recipes-qt/qt-in-use/qt-in-industrial-embedded-common.inc b/recipes-qt/qt-in-use/qt-in-industrial-embedded-common.inc
index ea4feef..ad879c5 100644
--- a/recipes-qt/qt-in-use/qt-in-industrial-embedded-common.inc
+++ b/recipes-qt/qt-in-use/qt-in-industrial-embedded-common.inc
@@ -1,10 +1,12 @@ 
 DESCRIPTION = "Demos from the industrial embedded segment"
 
-inherit autotools
+inherit autotools update-rc.d
 
 PV = "0.0+gitr${SRCPV}"
 SRCREV = "4b10cbfd32391c83251bbc61520eeab03461db0a"
-SRC_URI = "git://gitorious.org/qt-in-use/qt-in-industrial-embedded.git"
+SRC_URI = "git://gitorious.org/qt-in-use/qt-in-industrial-embedded.git \
+           file://smarthome \
+          "
 
 PR = "r3"
 
@@ -18,6 +20,10 @@  do_configure_prepend() {
 do_install_append () {
     # Set the correct smarthome binary path
     sed -i -e 's:Exec=.*:Exec=${bindir}/smarthome:g' ${D}${datadir}/applications/smarthome.desktop
+
+    install -d ${D}${sysconfdir}/init.d
+    install -m 755 ${WORKDIR}/smarthome ${D}${sysconfdir}/init.d/
+    sed -i -e 's:__BINDIR__:${bindir}:g; s:__SYSCONFDIR__:${sysconfdir}:g' ${D}${sysconfdir}/init.d/smarthome
 }
 
 FILES_${PN} += "${datadir}/${DEMO} ${datadir}/icons"
@@ -25,3 +31,6 @@  RDEPENDS_${PN} += " \
     ${QT_BASE_NAME}-qml-plugins \
     ${QT_BASE_NAME}-plugin-imageformat-svg \
 "
+
+INITSCRIPT_NAME = "smarthome"
+INITSCRIPT_PARAMS = "defaults"