QEMU is one of the programs used by GNS3 to emulate devices. As any complex software it has some issues.

Lots of Warnings in its Log

In some VMs, e.g. IOSv, the access to the virtual e1000 controller results in lots of log messages. For details, see the gns3-server issue e1000: Reading register at offset: 0x00002410. It is not fully implemented.

As a workaround the following script patches this debug message away. It needs xxd, if you have installed vim, it’s already on your system.

#!/bin/bash

if [ "$USER" != "root" ]; then
	echo "Must be run as root, start with sudo" >&2
	exit 1
fi

# patch qemu-system-*
qemu=`compgen -c | grep '^qemu-system' | grep -v '\.orig$' | sort`
which $qemu | while read fname; do
	offsets=`grep -a -b -o "e1000: Reading" "$fname" | \
	        sed -n 's/^\([0-9][0-9]*\):.*/\1/p'`
	if [ -n "$offsets" ]; then
		echo Patching "$fname" ...
		[ -e "${fname}.orig" ] || cp -p "$fname" "${fname}.orig"
		for offset in $offsets; do
			echo "0: 00" | xxd -s $offset -r - "$fname"
		done
	fi
done

QEMU version 2.8 in a Linux VM

QEMU v2.8 works fine in a Linux system, running on bare metal. But when using it in a Linux VM (tested with VMware Fusion 8.x), it has issues with some VMs.

After some experiments I’ve got usable QEMU parameters, in GNS3 add them in the VM preferences under Advanced settings / Options.

  • vSRX 12.x (Firefly)
    After boot the UI of the vSRX is extremely slow, CPU usage is normal. It takes 5 minutes, until the UI gets usable.
    • Option -machine type=pc-1.0
      boot / kernel initialiation stops at db> prompt with error:
      ACPI-0397: *** Error: NsSearchAndEnter: Bad character in ACPI Name: 2e5c1502
    • Option -machine type=pc-1.0 -no-acpi
      normal boot
      missing ACPI –> the VM can’t power off itself, must be stopped by GNS3
  • IOSv, IOSv-L2
    Doesn’t boot with virtio disk interface. With ide disk interface it boots (slowly, but that’s normal).
    • Option -machine type=pc-1.0
      normal boot also with virtio disk interface