93 lines
2.1 KiB
Bash
Executable file
93 lines
2.1 KiB
Bash
Executable file
#!/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\|fsl\|nxp\|qcom\|raspberrypi\|rockchip\|samsung\).*/\1/p')
|
|
|
|
do_dtfile(){
|
|
if [[ -n $(find /flash -name extlinux.conf) ]]; then
|
|
EXTLINUX=$(find /flash -name extlinux.conf)
|
|
DTFILE=$(grep FDT "${EXTLINUX}" | 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=""
|
|
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
|