Platform forum

"uBoot, Linux and YOCTO for a board" - first salvo of questions

MarkInTO , 09-15-2017, 08:57 AM
I joined Fedevel recently and have purchased the course "Learn the Essentials of creating uBoot, Linux and YOCTO for a board". I started the first 2 sessions yesterday.

While I understand that this is not a course about using GitHub, I am finding that it really is impossible to un-entangle building Linux applications, especially using Yocto, and GitHub. I am an "older developer" and I am used to having all of my source code and recipes on my local system, running some "make" utility or project builder and coming back when it's done. I must admit that I am quite confused by what I am seeing during the procedures described in Lesson's 1 and 2.

First, I see that the a repository is accessed before any building begins:

repo init -u https://github.com/Freescale/fsl-community-bsp-platform -b jethro

My understanding of this was that the source code for the Linux distro was being downloaded to my local machine at this point. This made sense until I launched the first "bitbake" session.

bitbake core-image-minimal

Watching this operation, it is clear that still more things are being downloaded and from all kinds of places. If there is an interruption in my internet feed, then it's game over.
So my first questions are:
  1. What are we downloading and "syncing" before we run bitbake?
  2. What is bitbake accessing and downloading during the build operation?

In lesson 2, things got more confusing:

We synced up with another Git repository (I think), only this time, we seemed to "make it official" with GitHub by making our own repository out of the latest available "Open Rex" repository that was available on GitHub. Have I got this right so far?

We seemed to branch our repository away from the original (OK, makes sense), and then somehow told "bitbake" to use our branch and not the original one. We did this by way of some inexplicable stub of XML code:

cat > .repo/local_manifests/imx6openrex.xml << EOF
<?xml version="1.0" encoding="UTF-8"?>

<remote fetch="git://github.com/FEDEVEL" name="fedevel"/>

<project remote="fedevel" revision="jethro" name="meta-openrex" path="sources/meta-openrex">
<copyfile src="openrex-setup.sh" dest="openrex-setup.sh"/>

Then we run "bitbake" again and I have more questions about that:
  1. Where is the source code physically located? Is it on our local system or is it getting it from our remote GitHub repository that we created earlier?
  2. Does this include all of the "C" and "H" source files?
  3. Are these recipe files (".SH") local or remote?
Finally, I certainly understand that it is good to have an off-sight revision control archive. You sign it out, change it, sign it back in when you're done. But, what is the advantage of building code this way? Unless I have misunderstood, bitbake is fetching things it needs during the build using repositories and archives from all over the place. It is not clear what local files it is using and which ones it is getting from elsewhere. How is that an advantage?

That's all for now.
Thanks for your help.

robertferanec , 09-17-2017, 10:32 AM
1. What are we downloading and "syncing" before we run bitbake?
- Simply to say, this only downloads the tools. This tools are going to be used to compile the source code.

2. What is bitbake accessing and downloading during the build operation?
- bitbake is accessing individual repositories with source codes (the source code which is going to be compiled e.g. uboot, kernel, ...) and putting them together.
famodio , 05-19-2020, 04:32 AM
I joined Fedevel recently and have purchased the course "Learn the Essentials of creating uBoot, Linux and YOCTO". I started the first 2 sessions.
I followed the tutorial, but unfortunatly when I try to run 'bitbake core-image-minimal' command, of the first lesson, it is renurned the error 'Error Task 299 failed with exit code '1'.
I had a problem also during the second lesson at the same stage with different error (see screen attached), so I can not continue with the development.
Could you help me to manage this issue, please?

robertferanec , 05-19-2020, 05:18 AM
Please, did you install the specific version of Linux what was used in the video or you are using the latest Linux? This looks to me like some incompatibility issue(?)
famodio , 05-19-2020, 06:51 AM
I already had a virtual box 6.1 on my pc, then I installed Ubuntu 14.04.4
robertferanec , 05-19-2020, 08:17 AM
Hmmm ... are all the versions of other software (e.g. gcc) also exactly the same as in the video?
famodio , 05-19-2020, 09:39 AM
Hi, just to make sure, I reinstalled everything from scratch but I still have the same issue (see screens attached).
robertferanec , 05-19-2020, 09:57 AM
Hmm, but it says Ubuntu 18.04, see the yellow line in the first screenshot.
Use our interactive Discord forum to reply or ask new questions.
Discord invite
Discord forum link (after invitation)

Didn't find what you were looking for?