diff --git a/3rdparty/packaging/Makefile b/3rdparty/packaging/Makefile
index 9fbcf5ed0ca778e1713fff945c9f211488d47a86..73503ebce6326ced505165feeec9e1a05233233d 100644
--- a/3rdparty/packaging/Makefile
+++ b/3rdparty/packaging/Makefile
@@ -24,6 +24,7 @@
 # Remove hyphens since they have special meaning in RPM filenames
 KERNELPATH := kernel-$(subst -,_,$(KERNELRELEASE))
 KDEB_SOURCENAME ?= linux-$(KERNELRELEASE)
+KBUILD_PKG_ROOTCMD ?="fakeroot -u"
 export KDEB_SOURCENAME
 # Include only those top-level files that are needed by make, plus the GPL copy
 TAR_CONTENT := $(KBUILD_ALLDIRS) .config .scmversion Makefile \
@@ -66,35 +67,20 @@ binrpm-pkg: FORCE
 
 clean-files += $(objtree)/*.spec
 
-# Deb target
-# ---------------------------------------------------------------------------
-quiet_cmd_builddeb = BUILDDEB
-      cmd_builddeb = set -e; \
-	test `id -u` = 0 || \
-	test -n "$(KBUILD_PKG_ROOTCMD)" || { \
-		which fakeroot >/dev/null 2>&1 && \
-		KBUILD_PKG_ROOTCMD="fakeroot -u"; \
-	} || { \
-		echo; \
-		echo "builddeb must be run as root (or using fakeroot)."; \
-		echo "KBUILD_PKG_ROOTCMD is unset and fakeroot not found."; \
-		echo "Try setting KBUILD_PKG_ROOTCMD to a command to acquire"; \
-		echo "root privileges (e.g., 'fakeroot -u' or 'sudo')."; \
-		false; \
-	} && \
-	\
-	$$KBUILD_PKG_ROOTCMD $(CONFIG_SHELL) \
-		$(srctree)/scripts/package/builddeb $@
-
 deb-pkg: FORCE
 	$(MAKE) clean
+	$(CONFIG_SHELL) $(srctree)/scripts/package/mkdebian
 	$(call cmd,src_tar,$(KDEB_SOURCENAME))
-	$(MAKE) KBUILD_SRC=
-	+$(call cmd,builddeb)
+	origversion=$$(dpkg-parsechangelog -SVersion |sed 's/-[^-]*$$//');\
+		mv $(KDEB_SOURCENAME).tar.gz ../$(KDEB_SOURCENAME)_$${origversion}.orig.tar.gz
+	+dpkg-buildpackage -r$(KBUILD_PKG_ROOTCMD) -a$$(cat debian/arch) -i.git -us -uc
 
 bindeb-pkg: FORCE
-	$(MAKE) KBUILD_SRC=
-	+$(call cmd,builddeb)
+	$(CONFIG_SHELL) $(srctree)/scripts/package/mkdebian
+	+dpkg-buildpackage -r$(KBUILD_PKG_ROOTCMD) -a$$(cat debian/arch) -b -nc -uc
+
+intdeb-pkg: FORCE
+	+$(CONFIG_SHELL) $(srctree)/scripts/package/builddeb
 
 clean-dirs += $(objtree)/debian/
 
diff --git a/3rdparty/packaging/builddeb b/3rdparty/packaging/builddeb
index f4dcc319506d11bd7652d1c6226d88935a0696bf..b274b7994ac77b4c0e0dc84bd8107377fc0c70d7 100755
--- a/3rdparty/packaging/builddeb
+++ b/3rdparty/packaging/builddeb
@@ -30,80 +30,19 @@ create_package() {
 	chmod -R a+rX "$pdir"
 
 	# Create the package
-	dpkg-gencontrol $forcearch -Vkernel:debarch="${debarch}" -p$pname -P"$pdir"
+	dpkg-gencontrol -p$pname -P"$pdir"
 	dpkg --build "$pdir" ..
 }
 
-set_debarch() {
-	# Attempt to find the correct Debian architecture
-	case "$UTS_MACHINE" in
-	i386|ia64|alpha)
-		debarch="$UTS_MACHINE" ;;
-	x86_64)
-		debarch=amd64 ;;
-	sparc*)
-		debarch=sparc ;;
-	s390*)
-		debarch=s390$(grep -q CONFIG_64BIT=y $KCONFIG_CONFIG && echo x || true) ;;
-	ppc*)
-		debarch=$(grep -q CPU_LITTLE_ENDIAN=y $KCONFIG_CONFIG && echo ppc64el || echo powerpc) ;;
-	parisc*)
-		debarch=hppa ;;
-	mips*)
-		debarch=mips$(grep -q CPU_LITTLE_ENDIAN=y $KCONFIG_CONFIG && echo el || true) ;;
-	aarch64|arm64)
-		debarch=arm64 ;;
-	arm*)
-		if grep -q CONFIG_AEABI=y $KCONFIG_CONFIG; then
-		    if grep -q CONFIG_VFP=y $KCONFIG_CONFIG; then
-			debarch=armhf
-		    else
-			debarch=armel
-		    fi
-		else
-		    debarch=arm
-		fi
-		;;
-	*)
-		debarch=$(dpkg --print-architecture)
-		echo "" >&2
-		echo "** ** **  WARNING  ** ** **" >&2
-		echo "" >&2
-		echo "Your architecture doesn't have its equivalent" >&2
-		echo "Debian userspace architecture defined!" >&2
-		echo "Falling back to using your current userspace instead!" >&2
-		echo "Please add support for $UTS_MACHINE to ${0} ..." >&2
-		echo "" >&2
-	esac
-	if [ -n "$KBUILD_DEBARCH" ] ; then
-		debarch="$KBUILD_DEBARCH"
-	fi
-	forcearch="-DArchitecture=$debarch"
-
-}
-
-# Some variables and settings used throughout the script
 version=$KERNELRELEASE
-revision=$(cat .version)
-if [ -n "$KDEB_PKGVERSION" ]; then
-	packageversion=$KDEB_PKGVERSION
-else
-	packageversion=$version-$revision
-fi
-sourcename=$KDEB_SOURCENAME
 tmpdir="$objtree/debian/tmp"
-fwdir="$objtree/debian/fwtmp"
 kernel_headers_dir="$objtree/debian/hdrtmp"
 libc_headers_dir="$objtree/debian/headertmp"
 dbg_dir="$objtree/debian/dbgtmp"
 packagename=linux-image-$version
-fwpackagename=linux-firmware-image-$version
 kernel_headers_packagename=linux-headers-$version
 libc_headers_packagename=linux-libc-dev
 dbg_packagename=$packagename-dbg
-debarch=
-forcearch=
-set_debarch
 
 if [ "$ARCH" = "um" ] ; then
 	packagename=user-mode-linux-$version
@@ -126,10 +65,9 @@ esac
 BUILD_DEBUG="$(grep -s '^CONFIG_DEBUG_INFO=y' $KCONFIG_CONFIG || true)"
 
 # Setup the directory structure
-rm -rf "$tmpdir" "$fwdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir" $objtree/debian/files
+rm -rf "$tmpdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir" $objtree/debian/files
 mkdir -m 755 -p "$tmpdir/DEBIAN"
 mkdir -p "$tmpdir/lib" "$tmpdir/boot"
-mkdir -p "$fwdir/lib/firmware/$version/"
 mkdir -p "$kernel_headers_dir/lib/modules/$version/"
 
 # Build and install the kernel
@@ -146,18 +84,10 @@ fi
 cp "$($MAKE -s -f $srctree/Makefile image_name)" "$tmpdir/$installed_image_path"
 
 if grep -q "^CONFIG_OF_EARLY_FLATTREE=y" $KCONFIG_CONFIG ; then
-	mkdir -p "$tmpdir/boot/dtbs/$version"
 	# Only some architectures with OF support have this target
 	if [ -d "${srctree}/arch/$SRCARCH/boot/dts" ]; then
+		$MAKE KBUILD_SRC= INSTALL_DTBS_PATH="$tmpdir/usr/lib/$packagename" dtbs_install
 		$MAKE KBUILD_SRC= INSTALL_DTBS_PATH="$tmpdir/boot/dtbs/$version" dtbs_install
-	else
-		$MAKE KBUILD_SRC= dtbs
-		find arch/arm/boot/ -iname "*.dtb" -exec cp -v '{}' "$tmpdir/boot/dtbs/$version" \;
-	fi
-
-	#make dtbs_install seems to add an .old directory
-	if [ -d "$tmpdir/boot/dtbs/$version.old" ] ; then
-		rm -rf "$tmpdir/boot/dtbs/$version.old"
 	fi
 fi
 
@@ -224,107 +154,6 @@ EOF
 	chmod 755 "$tmpdir/DEBIAN/$script"
 done
 
-# Try to determine maintainer and email values
-if [ -n "$DEBEMAIL" ]; then
-       email=$DEBEMAIL
-elif [ -n "$EMAIL" ]; then
-       email=$EMAIL
-else
-       email=$(id -nu)@$(hostname -f 2>/dev/null || hostname)
-fi
-if [ -n "$DEBFULLNAME" ]; then
-       name=$DEBFULLNAME
-elif [ -n "$NAME" ]; then
-       name=$NAME
-else
-       name="Anonymous"
-fi
-maintainer="$name <$email>"
-
-# Try to determine distribution
-if [ -n "$KDEB_CHANGELOG_DIST" ]; then
-        distribution=$KDEB_CHANGELOG_DIST
-# In some cases lsb_release returns the codename as n/a, which breaks dpkg-parsechangelog
-elif distribution=$(lsb_release -cs 2>/dev/null) && [ -n "$distribution" ] && [ "$distribution" != "n/a" ]; then
-        : # nothing to do in this case
-else
-        distribution="unstable"
-        echo >&2 "Using default distribution of 'unstable' in the changelog"
-        echo >&2 "Install lsb-release or set \$KDEB_CHANGELOG_DIST explicitly"
-fi
-
-# Generate a simple changelog template
-cat <<EOF > debian/changelog
-$sourcename ($packageversion) $distribution; urgency=low
-
-  * Custom built Linux kernel.
-
- -- $maintainer  $(date -R)
-EOF
-
-# Generate copyright file
-cat <<EOF > debian/copyright
-This is a packacked upstream version of the Linux kernel.
-
-The sources may be found at most Linux archive sites, including:
-https://www.kernel.org/pub/linux/kernel
-
-Copyright: 1991 - 2017 Linus Torvalds and others.
-
-The git repository for mainline kernel development is at:
-git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; version 2 dated June, 1991.
-
-On Debian GNU/Linux systems, the complete text of the GNU General Public
-License version 2 can be found in \`/usr/share/common-licenses/GPL-2'.
-EOF
-
-
-build_depends="bc, kmod, cpio "
-
-# Generate a control file
-cat <<EOF > debian/control
-Source: $sourcename
-Section: kernel
-Priority: optional
-Maintainer: $maintainer
-Build-Depends: $build_depends
-Homepage: http://www.kernel.org/
-EOF
-
-if [ "$ARCH" = "um" ]; then
-	cat <<EOF >> debian/control
-
-Package: $packagename
-Architecture: any
-Description: User Mode Linux kernel, version $version
- User-mode Linux is a port of the Linux kernel to its own system call
- interface.  It provides a kind of virtual machine, which runs Linux
- as a user process under another Linux kernel.  This is useful for
- kernel development, sandboxes, jails, experimentation, and
- many other things.
- .
- This package contains the Linux kernel, modules and corresponding other
- files, version: $version.
-EOF
-
-else
-	cat <<EOF >> debian/control
-
-Package: $packagename
-Suggests: $fwpackagename
-Architecture: any
-Depends: initramfs-tools
-Description: Linux kernel, version $version
- This package contains the Linux kernel, modules and corresponding other
- files, version: $version.
-EOF
-
-fi
-
 # Build kernel header package
 (cd $srctree; find . -name Makefile\* -o -name Kconfig\* -o -name \*.pl) > "$objtree/debian/hdrsrcfiles"
 (cd $srctree; find arch/*/include include scripts -type f -o -type l) >> "$objtree/debian/hdrsrcfiles"
