Problems building Yocto image for iMX7

We are just starting with Yocto / OpenEmbedded. I followed the instructions from Webinar On-Demand: Part 1 Introduction - Building Embedded Linux Images with the Yocto Project - YouTube and High performance, low power Embedded Computing Systems | Toradex Developer Center. I am working inside a VirtualBox VM running Ubuntu 16.04 64 Bit. When trying to build an image, this fails when trying to fetch files required by the RPM recipe. We are not able to fetch required files from www.rpm5.org. rpm5.org seems to be not available. The command line used to build RPM is:

~/oe-core/build$ bitbake rpm

The error we get is:

NOTE: Executing RunQueue Tasks
WARNING: rpm-native-5.4.16-r0 do_fetch: Failed to fetch URL http://www.rpm5.org/files/rpm/rpm-5.4/rpm-5.4.15-0.20140824.src.rpm;name=srpm;extract=rpm-5.4.15.tar.gz, attempting MIRRORS if available
ERROR: rpm-native-5.4.16-r0 do_fetch: Fetcher failure: Fetch command export DBUS_SESSION_BUS_ADDRESS="unix:abstract=/tmp/dbus-Ed9cIplznK"; export SSH_AUTH_SOCK="/run/user/1000/keyring/ssh"; export PATH="/home/arnold/oe-core/layers/openembedded-core/scripts/native-intercept:/home/arnold/oe-core/layers/openembedded-core/scripts:/home/arnold/oe-core/build/tmp-glibc/sysroots/x86_64-linux/usr/bin/x86_64-linux:/home/arnold/oe-core/build/tmp-glibc/sysroots/x86_64-linux/usr/bin:/home/arnold/oe-core/build/tmp-glibc/sysroots/x86_64-linux/usr/sbin:/home/arnold/oe-core/build/tmp-glibc/sysroots/x86_64-linux/usr/bin:/home/arnold/oe-core/build/tmp-glibc/sysroots/x86_64-linux/sbin:/home/arnold/oe-core/build/tmp-glibc/sysroots/x86_64-linux/bin:/home/arnold/oe-core/layers/openembedded-core/scripts:/home/arnold/oe-core/layers/openembedded-core/bitbake/bin:/home/arnold/bin:/home/arnold/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"; export HOME="/home/arnold"; /usr/bin/env wget -t 2 -T 30 -nv --passive-ftp --no-check-certificate -P /home/arnold/oe-core/build/downloads 'http://www.rpm5.org/files/rpm/rpm-5.4/rpm-5.4.15-0.20140824.src.rpm' --progress=dot -v failed with exit code 4, output:
--2018-06-27 09:46:34--  http://www.rpm5.org/files/rpm/rpm-5.4/rpm-5.4.15-0.20140824.src.rpm
Resolving www.rpm5.org (www.rpm5.org)... failed: Name or service not known.
wget: unable to resolve host address ‘www.rpm5.org’

ERROR: rpm-native-5.4.16-r0 do_fetch: Fetcher failure for URL: 'http://www.rpm5.org/files/rpm/rpm-5.4/rpm-5.4.15-0.20140824.src.rpm;name=srpm;extract=rpm-5.4.15.tar.gz'. Unable to fetch URL from any source.
ERROR: rpm-native-5.4.16-r0 do_fetch: Function failed: base_do_fetch
ERROR: Logfile of failure stored in: /home/arnold/oe-core/build/tmp-glibc/work/x86_64-linux/rpm-native/5.4.16-r0/temp/log.do_fetch.12891
ERROR: Task (virtual:native:/home/arnold/oe-core/build/../layers/openembedded-core/meta/recipes-devtools/rpm/rpm_5.4.16.bb:do_fetch) failed with exit code '1'
NOTE: Tasks Summary: Attempted 630 tasks of which 624 didn't need to be rerun and 1 failed.
NOTE: Writing buildhistory

Summary: 1 task failed:
  virtual:native:/home/arnold/oe-core/build/../layers/openembedded-core/meta/recipes-devtools/rpm/rpm_5.4.16.bb:do_fetch
Summary: There were 2 WARNING messages shown.
Summary: There were 3 ERROR messages shown, returning a non-zero exit code.

We are new to Yocto, OpenEmbedded, etc. But it looks like we are not able to fetch required files from rpm5.org. Am I right here or what else could be the reason for the error? Is there an alternative download location for the file(s)?

Hi arnold

Welcome to the Toradex Community!!!

Which branch did you compile? What are you trying to do?
If you want to add “rpm” to your image, then you should add IMAGE_INSTALL += “rpm” in your local.conf.

