Community
cancel
Showing results for 
Search instead for 
Did you mean: 
idata
Community Manager
3,023 Views

Building iot-devkit-yp-poky-edison-20160606 does not work

Hello everyone,

because of some changes to download mirrors and checksums the build of the Intel image from 20160606 is not working any more.

To make it flexible to changes I began to changed the hard integrated mata-layers (until now only meta-java) to the openembedded git branches. Now I have new dependency problems. The reason is that the sources from 20160606 are combined with poky version dizzy 1.7.3. The meta-java needs a newer version of poky.

Before I am going to make some workarounds I have a few questions:

  • Is the Intel source for the Edison compatible to newer poky versions then 1.7.3?
  • Is there an manual to change to a newer version of poky like morty 2.2?
  • Has someone did the change already?

Best

Nils

41 Replies
idata
Community Manager
83 Views

Hello nilson,

 

 

Thanks for reaching out!

 

 

I'm not sure I understand your first question. If you are referring to the image's kernel being compatible with newer versions. I believe no, the thing is that in order to create an image based on a newer version of Yocto, you would have to start from the ground up, editing the kernel to adapt to the hardware, etc.

 

 

Other than Yocto's official documentation, there is no documents. However, Yocto's documentation is very complete and can provide much guidance. I would recommend you to start from http://www.yoctoproject.org/docs/2.2/mega-manual/mega-manual.html.

 

 

I am not aware about anyone that has done this before. Nevertheless, I encourage you to try it and share your findings with the community as other users might find it helpful and can provide guidance. Also, I must point out that this would be out of the support scope but we would try our best to help you if you indeed decide to try it.

 

 

I hope this information helps you,

 

Pedro M.
FerryT
Valued Contributor I
83 Views

@Nils are you planning to do this in the open (github)?

I think it would be really useful to create a set of layers that build a minimal image that tracks Andy Shevshenko's kernel and uboot. Maybe pruning http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel-edison/ meta-intel-edison - Layer for the Intel Edison Development Platform would be a good starting point. But I have been a little discouraged by some non standard recipies as well as tough scripts that finally build the images.

idata
Community Manager
83 Views

Hello FerryT,

I have not thought about that yet. At this time I balance a workaround against the change to a newer poky version.

I would love to get your estimation for such a change of the Intel Layer to get a minimal image with the new poky version.

@all, : It would be great if anyone that has done something like that before, or even the Intel developers who created the layer would give me a short estimation.

Best

Nils

KMill10
Valued Contributor II
83 Views

In the meantime, is there anything at all we can do to get an image build that works?

FerryT
Valued Contributor I
83 Views

nilson I had a more detailed look at http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel-edison/ meta-intel-edison - Layer for the Intel Edison Development Platform.

It consists of a BSP and a distro layer. The simplest way to go ahead with Morty would be to just cut-out the BSP layer and fix that so it builds with Morty, then rely on Toaster to build a sato-minimal image. Adding additional stuff (java and what not) would then come from yocto supported layers.

Of course then you would be missing the edison specific stuff from the distro layer (mraa, upm, sketch support), which would suite me just fine as we would never want to ship a product running all kinds of deamons that have no control of.

idata
Community Manager
83 Views

FerryT since I can build the standard image and crda package I will not move away from dizzy. Also I need the mraa library in the linux os. Unfortunately I don't have that much time for the move to morty.

Best

Nils

idata
Community Manager
83 Views

Hello,

I followed the normal build process explained in the README file from source:

# Building the edison image

unzip iot-devkit-yp-poky-edison-20160606.zip

cd iot-devkit-yp-poky-edison-20160606/poky/

source oe-init-build-env ../build_edison/

bitbake edison-image u-boot

../poky/meta-intel-edison/utils/flash/postBuild.sh .

zip -r toFlash.zip toFlash

I used the following setup on host machine for the build:

Ubuntu 16.04 LTS

4.4.0-63-generic Kernel

Best

Nils

idata
Community Manager
83 Views

Hello,

is there a newer source for building an own image for the Intel Edison then listed here:

https://software.intel.com/en-us/iot/hardware/edison/downloads Downloads for Intel® Edison Module | IoT | Intel® Software -> Build Your Own Yocto* Poky Image -> Linux Yocto* Project Snapshot (http://iotdk.intel.com/src/3.5/edison/iot-devkit-yp-poky-edison-20160606.zip http://iotdk.intel.com/src/3.5/edison/iot-devkit-yp-poky-edison-20160606.zip)

