[Question] raspi2_armv6.zip general ARMv7 compatibility

Hey guys,

just a short question about the pre-compiled raspi2_armv6.zip archive:
Are there any issues known to use this for other ARMv7 SBCs, running Debian instead of Raspbian?

And a little suggestion:
Actually RPi2 and above have ARMv7 or ARMv8 capable CPUs. Raspbian talks to all of them as armv7l. However since the above archive is known to now work on RPi1/Zero (#3415), exactly all ARMv6 RPi models, naming it *_armv6.zip is misleading. For this reason I suggest to call it raspi_armv7.zip, so the name already gives a hint, that ARMv6 models are not supported.
Although some testing should be done, when these binaries are compiled against RPi2 on Raspbian, they most likely work on all ARMv7 systems, so it could be renamed to linux_armv7.zip.

And a vote for gzip versions of all archives :wink:.

Many thanks for this great piece of software and best regards!

Hi, it’s named *_armv6.zip because it is compiled on armv6 Raspi device.

@Unknwon
It is compiled on an RPi1 or Zero (the only armv6 models) but only tested and functional on RPi2 and above :thinking:?

At least I test run on Raspi 2 and 3, haven’t had chance to test on 4 (our of stock, lol)

Okay, I am still confused about the mismatch between the arch it’s compiled on and the arch it’s functional on :smile:.

I am asking because on DietPi we lack the man power to compile current ARM binaries ourselves regularly, but on the other hand don’t want to ship outdated versions: https://github.com/MichaIng/DietPi/issues/2999
We’ll test on some more non-RPi (ARMv7) SBCs to hopefully prove it general ARMv7-compatible.

Hmm… TBH I’m a bit lost about the actual issue you encountered. Are you saying the binary compiled on Raspi2 with ARM v6 is not working on some other ARM v6 devices?

That is what I am confused about. There is no Raspi2 with ARMv6. All RPi2 models are either ARMv7 (PCB v1.1) or ARMv8 (PCB v1.2): https://en.wikipedia.org/wiki/Raspberry_Pi#Specifications
However Raspbian handles all of them as ARMv7, meaning uname -a reports armv7l. This also matches our 1930 reported RPi2 systems: https://dietpi.com/survey/#device

The OS obviously has some influence about how the CPU is handled (as which arch), however I guess there is none that would handle RPi2 as armv6l, at least Raspbian does not.

The only ARMv6 RPi models are RPi1 and RPi Zero (W). And with both of them, the compiled binary does not work, so it obviously does not work on any ARMv6 RPi model, which makes sense when it’s compiled on RPi2 (thus armv7l). I cannot say something about armel (Debian default for ARMv6), which for sure fails even worse due to missing hard-float, however at with least this RPi-special “armv6hf” the binary fails.

Thanks for the link! you’re right, I just double checked my Raspi2 one is PCB v1.1, so it should be ARMv7. I’ll update the docs (and zip file name starting next release).

1 Like

@Unknwon
Great, should reduce some confusion and the amount of bug reports on GitHub about RPi1+Zero failures :smile:.

I added the URL scrape from https://api.github.com/repos/gogs/gogs/releases/latest based on the current name to our install script, however it has a fallback URL build-in which matches the final current release URL as well, so I can already switch to any new naming. Can you already say if the file name will be simply raspi2_armv7.zip? Or take the change to switch to/add some raspi2_armv7.tar.gz?

I’ll provide both .zip and .tar.gz starting next release.

Asides: I’m having hard time set up my raspi2 armv7 (no ethernet from home network), I’ll try to get a Wifi to Ethernet bridge but that’s not guaranteed to work. So, the plan B is to use https://www.scaleway.com 's ARM instances, but they only provide ARMv8.

Awesome, many thanks!

I’ll try to get a Wifi to Ethernet bridge but that’s not guaranteed to work.

Or WiFi dongle?

ARMv8 will then not work on any RPi, but aside from that would be a great addition due to raising amount of other ARMv8 SBCs. Also Raspbian/RPi Foundation is working on an ARMv8 Raspbian, which would work on all RPis beginning with RPi2 PCB v1.2. But this might still take a longer while.

Theoretically I could help out with the ARMv7 build since I have exactly the same RPi2 PCB v1.1 ARMv7 here, online via Ethernet :wink:. But I have very rare build experience, so besides trust, you would need to give me idiot-prove step-by-step instructions. I can follow https://gogs.io/docs/installation/install_from_source but need to know which build tags and possible other steps you do for official releases.
Just send me a PM in case, when next release is ready.

I think I have one, but never used after I bought it. Seems better solution!

It’s great to have your help, but at least I first would have to try hard enough myself. :smiley:

Once you have Go installed (preferably go 1.12.7), then do

$ go get -u -tags "sqlite pam cert" github.com/gogs/gogs
$ cd $GOPATH/src/github.com/gogs/gogs
$ go build -tags "sqlite pam cert"

If no error message, do ./gogs web, the program should start.

1 Like

Fortunately, I found a router as repeater of home WiFi, and has ethernet ports!