@@ -345,43 +174,6 @@ mkdir -p "$destdir"
 ln -sf "/usr/src/linux-headers-$version" "$kernel_headers_dir/lib/modules/$version/build"
 rm -f "$objtree/debian/hdrsrcfiles" "$objtree/debian/hdrobjfiles"
 
-cat <<EOF >> debian/control
-
-Package: $kernel_headers_packagename
-Architecture: any
-Description: Linux kernel headers for $KERNELRELEASE on \${kernel:debarch}
- This package provides kernel header files for $KERNELRELEASE on \${kernel:debarch}
- .
- This is useful for people who need to build external modules
-EOF
-
-# Do we have firmware? Move it out of the way and build it into a package.
-if [ -e "$tmpdir/lib/firmware" ]; then
-	mv "$tmpdir/lib/firmware"/* "$fwdir/lib/firmware/$version/"
-	rmdir "$tmpdir/lib/firmware"
-
-	cat <<EOF >> debian/control
-
-Package: $fwpackagename
-Architecture: all
-Description: Linux kernel firmware, version $version
- This package contains firmware from the Linux kernel, version $version.
-EOF
-
-	create_package "$fwpackagename" "$fwdir"
-fi
-
-cat <<EOF >> debian/control
-
-Package: $libc_headers_packagename
-Section: devel
-Provides: linux-kernel-headers
-Architecture: any
-Description: Linux support headers for userspace development
- This package provides userspaces headers from the Linux kernel.  These headers
- are used by the installed headers for GNU glibc and other system libraries.
-EOF
-
 if [ "$ARCH" != "um" ]; then
 	create_package "$kernel_headers_packagename" "$kernel_headers_dir"
 	create_package "$libc_headers_packagename" "$libc_headers_dir"
@@ -400,47 +192,7 @@ if [ -n "$BUILD_DEBUG" ] ; then
 	ln -s ../lib/modules/$version/vmlinux $dbg_dir/usr/lib/debug/boot/vmlinux-$version
 	# kdump-tools
 	ln -s lib/modules/$version/vmlinux $dbg_dir/usr/lib/debug/vmlinux-$version
-
-	cat <<EOF >> debian/control
-
-Package: $dbg_packagename
-Section: debug
-Architecture: any
-Description: Linux kernel debugging symbols for $version
- This package will come in handy if you need to debug the kernel. It provides
- all the necessary debug symbols for the kernel and its modules.
-EOF
-
 	create_package "$dbg_packagename" "$dbg_dir"
 fi
 
-if [ "x$1" = "xdeb-pkg" ]
-then
-    cat <<EOF > debian/rules
-#!/usr/bin/make -f
-
-build:
-	\$(MAKE)
-
-binary-arch:
-	\$(MAKE) KDEB_SOURCENAME=${sourcename} KDEB_PKGVERSION=${packageversion} bindeb-pkg
-
-clean:
-	rm -rf debian/*tmp debian/files
-	mv debian/ debian.backup # debian/ might be cleaned away
-	\$(MAKE) clean
-	mv debian.backup debian
-
-binary: binary-arch
-EOF
-	mv ${sourcename}.tar.gz ../${sourcename}_${version}.orig.tar.gz
-	tar caf ../${sourcename}_${packageversion}.debian.tar.gz debian/{copyright,rules,changelog,control}
-	dpkg-source -cdebian/control -ldebian/changelog --format="3.0 (custom)" --target-format="3.0 (quilt)" \
-		-b / ../${sourcename}_${version}.orig.tar.gz  ../${sourcename}_${packageversion}.debian.tar.gz
-	mv ${sourcename}_${packageversion}*dsc ..
-	dpkg-genchanges -Vkernel:debarch="${debarch}" > ../${sourcename}_${packageversion}_${debarch}.changes
-else
-	dpkg-genchanges -b -Vkernel:debarch="${debarch}" > ../${sourcename}_${packageversion}_${debarch}.changes
-fi
-
 exit 0
diff --git a/3rdparty/packaging/mkdebian b/3rdparty/packaging/mkdebian
new file mode 100755
index 0000000000000000000000000000000000000000..edcad61fe3cdae66b8e8fe497f7f52329591ee0a
--- /dev/null
+++ b/3rdparty/packaging/mkdebian
@@ -0,0 +1,223 @@
+#!/bin/sh
+#
+# Copyright 2003 Wichert Akkerman <wichert@wiggy.net>
+#
+# Simple script to generate a debian/ directory for a Linux kernel.
+
+set -e
+
+is_enabled() {
+	grep -q "^CONFIG_$1=y" $KCONFIG_CONFIG
+}
+
+if_enabled_echo() {
+	if is_enabled "$1"; then
+		echo -n "$2"
+	elif [ $# -ge 3 ]; then
+		echo -n "$3"
+	fi
+}
+
+set_debarch() {
+	if [ -n "$KBUILD_DEBARCH" ] ; then
+		debarch="$KBUILD_DEBARCH"
+		return
+	fi
+
+	# Attempt to find the correct Debian architecture
+	case "$UTS_MACHINE" in
+	i386|ia64|alpha|m68k|riscv*)
+		debarch="$UTS_MACHINE" ;;
+	x86_64)
+		debarch=amd64 ;;
+	sparc*)
+		debarch=sparc$(if_enabled_echo 64BIT 64) ;;
+	s390*)
+		debarch=s390x ;;
+	ppc*)
+		if is_enabled 64BIT; then
+			debarch=ppc64$(if_enabled_echo CPU_LITTLE_ENDIAN el)
+		else
+			debarch=powerpc$(if_enabled_echo SPE spe)
+		fi
+		;;
+	parisc*)
+		debarch=hppa ;;
+	mips*)
+		if is_enabled CPU_LITTLE_ENDIAN; then
+			debarch=mips$(if_enabled_echo 64BIT 64)$(if_enabled_echo CPU_MIPSR6 r6)el
+		elif is_enabled CPU_MIPSR6; then
+			debarch=mips$(if_enabled_echo 64BIT 64)r6
+		else
+			debarch=mips
+		fi
+		;;
+	aarch64|arm64)
+		debarch=arm64 ;;
+	arm*)
+		if is_enabled AEABI; then
+			debarch=arm$(if_enabled_echo VFP hf el)
+		else
+			debarch=arm
+		fi
+		;;
+	openrisc)
+		debarch=or1k ;;
+	sh)
+		if is_enabled CPU_SH3; then
+			debarch=sh3$(if_enabled_echo CPU_BIG_ENDIAN eb)
+		elif is_enabled CPU_SH4; then
+			debarch=sh4$(if_enabled_echo CPU_BIG_ENDIAN eb)
+		fi
+		;;
+	esac
+	if [ -z "$debarch" ]; then
+		debarch=$(dpkg-architecture -qDEB_HOST_ARCH)
+		echo "" >&2
+		echo "** ** **  WARNING  ** ** **" >&2
+		echo "" >&2
+		echo "Your architecture doesn't have its equivalent" >&2
+		echo "Debian userspace architecture defined!" >&2
+		echo "Falling back to the current host architecture ($debarch)." >&2
+		echo "Please add support for $UTS_MACHINE to ${0} ..." >&2
+		echo "" >&2
+	fi
+}
+
+# Some variables and settings used throughout the script
+version=$KERNELRELEASE
+if [ -n "$KDEB_PKGVERSION" ]; then
+	packageversion=$KDEB_PKGVERSION
+	revision=${packageversion##*-}
+else
+	revision=$(cat .version 2>/dev/null||echo 1)
+	packageversion=$version-$revision
+fi
+sourcename=$KDEB_SOURCENAME
+packagename=linux-image-$version
+kernel_headers_packagename=linux-headers-$version
+dbg_packagename=$packagename-dbg
+debarch=
+set_debarch
+
+if [ "$ARCH" = "um" ] ; then
+	packagename=user-mode-linux-$version
+fi
+
+email=${DEBEMAIL-$EMAIL}
+
+# use email string directly if it contains <email>
+if echo $email | grep -q '<.*>'; then
+	maintainer=$email
+else
+	# or construct the maintainer string
+	user=${KBUILD_BUILD_USER-$(id -nu)}
+	name=${DEBFULLNAME-$user}
+	if [ -z "$email" ]; then
+		buildhost=${KBUILD_BUILD_HOST-$(hostname -f 2>/dev/null || hostname)}
+		email="$user@$buildhost"
+	fi
+	maintainer="$name <$email>"
+fi
+
+# Try to determine distribution
+if [ -n "$KDEB_CHANGELOG_DIST" ]; then
+        distribution=$KDEB_CHANGELOG_DIST
+# In some cases lsb_release returns the codename as n/a, which breaks dpkg-parsechangelog
+elif distribution=$(lsb_release -cs 2>/dev/null) && [ -n "$distribution" ] && [ "$distribution" != "n/a" ]; then
+        : # nothing to do in this case
+else
+        distribution="unstable"
+        echo >&2 "Using default distribution of 'unstable' in the changelog"
+        echo >&2 "Install lsb-release or set \$KDEB_CHANGELOG_DIST explicitly"
+fi
+
+mkdir -p debian/
+echo $debarch > debian/arch
+
+# Generate a simple changelog template
+cat <<EOF > debian/changelog
+$sourcename ($packageversion) $distribution; urgency=low
+
+  * Custom built Linux kernel.
+
+ -- $maintainer  $(date -R)
+EOF
+
+# Generate copyright file
+cat <<EOF > debian/copyright
+This is a packacked upstream version of the Linux kernel.
+
+The sources may be found at most Linux archive sites, including:
+https://www.kernel.org/pub/linux/kernel
+
+Copyright: 1991 - 2018 Linus Torvalds and others.
+
+The git repository for mainline kernel development is at:
+git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; version 2 dated June, 1991.
+
+On Debian GNU/Linux systems, the complete text of the GNU General Public
+License version 2 can be found in \`/usr/share/common-licenses/GPL-2'.
+EOF
+
+# Generate a control file
+cat <<EOF > debian/control
+Source: $sourcename
+Section: kernel
+Priority: optional
+Maintainer: $maintainer
+Build-Depends: bc, kmod, cpio
+Homepage: http://www.kernel.org/
+
+Package: $packagename
+Architecture: $debarch
+Description: Linux kernel, version $version
+ This package contains the Linux kernel, modules and corresponding other
+ files, version: $version.
+
+Package: $kernel_headers_packagename
+Architecture: $debarch
+Description: Linux kernel headers for $version on $debarch
+ This package provides kernel header files for $version on $debarch
+ .
+ This is useful for people who need to build external modules
+
+Package: linux-libc-dev
+Section: devel
+Provides: linux-kernel-headers
+Architecture: $debarch
+Description: Linux support headers for userspace development
+ This package provides userspaces headers from the Linux kernel.  These headers
+ are used by the installed headers for GNU glibc and other system libraries.
+
+Package: $dbg_packagename
+Section: debug
+Architecture: $debarch
+Description: Linux kernel debugging symbols for $version
+ This package will come in handy if you need to debug the kernel. It provides
+ all the necessary debug symbols for the kernel and its modules.
+EOF
+
+cat <<EOF > debian/rules
+#!$(command -v $MAKE) -f
+
+build:
+	\$(MAKE) KERNELRELEASE=${version} ARCH=${ARCH} \
+	KBUILD_BUILD_VERSION=${revision} KBUILD_SRC=
+
+binary-arch:
+	\$(MAKE) KERNELRELEASE=${version} ARCH=${ARCH} \
+	KBUILD_BUILD_VERSION=${revision} KBUILD_SRC= intdeb-pkg
+
+clean:
+	rm -rf debian/*tmp debian/files
+	\$(MAKE) clean
+
+binary: binary-arch
+EOF
+
+exit 0
diff --git a/build_deb.sh b/build_deb.sh
index dd353ddfa870a7a1ba9de301ff0f5f42f3ccb112..21982ad51002981b70302a4853d36de302be6c91 100755
--- a/build_deb.sh
+++ b/build_deb.sh
@@ -84,13 +84,11 @@ make_deb () {
 	echo "-----------------------------"
 	echo "make ${build_opts} CROSS_COMPILE="${CC}" bindeb-pkg"
 	echo "-----------------------------"
-	fakeroot make ${build_opts} CROSS_COMPILE="${CC}" bindeb-pkg
+	make ${build_opts} CROSS_COMPILE="${CC}" bindeb-pkg
 
-	mv "${DIR}"/*.deb "${DIR}/deploy/" || true
-	mv "${DIR}"/*.debian.tar.gz "${DIR}/deploy/" || true
-	mv "${DIR}"/*.dsc "${DIR}/deploy/" || true
+	mv "${DIR}"/*.buildinfo "${DIR}/deploy/" || true
 	mv "${DIR}"/*.changes "${DIR}/deploy/" || true
-	mv "${DIR}"/*.orig.tar.gz "${DIR}/deploy/" || true
+	mv "${DIR}"/*.deb "${DIR}/deploy/" || true
 
 	KERNEL_UTS=$(cat "${DIR}/KERNEL/include/generated/utsrelease.h" | awk '{print $3}' | sed 's/\"//g' )
 
diff --git a/patch.sh b/patch.sh
index 6898ca2d657f5b1d65d53ae4c548e578319a31c0..2f1b7be1573a57b7325c702fe247f5be9bf1c6f9 100644
--- a/patch.sh
+++ b/patch.sh
@@ -492,8 +492,7 @@ packaging () {
 	if [ "x${regenerate}" = "xenable" ] ; then
 		cp -v "${DIR}/3rdparty/packaging/Makefile" "${DIR}/KERNEL/scripts/package"
 		cp -v "${DIR}/3rdparty/packaging/builddeb" "${DIR}/KERNEL/scripts/package"
-		#Needed for v4.11.x and less
-		#patch -p1 < "${DIR}/patches/packaging/0002-Revert-deb-pkg-Remove-the-KBUILD_IMAGE-workaround.patch"
+		cp -v "${DIR}/3rdparty/packaging/mkdebian" "${DIR}/KERNEL/scripts/package"
 		${git_bin} commit -a -m 'packaging: sync builddeb changes' -s
 		${git_bin} format-patch -1 -o "${DIR}/patches/packaging"
 		exit 2
diff --git a/patches/WireGuard/0001-merge-WireGuard.patch b/patches/WireGuard/0001-merge-WireGuard.patch
index da7a0fbd2391cbf1d34909bd7acfb9c1d09cd347..fe35d54c0275363a38a8e7c00dda98651e58e770 100644
--- a/patches/WireGuard/0001-merge-WireGuard.patch
+++ b/patches/WireGuard/0001-merge-WireGuard.patch
@@ -1,6 +1,6 @@
-From 61118fcc17bec76149b762b79e476c9e5a78204c Mon Sep 17 00:00:00 2001
+From c5b3185342ef1842698e437d064abc6b240d8a72 Mon Sep 17 00:00:00 2001
 From: Robert Nelson <robertcnelson@gmail.com>
-Date: Sun, 9 Dec 2018 18:12:26 -0600
+Date: Sun, 16 Dec 2018 18:17:02 -0600
 Subject: [PATCH] merge: WireGuard
 
 Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
@@ -1115,7 +1115,7 @@ index 000000000000..8ce3045693fb
 +#endif /* _WG_COMPATASM_H */
 diff --git a/net/wireguard/compat/compat.h b/net/wireguard/compat/compat.h
 new file mode 100644
