Merge pull request #2358 from rn/qemu

cmd/qemu: Better handling of arch and console for aarch64
This commit is contained in:
Rolf Neugebauer 2017-08-04 16:57:04 +01:00 committed by GitHub
commit f9cb013171
8 changed files with 27 additions and 9 deletions

View File

@ -1,6 +1,6 @@
kernel: kernel:
image: linuxkit/kernel:4.9.40 image: linuxkit/kernel:4.9.40
cmdline: "console=tty0 console=ttyS0" cmdline: "console=tty0 console=ttyS0 console=ttyAMA0"
init: init:
- linuxkit/init:906e174b3f2e07f97d6fd693a2e8518e98dafa58 - linuxkit/init:906e174b3f2e07f97d6fd693a2e8518e98dafa58
- linuxkit/runc:90e45f13e1d0a0983f36ef854621e3eac91cf541 - linuxkit/runc:90e45f13e1d0a0983f36ef854621e3eac91cf541

View File

@ -1,6 +1,6 @@
kernel: kernel:
image: linuxkit/kernel:4.9.40 image: linuxkit/kernel:4.9.40
cmdline: "console=tty0 console=ttyS0" cmdline: "console=tty0 console=ttyS0 console=ttyAMA0"
init: init:
- linuxkit/init:906e174b3f2e07f97d6fd693a2e8518e98dafa58 - linuxkit/init:906e174b3f2e07f97d6fd693a2e8518e98dafa58
- linuxkit/runc:90e45f13e1d0a0983f36ef854621e3eac91cf541 - linuxkit/runc:90e45f13e1d0a0983f36ef854621e3eac91cf541

View File

@ -1,6 +1,6 @@
kernel: kernel:
image: linuxkit/kernel:4.9.40 image: linuxkit/kernel:4.9.40
cmdline: "console=tty0 console=ttyS0" cmdline: "console=tty0 console=ttyS0 console=ttyAMA0"
init: init:
- linuxkit/init:906e174b3f2e07f97d6fd693a2e8518e98dafa58 - linuxkit/init:906e174b3f2e07f97d6fd693a2e8518e98dafa58
- linuxkit/runc:90e45f13e1d0a0983f36ef854621e3eac91cf541 - linuxkit/runc:90e45f13e1d0a0983f36ef854621e3eac91cf541

View File

@ -2,7 +2,7 @@
# connect: nc localhost 6379 # connect: nc localhost 6379
kernel: kernel:
image: linuxkit/kernel:4.9.40 image: linuxkit/kernel:4.9.40
cmdline: "console=tty0 console=ttyS0" cmdline: "console=tty0 console=ttyS0 console=ttyAMA0"
init: init:
- linuxkit/init:906e174b3f2e07f97d6fd693a2e8518e98dafa58 - linuxkit/init:906e174b3f2e07f97d6fd693a2e8518e98dafa58
- linuxkit/runc:90e45f13e1d0a0983f36ef854621e3eac91cf541 - linuxkit/runc:90e45f13e1d0a0983f36ef854621e3eac91cf541

View File

@ -1,6 +1,6 @@
kernel: kernel:
image: linuxkit/kernel:4.9.40 image: linuxkit/kernel:4.9.40
cmdline: "console=tty0 console=ttyS0" cmdline: "console=tty0 console=ttyS0 console=ttyAMA0"
init: init:
- linuxkit/init:906e174b3f2e07f97d6fd693a2e8518e98dafa58 - linuxkit/init:906e174b3f2e07f97d6fd693a2e8518e98dafa58
- linuxkit/runc:90e45f13e1d0a0983f36ef854621e3eac91cf541 - linuxkit/runc:90e45f13e1d0a0983f36ef854621e3eac91cf541

View File

@ -1,6 +1,6 @@
kernel: kernel:
image: linuxkit/kernel:4.9.40 image: linuxkit/kernel:4.9.40
cmdline: "console=tty0 console=ttyS0" cmdline: "console=tty0 console=ttyS0 console=ttyAMA0"
init: init:
- linuxkit/init:906e174b3f2e07f97d6fd693a2e8518e98dafa58 - linuxkit/init:906e174b3f2e07f97d6fd693a2e8518e98dafa58
- linuxkit/runc:90e45f13e1d0a0983f36ef854621e3eac91cf541 - linuxkit/runc:90e45f13e1d0a0983f36ef854621e3eac91cf541

View File

@ -1,6 +1,6 @@
kernel: kernel:
image: linuxkit/kernel:4.9.40 image: linuxkit/kernel:4.9.40
cmdline: "console=tty0 console=ttyS0" cmdline: "console=tty0 console=ttyS0 console=ttyAMA0"
init: init:
- linuxkit/init:906e174b3f2e07f97d6fd693a2e8518e98dafa58 - linuxkit/init:906e174b3f2e07f97d6fd693a2e8518e98dafa58
- linuxkit/runc:90e45f13e1d0a0983f36ef854621e3eac91cf541 - linuxkit/runc:90e45f13e1d0a0983f36ef854621e3eac91cf541

View File

@ -9,6 +9,7 @@ import (
"os" "os"
"os/exec" "os/exec"
"path/filepath" "path/filepath"
"runtime"
"strconv" "strconv"
"strings" "strings"
@ -54,6 +55,19 @@ const (
qemuNetworkingDefault = qemuNetworkingUser qemuNetworkingDefault = qemuNetworkingUser
) )
var (
defaultArch string
)
func init() {
switch runtime.GOARCH {
case "arm64":
defaultArch = "aarch64"
case "amd64":
defaultArch = "x86_64"
}
}
func haveKVM() bool { func haveKVM() bool {
_, err := os.Stat("/dev/kvm") _, err := os.Stat("/dev/kvm")
return !os.IsNotExist(err) return !os.IsNotExist(err)
@ -123,7 +137,7 @@ func runQemu(args []string) {
// VM configuration // VM configuration
enableKVM := flags.Bool("kvm", haveKVM(), "Enable KVM acceleration") enableKVM := flags.Bool("kvm", haveKVM(), "Enable KVM acceleration")
arch := flags.String("arch", "x86_64", "Type of architecture to use, e.g. x86_64, aarch64") arch := flags.String("arch", defaultArch, "Type of architecture to use, e.g. x86_64, aarch64")
cpus := flags.String("cpus", "1", "Number of CPUs") cpus := flags.String("cpus", "1", "Number of CPUs")
mem := flags.String("mem", "1024", "Amount of memory in MB") mem := flags.String("mem", "1024", "Amount of memory in MB")
@ -459,7 +473,11 @@ func buildQemuCmdline(config QemuConfig) (QemuConfig, []string) {
// Need to specify the vcpu type when running qemu on arm64 platform, for security reason, // Need to specify the vcpu type when running qemu on arm64 platform, for security reason,
// the vcpu should be "host" instead of other names such as "cortex-a53"... // the vcpu should be "host" instead of other names such as "cortex-a53"...
if config.Arch == "aarch64" { if config.Arch == "aarch64" {
qemuArgs = append(qemuArgs, "-cpu", "host") if runtime.GOARCH == "arm64" {
qemuArgs = append(qemuArgs, "-cpu", "host")
} else {
qemuArgs = append(qemuArgs, "-cpu", "cortex-a57")
}
} }
if config.KVM { if config.KVM {