diff --git a/helpers/DATA/base-installer/amd64.sh b/helpers/DATA/base-installer/amd64.sh
new file mode 100644
index 0000000000000000000000000000000000000000..63b1346fdf98068dd372fca2a9a5b4357eb78dcc
--- /dev/null
+++ b/helpers/DATA/base-installer/amd64.sh
@@ -0,0 +1,31 @@
+arch_get_kernel_flavour () {
+	echo amd64
+}
+
+arch_check_usable_kernel () {
+	if echo "$1" | grep -q -e "signed" -e "edge" -e "hwe-16.04"; then return 1; fi
+	if echo "$1" | grep -Eq -- "-(server|generic|virtual|xen|preempt|rt)(-.*)?$"; then return 0; fi
+
+	return 1
+}
+
+arch_get_kernel () {
+
+	echo "linux-generic"
+	echo "linux-image-generic"
+
+	echo "linux-server"
+	echo "linux-image-server"
+
+	echo "linux-virtual"
+	echo "linux-image-virtual"
+
+	echo "linux-xen"
+	echo "linux-image-xen"
+
+	echo "linux-preempt"
+	echo "linux-image-preempt"
+
+	echo "linux-rt"
+	echo "linux-image-rt"
+}
diff --git a/helpers/DATA/base-installer/i386.sh b/helpers/DATA/base-installer/i386.sh
new file mode 100644
index 0000000000000000000000000000000000000000..cd2db347c6f94f92f50651add33a190a727583a0
--- /dev/null
+++ b/helpers/DATA/base-installer/i386.sh
@@ -0,0 +1,62 @@
+arch_get_kernel_flavour () {
+	# Should we offer an amd64 kernel?
+	if grep -q '^flags.*\blm\b' "$CPUINFO"; then
+		echo 686-pae amd64 686 586
+	# Should we offer a PAE kernel?
+	elif grep -q '^flags.*\bpae\b' "$CPUINFO"; then
+		echo 686-pae 686 586
+	# Should we offer a 686 kernel?
+	elif grep -q '^flags.*\bfpu\b.*\btsc\b.*\bcx8\b.*\bcmov\b' "$CPUINFO"; then
+		echo 686 586
+	else
+		echo 586
+	fi
+}
+
+arch_check_usable_kernel () {
+        if echo "$1" | grep -q -e "signed" -e "edge" -e "hwe-16.04"; then return 1; fi
+	local NAME="$1"
+
+	set -- $2
+	while [ $# -ge 1 ]; do
+		case "$1:$NAME" in
+		    *-dbg)
+			return 1
+			;;
+		    *-"$1"-pae)
+			# Don't allow -pae suffix, as this requires an
+			# extra CPU feature
+			;;
+		    *:*-"$1" | *:*-"$1"-*)
+			# Allow any other hyphenated suffix
+			return 0
+			;;
+		    686-*:*-generic | 686-*:*-generic-*)
+			return 0
+			;;
+		    686-*:*-virtual | 686-*:*-virtual-*)
+			return 0
+			;;
+		esac
+		shift
+	done
+	return 1
+}
+
+arch_get_kernel () {
+	imgbase="linux-image"
+
+	set -- $1
+	while [ $# -ge 1 ]; do
+		case $1 in
+		    686-*)
+			echo "linux-generic"
+			echo "linux-image-generic"
+			echo "linux-virtual"
+			echo "linux-image-virtual"
+			break
+			;;
+		esac
+		shift
+	done
+}
diff --git a/helpers/make-base-installer b/helpers/make-base-installer
index 2e6aedea439f718be14ce1c702130903b8834db5..077019453200dcbaa183120952d12310dc422490 100644
--- a/helpers/make-base-installer
+++ b/helpers/make-base-installer
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-#    Copyright (C) 2009-2010  Rubén Rodríguez <ruben@gnu.org>
+#    Copyright (C) 2009-2020  Rubén Rodríguez <ruben@gnu.org>
 #
 #    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
@@ -17,11 +17,13 @@
 #    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
 #
 
-VERSION=1
+VERSION=2
 NETINST=true
 
 . ./config
 
+cp $DATA/* kernel/
+
 sed s/KERNEL_PRIO=medium/KERNEL_PRIO=high/g library.sh -i
 
 sed 's/main,restricted/main/; s/ubuntu/trisquel/' -i library.sh ./debian/bootstrap-base.postinst