[yocto] Running Docker

Jakob Hasse jakob.hasse at smart-home-technology.ch
Wed Feb 28 02:05:13 PST 2018


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.

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
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>

-- 
Jakob Hasse
Software Developement

E: jakob.hasse at smart-home-technology.ch
T: +41 44 552 02 66

Smart Home Technology GmbH
www.smart-home-technology.ch




More information about the yocto mailing list