Best regards, Jaski

Hi Jaski,

thank you for your fast response!!

I’ll give you a little background information about, what we want to do. We are developing a hardware with an iMX7D module. We have installed the standard linux image (2.7) using EasyInstaller. Of course we have to add our own applications. Furthermore we have to add systemd services and so on. For production we must have an image, that we “flash” to the module with as less effort as possible. So it is not an option to adapt every module for our needs manually. So we thought, Yocto should be a good option to create a customized image.

What I have done:
The base for my first experiments is the “Webinar On-Demand: Part 1 Introduction - Building Embedded Linux Images with the Yocto Project” and the website “Toradex Yocto Getting Started” (High performance, low power Embedded Computing Systems | Toradex Developer Center).

I have started with:

repo init -u http://git.toradex.com/toradex-bsp-platform.git -b LinuxImageV2.7

After changing the machine in the local.conf to colibri-imx7 I have started bitbake:

bitbake angstrom-lxde-image

The intention was to create the standard image in a first step (just like in the webinar). If this succeeds, the next step would be to make some modifications / extensions to the standard image. But bitbake stops with the error related to rpm as mentioned in my previous post (I did not want to build RPM explicitely, but it is part of the complete image obviously).

So my guess is, that there is a problem with rpm5.org and that I will have to modify recipes such that the needed files are fetched from another server. But I am not 100% sure and I don’t know, where to get the file from instead of rpm5.org.

So the questions arising from all this for me are:

  1. Are we on the right way with using
    Yocto for our needs as described
    above?
  2. What about the “rpm fetch
    error”? How can this be fixed?

Best regards,
René

HI René

Thanks for the Information about your use case.

Are we on the right way with using Yocto for our needs as described above?
Yes, you can use bitbake to build your customized image. Bitbake build will deploy a Tezi Image. Depending on your needs, you could also customize the image. An example can be found at the previous link under the tab “Configuration Files”.

What about the “rpm fetch error”? How can this be fixed?

Have you done any changes to local.conf?

Best regards, Jaski

The only changes, I have made are changing MACHINE to colibri-imx7 and I have added the ACCEPT_FSL_EULA=“1” entry.

Well, then the compilation should work.
Could you provide the hardware and software details of your host?

Hi

Could you also add the mentioned logfile?

/home/arnold/oe-core/build/tmp-glibc/work/x86_64-linux/rpm-native/5.4.16-r0/temp/log.do_fetch.12891

The default setup does add a premirror from which the fetcher tries to download before trying the original URI. i.e. in conf/local.conf should be: ‘INHERIT += “toradex-mirrors”’.
i.e. it should first do the following which at least on my PC works, does it on yours?

wget -t 2 -T 30 -nv --passive-ftp --no-check-certificate 'http://sources.toradex.com/V2.7/rpm-5.4.15-0.20140824.src.rpm'

Max

Virtualbox VM running Ubuntu 16.04 LTS 64 Bit with 8 GB RAM. This VM is running on Windows7 Pro 64 Bit on Intel Xeon Quadcore 3.2 GHz with 12 GB RAM. I know, this is suboptimal. We are starting right now and we do not (yet) have a dedicated “build machine”.

Logfilelink text is attached.

The wget command does not work behind my firewall (and thus fetching from source.toradex.com will not work too). Our firewall prevents downloading files, it cannot read and it thinks, that the file is encrypted (although my guess is, that the firewall is just not smart enoguh to read the source RPM).

Could this be the reason, that bitbake tries to fetch from rpm5.org, because fetching from sources.toradex.com has failed before?

I think, I will have to dicuss with my sysadmin, how we get a solution for that.

Yes, that’s it.

And if rpm5.org wouldn’t be down it would fail in the same way that the download from sources.toradex.com failed before as it is trying to download the exact same file with the exact same protocol.

Ok. I am a step further now. But now I have the next problem. It seems, that I am not able to git clone the kernel, but I am not 100% sure. It looks like I cannot connect to git.toradex.com. I cannot connect to git.toradex.com:9418 (I have tested this with a small perl script). My sysadmin told me, that it should work, but it doesn’t. So my question: Can you find any hints in the logfile, what is going wrong?

Yeah you are not able to connect to git.toradex.com and sources.angstrom-distribution.org. Could you try to ping them?

Ping works with both of them. But I cannot connect to port 9418 of git.toradex.com. During this weekend I have tested this from home and it worked without any problems. So it is actually a problem with our firewall and not with external servers.

Thank you for your support!!

You are welcome. Thanks for the feedback.