diff --git a/qemu/qemu-kernel.go b/qemu/qemu-kernel.go index 3846b68..1292c9d 100644 --- a/qemu/qemu-kernel.go +++ b/qemu/qemu-kernel.go @@ -178,6 +178,24 @@ func (q *System) panicWatcher() { } } +func (q System) cmdline() (s string) { + s = "root=/dev/sda ignore_loglevel console=ttyS0 rw" + + if q.noKASLR { + s += " nokaslr" + } + + if q.noSMEP { + s += " nosmep" + } + + if q.noSMAP { + s += " nosmap" + } + + return +} + // Start qemu process func (q *System) Start() (err error) { rand.Seed(time.Now().UnixNano()) // Are you sure? @@ -192,24 +210,10 @@ func (q *System) Start() (err error) { "-netdev", "user,id=n1," + hostfwd, } - cmdline := "root=/dev/sda ignore_loglevel console=ttyS0 rw" - if q.debug { qemuArgs = append(qemuArgs, "-gdb", q.gdb) } - if q.noKASLR { - cmdline += " nokaslr" - } - - if q.noSMEP { - cmdline += " nosmep" - } - - if q.noSMAP { - cmdline += " nosmap" - } - if q.kernel.InitrdPath != "" { qemuArgs = append(qemuArgs, "-initrd", q.kernel.InitrdPath) } @@ -222,7 +226,7 @@ func (q *System) Start() (err error) { qemuArgs = append(qemuArgs, "-accel", "hvf", "-cpu", "host") } - qemuArgs = append(qemuArgs, "-append", cmdline) + qemuArgs = append(qemuArgs, "-append", q.cmdline()) q.cmd = exec.Command("qemu-system-"+string(q.arch), qemuArgs...)