Can anyone confirm, that the build is not working any more from scratch? Just follow the instructions from README file (see above).

When this is a known issue, is Intel planing to fix this?

Thank you for your reply.

Best Nils

idata
Community Manager
83 Views

I replied to Nils in https://communities.intel.com/thread/111535 https://communities.intel.com/thread/111535 with instructions on how I managed to build the standard image (iot-devkit-yp-poky-edison-20160606). Hopefully those instructions are useful to everyone interested in building the image. Please check the instructions posted over there and let me know if they help you.

 

 

Pedro M.
idata
Community Manager
83 Views

Hi Pedro,

your solution from (quoted below) for building the standard image works. I'll go on with CRDA now. Hopefully we will find a solution for that problem too.

Best

Nils

This message was posted by Intel Corporation on behalf of

I managed to build the standard image after some troubleshooting. I do realize the following instructions are more complicated than it should be and I will make sure to report this to the appropriate team, as I understand how frustrating it can be to a new user that the official instructions provided with Edison's BSP do not work. However, in the meantime try the following and let me know. I believe I noted everything I required to do in order to build the image, but if you have any issues, let me know and I'll do my best to help you:

Download and unzip iot-devkit-yp-poky-edison-20160606.zip (http://iotdk.intel.com/src/3.5/edison/iot-devkit-yp-poky-edison-20160606.zip http://iotdk.intel.com/src/3.5/edison/iot-devkit-yp-poky-edison-20160606.zip).

Go to iot-devkit-yp-poky-edison-20160606/poky/meta-intel-edison/meta-intel-edison-distro/recipes-core/images/edison-image.bb and comment or delete the following lines:

IMAGE_INSTALL += "iotkit-comm-js"

 

IMAGE_INSTALL += "iotkit-comm-c-dev"

Go to http://git.yoctoproject.org/cgit/cgit.cgi/meta-java/commit/recipes-core/icedtea/openjdk-7-03b147/sig... http://git.yoctoproject.org/cgit/cgit.cgi/meta-java/commit/recipes-core/icedtea/openjdk-7-03b147/sig...

Download the patch and unzip it.

Go to iot-devkit-yp-poky-edison-20160606/poky/meta-java/recipes-core/ant and delete the file called ant-native_1.8.1.bb, replace it with the file with the same name found in /meta-java-master/recipes-core/ant/.

Go to iot-devkit-yp-poky-edison-20160606/poky/meta-java/recipes-core/icedtea/ and delete the file called icedtea7-native_2.1.3.bb, replace it with the file with the same name found in /meta-java-master/recipes-core/icedtea/.

Go to iot-devkit-yp-poky-edison-20160606/poky/meta-java/recipes-core/icedtea/openjdk-7-03b147/ and delete the file fix-checksums.patch, replace it with the file with the same name found in /meta-java-master/recipes-core/icedtea/openjdk-7-03b147/.

Go to iot-devkit-yp-poky-edison-20160606/poky/meta-intel-iot-devkit/recipes-connectivity/bacnet-stack and open the file called bacnet-stack_0.8.2.bb. Look for the line:

SRC_URI = "http://sourceforge.net/projects/bacnet/files/bacnet-stack/bacnet-stack-%24 http://sourceforge.net/projects/bacnet/files/bacnet-stack/bacnet-stack-${PV}/bacnet-stack-${PV}.tgz \

And change it for:

SRC_URI = "https://svwh.dl.sourceforge.net/project/bacnet/bacnet-stack/bacnet-stack-0.8.2/bacnet-stack-0.8.2.tg... https://svwh.dl.sourceforge.net/project/bacnet/bacnet-stack/bacnet-stack-0.8.2/bacnet-stack-0.8.2.tg... \

Then follow the usual steps:

cd iot-devkit-yp-poky-edison-20160606/poky/

 

source oe-init-build-env ../build_edison/

 

bitbake edison-image u-boot

../poky/meta-intel-edison/utils/flash/postBuild.sh .

zip -r toFlash.zip toFlash

Right now let's focus in trying to build the standard image, once we have done that we'll try to add the packages you require. Please let me know how it goes.

Pedro M.

KMill10
Valued Contributor II
83 Views

nilson your solution from /thread/111535 Building CRDA package in Yocto Image ... for building the standard image works. I'll go on with CRDA now. Hopefully we will find a solution for that problem too.

Unfortunately it doesn't work on my Ubuntu 14.04 Machine, where it fails when trying to symlink a file onto an existing copy if itself. Hopefully we can get to the bottom of it, so that I can get a build working too!

idata
Community Manager
83 Views

Hi Nils,

 

 

I'm glad to hear that you were able to build the standard image with the steps I shared! I will try to help you add the CRDA package to your image in https://communities.intel.com/thread/111535 https://communities.intel.com/thread/111535. I must mentioned that modifications to the standard image are not supported but I'll do my best effort to help you on this.

 

 

SpiderKenny,

 

 

I believe I found a difference on your building host that might explain why you are having issues building the image even with the steps mentioned above. As you can see in https://communities.intel.com/thread/111535 https://communities.intel.com/thread/111535, we are all using Ubuntu 14.04 but Nils' host uses kernel 4.4.0-63-generic, I used 4.4.0-38-generic and you are 3.13.0-49-generic. I believe this is what is affecting you. I'd suggest you to try to find a host with a newer kernel to see if this issues can be resolved that way. If you are able to do it, let me know how it goes and I'll try to help you in case run into any issues.

 

 

Pedro M.
KMill10
Valued Contributor II
83 Views

Hi Pedro intel_corp

Thanks for the help once again.

I set up my laptop with Ubuntu 16.04 which is 4.4.0-64 and the build worked, following your instructions above.

I did have to install all the build-essentials and so on, and I also had to update Perl, but once that was done the build succeeded without error.

I'm now going to try and merge in Sergey's patch for enabling and WM8731 Audio DAC.

Thanks again, it's good be have a working build.

KMill10
Valued Contributor II
83 Views

Interestingly, I have now updated my hosted-server to Ubuntu 16.04 and the build doesn't work there, but it does on my 16.04 Laptop.

It fails with an error about libsdl - so I'm just trying to nail down the dependencies and get the build working on the server. It's better for me if I can build on my hosted server as it's a fast machine, and I can leave it running all night if I have to, and that leaves my laptop free for my other work!

Thanks again

Kenny.

VRubi
New Contributor I
83 Views

Hi Nils,

I am interested in the poky upgrade too. The fact that dizzy is used makes it a lot harder to use newer oe branches as you saw.

In my case, I am attempting to use the http://git.yoctoproject.org/cgit/cgit.cgi/meta-maker/about/ meta-maker layer on Edison and it breaks (because the Python RDEPENDS part of the octoprint recipe matches that of morty, not dizzy, cf the http://lists.openembedded.org/pipermail/openembedded-devel/2016-December/110576.html oe-devel thread). This is a meta-maker problem but had the meta-edison layer been using the latest morty, it would not have shown up (and you cannot expect maintainers to backport their layers to such old versions I think).

idata
Community Manager
83 Views

I'm glad that you were able to build the standard image using those steps!

 

 

We look forward to hear more news about your project, please do share about it on the community, it sounds very interesting and many other users might be interested on it.

 

 

Anyway, if you ever have any other issue, please don't hesitate to contact us again, we'll try to help you in any way we can!

 

 

Pedro M.
idata
Community Manager
83 Views

Hi Kenny,

 

 

That is conspicuous. So, the only real difference at this moment is that your host is a dedicated server, right? Did you make sure to install all dependencies?

 

 

Git 1.7.8 or greater

 

tar 1.24 or greater

 

Python 2.7.3 or greater excluding Python 3.x

 

gawk

 

wget

 

git-core

 

diffstat

 

unzip

 

texinfo

 

gcc-multilib

 

build-essential

 

chrpath

 

socat

 

libsdl1.2-dev

 

xterm

 

 

Might the problem be related to any proxy issues? I mean, is the network on your host limited in any way? If so, could that limitations be affecting you?

 

 

You mentioned that the error you are getting now is different than the one you got before. Can you share the log of this new error?

 

 

I'll be waiting for you.

 

Pedro M.
KMill10
Valued Contributor II
83 Views

Hi Pedro

Here's the log of the failure now...

NOTE: Preparing runqueue

NOTE: Executing SetScene Tasks

NOTE: Executing RunQueue Tasks

ERROR: Function failed: do_configure (log file is located at /home/kenny/intel2016/iot-devkit-yp-poky-edison-20160606/build_edison/tmp/work/x86_64-linux/qemu-native/2.1.0-r0/temp/log.do_configure.5709)

ERROR: Logfile of failure stored in: /home/kenny/intel2016/iot-devkit-yp-poky-edison-20160606/build_edison/tmp/work/x86_64-linux/qemu-native/2.1.0-r0/temp/log.do_configure.5709

Log data follows:

| DEBUG: Executing python function sysroot_cleansstate

| DEBUG: Python function sysroot_cleansstate finished

| DEBUG: Executing shell function autotools_preconfigure

| DEBUG: Shell function autotools_preconfigure finished

| DEBUG: Executing python function autotools_copy_aclocals

| DEBUG: Python function autotools_copy_aclocals finished

| DEBUG: Executing shell function do_configure

|

| ERROR: User requested feature sdl

| configure was not able to find it.

| Install SDL devel

|

| WARNING: exit code 1 from a shell command.

| ERROR: Function failed: do_configure (log file is located at /home/kenny/intel2016/iot-devkit-yp-poky-edison-20160606/build_edison/tmp/work/x86_64-linux/qemu-native/2.1.0-r0/temp/log.do_configure.5709)

ERROR: Task 2400 (virtual:native:/home/kenny/intel2016/iot-devkit-yp-poky-edison-20160606/build_edison/../poky/meta/recipes-devtools/qemu/qemu_2.1.0.bb, do_configure) failed with exit code '1'

NOTE: Tasks Summary: Attempted 1186 tasks of which 1184 didn't need to be rerun and 1 failed.

Waiting for 0 running tasks to finish:

It seems unable to find libsdl - but I have done:

sudo apt-get install libsdl2-2.0

and

sudo apt-get install libsdl2-native

and

sudo apt-get install build-essential git diffstat gawk chrpath texinfo libtool gcc-multilib

**EDIT**

and

sudo apt-get install libsdl2-dev

KMill10
Valued Contributor II
83 Views

Intel Corporation wrote:

Might the problem be related to any proxy issues? I mean, is the network on your host limited in any way? If so, could that limitations be affecting you?

 

 

You mentioned that the error you are getting now is different than the one you got before. Can you share the log of this new error?

 

 

I'll be waiting for you.

 

Pedro M.

Hi the machine has a direct connection to the internet - it doesn't even go through a router or bridge. No firewall, no proxy!

I've noticed a difference between the dependecies in the BSP Document and the ones you've posted above, so I've now installed all of them from both lists.

I've kicked off a new build and it seems to be working for now... I'll let you know if it completes!

KMill10
Valued Contributor II
42 Views

Hi Pedro

So after several hours of build time, my build stops at the same place as before.

The stack trace of python calls that resulted in this exception/failure was:

File: 'do_environment_mkimage', lineno: 47, function:

0043: os.symlink(target_bin, env_image)

0044: return 0

0045:

0046:

*** 0047:do_environment_mkimage(d)

0048:

File: 'do_environment_mkimage', lineno: 43, function: do_environment_mkimage

0039: if d.getVar('ENV_IFWI_TARGET_NAME',True) in target_bin :

0040: # create a symbolic link on default binary file env file to

0041: # avoid modifying to much osip part

0042: print 'Create for IFWI stitching symlink %s to %s' % (env_image, target_bin)

*** 0043: os.symlink(target_bin, env_image)

0044: return 0

0045:

0046:

0047:do_environment_mkimage(d)

Exception: OSError: [Errno 17] File exists

So it seems there is still some difference between this and my Laptop's environment.

The actual fulat is that it tries to create a symlink to a file called

Create for IFWI stitching symlink /home/kenny/intel2016/iot-devkit-yp-poky-edison-20160606/build_edison/tmp/work/edison-poky-linux/u-boot/2014.04-1-r0/git/env.bin to

/home/kenny/intel2016/iot-devkit-yp-poky-edison-20160606/build_edison/tmp/work/edison-poky-linux/u-boot/2014.04-1-r0/target_env_bin/edison-._ifwi.bin

and that file already exists, so you can't symlink to it.

The recipe in question (I believe) is u-boot-target-env.inc

In there it calls os.symlink(taget_bin, env_image) but a file already exists at that place so it fails.

Earlier in the same recipe there are these commands:

env_image = d.getVar('ENV_IMAGE',True)

try:

os.unlink(env_image)

except OSError: pass

and it looks to me like the os.unlink must fail, but the excpet gets caught and ignored.

The question then is why does that file exist, and why can it not be deleted by the os.unlnk() command. But more importantly, why does it only fail on my server but not on my laptop?

Reply