diff --git a/meta-isar/conf/distro/ubuntu-focal-ports.list b/meta-isar/conf/distro/ubuntu-focal-ports.list
new file mode 100644
index 00000000..7e2d50f0
--- /dev/null
+++ b/meta-isar/conf/distro/ubuntu-focal-ports.list
@@ -0,0 +1,6 @@
+deb	[arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports focal main restricted universe multiverse
+deb-src	[arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports focal main restricted universe multiverse
+deb	[arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports focal-updates main restricted universe multiverse
+deb-src	[arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports focal-updates main restricted universe multiverse
+deb	[arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports focal-security main restricted universe multiverse
+deb-src	[arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports focal-security main restricted universe multiverse
diff --git a/meta-isar/conf/distro/ubuntu-focal.conf b/meta-isar/conf/distro/ubuntu-focal.conf
new file mode 100644
index 00000000..0e4557e2
--- /dev/null
+++ b/meta-isar/conf/distro/ubuntu-focal.conf
@@ -0,0 +1,24 @@
+#
+# Copyright (c) Siemens AG, 2018-2020
+#
+# SPDX-License-Identifier: MIT
+
+require conf/distro/debian-common.conf
+
+DISTRO_APT_SOURCES_arm64 ?= "conf/distro/${DISTRO}-ports.list"
+HOST_DISTRO_APT_SOURCES_append_arm64 = " ${DISTRO_APT_SOURCES}"
+
+BASE_DISTRO_CODENAME = "focal"
+
+# that is what debootstrap_1.0.118ubuntu1 does anyways
+DISTRO_DEBOOTSTRAP_SCRIPT = "/usr/share/debootstrap/scripts/gutsy"
+
+DISTRO_CONFIG_SCRIPT ?= "debian-configscript.sh"
+
+DISTRO_KERNELS ?= " \
+    aws azure azure-edge gcp generic gke kvm lowlatency oem virtual \
+    snapdragon generic-lpae"
+
+IMAGE_PREINSTALL += "init"
+
+WIC_IMAGER_INSTALL += "python3-distutils"
diff --git a/meta-isar/conf/distro/ubuntu-focal.list b/meta-isar/conf/distro/ubuntu-focal.list
new file mode 100644
index 00000000..52a0b3f7
--- /dev/null
+++ b/meta-isar/conf/distro/ubuntu-focal.list
@@ -0,0 +1,6 @@
+deb	[arch=amd64,i386] http://archive.ubuntu.com/ubuntu focal main restricted universe multiverse
+deb-src	[arch=amd64,i386] http://archive.ubuntu.com/ubuntu focal main restricted universe multiverse
+deb	[arch=amd64,i386] http://archive.ubuntu.com/ubuntu focal-updates main restricted universe multiverse
+deb-src	[arch=amd64,i386] http://archive.ubuntu.com/ubuntu focal-updates main restricted universe multiverse
+deb	[arch=amd64,i386] http://archive.ubuntu.com/ubuntu focal-security main restricted universe multiverse
+deb-src	[arch=amd64,i386] http://archive.ubuntu.com/ubuntu focal-security main restricted universe multiverse
diff --git a/meta-isar/conf/local.conf.sample b/meta-isar/conf/local.conf.sample
index 3e435724..107496c1 100644
--- a/meta-isar/conf/local.conf.sample
+++ b/meta-isar/conf/local.conf.sample
@@ -63,6 +63,8 @@ BBMULTICONFIG = " \
     stm32mp15x-buster \
     rpi-stretch \
     sifive-fu540-sid-ports \
+    qemuarm64-focal \
+    qemuamd64-focal \
 "
 
 #
diff --git a/meta-isar/conf/machine/qemuamd64.conf b/meta-isar/conf/machine/qemuamd64.conf
index 29fc579e..238bc907 100644
--- a/meta-isar/conf/machine/qemuamd64.conf
+++ b/meta-isar/conf/machine/qemuamd64.conf
@@ -4,6 +4,7 @@
 DISTRO_ARCH ?= "amd64"
 
 KERNEL_NAME ?= "amd64"
+KERNEL_NAME_ubuntu-focal ?= "generic"
 
 IMAGE_TYPE ?= "wic-img"
 WKS_FILE ?= "sdimage-efi"
diff --git a/meta-isar/conf/machine/qemuarm64.conf b/meta-isar/conf/machine/qemuarm64.conf
index 246da5a5..e5e762ff 100644
--- a/meta-isar/conf/machine/qemuarm64.conf
+++ b/meta-isar/conf/machine/qemuarm64.conf
@@ -4,6 +4,7 @@
 DISTRO_ARCH ?= "arm64"
 
 KERNEL_NAME ?= "arm64"
+KERNEL_NAME_ubuntu-focal ?= "generic"
 
 IMAGE_TYPE ?= "ext4-img"
 
diff --git a/meta-isar/conf/multiconfig/qemuamd64-focal.conf b/meta-isar/conf/multiconfig/qemuamd64-focal.conf
new file mode 100644
index 00000000..d3566ada
--- /dev/null
+++ b/meta-isar/conf/multiconfig/qemuamd64-focal.conf
@@ -0,0 +1,7 @@
+#
+# Copyright (c) Siemens AG, 2018-2020
+#
+# SPDX-License-Identifier: MIT
+
+MACHINE ?= "qemuamd64"
+DISTRO ?= "ubuntu-focal"
diff --git a/meta-isar/conf/multiconfig/qemuarm64-focal.conf b/meta-isar/conf/multiconfig/qemuarm64-focal.conf
new file mode 100644
index 00000000..1cbc8fb8
--- /dev/null
+++ b/meta-isar/conf/multiconfig/qemuarm64-focal.conf
@@ -0,0 +1,7 @@
+#
+# Copyright (c) Siemens AG, 2018-2020
+#
+# SPDX-License-Identifier: MIT
+
+MACHINE ?= "qemuarm64"
+DISTRO ?= "ubuntu-focal"
diff --git a/scripts/ci_build.sh b/scripts/ci_build.sh
index f4c33a37..a8d9ad97 100755
--- a/scripts/ci_build.sh
+++ b/scripts/ci_build.sh
@@ -31,7 +31,8 @@ TARGETS_SET="\
             mc:qemumipsel-stretch:isar-image-base \
             mc:qemumipsel-buster:isar-image-base \
             mc:nand-ubi-demo-buster:isar-image-ubi \
-            mc:rpi-stretch:isar-image-base"
+            mc:rpi-stretch:isar-image-base \
+            mc:qemuamd64-focal:isar-image-base"
           # qemu-user-static of <= buster too old to build that
           # mc:qemuarm64-buster:isar-image-base
           # mc:qemuarm64-bullseye:isar-image-base
@@ -50,7 +51,8 @@ CROSS_TARGETS_SET="\
                   mc:qemuamd64-stretch:isar-image-base \
                   mc:de0-nano-soc-buster:isar-image-base \
                   mc:stm32mp15x-buster:isar-image-base \
-                  mc:rpi-stretch:isar-image-base"
+                  mc:rpi-stretch:isar-image-base \
+                  mc:qemuarm64-focal:isar-image-base"
 
 CROSS_TARGETS_SET_BULLSEYE="\
     mc:qemuarm-bullseye:isar-image-base \
diff --git a/scripts/start_vm b/scripts/start_vm
index eda49462..dfa14c95 100755
--- a/scripts/start_vm
+++ b/scripts/start_vm
@@ -109,10 +109,10 @@ readonly ISARROOT="$(dirname "$0")"/..
 readonly MACHINE_CONF=$ISARROOT/meta-isar/conf/machine/qemu$ARCH.conf
 eval "$(egrep 'MACHINE_SERIAL|QEMU_' $MACHINE_CONF |bb2sh)"
 
-eval $(bitbake -e mc:qemu$ARCH-$DISTRO:isar-image-base | grep "^IMAGE_TYPE=")
+eval $(bitbake -e mc:qemu$ARCH-$DISTRO:isar-image-base | grep "\(^IMAGE_TYPE=\|^IMAGE_FULLNAME=\)")
 case "$IMAGE_TYPE" in
     ext4-img)
-    readonly ROOTFS_IMAGE=isar-image-base-debian-$DISTRO-qemu$ARCH.ext4.img
+    readonly ROOTFS_IMAGE=$IMAGE_FULLNAME.ext4.img
 
     eval $(bitbake -e mc:qemu$ARCH-$DISTRO:isar-image-base | grep "^KERNEL_IMAGE=")
     eval $(bitbake -e mc:qemu$ARCH-$DISTRO:isar-image-base | grep "^INITRD_IMAGE=")
@@ -129,7 +129,7 @@ case "$IMAGE_TYPE" in
     KARGS="console=$MACHINE_SERIAL root=/dev/$QEMU_ROOTFS_DEV rw $QEMU_KARGS"
     ;;
     wic-img)
-    readonly ROOTFS_IMAGE=isar-image-base-debian-$DISTRO-qemu$ARCH.wic.img
+    readonly ROOTFS_IMAGE=$IMAGE_FULLNAME.wic.img
     EXTRA_ARGS="$EXTRA_ARGS -snapshot"
     ;;
     *)
diff --git a/scripts/vm_smoke_test b/scripts/vm_smoke_test
index 237205e2..ce082137 100755
--- a/scripts/vm_smoke_test
+++ b/scripts/vm_smoke_test
@@ -152,6 +152,7 @@ run_test arm buster
 # AMD64 machine
 if [ -z "$FAST_BUILD" ]; then
     run_test amd64 buster
+    run_test amd64 focal
 fi
 run_test amd64 stretch
 
