[yocto] [meta-raspberrypi][PATCH] rpi-config: waveshare screen support

Andrea Galbusera gizero at gmail.com
Tue Apr 4 05:48:53 PDT 2017


On Tue, Apr 4, 2017 at 12:17 PM, Andrei Gherzan <andrei at gherzan.com> wrote:

> Hi,
>
> On 4 April 2017 09:48:32 BST, Andrea Galbusera <gizero at gmail.com> wrote:
> >On Fri, Mar 24, 2017 at 6:49 PM, Trevor Woerner <twoerner at gmail.com>
> >wrote:
> >
> >> Add support for the Waveshare 1024x600 "C" Rev2.1 7" IPS Capacitive
> >Touch
> >> Screen LCD with HDMI interface:
> >>
> >>         http://www.waveshare.com/7inch-HDMI-LCD-C.htm
> >>         http://www.waveshare.com/wiki/7inch_HDMI_LCD_(C)
> >>
> >> This product works "out of the box" with the Raspberry Pi. Simply
> >connect
> >> the provided HDMI and USB cables between the two devices. The
> >touch<=>mouse
> >> integration works automatically.
> >>
> >> Tested with a Raspberry Pi 3, with a 32-bit raspberrypi3 build.
> >>
> >> Signed-off-by: Trevor Woerner <twoerner at gmail.com>
> >> ---
> >>  README                                  | 13 ++++++++++---
> >>  recipes-bsp/bootfiles/rpi-config_git.bb | 10 ++++++++++
> >>  2 files changed, 20 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/README b/README
> >> index 65a1e5f..c58bc99 100644
> >> --- a/README
> >> +++ b/README
> >> @@ -29,7 +29,8 @@ Contents:
> >>      3.L. Enable SPI bus
> >>      3.M. Enable I2C
> >>      3.N. Enable PiTFT support
> >> -    3.O. Enable UART support
> >> +    3.O. Misc. display
> >> +    3.P. Enable UART support
> >>  4. Extra apps
> >>      4.A. omxplayer
> >>  5. Board Configuration
> >> @@ -241,9 +242,15 @@ List of currently supported models:
> >>      - pitft22
> >>      - pitft28r
> >>
> >> -3.O. Enable UART
> >> -===============
> >> +3.O. Misc. display
> >> +==================
> >> +If you would like to use the Waveshare "C" 1024×600, 7 inch
> >Capacitive
> >> Touch
> >> +Screen LCD, HDMI interface
> >(http://www.waveshare.com/7inch-HDMI-LCD-C.htm
> >> )
> >> +Rev 2.1, please set the following in your local.conf
> >> +WAVESHARE_1024X600_C_2.1 = "1"
> >>
> >> +3.P. Enable UART
> >> +===============
> >>  RaspberryPi 1, 2 and CM will have UART console enabled by default.
> >>
> >>  RaspberryPi 3 does not have the UART enabled by default because this
> >> needs a
> >> diff --git a/recipes-bsp/bootfiles/rpi-config_git.bb
> >> b/recipes-bsp/bootfiles/rpi-config_git.bb
> >> index 20ec343..8adc938 100644
> >> --- a/recipes-bsp/bootfiles/rpi-config_git.bb
> >> +++ b/recipes-bsp/bootfiles/rpi-config_git.bb
> >> @@ -110,6 +110,16 @@ do_deploy() {
> >>          echo "# Enable VC4 Graphics" >> ${DEPLOYDIR}/bcm2835-
> >> bootfiles/config.txt
> >>          echo "dtoverlay=vc4-kms-v3d,${VC4_CMA_SIZE}" >>
> >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
> >>      fi
> >> +
> >> +    # Waveshare "C" 1024x600 7" Rev2.1 IPS capacitive touch (
> >> http://www.waveshare.com/7inch-HDMI-LCD-C.htm)
> >> +    if [ "${WAVESHARE_1024X600_C_2.1}" = "1" ]; then
> >> +        echo "# Waveshare \"C\" 1024x600 7\" Rev2.1 IPS capacitive
> >touch
> >> screen" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
> >> +        echo "max_usb_current=1" >> ${DEPLOYDIR}/bcm2835-
> >> bootfiles/config.txt
> >> +        echo "hdmi_group=2" >>
> >${DEPLOYDIR}/bcm2835-bootfiles/config.txt
> >> +        echo "hdmi_mode=87" >>
> >${DEPLOYDIR}/bcm2835-bootfiles/config.txt
> >> +        echo "hdmi_cvt 1024 600 60 6 0 0 0" >> ${DEPLOYDIR}/bcm2835-
> >> bootfiles/config.txt
> >> +        echo "hdmi_drive=1" >>
> >${DEPLOYDIR}/bcm2835-bootfiles/config.txt
> >> +    fi
> >>  }
> >>
> >>  do_deploy_append_raspberrypi3-64() {
> >> --
> >> 2.12.0.rc1.48.g076c053
> >>
> >> --
> >> _______________________________________________
> >> yocto mailing list
> >> yocto at yoctoproject.org
> >> https://lists.yoctoproject.org/listinfo/yocto
> >>
> >
> >
> >After applying this commit the build fails with:
> >
> >ERROR: rpi-config-git-r5 do_deploy: Function failed: do_deploy (log
> >file is
> >located at
> >/home/gizero/work/smartliving/distro/repo-master/build-poky/tmp/work/
> raspberrypi3-poky-linux-gnueabi/rpi-config/git-r5/
> temp/log.do_deploy.32154)
> >ERROR: Logfile of failure stored in:
> >/home/gizero/work/smartliving/distro/repo-master/build-poky/tmp/work/
> raspberrypi3-poky-linux-gnueabi/rpi-config/git-r5/temp/log.do_deploy.32154
> >Log data follows:
> >| DEBUG: Executing python function sstate_task_prefunc
> >| DEBUG: Removing manifest:
> >/home/gizero/work/smartliving/distro/repo-master/build-poky/tmp/deploy/
> images/raspberrypi3/bcm2835-bootfiles/config.txt
> >| DEBUG: Removing manifest:
> >/home/gizero/work/smartliving/distro/repo-master/build-poky/tmp/deploy/
> images/raspberrypi3/bcm2835-bootfiles/
> >| DEBUG: Python function sstate_task_prefunc finished
> >| DEBUG: Executing shell function do_deploy
> >|
> >/home/gizero/work/smartliving/distro/repo-master/build-poky/tmp/work/
> raspberrypi3-poky-linux-gnueabi/rpi-config/git-r5/
> temp/run.do_deploy.32154:
> >192:
> >/home/gizero/work/smartliving/distro/repo-master/build-poky/tmp/work/
> raspberrypi3-poky-linux-gnueabi/rpi-config/git-r5/
> temp/run.do_deploy.32154:
> >Bad substitution
> >| WARNING: exit code 2 from a shell command.
> >| ERROR: Function failed: do_deploy (log file is located at
> >/home/gizero/work/smartliving/distro/repo-master/build-poky/tmp/work/
> raspberrypi3-poky-linux-gnueabi/rpi-config/git-r5/
> temp/log.do_deploy.32154)
> >ERROR: Task
> >(/home/gizero/work/smartliving/distro/repo-master/build-poky/conf/../../
> layers/meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb:do_deploy)
> >failed with exit code '1'
> >NOTE: Tasks Summary: Attempted 4857 tasks of which 4855 didn't need to
> >be
> >rerun and 1 failed.
> >
> >Still to look at it closer... maybe related to some shell configuration
> >on
> >my side?
>
> That is strange. Do you get any additional information? Can't pick
> anything from the posted log.
>

I nailed it down to the the shell variable WAVESHARE_1024X600_C_2.1 that
the patch just introduced.

Quoting bash manpage:

   name   A  word  consisting  only  of alphanumeric characters and under‐
          scores, and beginning with an alphabetic character or an  under‐
          score.  Also referred to as an identifier.

Looks like a variable name cannot contain dots. Just replacing the
offending '.' solves the issue.
If you agree I can send a patch that s/./_/

Strangely enough all may shells fail in evaluating the following statement.
Why don't you guys see the same behavior?

if [ "${WAVESHARE_1024X600_C_2.1}" = "1" ]; then echo "hello!"; fi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20170404/32a6160f/attachment.html>


More information about the yocto mailing list