[yocto] python3 on build host
Gary Thomas
gary at mlbassoc.com
Tue Jul 26 07:09:26 PDT 2016
I have a build host that I've used for years. It is not
possible to [directly] update python3 on this system to
one which is identified as suitable for use with bitbake.
To try and work around this, I created a meta-toolchain SDK
for my target. I remember needing to do this years ago when
one of my boxes also became out of date. Sadly, this process
has not led me to a solution.
First question: is this the proper way to solve this problem?
I simply can't update python3 on this box (I've tried), so I
need another solution so I can continue to use this workhorse.
Here's a list of the stumbling blocks I've run across so far.
* Using a SDK toolchain ostensibly is incompatible with the
normal bitbake flow. Here's what I did for my 'meta-board' BSP:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
[gary at thor tmp]$ TEMPLATECONF=meta-board/conf . ./opt/amltd/poky/oe-init-build-env build
Error: The OE SDK/ADT was detected as already being present in this shell environment. Please use a clean shell when
sourcing this environment script.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
* I tried to work around this:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
[gary at thor tmp]$ unset OECORE_SDK_VERSION
[gary at thor tmp]$ TEMPLATECONF=meta-board/conf . ./opt/amltd/poky/oe-init-build-env build
You had no conf/local.conf file. This configuration file has therefore been
created for you with some default values. You may wish to edit it to, for
example, select a different MACHINE (target hardware). See conf/local.conf
for more information as common configuration options are commented.
You had no conf/bblayers.conf file. This configuration file has therefore been
created for you with some default values. To add additional metadata layers
into your configuration please add entries to conf/bblayers.conf.
The Yocto Project has extensive documentation about OE including a reference
manual which can be found at:
http://yoctoproject.org/documentation
For more information about OpenEmbedded see their website:
http://www.openembedded.org/
### Shell environment set up for builds. ###
You can now run 'bitbake <target>'
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
So, it looked like I was making some progress. Sadly, it was short-lived:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
[gary at thor build]$ bitbake production-testing-image
Traceback (most recent call last):
File "/home/gary/tmp/opt/amltd/poky/bitbake/bin/bitbake", line 31, in <module>
import bb
File "/home/gary/tmp/opt/amltd/poky/bitbake/lib/bb/__init__.py", line 43, in <module>
import logging
File "/opt/amltd/2.1+snapshot/sysroots/i686-amltdsdk-linux/usr/lib/python3.5/logging/__init__.py", line 26, in <module>
import sys, os, time, io, traceback, warnings, weakref, collections
File "/opt/amltd/2.1+snapshot/sysroots/i686-amltdsdk-linux/usr/lib/python3.5/traceback.py", line 3, in <module>
import collections
File "/opt/amltd/2.1+snapshot/sysroots/i686-amltdsdk-linux/usr/lib/python3.5/collections/__init__.py", line 10, in
<module>
from operator import itemgetter as _itemgetter, eq as _eq
ImportError: No module named 'operator'
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
I moved a step further by copying /usr/lib/python3.5/operator.py from one of
my working build hosts into the appropriate sysroots in the SDK. That only
got me one more step along as I then needed _compat_pickle.py. Then it failed
with no module 'fcntl' and at this point, I don't know where to find that.
Second question: even if this is not the correct way to solve my initial problem
of providing a suitable python3 on my build host, shouldn't I be able to run
bitbake (or indeed any suitably complex python3 program) using the SDK I installed?
Thanks for your time and I truly hope I can find a working answer for question one.
I have deliveries upcoming to customers I know will not be happy that they have to
update and I've positioned our BSP deliveries solely on Poky/Yocto.
--
------------------------------------------------------------
Gary Thomas | Consulting for the
MLB Associates | Embedded world
------------------------------------------------------------
More information about the yocto
mailing list