Apalis T30 Bitbaking First Attempt = FAIL

I have attempted my very first bitbake of the angstrom-lxde-image and it would appear that the process has failed.

Obviously “failed” in respect to bitbaking is pretty meaningless so I’ll explain more…

Having followed the instructions from here the link below, I downloaded all required packages onto my Ubuntu 18.04.1 LTS development machine, using /opt/toradex as the working directory for all operations.

After running the bitbake -k angstrom-lxde-image command, I notice some errors appearing in the terminal, relating to openssl starting with:

| /opt/toradex/oe-core/build/tmp-glibc/hosttools/ld: libcrypto.a(sha1-x86_64.o): relocation R_X86_64_PC32 against undefined symbol 'OPENSSL_ia32cap_P` cannot be used when making a shared object; recompile with -fPIC
| /opt/toradex/oe-core/build/tmp-glibc/hosttools/ld: final link failed: Bad value
| collect2: error: ld return 1 exit status

Upon completion of the bitbake, only the openssl task has failed with everything else having worked ok.

I then run the bitbake angstrom-lxde-image -c populate_sdk which completes without issue and it is now that at this point, I’m now a little confused as to what to do next

The comments in the knowledge-base article indicate that the rootfs and uImage should be in the deploy/images/${MACHINE}/ directory however in my instance, I have the following files in the apalis-t30 directory:

  • marketing.tar
  • prepare.sh
  • toradexlinux.png
  • wrapup.sh

No sign of any rootfs. Also for ipk packages, the deploy/ipk directory is empty.

I’m a little confused as to where I went wrong. I followed all steps and instructions from the guide.

Hi

What version of things are you building?
e.g. what manifest did you check out when running repo init?

Upon completion of the bitbake, only the openssl task has failed with everything else having worked ok.

openssl-native is among the first tasks run and nearly everything else depends on it.
Which explains that nearly nothing got deployed.

Max

Hi @max.tx

I used the version as mentioned in the guide - LinuxImageV2.8

Hi

Could you post the first about 30 lines of a bitbake run which shows the configuration and the git hashes of the used layers?

Max

Here you go:

bitbake -k angstrom-lxde-image 
Loading cache: 100% |############################################| Time: 0:00:00
Loaded 3887 entries from dependency cache.
WARNING: No recipes available for:
  /opt/artemis-pro/oe-core/build/../layers/meta-freescale/dynamic-layers/browser-layer/recipes-browser/chromium/chromium-wayland_48.0.2548.0.bbappend
  /opt/artemis-pro/oe-core/build/../layers/meta-freescale/dynamic-layers/browser-layer/recipes-browser/chromium/chromium_52.0.2743.76.bbappend
  /opt/artemis-pro/oe-core/build/../layers/meta-jetson-tk1/recipes-graphics/mesa/mesa_11.1.1.bbappend
NOTE: Resolving any missing task queue dependencies

Build Configuration:
BB_VERSION           = "1.36.0"
BUILD_SYS            = "x86_64-linux"
NATIVELSBSTRING      = "ubuntu-18.04"
TARGET_SYS           = "arm-angstrom-linux-gnueabi"
MACHINE              = "apalis-t30"
DISTRO               = "angstrom"
DISTRO_VERSION       = "v2017.12"
TUNE_FEATURES        = "arm armv7a vfp thumb neon callconvention-hard"
TARGET_FPU           = "hard"
meta-angstrom        = "HEAD:4318892e08ea9102d29bdd92af83539bea985e4b"
meta-toradex-nxp     = "HEAD:53d4be5b9b8f609ae713e6eea8e935a73f7f7fd6"
meta-freescale       = "HEAD:61ab34ac6d664a229847b796ec20fd9f7c8ecbf4"
meta-freescale-3rdparty = "HEAD:e71ace9ede9b58f2ed3381a53fdc814f8e963c60"
meta-toradex-tegra   = "HEAD:9f4378d25ccdae1eaab77c5e72c983fbe1de4e8c"
meta-jetson-tk1      = "HEAD:e8b87fe8da7c6fcffa37ab245f50082953cc1ee1"
meta-toradex-bsp-common = "HEAD:b3fe56eec075ccd719b0ec1fde32ad9c37f0cca0"
meta-oe              
meta-filesystems     
meta-gnome           
meta-xfce            
meta-initramfs       
meta-networking      
meta-multimedia      
meta-python          = "HEAD:eae996301d9c097bcbeb8046f08041dc82bb62f8"
meta-lxde            = "HEAD:f436137fcc4ac700dc5c1b5e31e5b3c27568fc3e"
meta-browser         = "HEAD:75640e14e325479c076b6272b646be7a239c18aa"
meta-qt4             = "HEAD:e290738759ef3f39c9e079eaa9b606a62107e5ba"
meta-qt5             = "HEAD:d8b531530fa42b59aa0a5b123d87a30d749cbcc4"
meta-qt5-extra       = "HEAD:79e26686520f2ce5f743975e90116b263a33697f"
meta-freescale-distro = "HEAD:51756d1c2058139c8a21f89b86cfd8007b71b7f0"
meta-toradex-demos   = "HEAD:ca638002516c82fb3a1e22f0f1b8349584021a2b"
meta                 = "HEAD:3638cb32ba9ba32b4d498fc31ab7fdf82f0d2495"

