Skip to content
This repository has been archived by the owner. It is now read-only.

rkt run: unable to run image with architecture armhf (on armhf/armv7l) #730

Closed
yarwelp opened this issue Apr 5, 2015 · 20 comments
Closed

rkt run: unable to run image with architecture armhf (on armhf/armv7l) #730

yarwelp opened this issue Apr 5, 2015 · 20 comments

Comments

@yarwelp
Copy link

@yarwelp yarwelp commented Apr 5, 2015

Hello,

Background: Continuing from appc/spec#284, I created an app container manually using sudo tar cvf django-timelog.tgz manifest rootfs/.

Attempting sudo ~/go/src/github.com/coreos/rkt/bin/rkt run django-timelog.aci gives me:

bad arch "armhf" for linux (must be one of: [amd64 i386])

Now, while I know that, as per the README, only amd64 Linux is officially supported, I was wondering if you could give me an idea of the amount of work required in order to run on armhf/armv7l? Is there any inherent limitation or is it just hard coded to say this because amd64 and i386 are the only officially supported architectures for app container images?

I am running Lubuntu 14.04.2 on the ODROID-XU3.

Regards,

Erik Nordstroem

@yarwelp yarwelp changed the title rkt run: unable to run image with architecture armhf (on armhf) rkt run: unable to run image with architecture armhf (on armhf/armv7l) Apr 5, 2015
@philips
Copy link
Contributor

@philips philips commented Apr 6, 2015

What does go env | grep GOARCH report for this architecture? Then we just need to add that here: https://github.com/appc/spec/blob/master/schema/types/labels.go#L9

@yarwelp
Copy link
Author

@yarwelp yarwelp commented Apr 6, 2015

Hi @philips, thank you for the reply.

go env | grep GOARCH

GOARCH="arm"

Tested the fix you suggested for appc/spec#284, it works so I made a Pull Request with the changes.

Do not have time to see how this affects the issue here in rkt right now (am in TZ Europe/Oslo, am going to sleep soon) but will look at it more after I wake up again.

@yarwelp
Copy link
Author

@yarwelp yarwelp commented Apr 6, 2015

I forgot to update the tests. Will do that as well.

@yarwelp
Copy link
Author

@yarwelp yarwelp commented Apr 6, 2015

Updated the tests and added a note to the pull request.

@yarwelp
Copy link
Author

@yarwelp yarwelp commented Apr 6, 2015

Link to pull request: appc/spec#285

@DieterReuter
Copy link

@DieterReuter DieterReuter commented Apr 6, 2015

@Erikano, I've just successfully tested and can confirm this PR works on a ARMv7 server at Scaleway cloud.

@philips
Copy link
Contributor

@philips philips commented Apr 6, 2015

We will get this fixed up. I would be interested to hear what you two are doing with rkt on ARM. Maybe email the rkt-dev@googlegroups.com list? :)

philips pushed a commit to philips/spec that referenced this issue Apr 6, 2015
@jonboulle
Copy link
Contributor

@jonboulle jonboulle commented Apr 6, 2015

@Erikano / @DieterReuter as well as GOARCH, what is GOARM set to on your systems? https://github.com/golang/go/wiki/GoArm#supported-architectures

@DieterReuter
Copy link

@DieterReuter DieterReuter commented Apr 6, 2015

@jonboulle, GOARCH is set to "arm", GOARM isn't set by default. On the Scaleway servers I just use the defaults, but when building binaries for use on a Raspberry Pi I always use GOARM=6.

@yarwelp
Copy link
Author

@yarwelp yarwelp commented Apr 6, 2015

@jonboulle, my computer being an ARMv7 one, I would've had GOARM=7 had I compiled from source, as I understand it, but I'm using Go from Ubuntu package repositories, so the variable is not set.

@yarwelp
Copy link
Author

@yarwelp yarwelp commented Apr 6, 2015

@philips I attempted to post to the mailing list and first got an auto-reply that I needed to sign up. I signed up and resent the same message but didn't see it in the list after a little while, so I made it as a new e-mail and edited it a bit while doing so then sent the new mail. Still can't see it. I'll wait until tomorrow before I do anything more about the mail. If it still isn't there tomorrow, I'll post it somewhere else and give you a link to it.

@yarwelp
Copy link
Author

@yarwelp yarwelp commented Apr 6, 2015

@philips I looked some more at what may have gone wrong with my e-mail and it seems that I've had partly broken SPF records for my mail server for a while. I fixed it now, I think, so in the future any mail I send should get through. It is possible that you list owners can see my message to the list in Google Groups under Pending Messages. If you see two messages, delete the oldest one and let the newer one through. If you see only one message, please delete it since we can't know which one it is and I'll resend it after you let me know. If you see no messages, please let me know and I'll test some more before resending. Sorry for the inconvenience.

@jonboulle
Copy link
Contributor

@jonboulle jonboulle commented Apr 21, 2015

Sorry for the delay, but happy to report we finally heard back from ARM and have a proposed solution here - appc/spec#304

@yarwelp
Copy link
Author

@yarwelp yarwelp commented Apr 25, 2015

@jonboulle, thanks for letting me know :)

@jonboulle jonboulle added this to the v0.6.0 milestone Apr 25, 2015
@jonboulle
Copy link
Contributor

@jonboulle jonboulle commented Apr 25, 2015

This just needs the spec to be bumped to resolve this in rkt.

@jonboulle jonboulle modified the milestones: v0.6.0, v0.5.5 May 20, 2015
@alban
Copy link
Member

@alban alban commented May 26, 2015

The spec has been bumped to v0.5.2 by #940 and the supported archs in rkt are now:

var ValidOSArch = map[string][]string{
        "linux":   {"amd64", "i386", "aarch64", "armv7l", "armv7b"},
        "freebsd": {"amd64", "i386", "arm"},
        "darwin":  {"x86_64", "i386"},
}

Can you check if this solves the issue?

@DieterReuter
Copy link

@DieterReuter DieterReuter commented May 26, 2015

@alban, if someone would like to use rkt on a Raspberry Pi 1 (there are about 5 million devices out there), the minimum supported ARM version should be ARMv6. This is also the default when building a GOLANG binary with GOARCH=arm. For this reason I strongly recommend to support armv6l too! BTW, a armv6l binary is compatible and runs absolute fine on a `armv7l´ machine - but not the other way around.

@alban
Copy link
Member

@alban alban commented May 27, 2015

@DieterReuter thanks, I filed appc/spec#417 for this.

@DieterReuter
Copy link

@DieterReuter DieterReuter commented May 27, 2015

@alban, Thanks!

@jonboulle
Copy link
Contributor

@jonboulle jonboulle commented May 27, 2015

Let's move this to a new issue since this one was focused on v7 and I don't want it to block 0.5.6: #949

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
5 participants