minideb icon indicating copy to clipboard operation
minideb copied to clipboard

Unable to build Minideb for ARM64 foreign architecture

Open basictheprogram opened this issue 2 years ago • 5 comments

Description Unable to build Minideb for ARM64 foreign architecture.

Maybe this is a documentation issue? Can I ARM64 Minideb be build inside an ARM64 Bullseye Docker image?

Steps to reproduce the issue:

  1. git clone https://github.com/bitnami/minideb.git
  2. apt-get install build-essential
  3. qemu_build bullseye arm64

Describe the results you received:

$ ./qemu_build bullseye arm64
Installing QEMU and required packages...
Hit:1 http://deb.debian.org/debian bullseye InRelease
Hit:2 http://security.debian.org/debian-security bullseye-security InRelease
Hit:3 http://deb.debian.org/debian bullseye-updates InRelease
Reading package lists... Done
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting 'qemu-system-arm' instead of 'qemu-kvm'
Package libvirt-bin is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'libvirt-bin' has no installation candidate
make: *** [Makefile:17: .installed-qemu] Error 100

Describe the results you expected: An ARM64 Minideb foreign architecture Docker image wold be created.

Version

  • Output of docker version:
$ docker version
Client:
 Cloud integration: v1.0.24
 Version:           20.10.17
 API version:       1.41
 Go version:        go1.17.11
 Git commit:        100c701
 Built:             Mon Jun  6 23:04:45 2022
 OS/Arch:           darwin/arm64
 Context:           default
 Experimental:      true

Server: Docker Desktop 4.10.1 (82475)
 Engine:
  Version:          20.10.17
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.17.11
  Git commit:       a89b842
  Built:            Mon Jun  6 23:01:01 2022
  OS/Arch:          linux/arm64
  Experimental:     false
 containerd:
  Version:          1.6.6
  GitCommit:        10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
 runc:
  Version:          1.1.2
  GitCommit:        v1.1.2-0-ga916309
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
  • Output of docker info:
$ docker info
Client:
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc., v0.8.2)
  compose: Docker Compose (Docker Inc., v2.6.1)
  extension: Manages Docker extensions (Docker Inc., v0.2.7)
  sbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc., 0.6.0)
  scan: Docker Scan (Docker Inc., v0.17.0)

Server:
 Containers: 2
  Running: 0
  Paused: 0
  Stopped: 2
 Images: 3
 Server Version: 20.10.17
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
 runc version: v1.1.2-0-ga916309
 init version: de40ad0
 Security Options:
  seccomp
   Profile: default
  cgroupns
 Kernel Version: 5.10.104-linuxkit
 Operating System: Docker Desktop
 OSType: linux
 Architecture: aarch64
 CPUs: 4
 Total Memory: 7.765GiB
 Name: docker-desktop
 ID: L4PG:GDQK:ZHVF:36LO:5XO5:GSFS:WYKV:CZED:QFRI:ZXI2:WSMU:NF7W
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 HTTP Proxy: http.docker.internal:3128
 HTTPS Proxy: http.docker.internal:3128
 No Proxy: hubproxy.docker.internal
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  hubproxy.docker.internal:5000
  127.0.0.0/8
 Live Restore Enabled: false
  • Output of docker-compose version (if applicable):
$ docker-compose version
Docker Compose version v2.6.1

Additional environment details (AWS, VirtualBox, Docker for MAC, physical, etc.):

$ sw_vers
ProductName:	macOS
ProductVersion:	12.4
BuildVersion:	21F79

basictheprogram avatar Jul 07 '22 16:07 basictheprogram

Maybe a work around?

https://lists.debian.org/debian-user/2016/11/msg00518.html

The package was split into two parts:

libvirt-daemon-system

libvirt-clients

In most cases you probably want both of them at the same time.
So instead of libvirt-bin use libvirt-daemon-system libvirt-clients:

basictheprogram avatar Jul 07 '22 16:07 basictheprogram

https://github.com/bitnami/minideb/pull/130 got me past the libvirt-bin problem but now this issue (I do not know if this is related or a different issue)