Initialising tasks: 100% |#######################################| Time: 0:00:13
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
ERROR: openssl-native-1.0.2o-r0 do_compile: oe_runmake failed
ERROR: openssl-native-1.0.2o-r0 do_compile: Function failed: do_compile (log file is located at /opt/artemis-pro/oe-core/build/tmp-glibc/work/x86_64-linux/openssl-native/1.0.2o-r0/temp/log.do_compile.5019)
ERROR: Logfile of failure stored in: /opt/artemis-pro/oe-core/build/tmp-glibc/work/x86_64-linux/openssl-native/1.0.2o-r0/temp/log.do_compile.5019
Log data follows:
| DEBUG: Executing shell function do_compile
| NOTE: make -j 4 depend
| making depend in crypto...
| make[1]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.

Hi

I tried it out on a fresh Ubunutu 18.04 install I can bitbake openssl-native.

Did you skip installing the prerequisites, both the linked one from the openembedded wiki and the one listed on our page?

For Ubuntu 18.04 libcrypto++9v5:i386 does not exist, so you will have to remove that from the relevant apt-get command.

Max

Nothing was skipped. I’ve just tried again, installing the pre-requisites from both the Toradex and OpenEmbedded sites and no additional packages were added.

Ok, so I’ve just done bitbake -c cleanall openssl-native and I’ve started bitbaking again. So far, so good…

More progress with this now, however, there are still errors generated:

