From f9d849ae11de85af729fa9e57c6d283b515034c9 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Sat, 30 Sep 2023 11:11:42 +0200 Subject: [PATCH] Fix compilation issues --- 6.1/target/linux/generic/config-6.1 | 1 + build.sh | 2 +- common/scripts/mkits-tlt-rutx-fit.sh | 140 +++++++++++++++++++++++++++ 3 files changed, 142 insertions(+), 1 deletion(-) create mode 100755 common/scripts/mkits-tlt-rutx-fit.sh diff --git a/6.1/target/linux/generic/config-6.1 b/6.1/target/linux/generic/config-6.1 index 83c721b42..fb7e2143d 100644 --- a/6.1/target/linux/generic/config-6.1 +++ b/6.1/target/linux/generic/config-6.1 @@ -7999,3 +7999,4 @@ CONFIG_ZONE_DMA=y # CONFIG_ZRAM_DEF_COMP_842 is not set # CONFIG_VFIO_PLATFORM is not set # CONFIG_VFIO_FSL_MC is not set +# CONFIG_KEYBOARD_MT6779 is not set diff --git a/build.sh b/build.sh index b54c2cc35..bc374ed37 100755 --- a/build.sh +++ b/build.sh @@ -302,7 +302,7 @@ if [ "$OMR_KERNEL" = "6.1" ] || [ "$OMR_KERNEL" = "6.6" ]; then echo "# CONFIG_PACKAGE_kmod-rtl8812au-ct is not set" >> "$OMR_TARGET/${OMR_KERNEL}/source/.config" fi -if [ "$OMR_TARGET" = "rutx" -a "$OMR_KERNEL" = "5.4" ]; then +if ([ "$OMR_TARGET" = "rutx" ] || [ "$OMR_TARGET" = "rutx12" ]) && [ "$OMR_KERNEL" = "5.4" ]; then echo "CONFIG_PACKAGE_kmod-r2ec=y" >> "$OMR_TARGET/${OMR_KERNEL}/source/.config" fi diff --git a/common/scripts/mkits-tlt-rutx-fit.sh b/common/scripts/mkits-tlt-rutx-fit.sh new file mode 100755 index 000000000..91c3374e3 --- /dev/null +++ b/common/scripts/mkits-tlt-rutx-fit.sh @@ -0,0 +1,140 @@ +#!/usr/bin/env bash +# +# Licensed under the terms of the GNU GPL License version 2 or later. +# Author: Samuele Barella , based on mkits-qsdk-ipq-image.sh and mkits.sh from Teltonika's RUTX SDK. + +usage() { + printf "Usage: %s -A arch -C comp -a addr -e entry" "$(basename "$0")" + printf " -v version -k kernel [-D name -n address -d dtb] -o its_file" + + printf "\n\t-A ==> set architecture to 'arch'" + printf "\n\t-C ==> set compression type 'comp'" + printf "\n\t-c ==> set config name 'config'" + printf "\n\t-a ==> set load address to 'addr' (hex)" + printf "\n\t-e ==> set entry point to 'entry' (hex)" + printf "\n\t-v ==> set kernel version to 'version'" + printf "\n\t-k ==> include kernel image 'kernel'" + printf "\n\t-D ==> human friendly Device Tree Blob 'name'" + printf "\n\t-n ==> fdt unit-address 'address'" + printf "\n\t-d ==> include Device Tree Blob 'dtb'" + printf "\n\t-o ==> create output file 'its_file'\n" + exit 1 +} + +FDTNUM=1 + +while getopts ":A:a:c:C:D:d:e:k:n:o:v:" OPTION +do + case $OPTION in + A ) ARCH=$OPTARG;; + a ) LOAD_ADDR=$OPTARG;; + c ) CONFIG=$OPTARG;; + C ) COMPRESS=$OPTARG;; + D ) DEVICE=$OPTARG;; + d ) DTB=$OPTARG;; + e ) ENTRY_ADDR=$OPTARG;; + k ) KERNEL=$OPTARG;; + n ) FDTNUM=$OPTARG;; + o ) OUTPUT=$OPTARG;; + v ) VERSION=$OPTARG;; + * ) echo "Invalid option passed to '$0' (options:$*)" + usage;; + esac +done + +# Make sure user entered all required parameters +if [ -z "${ARCH}" ] || [ -z "${COMPRESS}" ] || [ -z "${LOAD_ADDR}" ] || \ + [ -z "${ENTRY_ADDR}" ] || [ -z "${VERSION}" ] || [ -z "${KERNEL}" ] || \ + [ -z "${OUTPUT}" ] || [ -z "${CONFIG}" ]; then + usage +fi + +ARCH_UPPER=$(echo "$ARCH" | tr '[:lower:]' '[:upper:]') + +# Conditionally create fdt information +if [ -n "${DTB}" ]; then + FDTNUM=0 + DEFAULT_CONFIG=$FDTNUM + + DTB_DIR="${DTB%%{*}" + DTB="${DTB##*{}" + DTB_CSV="${DTB##*{}" + DTB_CSV="${DTB%\}*}" + IFS=, + for f in $DTB_CSV; do + FDTNUM=$((FDTNUM+1)) + + ff="${DTB_DIR}/${f}" + [ -f "${ff}" ] || { + echo "ERROR: no DTBs found" >&2 + rm -f "${OUTPUT}" + exit 1 + } + + FDT_NODE="${FDT_NODE} + + fdt@$FDTNUM { + description = \"${f}\"; + data = /incbin/(\"${ff}\"); + type = \"flat_dt\"; + arch = \"${ARCH}\"; + compression = \"none\"; + hash@1 { + algo = \"crc32\"; + }; + hash@2 { + algo = \"sha1\"; + }; + }; +" + + f="${f#*rutx}" + # Remove the file extension + f="${f%.dtb}" + + CONFIG_NODE="${CONFIG_NODE} + + conf_mdtb@${FDTNUM} { + description = \"${f}\"; + kernel = \"kernel@1\"; + fdt = \"fdt@$FDTNUM\"; + }; +" + done +fi + +# Create a default, fully populated DTS file +DATA="/dts-v1/; + +/ { + description = \"${ARCH_UPPER} OpenWrt FIT (Flattened Image Tree)\"; + #address-cells = <1>; + + images { + kernel@1 { + description = \"${ARCH_UPPER} OpenWrt Linux-${VERSION}\"; + data = /incbin/(\"${KERNEL}\"); + type = \"kernel\"; + arch = \"${ARCH}\"; + os = \"linux\"; + compression = \"${COMPRESS}\"; + load = <${LOAD_ADDR}>; + entry = <${ENTRY_ADDR}>; + hash@1 { + algo = \"crc32\"; + }; + hash@2 { + algo = \"sha1\"; + }; + }; +${FDT_NODE} + }; + + configurations { + default = \"${DEFAULT_CONFIG}\"; +${CONFIG_NODE} + }; +};" + +# Write .its file to disk +echo "$DATA" > "${OUTPUT}"