Merge pull request #9846 from afbjorklund/qemu-arm64

[NO TESTS NEEDED] Add machine support for qemu-system-aarch64 on linux
This commit is contained in:
OpenShift Merge Robot
2021-03-30 00:37:36 +00:00
committed by GitHub
10 changed files with 50 additions and 9 deletions

View File

@ -1,4 +1,4 @@
// +build amd64,linux amd64,darwin arm64,darwin
// +build amd64,linux arm64,linux amd64,darwin arm64,darwin
package machine

View File

@ -1,4 +1,4 @@
// +build amd64,linux amd64,darwin arm64,darwin
// +build amd64,linux arm64,linux amd64,darwin arm64,darwin
package machine

View File

@ -1,4 +1,4 @@
// +build !amd64 arm64,linux amd64,windows
// +build !amd64 amd64,windows
package machine

View File

@ -1,4 +1,4 @@
// +build amd64,linux amd64,darwin arm64,darwin
// +build amd64,linux arm64,linux amd64,darwin arm64,darwin
package machine

View File

@ -1,4 +1,4 @@
// +build amd64,linux amd64,darwin arm64,darwin
// +build amd64,linux arm64,linux amd64,darwin arm64,darwin
package machine

View File

@ -1,4 +1,4 @@
// +build amd64,linux amd64,darwin arm64,darwin
// +build amd64,linux arm64,linux amd64,darwin arm64,darwin
package machine

View File

@ -1,4 +1,4 @@
// +build amd64,linux amd64,darwin arm64,darwin
// +build amd64,linux arm64,linux amd64,darwin arm64,darwin
package machine

View File

@ -34,7 +34,7 @@ func getFCOSDownload() (*fcosDownloadInfo, error) {
return nil, err
}
return &fcosDownloadInfo{
Location: "https://fedorapeople.org/groups/fcos-images/builds/latest/aarch64/fedora-coreos-33.20210310.dev.0-qemu.aarch64.qcow2",
Location: aarchBaseURL + "/" + meta.BuildArtifacts.Qemu.Path,
Release: "",
Sha256Sum: meta.BuildArtifacts.Qemu.Sha256,
}, nil

View File

@ -38,7 +38,7 @@ func DownloadVMImage(downloadURL fmt.Stringer, localImagePath string) error {
}()
if resp.StatusCode != http.StatusOK {
return fmt.Errorf("error downloading VM image: %s", resp.Status)
return fmt.Errorf("error downloading VM image %s: %s", downloadURL, resp.Status)
}
size := resp.ContentLength
urlSplit := strings.Split(downloadURL.String(), "/")

View File

@ -0,0 +1,41 @@
package qemu
import (
"os"
"path/filepath"
)
var (
QemuCommand = "qemu-system-aarch64"
)
func (v *MachineVM) addArchOptions() []string {
opts := []string{
"-accel", "kvm",
"-cpu", "host",
"-M", "virt,gic-version=max",
"-bios", getQemuUefiFile("QEMU_EFI.fd"),
}
return opts
}
func (v *MachineVM) prepare() error {
return nil
}
func (v *MachineVM) archRemovalFiles() []string {
return []string{}
}
func getQemuUefiFile(name string) string {
dirs := []string{
"/usr/share/qemu-efi-aarch64",
"/usr/share/edk2/aarch64",
}
for _, dir := range dirs {
if _, err := os.Stat(dir); err == nil {
return filepath.Join(dir, name)
}
}
return name
}