summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2016-09-06 14:46:10 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-09-09 12:06:54 +0100
commitc01962bf88786dd84ad83cc1d315297607d29f7c (patch)
treeaadaadb7200b0a842877aef83a8c03bee488ece3
parent14bacf7203ab7a638b67eb143225d8c75bbb703d (diff)
downloadopenembedded-core-c01962bf88786dd84ad83cc1d315297607d29f7c.tar.gz
openembedded-core-c01962bf88786dd84ad83cc1d315297607d29f7c.tar.bz2
openembedded-core-c01962bf88786dd84ad83cc1d315297607d29f7c.zip
runqemu: Allow unique network interface MAC addresses
Current qemu instances all share the same MAC address. This shouldn't be an issue as they are all on separate network interfaces, however on the slight chance this is causing problems, its easy enough to ensure we use unique MAC addresses based on the IP numbers we assign. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/conf/machine/qemuarm64.conf2
-rw-r--r--meta/conf/machine/qemuppc.conf2
-rwxr-xr-xscripts/runqemu5
3 files changed, 5 insertions, 4 deletions
diff --git a/meta/conf/machine/qemuarm64.conf b/meta/conf/machine/qemuarm64.conf
index df76ee668e..da59c338e4 100644
--- a/meta/conf/machine/qemuarm64.conf
+++ b/meta/conf/machine/qemuarm64.conf
@@ -16,7 +16,7 @@ QB_MACHINE = "-machine virt"
QB_CPU = "-cpu cortex-a57"
QB_KERNEL_CMDLINE_APPEND = "console=ttyAMA0,38400"
QB_OPT_APPEND = "-show-cursor"
-QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no -device virtio-net-device,netdev=net0"
+QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no -device virtio-net-device,netdev=net0,mac=@MAC@"
QB_SLIRP_OPT = "-netdev user,id=net0 -device virtio-net-device,netdev=net0"
QB_ROOTFS_OPT = "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-device,drive=disk0"
QB_SERIAL_OPT = "-device virtio-serial-device -chardev null,id=virtcon -device virtconsole,chardev=virtcon"
diff --git a/meta/conf/machine/qemuppc.conf b/meta/conf/machine/qemuppc.conf
index 939c834a33..e4c8dace7d 100644
--- a/meta/conf/machine/qemuppc.conf
+++ b/meta/conf/machine/qemuppc.conf
@@ -17,4 +17,4 @@ QB_MACHINE = "-machine mac99"
QB_CPU = "-cpu G4"
QB_KERNEL_CMDLINE_APPEND = "console=ttyS0 console=tty"
QB_OPT_APPEND = "-show-cursor -usb -usbdevice tablet"
-QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no -device virtio-net-pci,netdev=net0"
+QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no -device virtio-net-pci,netdev=net0,mac=@MAC@"
diff --git a/scripts/runqemu b/scripts/runqemu
index 91e72cbc50..c43db8c227 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -736,11 +736,12 @@ class BaseConfig(object):
if self.fstype == 'nfs':
self.setup_nfs()
self.kernel_cmdline_script += " ip=192.168.7.%s::192.168.7.%s:255.255.255.0" % (n2, n1)
+ mac = "52:54:00:12:34:%02x" % n2
qb_tap_opt = self.get('QB_TAP_OPT')
if qb_tap_opt:
- qemu_tap_opt = qb_tap_opt.replace('@TAP@', tap)
+ qemu_tap_opt = qb_tap_opt.replace('@TAP@', tap).replace('@MAC@', mac)
else:
- qemu_tap_opt = "-net nic,model=virtio -net tap,vlan=0,ifname=%s,script=no,downscript=no" % self.tap
+ qemu_tap_opt = "-net nic,model=virtio,mac=%s -net tap,vlan=0,ifname=%s,script=no,downscript=no" % (mac, self.tap)
if self.vhost_enabled:
qemu_tap_opt += ',vhost=on'