mirror of
https://github.com/linuxkit/linuxkit.git
synced 2025-07-18 17:01:07 +00:00
Merge pull request #2358 from rn/qemu
cmd/qemu: Better handling of arch and console for aarch64
This commit is contained in:
commit
f9cb013171
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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 {
|
||||||
|
Loading…
Reference in New Issue
Block a user