diff --git a/reform2-imx8mq/.gitignore b/reform2-imx8mq/.gitignore
index 693f76aa2783f9ffb82666365d1a0bd0b4c960b2..acbc325140ceb4cebee95eff0852fcb234339ebc 100644
--- a/reform2-imx8mq/.gitignore
+++ b/reform2-imx8mq/.gitignore
@@ -4,3 +4,7 @@ linux-5.7-rc6
 !linux-5.7-rc6/.config
 !linux-5.7-rc6/arch/arm64/boot/dts/freescale/imx8mq-mnt-reform2.dts
 !linux-5.7-rc6/arch/arm64/boot/dts/freescale/imx8mq.dtsi
+linux/
+target-userland/
+u-boot/
+reform-system.img
diff --git a/reform2-imx8mq/cleanup.sh b/reform2-imx8mq/cleanup.sh
index cf3fb911c55c7df99ffcd9397efc5d729e99a4de..ad1dd8aa1de17611b360de67e2762cdae682d740 100755
--- a/reform2-imx8mq/cleanup.sh
+++ b/reform2-imx8mq/cleanup.sh
@@ -1,5 +1,10 @@
 #!/bin/bash
 
+for d in dev proc sys
+do
+	umount -f target-userland/$d || echo "Umounting $d failed"
+done
+
 rm -rf target-userland
 rm reform-system.img
 
diff --git a/reform2-imx8mq/mkimage.sh b/reform2-imx8mq/mkimage.sh
index e68e143f2160a80d3220fa4173f7f68bb8b12780..0145e8cdb8c5effb01879aa40c7ba41d37191aa5 100755
--- a/reform2-imx8mq/mkimage.sh
+++ b/reform2-imx8mq/mkimage.sh
@@ -3,7 +3,9 @@
 set -x
 set -e
 
-sudo apt install parted multistrap udisks2 gcc-aarch64-linux-gnu make device-tree-compiler qemu-user-static binfmt-support
+# make sure build tools are installed
+# tested with bare Ubuntu 20.04 server
+sudo apt-get -y install parted multistrap udisks2 gcc-aarch64-linux-gnu make device-tree-compiler qemu-user-static binfmt-support build-essential bison flex libssl-dev
 
 # build the linux kernel
 ./mkkernel.sh
diff --git a/reform2-imx8mq/mkuserland.sh b/reform2-imx8mq/mkuserland.sh
index f41177e119eee971ba59b79583e386448adcb851..0a0a4df06a340085320ba309a3333150bf3f07c6 100755
--- a/reform2-imx8mq/mkuserland.sh
+++ b/reform2-imx8mq/mkuserland.sh
@@ -5,11 +5,24 @@
 ETC=./template-etc
 SKEL=./template-skel
 
-rm -rf ./target-userland
-mkdir ./target-userland
+mbind() {
+	for d in dev proc sys
+	do
+		mount /$d target-userland/$d -o bind || echo "Bind-mounting /$d failed"
+	done
+}
+
+munbind() {
+	for d in dev proc sys
+	do
+		umount -f target-userland/$d || echo "Umounting $d failed"
+	done
+}
 
 set -e
 
+[[ -e target-userland ]] && echo "WARNING: Target userland already exist" && munbind
+
 # create debian userland
 /usr/sbin/multistrap -d target-userland -f multistrap.conf
 
@@ -62,12 +75,14 @@ cp $ETC/eth.network target-userland/etc/systemd/network/
 mkdir -p target-userland/var/lib/alsa
 cp $ETC/asound.state target-userland/var/lib/alsa/
 