-index 000000000000..e52f53bb7a45
+index 000000000000..c6b725dec64e
 --- /dev/null
 +++ b/net/wireguard/compat/compat.h
 @@ -0,0 +1,809 @@
@@ -1914,7 +1914,7 @@ index 000000000000..e52f53bb7a45
 +#undef __read_mostly
 +#define __read_mostly
 +#endif
-+#if defined(RAP_PLUGIN) && LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0)
++#if (defined(RAP_PLUGIN) || defined(CONFIG_CFI_CLANG)) && LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0)
 +#include <linux/timer.h>
 +#define wg_expired_retransmit_handshake(a) wg_expired_retransmit_handshake(unsigned long timer)
 +#define wg_expired_send_keepalive(a) wg_expired_send_keepalive(unsigned long timer)
diff --git a/patches/defconfig b/patches/defconfig
index 00609713cf0c49129986fed87953d316020a4dd5..830dd957be5063e5210ac3a25194f9d9f34d5ed9 100644
--- a/patches/defconfig
+++ b/patches/defconfig
@@ -1,6 +1,6 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/arm 4.20.0-rc6 Kernel Configuration
+# Linux/arm 4.20.0-rc7 Kernel Configuration
 #
 
 #
@@ -20,7 +20,7 @@ CONFIG_INIT_ENV_ARG_LIMIT=32
 # CONFIG_COMPILE_TEST is not set
 CONFIG_LOCALVERSION=""
 # CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_BUILD_SALT="4.20-rc6-bone0"
