Build yocto/legato 16.04

Hiya,

Trying to get Yocto/Legato 16.04 to build.

When I run

./build.sh -p ../poky/ -o ../meta-openembedded/ -l ../meta-swi -m swi-mdm9x15 -q -t 9 -j 9 -d

I always get the following error and failure:

NOTE: Error during finalise of /home/developer/yocto/yocto/poky/meta/recipes-kernel/linux/linux-yocto-rt_3.14.bb NOTE: Error during finalise of /home/developer/yocto/yocto/poky/meta/recipes-kernel/linux/linux-yocto_3.14.bb ERROR: ExpansionError during parsing /home/developer/yocto/yocto/poky/meta/recipes-kernel/linux/linux-yocto-rt_3.14.bb: Failure expanding variable do_patch: ExpansionError: Failure expanding variable SRCPV, expression was ${@bb.fetch2.get_srcrev(d)} which triggered exception MalformedUrl: The URL: 'git://;protocol=file;branch=standard/swi-mdm9x15-yocto-1.7-swi-le55,meta-yocto-1.7-swi-le55;name=machine,meta' is invalid and cannot be interpreted

I’m not expecting that the -rt version of the kernel to be built…

This is using the source bundle downloaded from ‘The Source’.

Any thoughts about how to resolve this error?

ciao, Dave

Hi Dave,

to give some background, the development of Legato has switched to repo (>= 16.04.1), so the legato-af repository is not standalone anymore and relies on other repositories.

However the WP85 Yocto distribution tries to build the latest commit from github.com/legatoproject/legato-af, and so this breaks since 16.04.0 this does not build anymore by itself.

We fixed the issue in the upcoming releases of the distribution, but in the meantime here are some workarounds:

1/ Workaround 1 - Disable Legato build within Yocto

$ export LEGATO_BUILD=0 $ make image
This will disable everything in the build that is related to the Legato image.
Given that there is no Legato in the rootfs (only some init code for Legato), it would not be affected.

2/ Workaround 2 - Build Legato version 16.04.0

$ export LEGATO_REPO="git://github.com/legatoproject/legato-af;protocol=git;rev=688a28dd2d932c13e82133f24915f5b2b9745b58" $ make image
The commit id of tag 16.04.0 is 688a28dd2d932c13e82133f24915f5b2b9745b58.
(For some reason, tag=16.04.0 doesn’t work, seems like it might only work with annotated tags)

This fetches the release 16.04.0 from GitHub and builds with it.

3/ Workaround 3 - Build Legato from a tarball

You would have to download a tarball first, such as downloads.sierrawireless.com/leg … .0.tar.bz2

$ wget http://downloads.sierrawireless.com/legato/1604/legato-16.04.0.tar.bz2 $ export LEGATO_REPO="[file:///\\$(PWD)\legato-16.04.0.tar.bz2]file://$(PWD)/legato-16.04.0.tar.bz2" $ make image
This uses the tarball (that is generated as part of the Legato release process) to build.

Let me know if that works for you :slight_smile:

I have the same problem, but make image didn’t help:

[color=#BF0000]ERROR: Fetcher failure: Fetch command failed with exit code 128, output:
Cloning into bare repository ‘/home/igor/yocto/build_bin/downloads/git2/codeaurora.org.platform.hardware.libhardware’…
fatal: unable to connect to codeaurora.org:
codeaurora.org[0: 198.145.29.80]: errno=Connection refused
ERROR: Function failed: Fetcher failure for URL: ‘git://codeaurora.org/platform/hardware/libhardware;branch=LNX.LE.2.1’. Unable to fetch URL from any source.
ERROR: Logfile of failure stored in: /home/igor/yocto/build_bin/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/libhardware/1.0-r0/temp/log.do_fetch.22981
ERROR: Task 1284 (/home/igor/yocto/meta-swi/meta-swi-mdm9xxx/recipes-bsp/libhardware/libhardware.bb, do_fetch) failed with exit code ‘1’[/color]

Doing ./build.sh -p ../poky/ -o ../meta-openembedded/ -l ../meta-swi -m swi-mdm9x15 -q -t 4 -j 4 -d throws another error:
[color=#BF0000]ERROR: ExpansionError during parsing /home/igor/yocto/poky/meta/recipes-kernel/linux/linux-yocto-rt_3.14.bb: Failure expanding variable do_patch: ExpansionError: Failure expanding variable SRCPV, expression was ${@bb.fetch2.get_srcrev(d)} which triggered exception MalformedUrl: The URL: ‘git://;protocol=file;branch=standard/swi-mdm9x15-yocto-1.7-swi-le55,meta-yocto-1.7-swi-le55;name=machine,meta’ is invalid and cannot be interpreted
[/color]

I have Legato Linux distribution Version 16.07.0 downloaded from source.sierrawireless.com/resour … linuxdist/ and I am trying to build on ubuntu 16.04.
Any help will be appreciated.

Wow, new forum. Any suggestions on this topic? I didn’t succeed to build legato kernel yet.

We are making some improvement to make sure that Internet access is not necessary to build the Yocto distrib, but so far that’s not the case.

Could you try to do the following command:
$ git ls-remote git://codeaurora.org/platform/hardware/libhardware

If that doesn’t work, the git port (9418) might be blocked which would explain why you have a consistent ‘Connection refused’ error.

If so, you could ask your IT to unlock that port, it’s an official port for the Git protocol and should therefore be safe.

Otherwise, I couldn’t find any HTTP-based service for codeaurora.org, but there is an unofficial rehost on GitHub: GitHub - codeaurora-unofficial/platform-hardware-libhardware

So if you replace every git://codeaurora.org entry by the HTTPS equivalent of that GitHub mirror, it should build even if the port is blocked.

Ok, thank you, I’ve tried to build an image on the different machine with different connection and I succeeded.

Modifying yocto/meta-swi/meta-swi-mdm9xxx/recipes-bsp/libhardware/libhardware.bb LIBHARDWARE_REPO = “git://source.codeaurora.org/external/gigabyte/platform/hardware/libhardware.git;protocol=http;branch=caf/LNX.LE.2.1”
seemed to work for me on the 07.11.09.00 tar