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