+CONFIG_BUILD_SALT="4.20-rc7-bone0"
 CONFIG_HAVE_KERNEL_GZIP=y
 CONFIG_HAVE_KERNEL_LZMA=y
 CONFIG_HAVE_KERNEL_XZ=y
@@ -111,7 +111,7 @@ CONFIG_CGROUPS=y
 CONFIG_PAGE_COUNTER=y
 CONFIG_MEMCG=y
 CONFIG_MEMCG_SWAP=y
-CONFIG_MEMCG_SWAP_ENABLED=y
+# CONFIG_MEMCG_SWAP_ENABLED is not set
 CONFIG_MEMCG_KMEM=y
 CONFIG_BLK_CGROUP=y
 # CONFIG_DEBUG_BLK_CGROUP is not set
@@ -119,7 +119,7 @@ CONFIG_CGROUP_WRITEBACK=y
 CONFIG_CGROUP_SCHED=y
 CONFIG_FAIR_GROUP_SCHED=y
 CONFIG_CFS_BANDWIDTH=y
-CONFIG_RT_GROUP_SCHED=y
+# CONFIG_RT_GROUP_SCHED is not set
 CONFIG_CGROUP_PIDS=y
 # CONFIG_CGROUP_RDMA is not set
 CONFIG_CGROUP_FREEZER=y
@@ -157,8 +157,8 @@ CONFIG_EXPERT=y
 CONFIG_UID16=y
 CONFIG_MULTIUSER=y
 # CONFIG_SGETMASK_SYSCALL is not set
-CONFIG_SYSFS_SYSCALL=y
-CONFIG_SYSCTL_SYSCALL=y
+# CONFIG_SYSFS_SYSCALL is not set
+# CONFIG_SYSCTL_SYSCALL is not set
 CONFIG_FHANDLE=y
 CONFIG_POSIX_TIMERS=y
 CONFIG_PRINTK=y
@@ -177,7 +177,7 @@ CONFIG_AIO=y
 CONFIG_ADVISE_SYSCALLS=y
 CONFIG_MEMBARRIER=y
 CONFIG_KALLSYMS=y
-CONFIG_KALLSYMS_ALL=y
+# CONFIG_KALLSYMS_ALL is not set
 CONFIG_KALLSYMS_BASE_RELATIVE=y
 CONFIG_BPF_SYSCALL=y
 # CONFIG_BPF_JIT_ALWAYS_ON is not set
@@ -1378,7 +1378,7 @@ CONFIG_NET_SCH_CHOKE=m
 CONFIG_NET_SCH_QFQ=m
 CONFIG_NET_SCH_CODEL=m
 CONFIG_NET_SCH_FQ_CODEL=m
-# CONFIG_NET_SCH_CAKE is not set
+CONFIG_NET_SCH_CAKE=m
 CONFIG_NET_SCH_FQ=m
 CONFIG_NET_SCH_HHF=m
 CONFIG_NET_SCH_PIE=m
@@ -1675,8 +1675,7 @@ CONFIG_HAVE_EBPF_JIT=y
 #
 # Generic Driver Options
 #
