[yocto] Running Docker

Khem Raj raj.khem at gmail.com
Wed Feb 28 18:16:10 PST 2018


On 2/28/18 2:05 AM, Jakob Hasse wrote:
> Hello Bruce,
> 
> I kind of fixed the problem by creating a link with the name of the
> interpreter which the docker executable expects, pointing to the normal
> /lib/ld-linux-armhf.so.3 interpreter. After that, docker would run.
> 

you might be better served if you can find the underlying ldso name and
ABI being used. link might work on loading it but there could be further
runtime issues.

> All the Best,
> Jakob
> 
> On 06.02.2018 02:15, Bruce Ashfield wrote:
>> On 2018-02-05 4:58 PM, Jakob Hasse wrote:
>>> Hello Bruce,
>>>
>>> Thanks for the reply!
>>> No, the interpreter seems to be different, other executables are e.g.:
>>>
>>> # file /usr/bin/python2.7
>>> /usr/bin/python2.7: ELF 32-bit LSB executable, ARM, EABI5 version 1
>>> (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for
>>> GNU/Linux 3.2.0,
>>> BuildID[sha1]=b7d18ea9c9088e4b238dc8aeaaf47d6d4941079c, stripped
>>>
>>> # file /usr/bin/udevadm
>>> /usr/bin/udevadm: ELF 32-bit LSB executable, ARM, EABI5 version 1
>>> (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for
>>> GNU/Linux 3.2.0,
>>> BuildID[sha1]=cf639576658cfa150a456672666c2560d58c5f1b, stripped
>>>
>>> custom app:
>>> # file /usr/bin/goms
>>> /usr/bin/goms: ELF 32-bit LSB executable, ARM, EABI5 version 1
>>> (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for
>>> GNU/Linux 3.2.0,
>>> BuildID[sha1]=2d6df18a0b70632a94caee30d4e21c35da235d34, stripped
>>>
>>
>> So this is what Khem was saying, docker is built with softfloat
>> while the rest of the system is hard float.
>>
>> Given that this is an older branch, the go build infrastructure
>> is different, but you'll need to look at the arch that is being
>> exported in the recipe and make sure that it is arm hard float, not
>> soft.
>>
>> Bruce
>>
>>> All the Best,
>>> Jakob
>>>
>>> On 05.02.2018 19:05, Bruce Ashfield wrote:
>>>> On 02/02/2018 11:21 AM, Jakob Hasse wrote:
>>>>> Hello,
>>>>>
>>>>> file says:
>>>>> # file /usr/bin/docker
>>>>> /usr/bin/docker: ELF 32-bit LSB executable, ARM, EABI5 version 1
>>>>> (SYSV), dynamically linked, interpreter /lib/ld-linux.so.3, for
>>>>> GNU/Linux 3.2.0,
>>>>> BuildID[sha1]=87db889a25d481762a8d2c7aaa1bd52af2458915, not stripped
>>>>>
>>>>
>>>> Sorry for the slow reply, I was away for a bit.
>>>>
>>>> And does that description match your target (and the other executables)
>>>> that do work ? If the kernel doesn't recognize the binary interpreter
>>>> of an executable, the message you are seeing is what you get.
>>>>
>>>> Cheers,
>>>>
>>>> Bruce
>>>>
>>>>> Regards,
>>>>> Jakob
>>>>>
>>>>> On 02.02.2018 17:14, Bruce Ashfield wrote:
>>>>>> On 2018-02-02 10:57 AM, Jakob Hasse wrote:
>>>>>>> Hello Bruce,
>>>>>>>
>>>>>>> Thank you for the advice with the morty branch, this worked
>>>>>>> perfectly.
>>>>>>>
>>>>>>> Now, however, docker is installed on my Yocto-system but I can't
>>>>>>> run it:
>>>>>>>
>>>>>>> ~# docker
>>>>>>> -sh: /usr/bin/docker: No such file or directory
>>>>>>
>>>>>> I've seen this before. It normally means that the executable isn't
>>>>>> in a format that your target recognizes. It could very well be the
>>>>>> go support in the older branch isn't building the right thing.
>>>>>>
>>>>>> What does 'file' say about the executable ?
>>>>>>
>>>>>> Bruce
>>>>>>
>>>>>>>
>>>>>>> Is "docker" the client to control and run containers (e.g.
>>>>>>> "docker run hello-world")?
>>>>>>> On my Ubuntu machine, this works, I installed docker and
>>>>>>> docker.io via apt, then I could run "docker run hello-world".
>>>>>>>
>>>>>>> All the Best and many thanks in advance!
>>>>>>> Jakob
>>>>>>>
>>>>>>> On 26.01.2018 14:05, Bruce Ashfield wrote:
>>>>>>>> On 2018-01-26 6:52 AM, Jakob Hasse wrote:
>>>>>>>>> Hello,
>>>>>>>>>
>>>>>>>>> we're trying to include meta-virtualization in to our project,
>>>>>>>>> in particular, we want to use docker. However, as soon as I
>>>>>>>>> include the layer in to our project, bitbake complains:
>>>>>>>>>
>>>>>>>>> bitbake -C compile core-image-base
>>>>>>>>> NOTE: Started PRServer with DBfile:
>>>>>>>>> /home/jakob/workspace/beerstation/cache/prserv.sqlite3, IP:
>>>>>>>>> 127.0.0.1, PORT: 46136, PID: 5713
>>>>>>>>> ERROR: Execution of event handler 'virt_bbappend_distrocheck'
>>>>>>>>> failed
>>>>>>>>> Traceback (most recent call last):
>>>>>>>>>    File
>>>>>>>>> "/usr/local/dey-2.2/sources/meta-virtualization/classes/sanity-meta-virt.bbclass",
>>>>>>>>> line 4, in virt_bbappend_distrocheck(e=<bb.event.SanityCheck
>>>>>>>>> object at 0x7f945e05d3c8>):
>>>>>>>>>       python virt_bbappend_distrocheck() {
>>>>>>>>>      >    skip_check =
>>>>>>>>> e.data.getVar('SKIP_META_VIRT_SANITY_CHECK') == "1"
>>>>>>>>>           if 'virtualization' not in
>>>>>>>>> e.data.getVar('DISTRO_FEATURES').split() and not skip_check:
>>>>>>>>> TypeError: getVar() missing 1 required positional argument:
>>>>>>>>> 'expand'
>>>>>>>>>
>>>>>>>>> ERROR: Command execution failed: Traceback (most recent call
>>>>>>>>> last):
>>>>>>>>>    File
>>>>>>>>> "/usr/local/dey-2.2/sources/poky/bitbake/lib/bb/command.py",
>>>>>>>>> line 101, in runAsyncCommand
>>>>>>>>>      self.cooker.updateCache()
>>>>>>>>>    File
>>>>>>>>> "/usr/local/dey-2.2/sources/poky/bitbake/lib/bb/cooker.py",
>>>>>>>>> line 1627, in updateCache
>>>>>>>>>      bb.event.fire(bb.event.SanityCheck(False),
>>>>>>>>> self.databuilder.mcdata[mc])
>>>>>>>>>    File
>>>>>>>>> "/usr/local/dey-2.2/sources/poky/bitbake/lib/bb/event.py", line
>>>>>>>>> 201, in fire
>>>>>>>>>      fire_class_handlers(event, d)
>>>>>>>>>    File
>>>>>>>>> "/usr/local/dey-2.2/sources/poky/bitbake/lib/bb/event.py", line
>>>>>>>>> 124, in fire_class_handlers
>>>>>>>>>      execute_handler(name, handler, event, d)
>>>>>>>>>    File
>>>>>>>>> "/usr/local/dey-2.2/sources/poky/bitbake/lib/bb/event.py", line
>>>>>>>>> 96, in execute_handler
>>>>>>>>>      ret = handler(event)
>>>>>>>>>    File
>>>>>>>>> "/usr/local/dey-2.2/sources/meta-virtualization/classes/sanity-meta-virt.bbclass",
>>>>>>>>> line 4, in virt_bbappend_distrocheck
>>>>>>>>>      skip_check = e.data.getVar('SKIP_META_VIRT_SANITY_CHECK')
>>>>>>>>> == "1"
>>>>>>>>> TypeError: getVar() missing 1 required positional argument:
>>>>>>>>> 'expand'
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Summary: There were 2 ERROR messages shown, returning a
>>>>>>>>> non-zero exit code.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Do we need to checkout a specific branch or so (though I can't
>>>>>>>>> find one right now)?
>>>>>>>>> Do we need to change some kernel configuration? I added all
>>>>>>>>> virtualization drivers in the "drivers" section of the kernel
>>>>>>>>> config already.
>>>>>>>>>
>>>>>>>>> We're using DIGI embedded Yocto 2.2 (poky).
>>>>>>>>>
>>>>>>>>
>>>>>>>> You need to check out the matching branch to the release you've
>>>>>>>> been given as an enablement, since some of the APIs, etc, have
>>>>>>>> changed and the meta-virt sanity check that was added later than
>>>>>>>> the 2.2 release isn't working.
>>>>>>>>
>>>>>>>> 2.2 was the 'morty' release, and meta-virt does have a branch for
>>>>>>>> that:
>>>>>>>>
>>>>>>>> ----------
>>>>>>>> % git whatchanged origin/morty
>>>>>>>>
>>>>>>>> commit eb6b5129561eda9ea1f47e85ab9ed9e5a6b8f64c
>>>>>>>> Author: Fabio Berton <fabio.berton at ossystems.com.br>
>>>>>>>> Date:   Tue Nov 28 09:15:59 2017 -0200
>>>>>>>>
>>>>>>>>     python-*: use https for pypi URLs
>>>>>>>>
>>>>>>>>     Several of the recipes here were using http URLs for source
>>>>>>>> hosted on
>>>>>>>>     pypi - pypi apparently no longer supports http so switch to
>>>>>>>> https
>>>>>>>>     instead.
>>>>>>>>
>>>>>>>>     Apply this commit [1] to morty branch.
>>>>>>>>     [1]
>>>>>>>> https://www.mail-archive.com/meta-virtualization@yoctoproject.org/msg02821.html
>>>>>>>>
>>>>>>>>
>>>>>>>>     Signed-off-by: Fabio Berton <fabio.berton at ossystems.com.br>
>>>>>>>>     Signed-off-by: Bruce Ashfield <bruce.ashfield at windriver.com>
>>>>>>>> ---------
>>>>>>>>
>>>>>>>> So check out the morty branch and you'll have better luck.
>>>>>>>>
>>>>>>>> Bruce
>>>>>>>>
>>>>>>>>
>>>>>>>>> Thanks and all the best,
>>>>>>>>> Jakob
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
> 




More information about the yocto mailing list