# ./qemu_build bullseye arm64
make: '.installed-qemu' is up to date.
qemu-img: warning: Deprecated use of backing file without explicit backing format (detected format of raw)
Formatting 'build/bullseye/arm64/instance.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=512 backing_file=../../../.kvm-images/arm64/buster-server-cloudimg-arm64.qcow2 lazy_refcounts=off refcount_bits=16
Image resized.
.PXE-E18: Server response timeout.
UEFI Interactive Shell v2.1
EDK II
UEFI v2.60 (EDK II, 0x00010000)
Mapping table
     BLK3: Alias(s):
          VenHw(F9B94AE2-8BA6-409B-9D56-B9B417F53CB3)
     BLK2: Alias(s):
          VenHw(8047DB4B-7E9C-4C0C-8EBC-DFBBAACACE8F)
     BLK0: Alias(s):
          PciRoot(0x0)/Pci(0x2,0x0)
     BLK1: Alias(s):
          PciRoot(0x0)/Pci(0x3,0x0)
Press ESC in 1 seconds to skip startup.nsh or any other key to continue.
Shell> kex_exchange_identification: read: Connection reset by peer
Connection reset by 127.0.0.1 port 5555
kex_exchange_identification: read: Connection reset by peer
Connection reset by 127.0.0.1 port 5555
kex_exchange_identification: read: Connection reset by peer
Connection reset by 127.0.0.1 port 5555
kex_exchange_identification: read: Connection reset by peer
Connection reset by 127.0.0.1 port 5555
kex_exchange_identification: read: Connection reset by peer
Connection reset by 127.0.0.1 port 5555
kex_exchange_identification: read: Connection reset by peer
Connection reset by 127.0.0.1 port 5555
kex_exchange_identification: read: Connection reset by peer
Connection reset by 127.0.0.1 port 5555
kex_exchange_identification: read: Connection reset by peer
Connection reset by 127.0.0.1 port 5555
kex_exchange_identification: read: Connection reset by peer
Connection reset by 127.0.0.1 port 5555
kex_exchange_identification: read: Connection reset by peer
Connection reset by 127.0.0.1 port 5555
kex_exchange_identification: read: Connection reset by peer
Connection reset by 127.0.0.1 port 5555
kex_exchange_identification: read: Connection reset by peer
Connection reset by 127.0.0.1 port 5555
kex_exchange_identification: read: Connection reset by peer
Connection reset by 127.0.0.1 port 5555
kex_exchange_identification: read: Connection reset by peer
Connection reset by 127.0.0.1 port 5555
kex_exchange_identification: read: Connection reset by peer
Connection reset by 127.0.0.1 port 5555
kex_exchange_identification: read: Connection reset by peer
Connection reset by 127.0.0.1 port 5555
Shutting down QEMU...
kex_exchange_identification: read: Connection reset by peer
Connection reset by 127.0.0.1 port 5555
qemu-system-aarch64: terminating on signal 2

basictheprogram avatar Jul 07 '22 21:07 basictheprogram

Hi, From the docker info output, are you running this in an ARM machine ?

...
Kernel Version: 5.10.104-linuxkit
 Operating System: Docker Desktop
 OSType: linux
 Architecture: aarch64
...

rafariossaa avatar Jul 11 '22 08:07 rafariossaa

Yes.

I need to build it on an amd64 architecture?

On Jul 11, 2022, at 3:42 AM, Rafael Ríos Saavedra @.@.>> wrote:

From the docker info output, are you running this in an ARM machine ?

... Kernel Version: 5.10.104-linuxkit Operating System: Docker Desktop OSType: linux Architecture: aarch64 ...

-- Bob Tanner @.@.>> | Phone : (952)943-8700 https://keybase.io/basictheprogram | http://www.real-time.com Key fingerprint = F785 DDFC CF94 7CE8 AA87 3A9D 3895 26F1 0DDB E378

basictheprogram avatar Jul 11 '22 14:07 basictheprogram

As you can see this run qemu, I not sure if you can run those qemu commands on ARM64 without issues. Could you give it a try on a AMD64 machine ?

rafariossaa avatar Jul 12 '22 08:07 rafariossaa