-CONFIG_UEVENT_HELPER=y
-CONFIG_UEVENT_HELPER_PATH=""
+# CONFIG_UEVENT_HELPER is not set
 CONFIG_DEVTMPFS=y
 CONFIG_DEVTMPFS_MOUNT=y
 CONFIG_STANDALONE=y
@@ -2077,7 +2076,6 @@ CONFIG_TARGET_CORE=m
 CONFIG_TCM_IBLOCK=m
 CONFIG_TCM_FILEIO=m
 CONFIG_TCM_PSCSI=m
-CONFIG_TCM_USER2=m
 CONFIG_LOOPBACK_TARGET=m
 CONFIG_TCM_FC=m
 CONFIG_ISCSI_TARGET=m
@@ -2511,7 +2509,7 @@ CONFIG_KEYBOARD_MAX7359=m
 # CONFIG_KEYBOARD_MCS is not set
 # CONFIG_KEYBOARD_MPR121 is not set
 # CONFIG_KEYBOARD_NEWTON is not set
-CONFIG_KEYBOARD_OPENCORES=m
+# CONFIG_KEYBOARD_OPENCORES is not set
 # CONFIG_KEYBOARD_SAMSUNG is not set
 CONFIG_KEYBOARD_STOWAWAY=m
 # CONFIG_KEYBOARD_SUNKBD is not set
@@ -2733,7 +2731,7 @@ CONFIG_UNIX98_PTYS=y
 CONFIG_N_GSM=m
 # CONFIG_TRACE_SINK is not set
 CONFIG_DEVMEM=y
-CONFIG_DEVKMEM=y
+# CONFIG_DEVKMEM is not set
 
 #
 # Serial drivers
@@ -4097,7 +4095,7 @@ CONFIG_FB_TILEBLITTING=y
 # Frame buffer hardware drivers
 #
 # CONFIG_FB_UVESA is not set
-CONFIG_FB_EFI=y
+# CONFIG_FB_EFI is not set
 # CONFIG_FB_OPENCORES is not set
 # CONFIG_FB_S1D13XXX is not set
 CONFIG_FB_SMSCUFX=m
@@ -4274,7 +4272,7 @@ CONFIG_SND_SOC_I2C_AND_SPI=y
 # CONFIG_SND_SOC_CS43130 is not set
 # CONFIG_SND_SOC_CS4349 is not set
 # CONFIG_SND_SOC_CS53L30 is not set
-# CONFIG_SND_SOC_DMIC is not set
+CONFIG_SND_SOC_DMIC=m
 CONFIG_SND_SOC_HDMI_CODEC=y
 # CONFIG_SND_SOC_ES7134 is not set
 # CONFIG_SND_SOC_ES7241 is not set
@@ -4375,8 +4373,8 @@ CONFIG_SND_SIMPLE_CARD=y
 CONFIG_HID=y
 CONFIG_HID_BATTERY_STRENGTH=y
 CONFIG_HIDRAW=y
-CONFIG_UHID=y
-CONFIG_HID_GENERIC=y
+CONFIG_UHID=m
+CONFIG_HID_GENERIC=m
 
 #
 # Special HID drivers
@@ -4438,7 +4436,7 @@ CONFIG_HID_MAGICMOUSE=m
 CONFIG_HID_MICROSOFT=m
 CONFIG_HID_MONTEREY=m
 CONFIG_HID_MULTITOUCH=m
-# CONFIG_HID_NTI is not set
+CONFIG_HID_NTI=m
 CONFIG_HID_NTRIG=m
 CONFIG_HID_ORTEK=m
 CONFIG_HID_PANTHERLORD=m
@@ -4593,7 +4591,8 @@ CONFIG_USB_MUSB_AM335X_CHILD=y
 #
 # MUSB DMA mode
 #
-CONFIG_MUSB_PIO_ONLY=y
+# CONFIG_MUSB_PIO_ONLY is not set
+CONFIG_USB_TI_CPPI41_DMA=y
 # CONFIG_USB_DWC3 is not set
 # CONFIG_USB_DWC2 is not set
 # CONFIG_USB_CHIPIDEA is not set
@@ -5053,10 +5052,7 @@ CONFIG_SYNC_FILE=y
 # CONFIG_SW_SYNC is not set
 # CONFIG_UDMABUF is not set
 # CONFIG_AUXDISPLAY is not set
-CONFIG_UIO=m
-CONFIG_UIO_PDRV_GENIRQ=m
-CONFIG_UIO_DMEM_GENIRQ=m
-# CONFIG_UIO_PRUSS is not set
+# CONFIG_UIO is not set
 # CONFIG_VFIO is not set
 CONFIG_VIRT_DRIVERS=y
 CONFIG_VIRTIO=y
@@ -5854,32 +5850,15 @@ CONFIG_EXT4_FS_ENCRYPTION=y
 CONFIG_JBD2=y
 # CONFIG_JBD2_DEBUG is not set
 CONFIG_FS_MBCACHE=y
-CONFIG_REISERFS_FS=m
-# CONFIG_REISERFS_CHECK is not set
-# CONFIG_REISERFS_PROC_INFO is not set
-CONFIG_REISERFS_FS_XATTR=y
-CONFIG_REISERFS_FS_POSIX_ACL=y
-CONFIG_REISERFS_FS_SECURITY=y
+# CONFIG_REISERFS_FS is not set
 CONFIG_JFS_FS=m
 CONFIG_JFS_POSIX_ACL=y
 CONFIG_JFS_SECURITY=y
 # CONFIG_JFS_DEBUG is not set
 # CONFIG_JFS_STATISTICS is not set
-CONFIG_XFS_FS=y
-CONFIG_XFS_QUOTA=y
-CONFIG_XFS_POSIX_ACL=y
-CONFIG_XFS_RT=y
-# CONFIG_XFS_ONLINE_SCRUB is not set
-# CONFIG_XFS_WARN is not set
-# CONFIG_XFS_DEBUG is not set
-CONFIG_GFS2_FS=m
-CONFIG_GFS2_FS_LOCKING_DLM=y
-CONFIG_OCFS2_FS=m
-CONFIG_OCFS2_FS_O2CB=m
-CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
-CONFIG_OCFS2_FS_STATS=y
-CONFIG_OCFS2_DEBUG_MASKLOG=y
-# CONFIG_OCFS2_DEBUG_FS is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_OCFS2_FS is not set
 CONFIG_BTRFS_FS=y
 CONFIG_BTRFS_FS_POSIX_ACL=y
 # CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
@@ -5887,7 +5866,7 @@ CONFIG_BTRFS_FS_POSIX_ACL=y
 # CONFIG_BTRFS_DEBUG is not set
 # CONFIG_BTRFS_ASSERT is not set
 # CONFIG_BTRFS_FS_REF_VERIFY is not set
-CONFIG_NILFS2_FS=m
+# CONFIG_NILFS2_FS is not set
 # CONFIG_F2FS_FS is not set
 CONFIG_FS_POSIX_ACL=y
 CONFIG_EXPORTFS=y
@@ -5905,7 +5884,7 @@ CONFIG_QUOTA_NETLINK_INTERFACE=y
 CONFIG_PRINT_QUOTA_WARNING=y
 # CONFIG_QUOTA_DEBUG is not set
 CONFIG_QUOTA_TREE=m
-CONFIG_QFMT_V1=m
+# CONFIG_QFMT_V1 is not set
 CONFIG_QFMT_V2=m
 CONFIG_QUOTACTL=y
 CONFIG_AUTOFS4_FS=y
@@ -5968,16 +5947,15 @@ CONFIG_MEMFD_CREATE=y
 CONFIG_CONFIGFS_FS=y
 CONFIG_EFIVAR_FS=m
 CONFIG_MISC_FILESYSTEMS=y
-# CONFIG_ORANGEFS_FS is not set
+CONFIG_ORANGEFS_FS=m
 # CONFIG_ADFS_FS is not set
-CONFIG_AFFS_FS=m
+# CONFIG_AFFS_FS is not set
 CONFIG_ECRYPT_FS=m
 CONFIG_ECRYPT_FS_MESSAGING=y
 # CONFIG_HFS_FS is not set
 # CONFIG_HFSPLUS_FS is not set
