Initial arm support

Not yet working, some parts also not yet cross compiled

Signed-off-by: Justin Cormack <justin.cormack@unikernel.com>
This commit is contained in:
Justin Cormack 2016-01-13 15:49:38 +00:00
parent b20efa4991
commit 87dae6079b
11 changed files with 63 additions and 17 deletions

10
Dockerfile.armhf Normal file
View File

@ -0,0 +1,10 @@
FROM alpine:3.3
COPY alpine/initrd-arm.img .
COPY alpine/kernel/zImage .
RUN apk update && apk add qemu-system-arm
RUN gzip -9 initrd-arm.img
ENTRYPOINT [ "qemu-system-arm", "-cpu", "cortexa15", "-M", "cubieboard", "-no-reboot", "-serial", "stdio", "-kernel", "zImage", "-initrd", "initrd-arm.img.gz", "-m", "256", "-append", "console=ttyAMA0", "-vnc", "none" ]

View File

@ -9,6 +9,12 @@ qemu: all
docker build -t mobyqemu:build .
docker run -it mobyqemu:build
qemu-arm: Dockerfile.armhf
$(MAKE) -C alpine/kernel arm
$(MAKE) -C alpine arm
docker build -f Dockerfile.armhf -t mobyarmqemu:build .
docker run -it mobyarmqemu:build
clean:
$(MAKE) -C alpine clean
$(MAKE) -C xhyve clean

3
alpine/.gitignore vendored
View File

@ -1 +1,2 @@
initrd.img
*.img
Dockerfile.armhf

View File

@ -4,17 +4,27 @@ ETCFILES=etc/issue etc/motd etc/inittab etc/network/interfaces
ETCFILES+=etc/hostname- etc/resolv.conf- etc/hosts-
ETCFILES+=etc/securetty
kernel/aufs-utils.tar:
$(MAKE) -C kernel aufs-utils.tar
initrd.img: Dockerfile mkinitrd.sh repositories $(ETCFILES) kernel/aufs-utils.tar
initrd.img: Dockerfile mkinitrd.sh repositories $(ETCFILES)
rm -f initrd.img
$(MAKE) -C packages
$(MAKE) -C kernel
docker build -t mobyinitrd:build .
docker run mobyinitrd:build /bin/mkinitrd.sh > $@
arm: initrd-arm.img
Dockerfile.armhf: Dockerfile
cat Dockerfile | sed 's@FROM alpine@FROM justincormack/armhf-alpine@' | sed 's/syslinux//' > $@
initrd-arm.img: Dockerfile.armhf
rm -f initrd-arm.img
$(MAKE) -C packages arm
$(MAKE) -C kernel arm
docker build -f Dockerfile.armhf -t mobyinitrdarm:build .
docker run mobyinitrdarm:build /bin/mkinitrd.sh > $@
clean:
rm -f initrd.img
rm -f initrd.img initrd-arm.img Dockerfile.armhf
$(MAKE) -C packages clean
$(MAKE) -C kernel clean
docker images -q mobyinitrd:build | xargs docker rmi -f

View File

@ -1,2 +1,3 @@
vmlinuz64
zImage
aufs-utils.tar

View File

@ -1,12 +1,18 @@
all: vmlinuz64 aufs-utils.tar
all: vmlinuz64
vmlinuz64: kernel_config Dockerfile
docker build -t mobykernel:build .
docker run mobykernel:build cat /linux/arch/x86_64/boot/bzImage > $@
docker run mobykernel:build cat /aufs-utils.tar > aufs-utils.tar
aufs-utils.tar: vmlinuz64
docker run mobykernel:build cat /aufs-utils.tar > $@
arm: zImage
zImage: kernel_config.arm Dockerfile
docker build --build-arg ARCH=arm -t mobyarmkernel:build .
docker run mobyarmkernel:build cat /linux/arch/arm/boot/zImage > $@
docker run mobyarmkernel:build cat /aufs-utils.tar > aufs-utils.tar
clean:
rm -f vmlinuz64 aufs-utils.tar
rm -f zImage vmlinuz64 aufs-utils.tar
docker images -q mobykernel:build | xargs docker rmi -f
docker images -q mobyarmkernel:build | xargs docker rmi -f

View File

@ -1,7 +1,7 @@
all: 9pudc
9pudc: Dockerfile main.go
docker build --build-arg GOOS=$(GOOS) --build-arg GOARCH=$(GOARCH) -t 9pudc:build .
docker build --build-arg GOOS=$(OS) --build-arg GOARCH=$(ARCH) -t 9pudc:build .
docker run 9pudc:build cat /go/bin/9pudc > 9pudc
chmod 755 9pudc

View File

@ -4,6 +4,12 @@ all:
$(MAKE) -C mdnstool
$(MAKE) -C docker
arm:
$(MAKE) -C 9pudc ARCH=arm
$(MAKE) -C 9pudfuse ARCH=arm
$(MAKE) -C mdnstool ARCH=arm
$(MAKE) -C docker ARCH=arm
clean:
$(MAKE) -C 9pudc clean
$(MAKE) -C 9pudfuse clean

View File

@ -1,11 +1,12 @@
all: docker
DOCKER_VERSION=1.9.1
ARCH=x86_64
OS=Linux
ARCH?=x86_64
OS?=Linux
docker:
curl -L -o docker https://get.docker.com/builds/${OS}/${ARCH}/docker-${DOCKER_VERSION}
[ "${ARCH}" != "arm" ] && curl -L -o docker https://get.docker.com/builds/${OS}/${ARCH}/docker-${DOCKER_VERSION} || \
cp docker-arm docker
chmod +x docker
clean:

View File

@ -5,6 +5,11 @@ RUN apk update && apk upgrade && apk add git
RUN mkdir -p /go/src/mdnstool
WORKDIR /go/src/mdnstool
ARG GOARCH
ARG GOOS
COPY . /go/src/mdnstool/
RUN go get
RUN go install
RUN go get && go install
RUN [ -f /go/bin/*/mdnstool ] && mv /go/bin/*/mdnstool /go/bin/ || true

View File

@ -1,7 +1,7 @@
all: mdnstool
mdnstool: Dockerfile mdnstool.go mdnsmon/mdnsmon.go
docker build -t mdnstool:build .
docker build --build-arg GOOS=$(OS) --build-arg GOARCH=$(ARCH) -t mdnstool:build .
docker run mdnstool:build cat /go/bin/mdnstool > mdnstool
chmod 755 mdnstool