diff --git a/recipes-bsp/fng-install/files/mx6/fng-install.sh b/recipes-bsp/fng-install/files/mx6/fng-install.sh
index 759937911412ca17460dad1666fe323c541774d2..aafe7e8c39d37813b76a8ed0b6d570c9f12167ca 100644
--- a/recipes-bsp/fng-install/files/mx6/fng-install.sh
+++ b/recipes-bsp/fng-install/files/mx6/fng-install.sh
@@ -657,10 +657,13 @@ mounttarget()
     mount -o bind /tmp $TARGETROOT/var/tmp
 
     mkdir -p $TARGETROOT/var/tmp
+    
+    mkdir -p $TARGETROOT/etc/shared
 
     mount -t proc proc ${TARGETROOT}/proc/
     mount -t sysfs sys ${TARGETROOT}/sys/
     mount -o bind /dev ${TARGETROOT}/dev/
+    mount -o ro,bind /etc/shared ${TARGETROOT}/etc/shared
 }
 
 #===========================================================
@@ -670,6 +673,7 @@ mounttarget()
 unmounttarget()
 {
     set +o pipefail
+    umount $TARGETROOT/etc/shared || true
     umount $TARGETROOT/var/tmp || true
     umount $TARGETROOT/tmp || true
     umount $ABSTARGETTMP || true
diff --git a/recipes-bsp/fng-install/files/mx6/guf-prepare-kernel.sh b/recipes-bsp/fng-install/files/mx6/guf-prepare-kernel.sh
index 91d0995c189a1a9a2fbf8d97bda0541dae233423..4908fde032e134bff94bee56e29362e7e4ecc59a 100644
--- a/recipes-bsp/fng-install/files/mx6/guf-prepare-kernel.sh
+++ b/recipes-bsp/fng-install/files/mx6/guf-prepare-kernel.sh
@@ -7,6 +7,8 @@
 
 KERNEL_FILE=$1
 DEVICETREE_FILE=$2
+shift 2
+DEVICETREE_OVERLAYS=$*
 
 # Make sure we have access to the bootpartition
 BOOTPARTITION=/dev/mmcblk0p2
@@ -15,21 +17,6 @@ MOUNTPOINT=/boot
 #========================================================
 # helper functions
 #========================================================
-string_contains()
-{
-    case "$1" in
-        *$2*) return 0
-    esac
-    return 1
-}
-string_ends_with()
-{
-    case "$1" in
-        *$2) return 0
-    esac
-    return 1
-}
-
 get_platform()
 {
     # Determine platform in order to choose devicetree
@@ -108,17 +95,14 @@ fi
 
 if [ -z "$DEVICETREE_FILE" ]
 then
-    # Read default devicetree file from boot partitione
+    # Read default devicetree file from boot partition
     if [ -r "$MOUNTPOINT"/devicetree ]
     then
         DEVICETREE_FILE="$( head -n 1 "$MOUNTPOINT"/devicetree )"
     else
         PLATFORM="$( get_platform )"
-        for dtb in "$MOUNTPOINT/"*.dtb ; do
-            if string_ends_with "$dtb" "$PLATFORM.dtb"
-            then
-                DEVICETREE_FILE="$(basename "$dtb")"
-            fi
+        for dtb in "$MOUNTPOINT/"*"$PLATFORM.dtb" ; do
+            DEVICETREE_FILE="$(basename "$dtb")"
         done
 
         if [ -z "$DEVICETREE_FILE" ]; then
@@ -138,14 +122,31 @@ fi
 # Mark the currently selected devicetree as the one
 # (we are on fat, so we use a textfile instead of links):
 echo "${DEVICETREE_FILE}" > "${MOUNTPOINT}/devicetree"
+DEVICETREE_APPEND_FILE=$DEVICETREE_FILE
 # Store default kernel file for later usage
 echo "$KERNEL_FILE" > "$MOUNTPOINT"/kernel
 
+if [ -x "/usr/bin/gfxml2dto" ]
+then
+    # Create overlay form G&F XML
+    if gfxml2dto -o "$MOUNTPOINT"/gfxml-overlay.dtbo 
+    then
+        DEVICETREE_OVERLAYS="$MOUNTPOINT/gfxml-overlay.dtbo $DEVICETREE_OVERLAYS"
+    fi
+fi
+
+if [ -n "$DEVICETREE_OVERLAYS" ] && [ -x "/usr/bin/fdtoverlay" ]
+then
+# shellcheck disable=SC2086
+    if fdtoverlay -i "$MOUNTPOINT/$DEVICETREE_FILE" -o "${MOUNTPOINT}/devicetree.dtb" $DEVICETREE_OVERLAYS
+    then
+        echo $DEVICETREE_OVERLAYS > ${MOUNTPOINT}/overlays
+        DEVICETREE_APPEND_FILE="${MOUNTPOINT}/devicetree.dtb"
+    fi
+fi
+
 # Combine both to one file called linuximage
-cat "$MOUNTPOINT/$KERNEL_FILE" "$MOUNTPOINT/$DEVICETREE_FILE" > "$MOUNTPOINT"/linuximage
-# Store the selected kernel
-echo "$KERNEL_FILE" > "$MOUNTPOINT"/kernel
-echo "$DEVICETREE_FILE" > "$MOUNTPOINT"/devicetree
+cat "$MOUNTPOINT/$KERNEL_FILE" "$DEVICETREE_APPEND_FILE" > "$MOUNTPOINT"/linuximage
 
 sync
 if $MOUNTED