-CONFIG_BEFS_FS=m
-# CONFIG_BEFS_DEBUG is not set
-CONFIG_BFS_FS=m
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
 CONFIG_JFFS2_FS=m
 CONFIG_JFFS2_FS_DEBUG=0
@@ -6021,10 +5999,10 @@ CONFIG_SQUASHFS_ZSTD=y
 # CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
 # CONFIG_SQUASHFS_EMBEDDED is not set
 CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
-CONFIG_VXFS_FS=m
+# CONFIG_VXFS_FS is not set
 # CONFIG_MINIX_FS is not set
-CONFIG_OMFS_FS=m
-CONFIG_HPFS_FS=m
+# CONFIG_OMFS_FS is not set
+# CONFIG_HPFS_FS is not set
 # CONFIG_QNX4FS_FS is not set
 # CONFIG_QNX6FS_FS is not set
 CONFIG_ROMFS_FS=m
@@ -6034,10 +6012,8 @@ CONFIG_ROMFS_BACKED_BY_BOTH=y
 CONFIG_ROMFS_ON_BLOCK=y
 CONFIG_ROMFS_ON_MTD=y
 # CONFIG_PSTORE is not set
-CONFIG_SYSV_FS=m
-CONFIG_UFS_FS=m
-# CONFIG_UFS_FS_WRITE is not set
-# CONFIG_UFS_DEBUG is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
 # CONFIG_EXOFS_FS is not set
 CONFIG_NETWORK_FILESYSTEMS=y
 CONFIG_NFS_FS=y
@@ -6235,10 +6211,10 @@ CONFIG_CRYPTO_RNG_DEFAULT=y
 CONFIG_CRYPTO_AKCIPHER2=y
 CONFIG_CRYPTO_AKCIPHER=y
 CONFIG_CRYPTO_KPP2=y
-CONFIG_CRYPTO_KPP=m
+CONFIG_CRYPTO_KPP=y
 CONFIG_CRYPTO_ACOMP2=y
 CONFIG_CRYPTO_RSA=y
-CONFIG_CRYPTO_DH=m
+CONFIG_CRYPTO_DH=y
 CONFIG_CRYPTO_ECDH=m
 CONFIG_CRYPTO_MANAGER=y
 CONFIG_CRYPTO_MANAGER2=y
diff --git a/patches/packaging/0001-packaging-sync-builddeb-changes.patch b/patches/packaging/0001-packaging-sync-builddeb-changes.patch
index 540c89bff7702d71bea28265b11c900b7995e50f..bdd65fbad408cd5b9e6eff31de29b7abdfa23a40 100644
--- a/patches/packaging/0001-packaging-sync-builddeb-changes.patch
+++ b/patches/packaging/0001-packaging-sync-builddeb-changes.patch
@@ -1,389 +1,25 @@
-From d2c68671cd66c8f86f59a37f754250ab69fa27ac Mon Sep 17 00:00:00 2001
+From 54450ab7199fe8501c0fa40e8c634104dbedd525 Mon Sep 17 00:00:00 2001
 From: Robert Nelson <robertcnelson@gmail.com>
-Date: Sun, 11 Nov 2018 17:38:21 -0600
+Date: Sun, 16 Dec 2018 18:06:04 -0600
 Subject: [PATCH] packaging: sync builddeb changes
 
 Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
 ---
- scripts/package/Makefile |  34 ++++--
- scripts/package/builddeb | 255 ++++++++++++++++++++++++++++++++++++++-
- 2 files changed, 276 insertions(+), 13 deletions(-)
+ scripts/package/builddeb | 1 +
+ 1 file changed, 1 insertion(+)
 
