diff --git a/packages/sysutils/busybox/package.mk b/packages/sysutils/busybox/package.mk index b4b87bf94d..af3176de9e 100644 --- a/packages/sysutils/busybox/package.mk +++ b/packages/sysutils/busybox/package.mk @@ -124,13 +124,16 @@ makeinstall_target() { mkdir -p $INSTALL/usr/bin [ $TARGET_ARCH = x86_64 ] && cp $PKG_DIR/scripts/getedid $INSTALL/usr/bin cp $PKG_DIR/scripts/createlog $INSTALL/usr/bin/ - cp $PKG_DIR/scripts/dtfile $INSTALL/usr/bin - cp $PKG_DIR/scripts/dtname $INSTALL/usr/bin + cp $PKG_DIR/scripts/dthelper $INSTALL/usr/bin + ln -sf dthelper $INSTALL/usr/bin/dtfile + ln -sf dthelper $INSTALL/usr/bin/dtflag + ln -sf dthelper $INSTALL/usr/bin/dtname + ln -sf dthelper $INSTALL/usr/bin/dtsoc cp $PKG_DIR/scripts/lsb_release $INSTALL/usr/bin/ cp $PKG_DIR/scripts/apt-get $INSTALL/usr/bin/ cp $PKG_DIR/scripts/sudo $INSTALL/usr/bin/ cp $PKG_DIR/scripts/pastebinit $INSTALL/usr/bin/ - ln -sf pastebinit $INSTALL/usr/bin/paste + ln -sf pastebinit $INSTALL/usr/bin/paste mkdir -p $INSTALL/usr/lib/libreelec cp $PKG_DIR/scripts/functions $INSTALL/usr/lib/libreelec diff --git a/packages/sysutils/busybox/scripts/dtfile b/packages/sysutils/busybox/scripts/dtfile deleted file mode 100755 index 04ca371944..0000000000 --- a/packages/sysutils/busybox/scripts/dtfile +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash - -# SPDX-License-Identifier: GPL-2.0 -# Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv) - -COMPATIBLE=$(cat /proc/device-tree/compatible 2>/dev/null | tr -d '\000' | sed -n -e 's/.*\(allwinner\|amlogic\|rockchip\).*/\1/p') - -if [ -n "$COMPATIBLE" ]; then - if [ -e /flash/extlinux/extlinux.conf ]; then - DTFILE=$(grep FDT /flash/extlinux/extlinux.conf | sed 's, *FDT /dtb/,,g') - elif [ -e /flash/boot.ini ]; then - DTFILE=$(grep -m 1 dtb_name /flash/boot.ini | cut -d \" -f2 | sed 's,/dtb/,,g') - elif [ -e /flash/uEnv.ini ]; then - DTFILE=$(grep dtb_name /flash/uEnv.ini | sed 's,dtb_name=/dtb/,,g') - else - DTFILE="" - fi -fi - -echo "$DTFILE" diff --git a/packages/sysutils/busybox/scripts/dthelper b/packages/sysutils/busybox/scripts/dthelper new file mode 100755 index 0000000000..2290045116 --- /dev/null +++ b/packages/sysutils/busybox/scripts/dthelper @@ -0,0 +1,93 @@ +#!/bin/bash + +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) + +COMPATIBLE=$(cat /proc/device-tree/compatible 2>/dev/null | tr -d '\000' | sed -n -e 's/.*\(allwinner\|raspberrypi\|rockchip\).*/\1/p') + +do_dtfile(){ + if [ -e /flash/extlinux/extlinux.conf ]; then + DTFILE=$(grep FDT /flash/extlinux/extlinux.conf | sed 's,^ *FDT /,,g') + elif [ -e /flash/boot.ini ]; then + DTFILE=$(grep -m 1 dtb_name /flash/boot.ini | cut -d \" -f2 | sed 's,/dtb/,,g') + elif [ -e /flash/uEnv.ini ]; then + DTFILE=$(grep dtb_name /flash/uEnv.ini | sed 's,dtb_name=/dtb/,,g') + else + do_unknown + fi + echo "${DTFILE}" +} + +do_dtflag(){ + if [ "${COMPATIBLE}" = "raspberrypi" ]; then + DTFLAG=$(cat /proc/device-tree/compatible | cut -f1,2 -d',' | head -n 1) + PIREV=$(awk '/^Revision/ {sub($3,-6, "", $3); print $3}' /proc/cpuinfo) # truncate to 6-chars + case "${PIREV}" in + d*) + MEMSIZE="-8g" + ;; + c*) + MEMSIZE="-4g" + ;; + b*) + MEMSIZE="-2g" + ;; + a*) + MEMSIZE="-1g" + ;; + *0002|*0003|*0004|*0005|*0006|*0007|*0008|*0009|*0012) + MEMSIZE="-256" + ;; + 0*|9*) + MEMSIZE="-512" + ;; + *) + MEMSIZE="" + ;; + esac + else + DTFLAG=$(cat /proc/device-tree/compatible | cut -f1,2 -d',' | head -n 1) + MEMSIZE=$(awk -F " " '/MemTotal:/ {print $2}' /proc/meminfo) + if [ "${MEMSIZE}" -lt "524288" ]; then + MEMSIZE="-512" + else + MEMSIZE=$(( $MEMSIZE / ( 1024 * 1024 ) + 1 )) + MEMSIZE="-${MEMSIZE}g" + fi + fi + echo "${DTFLAG}${MEMSIZE}" +} + +do_dtname(){ + DTNAME=$(cat /proc/device-tree/compatible | cut -f1,2 -d',' | head -n 1) + echo "${DTNAME}" +} + +do_dtsoc(){ + DTSOC=$(cat /proc/device-tree/compatible | cut -f1,2 -d',' | tail -n 1) + echo "${DTSOC}" +} + +do_unknown(){ + echo "unknown" + exit 1 +} + +if [ -n "${COMPATIBLE}" ]; then + case $(basename "${0}") in + dtfile) + do_dtfile + ;; + dtflag) + do_dtflag + ;; + dtname) + do_dtname + ;; + dtsoc) + do_dtsoc + ;; + esac +else + do_unknown +fi diff --git a/packages/sysutils/busybox/scripts/dtname b/packages/sysutils/busybox/scripts/dtname deleted file mode 100755 index 55161cd498..0000000000 --- a/packages/sysutils/busybox/scripts/dtname +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -# SPDX-License-Identifier: GPL-2.0 -# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) - -COMPATIBLE=$(cat /proc/device-tree/compatible 2>/dev/null | tr -d '\000' | sed -n -e 's/.*\(allwinner\|amlogic\|rockchip\).*/\1/p') - -if [ -n "$COMPATIBLE" ]; then - DTNAME=$(cat /proc/device-tree/compatible | cut -f1,2 -d',' | head -n 1) - echo "$DTNAME" -else - echo "unknown" -fi