burmilla / os

Tiny Linux distro that runs the entire OS as Docker containers
https://burmillaos.org
Apache License 2.0
210 stars 13 forks source link

How to build actually rpi64 image? #128

Closed starmacco closed 6 months ago

starmacco commented 2 years ago

Hi,

How actually build rpi64 image? or arm? Is it broken? I've tried target rpi64.

Getting:

` make rpi64 ./scripts/release-rpi64 ++ dirname ./scripts/release-rpi64

cd ./scripts/.. source ./scripts/version +++ git status --porcelain --untracked-files=no ++ '[' -n '' ']' +++ git rev-parse --short HEAD ++ COMMIT=0dc7a00e +++ git tag -l --contains HEAD +++ head -n 1 ++ GIT_TAG= ++ '[' -z '' ']' ++ [[ -z '' ]] ++ [[ -n '' ]] ++ VERSION=0dc7a00e ++ INITRD=initrd-0dc7a00e ++ export VERSION COMMIT INITRD GIT_TAG DIRTY ++ export SUFFIX= ++ SUFFIX= ++ '[' -n '' ']' ++ echo ' Building 0dc7a00e from 0dc7a00e on ' Building 0dc7a00e from 0dc7a00e on '[' '!' -f ./dist/artifacts/rootfs_arm64.tar.gz ']' echo 'Please run make first' Please run make first exit 0 ` If I run just 'make' only x86 artefacts are build.

I could not find rpi64 binaries on the release page: https://github.com/burmilla/os/releases Which is a target from another doc: https://burmillaos.org/docs/installation/server/raspberry-pi/

olljanat commented 2 years ago

Only 2.0 beta versions include rpi64 support. Latest is https://github.com/burmilla/os/releases/tag/v2.0.0-beta4

If you want build arm binaries on x86 platform you need use command like: ARCH=arm64 make

starmacco commented 2 years ago

Thanks! will try that. It would be nice to have some section about SDLC in the readme.

starmacco commented 2 years ago

This is hard. ARM build fails for me on 'master' and 'v2.0.0-beta4'

First fails on 'build constraints exclude all Go files on' selinux: https://github.com/burmilla/os/blob/872f1cd6dab4f397e1357b95970f772c03eb5b00/pkg/init/selinux/selinux.go#L1

package github.com/burmilla/os
        imports github.com/burmilla/os/cmd/init
        imports github.com/burmilla/os/pkg/init/selinux
        imports github.com/burmilla/os/pkg/selinux: build constraints exclude all Go files in /go/src/github.com/burmilla/os/pkg/selinux
FATA[1033] exit status 1                                

if I add '-tag linux' https://github.com/burmilla/os/blob/872f1cd6dab4f397e1357b95970f772c03eb5b00/scripts/build-target#L25

I reached

ls: cannot access 'bin/ros': No such file or directory
FATA[0027] exit status 2                                
make: *** [Makefile:11: default] Error 1

Any special preparation is required for arm build?

olljanat commented 2 years ago

What you are actually trying to do? v2.0.0-beta4 contains ready made binaries for Raspberry Pi.

I don't remember exactly but it might be that I actually used Raspberry Pi 4 to build those because it is much simpler than cross building.

starmacco commented 2 years ago

I wanted to make mods and build it on normal linux/i386 quicker the user rpi3 which I have. If there is not cross-compiling available build scripts should point to it, no confusions, I wouldn't moan :)

olljanat commented 2 years ago

In general Golang supports cross building and anything which prevents that are bugs which should be fixed. v2.0 versions are called for beta on purpose as it is known thing that there is bugs.

Also notice that it is currently unknown if v2.0 will be ever released under current architecture or if it will be switched to new one like proposed on https://github.com/burmilla/os/issues/119 or if either of those goes forward as it looks to be that there is no any comments which agree or disagree with that proposal.