WARNING: mpeg2dec-0.5.1-r0 do_package_qa: QA Issue: ELF binary '/opt/artemis-pro/oe-core/build/tmp-glibc/work/armv7at2hf-neon-angstrom-linux-gnueabi/mpeg2dec/0.5.1-r0/packages-split/libmpeg2/usr/lib/libmpeg2.so.0.1.0' has relocations in .text [textrel]
ERROR: When reparsing /opt/artemis-pro/oe-core/build/../layers/meta-toradex-demos/recipes-images/images/angstrom-lxde-image.bb.do_image_teziimg, the basehash value changed from f0f1daeb7beff68372569dd80efd6a9a to 22492044d1d4bee75c97377c2422322d. The metadata is not deterministic and this needs to be fixed.
ERROR: When reparsing /opt/artemis-pro/oe-core/build/../layers/meta-toradex-demos/recipes-images/images/angstrom-lxde-image.bb.do_image_teziimg, the basehash value changed from f0f1daeb7beff68372569dd80efd6a9a to 22492044d1d4bee75c97377c2422322d. The metadata is not deterministic and this needs to be fixed.
WARNING: angstrom-lxde-image-2.8b5-r0 do_rootfs: The license listed SGI was not in the licenses collected for recipe tdx-nv-binaries
WARNING: angstrom-lxde-image-2.8b5-r0 do_rootfs: The license listed Khronos was not in the licenses collected for recipe tdx-nv-binaries
WARNING: angstrom-lxde-image-2.8b5-r0 do_rootfs: The license listed SGI was not in the licenses collected for recipe tdx-nv-binaries
WARNING: angstrom-lxde-image-2.8b5-r0 do_rootfs: The license listed Khronos was not in the licenses collected for recipe tdx-nv-binaries
WARNING: angstrom-lxde-image-2.8b5-r0 do_rootfs: The license listed SGI was not in the licenses collected for recipe tdx-nv-binaries
WARNING: angstrom-lxde-image-2.8b5-r0 do_rootfs: The license listed Khronos was not in the licenses collected for recipe tdx-nv-binaries
ERROR: When reparsing /opt/artemis-pro/oe-core/build/../layers/meta-toradex-demos/recipes-images/images/angstrom-lxde-image.bb.do_image_teziimg, the basehash value changed from f0f1daeb7beff68372569dd80efd6a9a to 22492044d1d4bee75c97377c2422322d. The metadata is not deterministic and this needs to be fixed.
ERROR: When reparsing /opt/artemis-pro/oe-core/build/../layers/meta-toradex-demos/recipes-images/images/angstrom-lxde-image.bb.do_image_teziimg, the basehash value changed from f0f1daeb7beff68372569dd80efd6a9a to 22492044d1d4bee75c97377c2422322d. The metadata is not deterministic and this needs to be fixed.
ERROR: When reparsing /opt/artemis-pro/oe-core/build/../layers/meta-toradex-demos/recipes-images/images/angstrom-lxde-image.bb.do_image_teziimg, the basehash value changed from f0f1daeb7beff68372569dd80efd6a9a to 22492044d1d4bee75c97377c2422322d. The metadata is not deterministic and this needs to be fixed.
ERROR: When reparsing /opt/artemis-pro/oe-core/build/../layers/meta-toradex-demos/recipes-images/images/angstrom-lxde-image.bb.do_image_teziimg, the basehash value changed from f0f1daeb7beff68372569dd80efd6a9a to 22492044d1d4bee75c97377c2422322d. The metadata is not deterministic and this needs to be fixed.
ERROR: When reparsing /opt/artemis-pro/oe-core/build/../layers/meta-toradex-demos/recipes-images/images/angstrom-lxde-image.bb.do_image_teziimg, the basehash value changed from f0f1daeb7beff68372569dd80efd6a9a to 22492044d1d4bee75c97377c2422322d. The metadata is not deterministic and this needs to be fixed.
ERROR: When reparsing /opt/artemis-pro/oe-core/build/../layers/meta-toradex-demos/recipes-images/images/angstrom-lxde-image.bb.do_image_teziimg, the basehash value changed from f0f1daeb7beff68372569dd80efd6a9a to 22492044d1d4bee75c97377c2422322d. The metadata is not deterministic and this needs to be fixed.
ERROR: When reparsing /opt/artemis-pro/oe-core/build/../layers/meta-toradex-demos/recipes-images/images/angstrom-lxde-image.bb.do_image_teziimg, the basehash value changed from f0f1daeb7beff68372569dd80efd6a9a to 22492044d1d4bee75c97377c2422322d. The metadata is not deterministic and this needs to be fixed.
ERROR: angstrom-lxde-image-2.8b5-r0 do_image_teziimg: Taskhash mismatch a6659ca588930c12948b8362805e3b5e versus a6a133901642367413ba440da0e0194c for /opt/artemis-pro/oe-core/build/../layers/meta-toradex-demos/recipes-images/images/angstrom-lxde-image.bb.do_image_teziimg
ERROR: Taskhash mismatch a6659ca588930c12948b8362805e3b5e versus a6a133901642367413ba440da0e0194c for /opt/artemis-pro/oe-core/build/../layers/meta-toradex-demos/recipes-images/images/angstrom-lxde-image.bb.do_image_teziimg
ERROR: When reparsing /opt/artemis-pro/oe-core/build/../layers/meta-toradex-demos/recipes-images/images/angstrom-lxde-image.bb.do_image_teziimg, the basehash value changed from f0f1daeb7beff68372569dd80efd6a9a to 22492044d1d4bee75c97377c2422322d. The metadata is not deterministic and this needs to be fixed.
ERROR: When reparsing /opt/artemis-pro/oe-core/build/../layers/meta-toradex-demos/recipes-images/images/angstrom-lxde-image.bb.do_image_teziimg, the basehash value changed from f0f1daeb7beff68372569dd80efd6a9a to 22492044d1d4bee75c97377c2422322d. The metadata is not deterministic and this needs to be fixed.
NOTE: Tasks Summary: Attempted 8488 tasks of which 4503 didn't need to be rerun and all succeeded.
NOTE: Writing buildhistory

Summary: There were 8 WARNING messages shown.
Summary: There were 13 ERROR messages shown, returning a non-zero exit code.

Are these anything to worry about?

No, the ‘ERROR: When reparsing …’ can be safely ignored. I expect that you have the relevant build artefacts in deploy/…

We spend quite some time on this error, but did not find a solution yet on how to make it go away without negative impact on the things we really want to build. It has to do with the use of the date (which is obviously changing from build to build) in the tezi image task.