-diff --git a/scripts/package/Makefile b/scripts/package/Makefile
-index 73503ebce632..9fbcf5ed0ca7 100644
---- a/scripts/package/Makefile
-+++ b/scripts/package/Makefile
-@@ -24,7 +24,6 @@
- # Remove hyphens since they have special meaning in RPM filenames
- KERNELPATH := kernel-$(subst -,_,$(KERNELRELEASE))
- KDEB_SOURCENAME ?= linux-$(KERNELRELEASE)
--KBUILD_PKG_ROOTCMD ?="fakeroot -u"
- export KDEB_SOURCENAME
- # Include only those top-level files that are needed by make, plus the GPL copy
- TAR_CONTENT := $(KBUILD_ALLDIRS) .config .scmversion Makefile \
-@@ -67,20 +66,35 @@ binrpm-pkg: FORCE
- 
- clean-files += $(objtree)/*.spec
- 
-+# Deb target
-+# ---------------------------------------------------------------------------
-+quiet_cmd_builddeb = BUILDDEB
-+      cmd_builddeb = set -e; \
-+	test `id -u` = 0 || \
-+	test -n "$(KBUILD_PKG_ROOTCMD)" || { \
-+		which fakeroot >/dev/null 2>&1 && \
-+		KBUILD_PKG_ROOTCMD="fakeroot -u"; \
-+	} || { \
-+		echo; \
-+		echo "builddeb must be run as root (or using fakeroot)."; \
-+		echo "KBUILD_PKG_ROOTCMD is unset and fakeroot not found."; \
-+		echo "Try setting KBUILD_PKG_ROOTCMD to a command to acquire"; \
-+		echo "root privileges (e.g., 'fakeroot -u' or 'sudo')."; \
-+		false; \
-+	} && \
-+	\
-+	$$KBUILD_PKG_ROOTCMD $(CONFIG_SHELL) \
-+		$(srctree)/scripts/package/builddeb $@
-+
- deb-pkg: FORCE
- 	$(MAKE) clean
--	$(CONFIG_SHELL) $(srctree)/scripts/package/mkdebian
- 	$(call cmd,src_tar,$(KDEB_SOURCENAME))
--	origversion=$$(dpkg-parsechangelog -SVersion |sed 's/-[^-]*$$//');\
--		mv $(KDEB_SOURCENAME).tar.gz ../$(KDEB_SOURCENAME)_$${origversion}.orig.tar.gz
--	+dpkg-buildpackage -r$(KBUILD_PKG_ROOTCMD) -a$$(cat debian/arch) -i.git -us -uc
-+	$(MAKE) KBUILD_SRC=
-+	+$(call cmd,builddeb)
- 
- bindeb-pkg: FORCE
--	$(CONFIG_SHELL) $(srctree)/scripts/package/mkdebian
--	+dpkg-buildpackage -r$(KBUILD_PKG_ROOTCMD) -a$$(cat debian/arch) -b -nc -uc
--
--intdeb-pkg: FORCE
--	+$(CONFIG_SHELL) $(srctree)/scripts/package/builddeb
-+	$(MAKE) KBUILD_SRC=
-+	+$(call cmd,builddeb)
- 
- clean-dirs += $(objtree)/debian/
- 
 diff --git a/scripts/package/builddeb b/scripts/package/builddeb
-index f43a274f4f1d..f4dcc319506d 100755
+index f43a274f4f1d..b274b7994ac7 100755
 --- a/scripts/package/builddeb
 +++ b/scripts/package/builddeb
-@@ -30,19 +30,80 @@ create_package() {
- 	chmod -R a+rX "$pdir"
- 
- 	# Create the package
--	dpkg-gencontrol -p$pname -P"$pdir"
-+	dpkg-gencontrol $forcearch -Vkernel:debarch="${debarch}" -p$pname -P"$pdir"
- 	dpkg --build "$pdir" ..
- }
- 
-+set_debarch() {
-+	# Attempt to find the correct Debian architecture
-+	case "$UTS_MACHINE" in
-+	i386|ia64|alpha)
-+		debarch="$UTS_MACHINE" ;;
-+	x86_64)
-+		debarch=amd64 ;;
-+	sparc*)
-+		debarch=sparc ;;
-+	s390*)
-+		debarch=s390$(grep -q CONFIG_64BIT=y $KCONFIG_CONFIG && echo x || true) ;;
-+	ppc*)
-+		debarch=$(grep -q CPU_LITTLE_ENDIAN=y $KCONFIG_CONFIG && echo ppc64el || echo powerpc) ;;
-+	parisc*)
-+		debarch=hppa ;;
-+	mips*)
-+		debarch=mips$(grep -q CPU_LITTLE_ENDIAN=y $KCONFIG_CONFIG && echo el || true) ;;
-+	aarch64|arm64)
-+		debarch=arm64 ;;
-+	arm*)
-+		if grep -q CONFIG_AEABI=y $KCONFIG_CONFIG; then
-+		    if grep -q CONFIG_VFP=y $KCONFIG_CONFIG; then
-+			debarch=armhf
-+		    else
-+			debarch=armel
-+		    fi
-+		else
-+		    debarch=arm
-+		fi
-+		;;
-+	*)
-+		debarch=$(dpkg --print-architecture)
-+		echo "" >&2
-+		echo "** ** **  WARNING  ** ** **" >&2
-+		echo "" >&2
-+		echo "Your architecture doesn't have its equivalent" >&2
-+		echo "Debian userspace architecture defined!" >&2
-+		echo "Falling back to using your current userspace instead!" >&2
-+		echo "Please add support for $UTS_MACHINE to ${0} ..." >&2
-+		echo "" >&2
-+	esac
-+	if [ -n "$KBUILD_DEBARCH" ] ; then
-+		debarch="$KBUILD_DEBARCH"
-+	fi
-+	forcearch="-DArchitecture=$debarch"
-+
-+}
-+
-+# Some variables and settings used throughout the script
- version=$KERNELRELEASE
-+revision=$(cat .version)
-+if [ -n "$KDEB_PKGVERSION" ]; then
-+	packageversion=$KDEB_PKGVERSION
-+else
-+	packageversion=$version-$revision
-+fi
-+sourcename=$KDEB_SOURCENAME
- tmpdir="$objtree/debian/tmp"
-+fwdir="$objtree/debian/fwtmp"
- kernel_headers_dir="$objtree/debian/hdrtmp"
- libc_headers_dir="$objtree/debian/headertmp"
- dbg_dir="$objtree/debian/dbgtmp"
- packagename=linux-image-$version
-+fwpackagename=linux-firmware-image-$version
- kernel_headers_packagename=linux-headers-$version
- libc_headers_packagename=linux-libc-dev
- dbg_packagename=$packagename-dbg
-+debarch=
-+forcearch=
-+set_debarch
- 
- if [ "$ARCH" = "um" ] ; then
- 	packagename=user-mode-linux-$version
-@@ -65,9 +126,10 @@ esac
- BUILD_DEBUG="$(grep -s '^CONFIG_DEBUG_INFO=y' $KCONFIG_CONFIG || true)"
- 
- # Setup the directory structure
--rm -rf "$tmpdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir" $objtree/debian/files
-+rm -rf "$tmpdir" "$fwdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir" $objtree/debian/files
- mkdir -m 755 -p "$tmpdir/DEBIAN"
- mkdir -p "$tmpdir/lib" "$tmpdir/boot"
-+mkdir -p "$fwdir/lib/firmware/$version/"
- mkdir -p "$kernel_headers_dir/lib/modules/$version/"
- 
- # Build and install the kernel
-@@ -84,9 +146,18 @@ fi
- cp "$($MAKE -s -f $srctree/Makefile image_name)" "$tmpdir/$installed_image_path"
- 
- if grep -q "^CONFIG_OF_EARLY_FLATTREE=y" $KCONFIG_CONFIG ; then
-+	mkdir -p "$tmpdir/boot/dtbs/$version"
+@@ -87,6 +87,7 @@ if grep -q "^CONFIG_OF_EARLY_FLATTREE=y" $KCONFIG_CONFIG ; then
  	# Only some architectures with OF support have this target
  	if [ -d "${srctree}/arch/$SRCARCH/boot/dts" ]; then
--		$MAKE KBUILD_SRC= INSTALL_DTBS_PATH="$tmpdir/usr/lib/$packagename" dtbs_install
+ 		$MAKE KBUILD_SRC= INSTALL_DTBS_PATH="$tmpdir/usr/lib/$packagename" dtbs_install
 +		$MAKE KBUILD_SRC= INSTALL_DTBS_PATH="$tmpdir/boot/dtbs/$version" dtbs_install
-+	else
-+		$MAKE KBUILD_SRC= dtbs
-+		find arch/arm/boot/ -iname "*.dtb" -exec cp -v '{}' "$tmpdir/boot/dtbs/$version" \;
-+	fi
-+
-+	#make dtbs_install seems to add an .old directory
-+	if [ -d "$tmpdir/boot/dtbs/$version.old" ] ; then
-+		rm -rf "$tmpdir/boot/dtbs/$version.old"
  	fi
  fi
  
-@@ -153,6 +224,107 @@ EOF
- 	chmod 755 "$tmpdir/DEBIAN/$script"
- done
- 
-+# Try to determine maintainer and email values
-+if [ -n "$DEBEMAIL" ]; then
-+       email=$DEBEMAIL
-+elif [ -n "$EMAIL" ]; then
-+       email=$EMAIL
-+else
-+       email=$(id -nu)@$(hostname -f 2>/dev/null || hostname)
-+fi
-+if [ -n "$DEBFULLNAME" ]; then
-+       name=$DEBFULLNAME
-+elif [ -n "$NAME" ]; then
-+       name=$NAME
-+else
-+       name="Anonymous"
-+fi
-+maintainer="$name <$email>"
-+
-+# Try to determine distribution
-+if [ -n "$KDEB_CHANGELOG_DIST" ]; then
-+        distribution=$KDEB_CHANGELOG_DIST
-+# In some cases lsb_release returns the codename as n/a, which breaks dpkg-parsechangelog
-+elif distribution=$(lsb_release -cs 2>/dev/null) && [ -n "$distribution" ] && [ "$distribution" != "n/a" ]; then
-+        : # nothing to do in this case
-+else
-+        distribution="unstable"
-+        echo >&2 "Using default distribution of 'unstable' in the changelog"
-+        echo >&2 "Install lsb-release or set \$KDEB_CHANGELOG_DIST explicitly"
-+fi
-+
-+# Generate a simple changelog template
-+cat <<EOF > debian/changelog
-+$sourcename ($packageversion) $distribution; urgency=low
-+
-+  * Custom built Linux kernel.
-+
-+ -- $maintainer  $(date -R)
-+EOF
-+
-+# Generate copyright file
-+cat <<EOF > debian/copyright
-+This is a packacked upstream version of the Linux kernel.
-+
-+The sources may be found at most Linux archive sites, including:
-+https://www.kernel.org/pub/linux/kernel
-+
-+Copyright: 1991 - 2017 Linus Torvalds and others.
-+
-+The git repository for mainline kernel development is at:
-+git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
-+
-+    This program is free software; you can redistribute it and/or modify
-+    it under the terms of the GNU General Public License as published by
-+    the Free Software Foundation; version 2 dated June, 1991.
-+
-+On Debian GNU/Linux systems, the complete text of the GNU General Public
-+License version 2 can be found in \`/usr/share/common-licenses/GPL-2'.
-+EOF
-+
-+
-+build_depends="bc, kmod, cpio "
-+
-+# Generate a control file
-+cat <<EOF > debian/control
-+Source: $sourcename
-+Section: kernel
-+Priority: optional
-+Maintainer: $maintainer
-+Build-Depends: $build_depends
-+Homepage: http://www.kernel.org/
-+EOF
-+
-+if [ "$ARCH" = "um" ]; then
-+	cat <<EOF >> debian/control
-+
-+Package: $packagename
-+Architecture: any
-+Description: User Mode Linux kernel, version $version
-+ User-mode Linux is a port of the Linux kernel to its own system call
-+ interface.  It provides a kind of virtual machine, which runs Linux
-+ as a user process under another Linux kernel.  This is useful for
-+ kernel development, sandboxes, jails, experimentation, and
-+ many other things.
-+ .
-+ This package contains the Linux kernel, modules and corresponding other
-+ files, version: $version.
-+EOF
-+
-+else
-+	cat <<EOF >> debian/control
-+
-+Package: $packagename
-+Suggests: $fwpackagename
-+Architecture: any
-+Depends: initramfs-tools
-+Description: Linux kernel, version $version
-+ This package contains the Linux kernel, modules and corresponding other
-+ files, version: $version.
-+EOF
-+
-+fi
-+
- # Build kernel header package
- (cd $srctree; find . -name Makefile\* -o -name Kconfig\* -o -name \*.pl) > "$objtree/debian/hdrsrcfiles"
- (cd $srctree; find arch/*/include include scripts -type f -o -type l) >> "$objtree/debian/hdrsrcfiles"
-@@ -173,6 +345,43 @@ mkdir -p "$destdir"
- ln -sf "/usr/src/linux-headers-$version" "$kernel_headers_dir/lib/modules/$version/build"
- rm -f "$objtree/debian/hdrsrcfiles" "$objtree/debian/hdrobjfiles"
- 
-+cat <<EOF >> debian/control
-+
-+Package: $kernel_headers_packagename
-+Architecture: any
-+Description: Linux kernel headers for $KERNELRELEASE on \${kernel:debarch}
-+ This package provides kernel header files for $KERNELRELEASE on \${kernel:debarch}
-+ .
-+ This is useful for people who need to build external modules
-+EOF
-+
-+# Do we have firmware? Move it out of the way and build it into a package.
-+if [ -e "$tmpdir/lib/firmware" ]; then
-+	mv "$tmpdir/lib/firmware"/* "$fwdir/lib/firmware/$version/"
-+	rmdir "$tmpdir/lib/firmware"
-+
-+	cat <<EOF >> debian/control
-+
-+Package: $fwpackagename
-+Architecture: all
-+Description: Linux kernel firmware, version $version
-+ This package contains firmware from the Linux kernel, version $version.
-+EOF
-+
-+	create_package "$fwpackagename" "$fwdir"
-+fi
-+
-+cat <<EOF >> debian/control
-+
-+Package: $libc_headers_packagename
-+Section: devel
-+Provides: linux-kernel-headers
-+Architecture: any
-+Description: Linux support headers for userspace development
-+ This package provides userspaces headers from the Linux kernel.  These headers
-+ are used by the installed headers for GNU glibc and other system libraries.
-+EOF
-+
- if [ "$ARCH" != "um" ]; then
- 	create_package "$kernel_headers_packagename" "$kernel_headers_dir"
- 	create_package "$libc_headers_packagename" "$libc_headers_dir"
-@@ -191,7 +400,47 @@ if [ -n "$BUILD_DEBUG" ] ; then
- 	ln -s ../lib/modules/$version/vmlinux $dbg_dir/usr/lib/debug/boot/vmlinux-$version
- 	# kdump-tools
- 	ln -s lib/modules/$version/vmlinux $dbg_dir/usr/lib/debug/vmlinux-$version
-+
-+	cat <<EOF >> debian/control
-+
-+Package: $dbg_packagename
-+Section: debug
-+Architecture: any
-+Description: Linux kernel debugging symbols for $version
-+ This package will come in handy if you need to debug the kernel. It provides
-+ all the necessary debug symbols for the kernel and its modules.
-+EOF
-+
- 	create_package "$dbg_packagename" "$dbg_dir"
- fi
- 
-+if [ "x$1" = "xdeb-pkg" ]
-+then
-+    cat <<EOF > debian/rules
-+#!/usr/bin/make -f
-+
-+build:
-+	\$(MAKE)
-+
-+binary-arch:
-+	\$(MAKE) KDEB_SOURCENAME=${sourcename} KDEB_PKGVERSION=${packageversion} bindeb-pkg
-+
-+clean:
-+	rm -rf debian/*tmp debian/files
-+	mv debian/ debian.backup # debian/ might be cleaned away
-+	\$(MAKE) clean
-+	mv debian.backup debian
-+
-+binary: binary-arch
-+EOF
-+	mv ${sourcename}.tar.gz ../${sourcename}_${version}.orig.tar.gz
-+	tar caf ../${sourcename}_${packageversion}.debian.tar.gz debian/{copyright,rules,changelog,control}
-+	dpkg-source -cdebian/control -ldebian/changelog --format="3.0 (custom)" --target-format="3.0 (quilt)" \
-+		-b / ../${sourcename}_${version}.orig.tar.gz  ../${sourcename}_${packageversion}.debian.tar.gz
-+	mv ${sourcename}_${packageversion}*dsc ..
-+	dpkg-genchanges -Vkernel:debarch="${debarch}" > ../${sourcename}_${packageversion}_${debarch}.changes
-+else
-+	dpkg-genchanges -b -Vkernel:debarch="${debarch}" > ../${sourcename}_${packageversion}_${debarch}.changes
-+fi
-+
- exit 0
 -- 
-2.19.1
+2.19.2
 
diff --git a/patches/ref_omap2plus_defconfig b/patches/ref_omap2plus_defconfig
index f7e217852f95ab6f2d5fb1d76aa839c2a82b2549..8bf7ec39be85e1e9eafafef03044e47decaef03b 100644
--- a/patches/ref_omap2plus_defconfig
+++ b/patches/ref_omap2plus_defconfig
@@ -1,6 +1,6 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/arm 4.20.0-rc6 Kernel Configuration
+# Linux/arm 4.20.0-rc7 Kernel Configuration
 #
 
 #
diff --git a/tools/host_det.sh b/tools/host_det.sh
index bb99289d1c037f1b6c2d4dc6eb624425263f8f22..9f82bbb7d204abb1e82d3696d1ad43f46c681558 100755
--- a/tools/host_det.sh
+++ b/tools/host_det.sh
@@ -156,6 +156,9 @@ debian_regs () {
 	#GCC_PLUGINS
 	pkg="libmpc-dev"
 	check_dpkg
+	#"mkimage" command not found - U-Boot images will not be built
+	pkg="u-boot-tools"
+	check_dpkg
 
 	unset warn_dpkg_ia32
 	unset stop_pkg_search
diff --git a/tools/rebuild_deb.sh b/tools/rebuild_deb.sh
index 3101214a5f36ab4c5640bd463654daca8c2227a6..1112974e904fdb2b8a231753807679b1fc280713 100755
--- a/tools/rebuild_deb.sh
+++ b/tools/rebuild_deb.sh
@@ -84,13 +84,11 @@ make_deb () {
 	echo "-----------------------------"
 	echo "make ${build_opts} CROSS_COMPILE="${CC}" bindeb-pkg"
 	echo "-----------------------------"
-	fakeroot make ${build_opts} CROSS_COMPILE="${CC}" bindeb-pkg
+	make ${build_opts} CROSS_COMPILE="${CC}" bindeb-pkg
 
-	mv "${DIR}"/*.deb "${DIR}/deploy/" || true
-	mv "${DIR}"/*.debian.tar.gz "${DIR}/deploy/" || true
-	mv "${DIR}"/*.dsc "${DIR}/deploy/" || true
+	mv "${DIR}"/*.buildinfo "${DIR}/deploy/" || true
 	mv "${DIR}"/*.changes "${DIR}/deploy/" || true
-	mv "${DIR}"/*.orig.tar.gz "${DIR}/deploy/" || true
+	mv "${DIR}"/*.deb "${DIR}/deploy/" || true
 
 	KERNEL_UTS=$(cat "${DIR}/KERNEL/include/generated/utsrelease.h" | awk '{print $3}' | sed 's/\"//g' )
 
diff --git a/version.sh b/version.sh
index c38b98a01e6c56d8b9db112c4f1da5bac46d5965..355c9b48e659061871dc4c037ec9864bdbbb0d1d 100644
--- a/version.sh
+++ b/version.sh
@@ -28,10 +28,11 @@ toolchain="gcc_arm_gnueabihf_8"
 #toolchain="gcc_linaro_aarch64_gnu_5"
 #toolchain="gcc_linaro_aarch64_gnu_6"
 #toolchain="gcc_linaro_aarch64_gnu_7"
+#toolchain="gcc_arm_aarch64_gnu_8"
 
 #Kernel
 KERNEL_REL=4.20
-KERNEL_TAG=${KERNEL_REL}-rc6
+KERNEL_TAG=${KERNEL_REL}-rc7
 kernel_rt=".X-rtY"
 #Kernel Build
 BUILD=${build_prefix}0