mirror of
https://github.com/RROrg/rr.git
synced 2025-06-21 05:51:05 +08:00
commit
3265c01da2
@ -65,10 +65,10 @@ CMDLINE['pid']="${PID}"
|
|||||||
CMDLINE['sn']="${SN}"
|
CMDLINE['sn']="${SN}"
|
||||||
|
|
||||||
# Read cmdline
|
# Read cmdline
|
||||||
while IFS="=" read KEY VALUE; do
|
while IFS=': ' read KEY VALUE; do
|
||||||
[ -n "${KEY}" ] && CMDLINE["${KEY}"]="${VALUE}"
|
[ -n "${KEY}" ] && CMDLINE["${KEY}"]="${VALUE}"
|
||||||
done < <(readModelMap "${MODEL}" "builds.${BUILD}.cmdline")
|
done < <(readModelMap "${MODEL}" "builds.${BUILD}.cmdline")
|
||||||
while IFS="=" read KEY VALUE; do
|
while IFS=': ' read KEY VALUE; do
|
||||||
[ -n "${KEY}" ] && CMDLINE["${KEY}"]="${VALUE}"
|
[ -n "${KEY}" ] && CMDLINE["${KEY}"]="${VALUE}"
|
||||||
done < <(readConfigMap "cmdline" "${USER_CONFIG_FILE}")
|
done < <(readConfigMap "cmdline" "${USER_CONFIG_FILE}")
|
||||||
|
|
||||||
@ -100,7 +100,7 @@ fi
|
|||||||
# Prepare command line
|
# Prepare command line
|
||||||
CMDLINE_LINE=""
|
CMDLINE_LINE=""
|
||||||
grep -q "force_junior" /proc/cmdline && CMDLINE_LINE+="force_junior "
|
grep -q "force_junior" /proc/cmdline && CMDLINE_LINE+="force_junior "
|
||||||
[ ${EFI} -eq 1 ] && CMDLINE_LINE+="withefi "
|
[ ${EFI} -eq 1 ] && CMDLINE_LINE+="withefi " || CMDLINE_LINE+="noefi "
|
||||||
[ "${BUS}" = "ata" ] && CMDLINE_LINE+="synoboot_satadom=${DOM} dom_szmax=${SIZE} "
|
[ "${BUS}" = "ata" ] && CMDLINE_LINE+="synoboot_satadom=${DOM} dom_szmax=${SIZE} "
|
||||||
CMDLINE_DIRECT="${CMDLINE_LINE}"
|
CMDLINE_DIRECT="${CMDLINE_LINE}"
|
||||||
CMDLINE_LINE+="console=ttyS0,115200n8 earlyprintk earlycon=uart8250,io,0x3f8,115200n8 root=/dev/md0 loglevel=15 log_buf_len=32M"
|
CMDLINE_LINE+="console=ttyS0,115200n8 earlyprintk earlycon=uart8250,io,0x3f8,115200n8 root=/dev/md0 loglevel=15 log_buf_len=32M"
|
||||||
@ -112,7 +112,7 @@ for KEY in ${!CMDLINE[@]}; do
|
|||||||
[ -n "${VALUE}" ] && CMDLINE_DIRECT+="=${VALUE}"
|
[ -n "${VALUE}" ] && CMDLINE_DIRECT+="=${VALUE}"
|
||||||
done
|
done
|
||||||
# Escape special chars
|
# Escape special chars
|
||||||
CMDLINE_LINE=`echo ${CMDLINE_LINE} | sed 's/>/\\\\>/g'`
|
#CMDLINE_LINE=`echo ${CMDLINE_LINE} | sed 's/>/\\\\>/g'`
|
||||||
CMDLINE_DIRECT=`echo ${CMDLINE_DIRECT} | sed 's/>/\\\\>/g'`
|
CMDLINE_DIRECT=`echo ${CMDLINE_DIRECT} | sed 's/>/\\\\>/g'`
|
||||||
echo -e "Cmdline:\n\033[1;36m${CMDLINE_LINE}\033[0m"
|
echo -e "Cmdline:\n\033[1;36m${CMDLINE_LINE}\033[0m"
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ function readConfigKey() {
|
|||||||
# 2 - Path of yaml config file
|
# 2 - Path of yaml config file
|
||||||
# Returns map of values
|
# Returns map of values
|
||||||
function readConfigMap() {
|
function readConfigMap() {
|
||||||
yq eval '.'${1}' | explode(.) | to_entries | map([.key, .value] | join("=")) | .[]' "${2}"
|
yq eval '.'${1}' | explode(.) | to_entries | map([.key, .value] | join(": ")) | .[]' "${2}"
|
||||||
}
|
}
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
@ -77,7 +77,7 @@ if [ ! -f "${USER_CONFIG_FILE}" ]; then
|
|||||||
writeConfigKey "model" "" "${USER_CONFIG_FILE}"
|
writeConfigKey "model" "" "${USER_CONFIG_FILE}"
|
||||||
writeConfigKey "build" "" "${USER_CONFIG_FILE}"
|
writeConfigKey "build" "" "${USER_CONFIG_FILE}"
|
||||||
writeConfigKey "sn" "" "${USER_CONFIG_FILE}"
|
writeConfigKey "sn" "" "${USER_CONFIG_FILE}"
|
||||||
writeConfigKey "maxdisks" "" "${USER_CONFIG_FILE}"
|
# writeConfigKey "maxdisks" "" "${USER_CONFIG_FILE}"
|
||||||
writeConfigKey "layout" "qwerty" "${USER_CONFIG_FILE}"
|
writeConfigKey "layout" "qwerty" "${USER_CONFIG_FILE}"
|
||||||
writeConfigKey "keymap" "" "${USER_CONFIG_FILE}"
|
writeConfigKey "keymap" "" "${USER_CONFIG_FILE}"
|
||||||
writeConfigKey "zimage-hash" "" "${USER_CONFIG_FILE}"
|
writeConfigKey "zimage-hash" "" "${USER_CONFIG_FILE}"
|
||||||
|
@ -145,13 +145,13 @@ function buildMenu() {
|
|||||||
writeConfigKey "build" "${BUILD}" "${USER_CONFIG_FILE}"
|
writeConfigKey "build" "${BUILD}" "${USER_CONFIG_FILE}"
|
||||||
# Delete synoinfo and reload model/build synoinfo
|
# Delete synoinfo and reload model/build synoinfo
|
||||||
writeConfigKey "synoinfo" "{}" "${USER_CONFIG_FILE}"
|
writeConfigKey "synoinfo" "{}" "${USER_CONFIG_FILE}"
|
||||||
while IFS="=" read KEY VALUE; do
|
while IFS=': ' read KEY VALUE; do
|
||||||
writeConfigKey "synoinfo.${KEY}" "${VALUE}" "${USER_CONFIG_FILE}"
|
writeConfigKey "synoinfo.${KEY}" "${VALUE}" "${USER_CONFIG_FILE}"
|
||||||
done < <(readModelMap "${MODEL}" "builds.${BUILD}.synoinfo")
|
done < <(readModelMap "${MODEL}" "builds.${BUILD}.synoinfo")
|
||||||
# Check addons
|
# Check addons
|
||||||
PLATFORM="`readModelKey "${MODEL}" "platform"`"
|
PLATFORM="`readModelKey "${MODEL}" "platform"`"
|
||||||
KVER="`readModelKey "${MODEL}" "builds.${BUILD}.kver"`"
|
KVER="`readModelKey "${MODEL}" "builds.${BUILD}.kver"`"
|
||||||
while IFS="=" read ADDON PARAM; do
|
while IFS=': ' read ADDON PARAM; do
|
||||||
[ -z "${ADDON}" ] && continue
|
[ -z "${ADDON}" ] && continue
|
||||||
if ! checkAddonExist "${ADDON}" "${PLATFORM}" "${KVER}"; then
|
if ! checkAddonExist "${ADDON}" "${PLATFORM}" "${KVER}"; then
|
||||||
deleteConfigKey "addons.${ADDON}" "${USER_CONFIG_FILE}"
|
deleteConfigKey "addons.${ADDON}" "${USER_CONFIG_FILE}"
|
||||||
@ -215,7 +215,7 @@ function addonMenu() {
|
|||||||
# Read addons from user config
|
# Read addons from user config
|
||||||
unset ADDONS
|
unset ADDONS
|
||||||
declare -A ADDONS
|
declare -A ADDONS
|
||||||
while IFS="=" read KEY VALUE; do
|
while IFS=': ' read KEY VALUE; do
|
||||||
[ -n "${KEY}" ] && ADDONS["${KEY}"]="${VALUE}"
|
[ -n "${KEY}" ] && ADDONS["${KEY}"]="${VALUE}"
|
||||||
done < <(readConfigMap "addons" "${USER_CONFIG_FILE}")
|
done < <(readConfigMap "addons" "${USER_CONFIG_FILE}")
|
||||||
NEXT="a"
|
NEXT="a"
|
||||||
@ -331,10 +331,10 @@ function addonMenu() {
|
|||||||
function cmdlineMenu() {
|
function cmdlineMenu() {
|
||||||
unset CMDLINE
|
unset CMDLINE
|
||||||
declare -A CMDLINE
|
declare -A CMDLINE
|
||||||
while IFS="=" read KEY VALUE; do
|
while IFS=': ' read KEY VALUE; do
|
||||||
[ -n "${KEY}" ] && CMDLINE["${KEY}"]="${VALUE}"
|
[ -n "${KEY}" ] && CMDLINE["${KEY}"]="${VALUE}"
|
||||||
done < <(readConfigMap "cmdline" "${USER_CONFIG_FILE}")
|
done < <(readConfigMap "cmdline" "${USER_CONFIG_FILE}")
|
||||||
echo "a \"Add/edit a cmdline item\"" > "${TMP_PATH}/menu"
|
echo "a \"Add/edit a cmdline item\"" > "${TMP_PATH}/menu"
|
||||||
echo "d \"Delete cmdline item(s)\"" >> "${TMP_PATH}/menu"
|
echo "d \"Delete cmdline item(s)\"" >> "${TMP_PATH}/menu"
|
||||||
echo "c \"Define a custom MAC\"" >> "${TMP_PATH}/menu"
|
echo "c \"Define a custom MAC\"" >> "${TMP_PATH}/menu"
|
||||||
echo "s \"Show user cmdline\"" >> "${TMP_PATH}/menu"
|
echo "s \"Show user cmdline\"" >> "${TMP_PATH}/menu"
|
||||||
@ -414,7 +414,7 @@ function cmdlineMenu() {
|
|||||||
;;
|
;;
|
||||||
m)
|
m)
|
||||||
ITEMS=""
|
ITEMS=""
|
||||||
while IFS="=" read KEY VALUE; do
|
while IFS=': ' read KEY VALUE; do
|
||||||
ITEMS+="${KEY}: ${VALUE}\n"
|
ITEMS+="${KEY}: ${VALUE}\n"
|
||||||
done < <(readModelMap "${MODEL}" "builds.${BUILD}.cmdline")
|
done < <(readModelMap "${MODEL}" "builds.${BUILD}.cmdline")
|
||||||
dialog --backtitle "`backtitle`" --title "Model/build cmdline" \
|
dialog --backtitle "`backtitle`" --title "Model/build cmdline" \
|
||||||
@ -427,20 +427,15 @@ function cmdlineMenu() {
|
|||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
function synoinfoMenu() {
|
function synoinfoMenu() {
|
||||||
# Get dt flag from model
|
|
||||||
DT="`readModelKey "${MODEL}" "dt"`"
|
|
||||||
# Read synoinfo from user config
|
# Read synoinfo from user config
|
||||||
unset SYNOINFO
|
unset SYNOINFO
|
||||||
declare -A SYNOINFO
|
declare -A SYNOINFO
|
||||||
while IFS="=" read KEY VALUE; do
|
while IFS=': ' read KEY VALUE; do
|
||||||
[ -n "${KEY}" ] && SYNOINFO["${KEY}"]="${VALUE}"
|
[ -n "${KEY}" ] && SYNOINFO["${KEY}"]="${VALUE}"
|
||||||
done < <(readConfigMap "synoinfo" "${USER_CONFIG_FILE}")
|
done < <(readConfigMap "synoinfo" "${USER_CONFIG_FILE}")
|
||||||
|
|
||||||
echo "a \"Add/edit a synoinfo item\"" > "${TMP_PATH}/menu"
|
echo "a \"Add/edit a synoinfo item\"" > "${TMP_PATH}/menu"
|
||||||
echo "d \"Delete synoinfo item(s)\"" >> "${TMP_PATH}/menu"
|
echo "d \"Delete synoinfo item(s)\"" >> "${TMP_PATH}/menu"
|
||||||
if [ "${DT}" != "true" ]; then
|
|
||||||
echo "x \"Set maxdisks manually\"" >> "${TMP_PATH}/menu"
|
|
||||||
fi
|
|
||||||
echo "s \"Show synoinfo entries\"" >> "${TMP_PATH}/menu"
|
echo "s \"Show synoinfo entries\"" >> "${TMP_PATH}/menu"
|
||||||
echo "e \"Exit\"" >> "${TMP_PATH}/menu"
|
echo "e \"Exit\"" >> "${TMP_PATH}/menu"
|
||||||
|
|
||||||
@ -487,15 +482,6 @@ function synoinfoMenu() {
|
|||||||
done
|
done
|
||||||
DIRTY=1
|
DIRTY=1
|
||||||
;;
|
;;
|
||||||
x)
|
|
||||||
MAXDISKS=`readConfigKey "maxdisks" "${USER_CONFIG_FILE}"`
|
|
||||||
dialog --backtitle "`backtitle`" --title "Maxdisks" \
|
|
||||||
--inputbox "Type a value for maxdisks" 0 0 "${MAXDISKS}" \
|
|
||||||
2>${TMP_PATH}/resp
|
|
||||||
[ $? -ne 0 ] && continue
|
|
||||||
VALUE="`<"${TMP_PATH}/resp"`"
|
|
||||||
[ "${VALUE}" != "${MAXDISKS}" ] && writeConfigKey "maxdisks" "${VALUE}" "${USER_CONFIG_FILE}"
|
|
||||||
;;
|
|
||||||
s)
|
s)
|
||||||
ITEMS=""
|
ITEMS=""
|
||||||
for KEY in ${!SYNOINFO[@]}; do
|
for KEY in ${!SYNOINFO[@]}; do
|
||||||
@ -685,7 +671,7 @@ function make() {
|
|||||||
KVER="`readModelKey "${MODEL}" "builds.${BUILD}.kver"`"
|
KVER="`readModelKey "${MODEL}" "builds.${BUILD}.kver"`"
|
||||||
|
|
||||||
# Check if all addon exists
|
# Check if all addon exists
|
||||||
while IFS="=" read ADDON PARAM; do
|
while IFS=': ' read ADDON PARAM; do
|
||||||
[ -z "${ADDON}" ] && continue
|
[ -z "${ADDON}" ] && continue
|
||||||
if ! checkAddonExist "${ADDON}" "${PLATFORM}" "${KVER}"; then
|
if ! checkAddonExist "${ADDON}" "${PLATFORM}" "${KVER}"; then
|
||||||
dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \
|
dialog --backtitle "`backtitle`" --title "Error" --aspect 18 \
|
||||||
@ -840,7 +826,7 @@ function selectModules() {
|
|||||||
ALLMODULES=`getAllModules "${PLATFORM}" "${KVER}"`
|
ALLMODULES=`getAllModules "${PLATFORM}" "${KVER}"`
|
||||||
unset USERMODULES
|
unset USERMODULES
|
||||||
declare -A USERMODULES
|
declare -A USERMODULES
|
||||||
while IFS="=" read KEY VALUE; do
|
while IFS=': ' read KEY VALUE; do
|
||||||
[ -n "${KEY}" ] && USERMODULES["${KEY}"]="${VALUE}"
|
[ -n "${KEY}" ] && USERMODULES["${KEY}"]="${VALUE}"
|
||||||
done < <(readConfigMap "modules" "${USER_CONFIG_FILE}")
|
done < <(readConfigMap "modules" "${USER_CONFIG_FILE}")
|
||||||
# menu loop
|
# menu loop
|
||||||
@ -1030,7 +1016,7 @@ function updateMenu() {
|
|||||||
[ -f "${F}" ] && rm -f "${F}"
|
[ -f "${F}" ] && rm -f "${F}"
|
||||||
[ -d "${F}" ] && rm -Rf "${F}"
|
[ -d "${F}" ] && rm -Rf "${F}"
|
||||||
done < <(readConfigArray "remove" "/tmp/update-list.yml")
|
done < <(readConfigArray "remove" "/tmp/update-list.yml")
|
||||||
while IFS="=" read KEY VALUE; do
|
while IFS=': ' read KEY VALUE; do
|
||||||
if [ "${KEY: -1}" = "/" ]; then
|
if [ "${KEY: -1}" = "/" ]; then
|
||||||
rm -Rf "${VALUE}"
|
rm -Rf "${VALUE}"
|
||||||
mkdir -p "${VALUE}"
|
mkdir -p "${VALUE}"
|
||||||
@ -1161,6 +1147,7 @@ function updateMenu() {
|
|||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
if [ "x$1" = "xb" -a -n "${MODEL}" -a -n "${BUILD}" -a loaderIsConfigured ]; then
|
if [ "x$1" = "xb" -a -n "${MODEL}" -a -n "${BUILD}" -a loaderIsConfigured ]; then
|
||||||
|
install-addons.sh
|
||||||
make
|
make
|
||||||
boot && exit 0 || sleep 5
|
boot && exit 0 || sleep 5
|
||||||
fi
|
fi
|
||||||
|
@ -58,15 +58,15 @@ declare -A ADDONS
|
|||||||
declare -A USERMODULES
|
declare -A USERMODULES
|
||||||
|
|
||||||
# Read synoinfo and addons from config
|
# Read synoinfo and addons from config
|
||||||
while IFS="=" read KEY VALUE; do
|
while IFS=': ' read KEY VALUE; do
|
||||||
[ -n "${KEY}" ] && SYNOINFO["${KEY}"]="${VALUE}"
|
[ -n "${KEY}" ] && SYNOINFO["${KEY}"]="${VALUE}"
|
||||||
done < <(readConfigMap "synoinfo" "${USER_CONFIG_FILE}")
|
done < <(readConfigMap "synoinfo" "${USER_CONFIG_FILE}")
|
||||||
while IFS="=" read KEY VALUE; do
|
while IFS=': ' read KEY VALUE; do
|
||||||
[ -n "${KEY}" ] && ADDONS["${KEY}"]="${VALUE}"
|
[ -n "${KEY}" ] && ADDONS["${KEY}"]="${VALUE}"
|
||||||
done < <(readConfigMap "addons" "${USER_CONFIG_FILE}")
|
done < <(readConfigMap "addons" "${USER_CONFIG_FILE}")
|
||||||
|
|
||||||
# Read modules from user config
|
# Read modules from user config
|
||||||
while IFS="=" read KEY VALUE; do
|
while IFS=': ' read KEY VALUE; do
|
||||||
[ -n "${KEY}" ] && USERMODULES["${KEY}"]="${VALUE}"
|
[ -n "${KEY}" ] && USERMODULES["${KEY}"]="${VALUE}"
|
||||||
done < <(readConfigMap "modules" "${USER_CONFIG_FILE}")
|
done < <(readConfigMap "modules" "${USER_CONFIG_FILE}")
|
||||||
|
|
||||||
@ -125,7 +125,7 @@ cp "${PATCH_PATH}/iosched-trampoline.sh" "${RAMDISK_PATH}/usr/sbin/modprobe"
|
|||||||
gzip -dc "${LKM_PATH}/rp-${PLATFORM}-${KVER}-${LKM}.ko.gz" > "${RAMDISK_PATH}/usr/lib/modules/rp.ko"
|
gzip -dc "${LKM_PATH}/rp-${PLATFORM}-${KVER}-${LKM}.ko.gz" > "${RAMDISK_PATH}/usr/lib/modules/rp.ko"
|
||||||
|
|
||||||
# Addons
|
# Addons
|
||||||
MAXDISKS=`readConfigKey "maxdisks" "${USER_CONFIG_FILE}"`
|
#MAXDISKS=`readConfigKey "maxdisks" "${USER_CONFIG_FILE}"`
|
||||||
# Check if model needs Device-tree dynamic patch
|
# Check if model needs Device-tree dynamic patch
|
||||||
DT="`readModelKey "${MODEL}" "dt"`"
|
DT="`readModelKey "${MODEL}" "dt"`"
|
||||||
|
|
||||||
@ -140,16 +140,11 @@ echo "export LAYOUT=${LAYOUT}" >> "${RAMDISK_PATH}/addons/addon
|
|||||||
echo "export KEYMAP=${KEYMAP}" >> "${RAMDISK_PATH}/addons/addons.sh"
|
echo "export KEYMAP=${KEYMAP}" >> "${RAMDISK_PATH}/addons/addons.sh"
|
||||||
chmod +x "${RAMDISK_PATH}/addons/addons.sh"
|
chmod +x "${RAMDISK_PATH}/addons/addons.sh"
|
||||||
|
|
||||||
# Required addons: eudev, dtbpatch/maxdisks, wol
|
# Required addons: eudev, disks, wol
|
||||||
installAddon eudev
|
installAddon eudev
|
||||||
echo "/addons/eudev.sh \${1} " >> "${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog
|
echo "/addons/eudev.sh \${1} " >> "${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog
|
||||||
if [ "${DT}" = "true" ]; then
|
installAddon disks
|
||||||
installAddon dtbpatch
|
echo "/addons/disks.sh \${1} ${DT} ${UNIQUE}" >> "${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog
|
||||||
echo "/addons/dtbpatch.sh \${1} ${UNIQUE}" >> "${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog
|
|
||||||
else
|
|
||||||
installAddon maxdisks
|
|
||||||
echo "/addons/maxdisks.sh \${1} ${MAXDISKS}" >> "${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog
|
|
||||||
fi
|
|
||||||
installAddon wol
|
installAddon wol
|
||||||
echo "/addons/wol.sh \${1} " >> "${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog
|
echo "/addons/wol.sh \${1} " >> "${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog
|
||||||
# User addons
|
# User addons
|
||||||
|
Loading…
x
Reference in New Issue
Block a user