@max.tx Ok, that’s great to know. Thanks for your help in getting to this stage. So, a couple more basic questions which I’m not 100% certain about:

  1. In the ‘deploy/images/apalis-t30’ directory, there are lots of tar files. How do I construct the rootfs from all of these archives? Is there one specific file containing the full rootfs?
  2. My ultimate requirements is to have an Angstrom image with Qt5, supporting OpenGL ES2 with Samba baked in by default. My assumption is that everything above is already in the angstrom-lxde-image, would this be correct?
  3. In terms of deployment, I’ve been using the update.sh script. Is this script part of the bitbake output or does this need customising to suit the new rootfs, etc?

Thanks for any advice

@kwebster83

Ok, that’s great to know. Thanks for your help in getting to this stage.

No problem.

  1. In the ‘deploy/images/apalis-t30’ directory, there are lots of tar files. How do I construct the rootfs from all of these archives? Is there one specific file containing the full rootfs?

You do get a file which can be used in the exact same way as the file you can download from us as the binary demo image.

For our legacy update (update.sh):
[machine][image_name][version].tar.bz2, e.g.: Apalis-T30_Console-Image_2.8b4-20180905.tar.bz2

For the Toradex Easy Installer:
[machine][image_name]-Tezi[version].tar, e.g.: Apalis-T30_Console-Image-Tezi_2.8b4-20180905.tar

  1. My ultimate requirements is to have an Angstrom image with Qt5, supporting OpenGL ES2 with Samba baked in by default. My assumption is that everything above is already in the angstrom-lxde-image, would this be correct?

No.
You probably want to start with either angstrom-qt5-x11-image.bb or angstrom-lxqt-image.bb which would both contain Qt5 stuff and OpenGL ES2.

angstrom-qt5-x11-image.bb contains one of the qt demo applications and starts that once booted, angstrom-lxqt-image.bb contains a qt based desktop with most of the qt libraries deployed. So the first one is more what you would need for your final product with your application replacing the demo app, the second might be handy during your application development.

I believe that neither the samba client nor the samba server is part of any of our images, so you would need to add the relevant packages to these image recipes.

  1. In terms of deployment, I’ve been using the update.sh script. Is this script part of the bitbake output or does this need customising to suit the new rootfs, etc?

Yes, see the answer to the first question.

Max

Thanks @max.tx, that’s perfect. I will give the angstrom-qt5-x11-image a go as, ultimately, we don’t need a desktop environment and would be booting straight to our own application. I’ll have a go at the Samba recipes.

Thanks

You are welcome. Thanks for your Input.

@jaski.tx @max.tx

Ok, so after some successful bitbaking, I’ve now added the gstreamer1.0 layer to the build. I’ve extracted the resulting rootfs and I’ve used the update.sh to flash the image to the Apalis T30 board in my Ixora carrier.

Unfortunately, I get no display whatsoever.

I’m using an LVDS display (1024x600-16@60) and I’ve configured this via the setenv command. The xrandr command shows that the default display is present but still nothing is visible - just a black screen. Initially, I reset the environment to default after flashing.

@jaski.tx @max.tx

Also, is there any need to keep the meta-qt4 layer in the bblayers.conf file if I am only going to be using Qt5? There is no prerequisite for this to be present.

Sorry, probably another silly question:

When I look through the rootfs which has been deployed onto the Apalis-T30, I see no sign of the qt5 libraries nor do I see any of the gstreamer1.0 libraries (I expect to see /usr/lib/gstreamer1.0) which I included as part of the bblayers.conf.

UPDATE
Ok, so I need to read the instructions. I need to edit local.conf and add the relevant IMAGE_INSTALL_append options for Qt5 (presumably, I can add gstreamer1.0 to this list?).

UPDATE #2
I found the following post, which also talks about Qt5:

https://www.toradex.com/community/questions/10714/adding-the-qt5-layer.html

When I run ls /usr/lib/ | grep -i "libqt", all I see are libQtXXX.so.4 files and no reference to any Qt5 libs. So it would appear that the angstrom-qt5-x11-image name is a bit misleading - especially this sentence on your guide:

One can build the following image
target that contains all Qt5 Packages:

angstrom-qt5-x11-image: for Qt 5 X11
image without desktop [build] $
bitbake -k angstrom-qt5-x11-image

Also, is there any need to keep the meta-qt4 layer in the bblayers.conf file

I don’t think there is a need, although I don’t see any merit in deleting it.


I think the other questions are answered here.