-mknod target-userland/dev/random c 1 8
-mknod target-userland/dev/urandom c 1 9
-
-chown root:root -R target-userland/*
+chown root:root -R target-userland
 chown root:shadow target-userland/etc/shadow
 
+mbind
+
+#mknod target-userland/dev/random c 1 8
+#mknod target-userland/dev/urandom c 1 9
+
 chroot target-userland /bin/bash <<EOF
 export DEBIAN_FRONTEND=noninteractive
 export DEBCONF_NONINTERACTIVE_SEEN=true
@@ -90,3 +105,5 @@ EOF
 mkdir -p target-userland/etc/pulseaudio
 cp $ETC/daemon.conf target-userland/etc/pulse/
 
+munbind
+
diff --git a/reform2-imx8mq/multistrap.conf b/reform2-imx8mq/multistrap.conf
index d536e62a88b613c3c8f2a661df59b1fdfd6bb383..5958df959029e576f960368470fc8b1252bb0477 100644
--- a/reform2-imx8mq/multistrap.conf
+++ b/reform2-imx8mq/multistrap.conf
@@ -10,7 +10,7 @@ cleanup=true
 # TODO deb-src missing!
 
 [Debian]
-packages=adduser apt apt-utils apt-file bsdmainutils procps gpgv debian-archive-keyring readline-common gnupg cpio init-system-helpers cron manpages netbase groff-base iproute2 ifupdown isc-dhcp-common isc-dhcp-client iptables iputils-ping kmod locales less net-tools netcat-traditional nfacct traceroute curl wget whiptail openssh-server openssh-client nano vim wpasupplicant htop ncdu ntpdate ntp usbutils fbset screen tmux brightnessctl coreutils alsa-utils sudo ca-certificates parted file git ed console-setup console-data unicode-data kbd gpm pciutils cryptsetup unzip telnet busybox lm-sensors systemd libpam-systemd systemd-sysv bash-completion ncurses-term sway grim slurp xwayland xterm xfce4-terminal rofi kmscube ircii mesa-utils w3m man-db pulseaudio pavucontrol           zlib1g-dev patch expat bison flex libunwind-dev libwayland-dev wayland-protocols libwayland-egl-backend-dev libx11-dev libx11-xcb-dev libxdamage-dev libxfixes-dev libxcb-dri3-dev libxcb-xfixes0-dev libxcb-sync-dev libxrandr-dev libxext-dev libxcb-glx0-dev libxcb-present-dev libxcb-dri2-0-dev gettext autopoint libpixman-1-dev libbsd-dev libxkbfile-dev libxcb-composite0-dev libxcb-xinput-dev libxcb-icccm4-dev libxfont-dev nettle-dev libdbus-1-dev libsystemd-dev libpciaccess-dev llvm-dev libudev-dev libmtdev-dev libevdev-dev libxshmfence-dev xutils-dev libdrm-dev libxxf86vm-dev meson gcc g++ python3-setuptools python3-mako xfonts-utils libepoxy-dev libjson-c-dev libpcre3-dev libpango1.0-dev libxkbcommon-dev libinput-dev autoconf make libtool intltool libxml2-dev libxfce4ui-2-dev libgarcon-1-dev xfce4-dev-tools      arc-theme thunar gnome-disk-utility gnome-system-monitor policykit-1 dconf-editor    eog evince mpv gedit engrampa    connman-gtk gnome-icon-theme breeze-icon-theme fonts-noto-color-emoji   libdbusmenu-gtk3-dev libfmt-dev libgirepository1.0-dev libgtkmm-3.0-dev libjsoncpp-dev libmpdclient-dev libnl-3-dev libnl-genl-3-dev libpulse-dev  libsigc++-2.0-dev libspdlog-dev gobject-introspection python3-psutil lxpolkit libblockdev-dm2 libblockdev-crypto2
+packages=adduser apt apt-utils apt-file bsdmainutils procps gpgv debian-archive-keyring readline-common gnupg cpio init-system-helpers cron manpages netbase groff-base iproute2 ifupdown isc-dhcp-common isc-dhcp-client iptables iputils-ping kmod locales less net-tools netcat-traditional nfacct traceroute curl wget whiptail openssh-server openssh-client nano vim wpasupplicant htop ncdu ntpdate ntp usbutils fbset screen tmux brightnessctl coreutils alsa-utils sudo ca-certificates parted file git ed console-setup console-data unicode-data kbd gpm pciutils cryptsetup unzip telnet busybox lm-sensors systemd libpam-systemd systemd-sysv bash-completion ncurses-term sway grim slurp xwayland xterm xfce4-terminal rofi ircii mesa-utils w3m man-db pulseaudio pavucontrol           zlib1g-dev patch expat bison flex libunwind-dev libwayland-dev wayland-protocols libwayland-egl-backend-dev libx11-dev libx11-xcb-dev libxdamage-dev libxfixes-dev libxcb-dri3-dev libxcb-xfixes0-dev libxcb-sync-dev libxrandr-dev libxext-dev libxcb-glx0-dev libxcb-present-dev libxcb-dri2-0-dev gettext autopoint libpixman-1-dev libbsd-dev libxkbfile-dev libxcb-composite0-dev libxcb-xinput-dev libxcb-icccm4-dev libxfont-dev nettle-dev libdbus-1-dev libsystemd-dev libpciaccess-dev llvm-dev libudev-dev libmtdev-dev libevdev-dev libxshmfence-dev xutils-dev libdrm-dev libxxf86vm-dev meson gcc g++ python3-setuptools python3-mako xfonts-utils libepoxy-dev libjson-c-dev libpcre3-dev libpango1.0-dev libxkbcommon-dev libinput-dev autoconf make libtool intltool libxml2-dev libxfce4ui-2-dev libgarcon-1-dev xfce4-dev-tools      arc-theme thunar gnome-disk-utility gnome-system-monitor policykit-1 dconf-editor    eog evince mpv gedit engrampa    connman-gtk gnome-icon-theme breeze-icon-theme fonts-noto-color-emoji   libdbusmenu-gtk3-dev libfmt-dev libgirepository1.0-dev libgtkmm-3.0-dev libjsoncpp-dev libmpdclient-dev libnl-3-dev libnl-genl-3-dev libpulse-dev  libsigc++-2.0-dev libspdlog-dev gobject-introspection python3-psutil lxpolkit libblockdev-dm2 libblockdev-crypto2
 # libreoffice libreoffice-gtk3 inkscape firefox-esr emacs grafx2 milkytracker
 source=http://http.debian.net/debian
 keyring=debian-archive-keyring