From 278044431aa1a1985da2379faab60851460d7355 Mon Sep 17 00:00:00 2001 From: Ing Date: Fri, 23 Jun 2023 19:50:18 +0800 Subject: [PATCH] format --- files/board/arpl/overlayfs/opt/arpl/boot.sh | 101 +++++++++--------- files/board/arpl/overlayfs/opt/arpl/init.sh | 63 ++++++----- .../arpl/overlayfs/opt/arpl/ramdisk-patch.sh | 97 +++++++++-------- .../arpl/overlayfs/opt/arpl/zimage-patch.sh | 2 +- 4 files changed, 130 insertions(+), 133 deletions(-) diff --git a/files/board/arpl/overlayfs/opt/arpl/boot.sh b/files/board/arpl/overlayfs/opt/arpl/boot.sh index 4bdecd13..49c744c9 100755 --- a/files/board/arpl/overlayfs/opt/arpl/boot.sh +++ b/files/board/arpl/overlayfs/opt/arpl/boot.sh @@ -10,58 +10,58 @@ loaderIsConfigured || die "$(TEXT "Loader is not configured!")" # Check if machine has EFI [ -d /sys/firmware/efi ] && EFI=1 || EFI=0 -LOADER_DISK="`blkid | grep 'LABEL="ARPL3"' | cut -d3 -f1`" -BUS=`udevadm info --query property --name ${LOADER_DISK} | grep ID_BUS | cut -d= -f2` +LOADER_DISK="$(blkid | grep 'LABEL="ARPL3"' | cut -d3 -f1)" +BUS=$(udevadm info --query property --name ${LOADER_DISK} | grep ID_BUS | cut -d= -f2) # Print text centralized clear [ -z "${COLUMNS}" ] && COLUMNS=50 -TITLE="`printf "$(TEXT "Welcome to %s")" "${ARPL_TITLE}"`" +TITLE="$(printf "$(TEXT "Welcome to %s")" "${ARPL_TITLE}")" printf "\033[1;44m%*s\n" ${COLUMNS} "" printf "\033[1;44m%*s\033[A\n" ${COLUMNS} "" -printf "\033[1;32m%*s\033[0m\n" $(((${#TITLE}+${COLUMNS})/2)) "${TITLE}" +printf "\033[1;32m%*s\033[0m\n" $(((${#TITLE} + ${COLUMNS}) / 2)) "${TITLE}" printf "\033[1;44m%*s\033[0m\n" ${COLUMNS} "" TITLE="BOOTING:" [ -d "/sys/firmware/efi" ] && TITLE+=" [UEFI]" || TITLE+=" [BIOS]" [ "${BUS}" = "usb" ] && TITLE+=" [USB flashdisk]" || TITLE+=" [SATA DoM]" -printf "\033[1;33m%*s\033[0m\n" $(((${#TITLE}+${COLUMNS})/2)) "${TITLE}" +printf "\033[1;33m%*s\033[0m\n" $(((${#TITLE} + ${COLUMNS}) / 2)) "${TITLE}" # Check if DSM zImage changed, patch it if necessary -ZIMAGE_HASH="`readConfigKey "zimage-hash" "${USER_CONFIG_FILE}"`" -if [ "`sha256sum "${ORI_ZIMAGE_FILE}" | awk '{print$1}'`" != "${ZIMAGE_HASH}" ]; then +ZIMAGE_HASH="$(readConfigKey "zimage-hash" "${USER_CONFIG_FILE}")" +if [ "$(sha256sum "${ORI_ZIMAGE_FILE}" | awk '{print$1}')" != "${ZIMAGE_HASH}" ]; then echo -e "\033[1;43m$(TEXT "DSM zImage changed")\033[0m" /opt/arpl/zimage-patch.sh if [ $? -ne 0 ]; then - dialog --backtitle "`backtitle`" --title "$(TEXT "Error")" \ - --msgbox "$(TEXT "zImage not patched:\n")`<"${LOG_FILE}"`" 12 70 + dialog --backtitle "$(backtitle)" --title "$(TEXT "Error")" \ + --msgbox "$(TEXT "zImage not patched:\n")$(<"${LOG_FILE}")" 12 70 exit 1 fi fi # Check if DSM ramdisk changed, patch it if necessary -RAMDISK_HASH="`readConfigKey "ramdisk-hash" "${USER_CONFIG_FILE}"`" -if [ "`sha256sum "${ORI_RDGZ_FILE}" | awk '{print$1}'`" != "${RAMDISK_HASH}" ]; then +RAMDISK_HASH="$(readConfigKey "ramdisk-hash" "${USER_CONFIG_FILE}")" +if [ "$(sha256sum "${ORI_RDGZ_FILE}" | awk '{print$1}')" != "${RAMDISK_HASH}" ]; then echo -e "\033[1;43m$(TEXT "DSM Ramdisk changed")\033[0m" /opt/arpl/ramdisk-patch.sh if [ $? -ne 0 ]; then - dialog --backtitle "`backtitle`" --title "$(TEXT "Error")" \ - --msgbox "$(TEXT "Ramdisk not patched:\n")`<"${LOG_FILE}"`" 12 70 + dialog --backtitle "$(backtitle)" --title "$(TEXT "Error")" \ + --msgbox "$(TEXT "Ramdisk not patched:\n")$(<"${LOG_FILE}")" 12 70 exit 1 fi fi # Load necessary variables -VID="`readConfigKey "vid" "${USER_CONFIG_FILE}"`" -PID="`readConfigKey "pid" "${USER_CONFIG_FILE}"`" -MODEL="`readConfigKey "model" "${USER_CONFIG_FILE}"`" -BUILD="`readConfigKey "build" "${USER_CONFIG_FILE}"`" -SN="`readConfigKey "sn" "${USER_CONFIG_FILE}"`" +VID="$(readConfigKey "vid" "${USER_CONFIG_FILE}")" +PID="$(readConfigKey "pid" "${USER_CONFIG_FILE}")" +MODEL="$(readConfigKey "model" "${USER_CONFIG_FILE}")" +BUILD="$(readConfigKey "build" "${USER_CONFIG_FILE}")" +SN="$(readConfigKey "sn" "${USER_CONFIG_FILE}")" echo -e "$(TEXT "Model:") \033[1;36m${MODEL}\033[0m" echo -e "$(TEXT "Build:") \033[1;36m${BUILD}\033[0m" -if [ ! -f "${MODEL_CONFIG_PATH}/${MODEL}.yml" ] || [ -z "`readConfigKey "builds.${BUILD}" "${MODEL_CONFIG_PATH}/${MODEL}.yml"`" ]; then - echo -e "\033[1;33m*** `printf "$(TEXT "The current version of arpl does not support booting %s-%s, please rebuild.")" "${MODEL}" "${BUILD}"` ***\033[0m" +if [ ! -f "${MODEL_CONFIG_PATH}/${MODEL}.yml" ] || [ -z "$(readConfigKey "builds.${BUILD}" "${MODEL_CONFIG_PATH}/${MODEL}.yml")" ]; then + echo -e "\033[1;33m*** $(printf "$(TEXT "The current version of arpl does not support booting %s-%s, please rebuild.")" "${MODEL}" "${BUILD}") ***\033[0m" exit 1 fi @@ -85,42 +85,44 @@ while IFS=': ' read KEY VALUE; do [ -n "${KEY}" ] && CMDLINE["${KEY}"]="${VALUE}" done < <(readConfigMap "cmdline" "${USER_CONFIG_FILE}") -# -KVER=`readModelKey "${MODEL}" "builds.${BUILD}.kver"` +# +KVER=$(readModelKey "${MODEL}" "builds.${BUILD}.kver") if [ "${BUS}" = "ata" ]; then - LOADER_DEVICE_NAME=`echo ${LOADER_DISK} | sed 's|/dev/||'` - SIZE=$((`cat /sys/block/${LOADER_DEVICE_NAME}/size`/2048+10)) + LOADER_DEVICE_NAME=$(echo ${LOADER_DISK} | sed 's|/dev/||') + SIZE=$(($(cat /sys/block/${LOADER_DEVICE_NAME}/size) / 2048 + 10)) # Read SATADoM type - DOM="`readModelKey "${MODEL}" "dom"`" + DOM="$(readModelKey "${MODEL}" "dom")" fi -NOTSETMACS="`readConfigKey "notsetmacs" "${USER_CONFIG_FILE}"`" +NOTSETMACS="$(readConfigKey "notsetmacs" "${USER_CONFIG_FILE}")" if [ "${NOTSETMACS}" = "true" ]; then - for N in `seq 1 8`; do # Currently, only up to 8 are supported. (<==> menu.sh L396, <==> lkm: MAX_NET_IFACES) + # Currently, only up to 8 are supported. (<==> menu.sh L396, <==> lkm: MAX_NET_IFACES) + for N in $(seq 1 8); do [ -n "${CMDLINE["mac${N}"]}" ] && unset CMDLINE["mac${N}"] done unset CMDLINE['netif_num'] - echo -e "\033[1;33m*** `printf "$(TEXT "'Not set MACs' is enabled.")"` ***\033[0m" + echo -e "\033[1;33m*** $(printf "$(TEXT "'Not set MACs' is enabled.")") ***\033[0m" else # Validate netif_num MACS=() - for N in `seq 1 8`; do # Currently, only up to 8 are supported. (<==> menu.sh L396, <==> lkm: MAX_NET_IFACES) + # Currently, only up to 8 are supported. (<==> menu.sh L396, <==> lkm: MAX_NET_IFACES) + for N in $(seq 1 8); do [ -n "${CMDLINE["mac${N}"]}" ] && MACS+=(${CMDLINE["mac${N}"]}) done NETIF_NUM=${#MACS[*]} # set netif_num to custom mac amount, netif_num must be equal to the MACX amount, otherwise the kernel will panic. - CMDLINE["netif_num"]=${NETIF_NUM} # The current original CMDLINE['netif_num'] is no longer in use, Consider deleting. + CMDLINE["netif_num"]=${NETIF_NUM} # The current original CMDLINE['netif_num'] is no longer in use, Consider deleting. # real network cards amount - NETRL_NUM=`ls /sys/class/net/ | grep eth | wc -l` + NETRL_NUM=$(ls /sys/class/net/ | grep eth | wc -l) if [ ${NETIF_NUM} -le ${NETRL_NUM} ]; then - echo -e "\033[1;33m*** `printf "$(TEXT "Detected %s network cards, %s MACs were customized, the rest will use the original MACs.")" "${NETRL_NUM}" "${CMDLINE["netif_num"]}"` ***\033[0m" - ETHX=(`ls /sys/class/net/ | grep eth`) # real network cards list - for N in `seq $(expr ${NETIF_NUM} + 1) ${NETRL_NUM}`; do - MACR="`cat /sys/class/net/${ETHX[$(expr ${N} - 1)]}/address | sed 's/://g'`" + echo -e "\033[1;33m*** $(printf "$(TEXT "Detected %s network cards, %s MACs were customized, the rest will use the original MACs.")" "${NETRL_NUM}" "${CMDLINE["netif_num"]}") ***\033[0m" + ETHX=($(ls /sys/class/net/ | grep eth)) # real network cards list + for N in $(seq $(expr ${NETIF_NUM} + 1) ${NETRL_NUM}); do + MACR="$(cat /sys/class/net/${ETHX[$(expr ${N} - 1)]}/address | sed 's/://g')" # no duplicates while [[ "${MACS[*]}" =~ "$MACR" ]]; do # no duplicates - MACR="${MACR:0:10}`printf "%02x" $((0x${MACR:10:2} + 1))`" + MACR="${MACR:0:10}$(printf "%02x" $((0x${MACR:10:2} + 1)))" done CMDLINE["mac${N}"]="${MACR}" done @@ -143,10 +145,10 @@ for KEY in ${!CMDLINE[@]}; do done # Escape special chars #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 "$(TEXT "Cmdline:\n")\033[1;36m${CMDLINE_LINE}\033[0m" -DIRECT="`readConfigKey "directboot" "${USER_CONFIG_FILE}"`" +DIRECT="$(readConfigKey "directboot" "${USER_CONFIG_FILE}")" if [ "${DIRECT}" = "true" ]; then grub-editenv ${GRUB_PATH}/grubenv set dsm_cmdline="${CMDLINE_DIRECT}" echo -e "\033[1;33m$(TEXT "Reboot to boot directly in DSM")\033[0m" @@ -155,17 +157,17 @@ if [ "${DIRECT}" = "true" ]; then exit 0 else (/etc/init.d/S41dhcpcd restart >/dev/null 2>&1 &) || true - BOOTIPWAIT="`readConfigKey "bootipwait" "${USER_CONFIG_FILE}"`" + BOOTIPWAIT="$(readConfigKey "bootipwait" "${USER_CONFIG_FILE}")" [ -z "${BOOTIPWAIT}" ] && BOOTIPWAIT=10 sleep ${BOOTIPWAIT} - ETHX=(`ls /sys/class/net/ | grep eth`) # real network cards list - echo "`printf "$(TEXT "Detected %s network cards, Waiting IP.(For reference only)")" "${#ETHX[@]}"`" + ETHX=($(ls /sys/class/net/ | grep eth)) # real network cards list + echo "$(printf "$(TEXT "Detected %s network cards, Waiting IP.(For reference only)")" "${#ETHX[@]}")" for N in $(seq 0 $(expr ${#ETHX[@]} - 1)); do COUNT=0 - DRIVER=`ls -ld /sys/class/net/${ETHX[${N}]}/device/driver 2>/dev/null | awk -F '/' '{print $NF}'` + DRIVER=$(ls -ld /sys/class/net/${ETHX[${N}]}/device/driver 2>/dev/null | awk -F '/' '{print $NF}') echo -en "${ETHX[${N}]}(${DRIVER}): " while true; do - if [ -z "`ip link show ${ETHX[${N}]} | grep 'UP'`" ]; then + if [ -z "$(ip link show ${ETHX[${N}]} | grep 'UP')" ]; then echo -en "\r${ETHX[${N}]}(${DRIVER}): $(TEXT "DOWN")\n" break fi @@ -173,10 +175,10 @@ else echo -en "\r${ETHX[${N}]}(${DRIVER}): $(TEXT "ERROR")\n" break fi - COUNT=$((${COUNT}+1)) - IP=`ip route show dev ${ETHX[${N}]} 2>/dev/null | sed -n 's/.* via .* src \(.*\) metric .*/\1/p'` + COUNT=$((${COUNT} + 1)) + IP=$(ip route show dev ${ETHX[${N}]} 2>/dev/null | sed -n 's/.* via .* src \(.*\) metric .*/\1/p') if [ -n "${IP}" ]; then - echo -en "\r${ETHX[${N}]}(${DRIVER}): `printf "$(TEXT "Access \033[1;34mhttp://%s:5000\033[0m to connect the DSM via web.")" "${IP}"`\n" + echo -en "\r${ETHX[${N}]}(${DRIVER}): $(printf "$(TEXT "Access \033[1;34mhttp://%s:5000\033[0m to connect the DSM via web.")" "${IP}")\n" break fi echo -n "." @@ -195,10 +197,9 @@ else kexec -l "${MOD_ZIMAGE_FILE}" --initrd "${MOD_RDGZ_FILE}" --command-line="${CMDLINE_LINE}" >"${LOG_FILE}" 2>&1 || dieLog fi echo -e "\033[1;37m$(TEXT "Booting...")\033[0m" -for T in `w | grep -v "TTY" | awk -F' ' '{print $2}'` -do - echo -e "\n\033[1;43m$(TEXT "[This interface will not be operational. Please use the http://find.synology.com/ find DSM and connect.]")\033[0m\n" > "/dev/${T}" 2>/dev/null || true -done +for T in $(w | grep -v "TTY" | awk -F' ' '{print $2}'); do + echo -e "\n\033[1;43m$(TEXT "[This interface will not be operational. Please use the http://find.synology.com/ find DSM and connect.]")\033[0m\n" >"/dev/${T}" 2>/dev/null || true +done #poweroff kexec -f -e exit 0 diff --git a/files/board/arpl/overlayfs/opt/arpl/init.sh b/files/board/arpl/overlayfs/opt/arpl/init.sh index a5cf3826..f85fb0e1 100755 --- a/files/board/arpl/overlayfs/opt/arpl/init.sh +++ b/files/board/arpl/overlayfs/opt/arpl/init.sh @@ -8,19 +8,17 @@ set -e CNT=3 while true; do [ ${CNT} -eq 0 ] && break - LOADER_DISK="`blkid | grep 'LABEL="ARPL3"' | cut -d3 -f1`" + LOADER_DISK="$(blkid | grep 'LABEL="ARPL3"' | cut -d3 -f1)" [ -n "${LOADER_DISK}" ] && break - CNT=$((${CNT}-1)) + CNT=$((${CNT} - 1)) sleep 1 done - [ -z "${LOADER_DISK}" ] && die "$(TEXT "Loader disk not found!")" NUM_PARTITIONS=$(blkid | grep "${LOADER_DISK}[0-9]\+" | cut -d: -f1 | wc -l) [ $NUM_PARTITIONS -lt 3 ] && die "$(TEXT "Loader disk seems to be damaged!")" [ $NUM_PARTITIONS -gt 3 ] && die "$(TEXT "There are multiple loader disks, please insert only one loader disk!")" - # Check partitions and ignore errors fsck.vfat -aw ${LOADER_DISK}1 >/dev/null 2>&1 || true fsck.ext2 -p ${LOADER_DISK}2 >/dev/null 2>&1 || true @@ -31,19 +29,19 @@ mkdir -p ${SLPART_PATH} mkdir -p ${CACHE_PATH} mkdir -p ${DSMROOT_PATH} # Mount the partitions -mount ${LOADER_DISK}1 ${BOOTLOADER_PATH} || die "`printf "$(TEXT "Can't mount %s")" "${BOOTLOADER_PATH}"`" -mount ${LOADER_DISK}2 ${SLPART_PATH} || die "`printf "$(TEXT "Can't mount %s")" "${SLPART_PATH}"`" -mount ${LOADER_DISK}3 ${CACHE_PATH} || die "`printf "$(TEXT "Can't mount %s")" "${CACHE_PATH}"`" +mount ${LOADER_DISK}1 ${BOOTLOADER_PATH} || die "$(printf "$(TEXT "Can't mount %s")" "${BOOTLOADER_PATH}")" +mount ${LOADER_DISK}2 ${SLPART_PATH} || die "$(printf "$(TEXT "Can't mount %s")" "${SLPART_PATH}")" +mount ${LOADER_DISK}3 ${CACHE_PATH} || die "$(printf "$(TEXT "Can't mount %s")" "${CACHE_PATH}")" # Although i18n.sh is included in functions.sh, but i18n.sh dependent ${BOOTLOADER_PATH}/${LOADER_DISK}1, so need to call it again. . /opt/arpl/include/i18n.sh # Shows title clear -TITLE="`printf "$(TEXT "Welcome to %s")" "${ARPL_TITLE}"`" +TITLE="$(printf "$(TEXT "Welcome to %s")" "${ARPL_TITLE}")" printf "\033[1;44m%*s\n" $COLUMNS "" printf "\033[1;44m%*s\033[A\n" $COLUMNS "" -printf "\033[1;32m%*s\033[0m\n" $(((${#TITLE}+$COLUMNS)/2)) "${TITLE}" +printf "\033[1;32m%*s\033[0m\n" $(((${#TITLE} + $COLUMNS) / 2)) "${TITLE}" printf "\033[1;44m%*s\033[0m\n" $COLUMNS "" # Move/link SSH machine keys to/from cache volume @@ -55,7 +53,7 @@ rm -rf ~/.bash_history ln -s ${CACHE_PATH}/.bash_history ~/.bash_history touch ~/.bash_history if ! grep -q "menu.sh" ~/.bash_history; then - echo "menu.sh " >> ~/.bash_history + echo "menu.sh " >>~/.bash_history fi # Check if exists directories into P3 partition, if yes remove and link it if [ -d "${CACHE_PATH}/model-configs" ]; then @@ -69,7 +67,7 @@ if [ -d "${CACHE_PATH}/patch" ]; then fi # Get first MAC address -ETHX=(`ls /sys/class/net/ | grep eth`) # real network cards list +ETHX=($(ls /sys/class/net/ | grep eth)) # real network cards list # If user config file not exists, initialize it if [ ! -f "${USER_CONFIG_FILE}" ]; then @@ -98,13 +96,13 @@ if [ ! -f "${USER_CONFIG_FILE}" ]; then fi for N in $(seq 1 ${#ETHX[@]}); do - MACR="`cat /sys/class/net/${ETHX[$(expr ${N} - 1)]}/address | sed 's/://g'`" + MACR="$(cat /sys/class/net/${ETHX[$(expr ${N} - 1)]}/address | sed 's/://g')" # Set custom MAC if defined - MACF="`readConfigKey "cmdline.mac${N}" "${USER_CONFIG_FILE}"`" + MACF="$(readConfigKey "cmdline.mac${N}" "${USER_CONFIG_FILE}")" if [ -n "${MACF}" -a "${MACF}" != "${MACR}" ]; then MAC="${MACF:0:2}:${MACF:2:2}:${MACF:4:2}:${MACF:6:2}:${MACF:8:2}:${MACF:10:2}" - echo "`printf "$(TEXT "Setting %s MAC to %s")" "${ETHX[$(expr ${N} - 1)]}" "${MAC}"`" - ip link set dev ${ETHX[$(expr ${N} - 1)]} address ${MAC} >/dev/null 2>&1 && \ + echo "$(printf "$(TEXT "Setting %s MAC to %s")" "${ETHX[$(expr ${N} - 1)]}" "${MAC}")" + ip link set dev ${ETHX[$(expr ${N} - 1)]} address ${MAC} >/dev/null 2>&1 && (/etc/init.d/S41dhcpcd restart >/dev/null 2>&1 &) || true fi # Initialize with real MAC @@ -113,14 +111,13 @@ for N in $(seq 1 ${#ETHX[@]}); do ethtool -s ${ETHX[$(expr ${N} - 1)]} wol g 2>/dev/null done - # Get the VID/PID if we are in USB VID="0x0000" PID="0x0000" -BUS=`udevadm info --query property --name ${LOADER_DISK} | grep BUS | cut -d= -f2` +BUS=$(udevadm info --query property --name ${LOADER_DISK} | grep BUS | cut -d= -f2) if [ "${BUS}" = "usb" ]; then - VID="0x`udevadm info --query property --name ${LOADER_DISK} | grep ID_VENDOR_ID | cut -d= -f2`" - PID="0x`udevadm info --query property --name ${LOADER_DISK} | grep ID_MODEL_ID | cut -d= -f2`" + VID="0x$(udevadm info --query property --name ${LOADER_DISK} | grep ID_VENDOR_ID | cut -d= -f2)" + PID="0x$(udevadm info --query property --name ${LOADER_DISK} | grep ID_MODEL_ID | cut -d= -f2)" elif [ "${BUS}" != "ata" ]; then die "$(TEXT "Loader disk neither USB or DoM")" fi @@ -139,18 +136,18 @@ fi echo ")" # Check if partition 3 occupies all free space, resize if needed -LOADER_DEVICE_NAME=`echo ${LOADER_DISK} | sed 's|/dev/||'` -SIZEOFDISK=`cat /sys/block/${LOADER_DEVICE_NAME}/size` -ENDSECTOR=$((`fdisk -l ${LOADER_DISK} | awk '/'${LOADER_DEVICE_NAME}3'/{print$3}'`+1)) +LOADER_DEVICE_NAME=$(echo ${LOADER_DISK} | sed 's|/dev/||') +SIZEOFDISK=$(cat /sys/block/${LOADER_DEVICE_NAME}/size) +ENDSECTOR=$(($(fdisk -l ${LOADER_DISK} | awk '/'${LOADER_DEVICE_NAME}3'/{print$3}') + 1)) if [ ${SIZEOFDISK} -ne ${ENDSECTOR} ]; then - echo -e "\033[1;36m`printf "$(TEXT "Resizing %s")" "${LOADER_DISK}3"`\033[0m" + echo -e "\033[1;36m$(printf "$(TEXT "Resizing %s")" "${LOADER_DISK}3")\033[0m" echo -e "d\n\nn\n\n\n\n\nn\nw" | fdisk "${LOADER_DISK}" >"${LOG_FILE}" 2>&1 || dieLog resize2fs ${LOADER_DISK}3 >"${LOG_FILE}" 2>&1 || dieLog fi # Load keymap name -LAYOUT="`readConfigKey "layout" "${USER_CONFIG_FILE}"`" -KEYMAP="`readConfigKey "keymap" "${USER_CONFIG_FILE}"`" +LAYOUT="$(readConfigKey "layout" "${USER_CONFIG_FILE}")" +KEYMAP="$(readConfigKey "keymap" "${USER_CONFIG_FILE}")" # Loads a keymap if is valid if [ -f /usr/share/keymaps/i386/${LAYOUT}/${KEYMAP}.map.gz ]; then @@ -169,18 +166,18 @@ elif grep -q "IWANTTOCHANGETHECONFIG" /proc/cmdline; then fi # If is to boot automatically, do it -if [ ${BOOT} -eq 1 ]; then +if [ ${BOOT} -eq 1 ]; then boot.sh && exit 0 fi # Wait for an IP -echo "`printf "$(TEXT "Detected %s network cards, Waiting IP.")" "${#ETHX[@]}"`" +echo "$(printf "$(TEXT "Detected %s network cards, Waiting IP.")" "${#ETHX[@]}")" for N in $(seq 0 $(expr ${#ETHX[@]} - 1)); do COUNT=0 - DRIVER=`ls -ld /sys/class/net/${ETHX[${N}]}/device/driver 2>/dev/null | awk -F '/' '{print $NF}'` + DRIVER=$(ls -ld /sys/class/net/${ETHX[${N}]}/device/driver 2>/dev/null | awk -F '/' '{print $NF}') echo -en "${ETHX[${N}]}(${DRIVER}): " while true; do - if [ -z "`ip link show ${ETHX[${N}]} | grep 'UP'`" ]; then + if [ -z "$(ip link show ${ETHX[${N}]} | grep 'UP')" ]; then echo -en "\r${ETHX[${N}]}(${DRIVER}): $(TEXT "DOWN")\n" break fi @@ -188,10 +185,10 @@ for N in $(seq 0 $(expr ${#ETHX[@]} - 1)); do echo -en "\r${ETHX[${N}]}(${DRIVER}): $(TEXT "ERROR")\n" break fi - COUNT=$((${COUNT}+1)) - IP=`ip route show dev ${ETHX[${N}]} 2>/dev/null | sed -n 's/.* via .* src \(.*\) metric .*/\1/p'` + COUNT=$((${COUNT} + 1)) + IP=$(ip route show dev ${ETHX[${N}]} 2>/dev/null | sed -n 's/.* via .* src \(.*\) metric .*/\1/p') if [ -n "${IP}" ]; then - echo -en "\r${ETHX[${N}]}(${DRIVER}): `printf "$(TEXT "Access \033[1;34mhttp://%s:7681\033[0m to configure the loader via web terminal.")" "${IP}"`\n" + echo -en "\r${ETHX[${N}]}(${DRIVER}): $(printf "$(TEXT "Access \033[1;34mhttp://%s:7681\033[0m to configure the loader via web terminal.")" "${IP}")\n" break fi echo -n "." @@ -208,7 +205,7 @@ echo -e "$(TEXT "Default SSH Root password is") \033[1;31marpl\033[0m" echo # Check memory -RAM=`free -m | awk '/Mem:/{print$2}'` +RAM=$(free -m | awk '/Mem:/{print$2}') if [ ${RAM} -le 3500 ]; then echo -e "\033[1;33m$(TEXT "You have less than 4GB of RAM, if errors occur in loader creation, please increase the amount of memory.")\033[0m\n" fi diff --git a/files/board/arpl/overlayfs/opt/arpl/ramdisk-patch.sh b/files/board/arpl/overlayfs/opt/arpl/ramdisk-patch.sh index f2b83a3b..ae861761 100755 --- a/files/board/arpl/overlayfs/opt/arpl/ramdisk-patch.sh +++ b/files/board/arpl/overlayfs/opt/arpl/ramdisk-patch.sh @@ -14,27 +14,26 @@ echo -n "Patching Ramdisk" rm -f "${MOD_RDGZ_FILE}" # Check disk space left -LOADER_DISK="`blkid | grep 'LABEL="ARPL3"' | cut -d3 -f1`" -LOADER_DEVICE_NAME=`echo ${LOADER_DISK} | sed 's|/dev/||'` -SPACELEFT=`df --block-size=1 | awk '/'${LOADER_DEVICE_NAME}'3/{print$4}'` +LOADER_DISK="$(blkid | grep 'LABEL="ARPL3"' | cut -d3 -f1)" +LOADER_DEVICE_NAME=$(echo ${LOADER_DISK} | sed 's|/dev/||') +SPACELEFT=$(df --block-size=1 | awk '/'${LOADER_DEVICE_NAME}'3/{print$4}') [ ${SPACELEFT} -le 268435456 ] && rm -rf "${CACHE_PATH}/dl" # Unzipping ramdisk echo -n "." -rm -rf "${RAMDISK_PATH}" # Force clean +rm -rf "${RAMDISK_PATH}" # Force clean mkdir -p "${RAMDISK_PATH}" -(cd "${RAMDISK_PATH}"; xz -dc < "${ORI_RDGZ_FILE}" | cpio -idm) >/dev/null 2>&1 +(cd "${RAMDISK_PATH}"; xz -dc <"${ORI_RDGZ_FILE}" | cpio -idm) >/dev/null 2>&1 # Check if DSM buildnumber changed . "${RAMDISK_PATH}/etc/VERSION" -MODEL="`readConfigKey "model" "${USER_CONFIG_FILE}"`" -BUILD="`readConfigKey "build" "${USER_CONFIG_FILE}"`" -LKM="`readConfigKey "lkm" "${USER_CONFIG_FILE}"`" -SN="`readConfigKey "sn" "${USER_CONFIG_FILE}"`" -LAYOUT="`readConfigKey "layout" "${USER_CONFIG_FILE}"`" -KEYMAP="`readConfigKey "keymap" "${USER_CONFIG_FILE}"`" - +MODEL="$(readConfigKey "model" "${USER_CONFIG_FILE}")" +BUILD="$(readConfigKey "build" "${USER_CONFIG_FILE}")" +LKM="$(readConfigKey "lkm" "${USER_CONFIG_FILE}")" +SN="$(readConfigKey "sn" "${USER_CONFIG_FILE}")" +LAYOUT="$(readConfigKey "layout" "${USER_CONFIG_FILE}")" +KEYMAP="$(readConfigKey "keymap" "${USER_CONFIG_FILE}")" if [ ${BUILD} -ne ${buildnumber} ]; then echo -e "\033[A\n\033[1;32mBuild number changed from \033[1;31m${BUILD}\033[1;32m to \033[1;31m${buildnumber}\033[0m" @@ -46,12 +45,12 @@ fi echo -n "." # Read model data -UNIQUE=`readModelKey "${MODEL}" "unique"` -PLATFORM="`readModelKey "${MODEL}" "platform"`" -KVER="`readModelKey "${MODEL}" "builds.${BUILD}.kver"`" -PAT_URL="`readModelKey "${MODEL}" "builds.${BUILD}.pat.url"`" -PAT_MD5_HASH="`readModelKey "${MODEL}" "builds.${BUILD}.pat.md5-hash"`" -RD_COMPRESSED="`readModelKey "${MODEL}" "builds.${BUILD}.rd-compressed"`" +UNIQUE=$(readModelKey "${MODEL}" "unique") +PLATFORM="$(readModelKey "${MODEL}" "platform")" +KVER="$(readModelKey "${MODEL}" "builds.${BUILD}.kver")" +PAT_URL="$(readModelKey "${MODEL}" "builds.${BUILD}.pat.url")" +PAT_MD5_HASH="$(readModelKey "${MODEL}" "builds.${BUILD}.pat.md5-hash")" +RD_COMPRESSED="$(readModelKey "${MODEL}" "builds.${BUILD}.rd-compressed")" # Sanity check [ -z "${PLATFORM}" -o -z "${KVER}" ] && (die "ERROR: Configuration for model ${MODEL} and buildnumber ${BUILD} not found." | tee -a "${LOG_FILE}") @@ -77,7 +76,7 @@ done < <(readConfigMap "modules" "${USER_CONFIG_FILE}") while read f; do echo -n "." echo "Patching with ${f}" >"${LOG_FILE}" 2>&1 - (cd "${RAMDISK_PATH}" && patch -p1 < "${PATCH_PATH}/${f}") >>"${LOG_FILE}" 2>&1 || dieLog + (cd "${RAMDISK_PATH}" && patch -p1 <"${PATCH_PATH}/${f}") >>"${LOG_FILE}" 2>&1 || dieLog done < <(readModelArray "${MODEL}" "builds.${BUILD}.patch") # Patch /etc/synoinfo.conf @@ -90,16 +89,16 @@ _set_conf_kv "SN" "${SN}" "${RAMDISK_PATH}/etc/synoinfo.conf" >"${LOG_FILE}" 2>& # Patch /sbin/init.post echo -n "." -grep -v -e '^[\t ]*#' -e '^$' "${PATCH_PATH}/config-manipulators.sh" > "${TMP_PATH}/rp.txt" +grep -v -e '^[\t ]*#' -e '^$' "${PATCH_PATH}/config-manipulators.sh" >"${TMP_PATH}/rp.txt" sed -e "/@@@CONFIG-MANIPULATORS-TOOLS@@@/ {" -e "r ${TMP_PATH}/rp.txt" -e 'd' -e '}' -i "${RAMDISK_PATH}/sbin/init.post" rm "${TMP_PATH}/rp.txt" touch "${TMP_PATH}/rp.txt" for KEY in ${!SYNOINFO[@]}; do - echo "_set_conf_kv '${KEY}' '${SYNOINFO[${KEY}]}' '/tmpRoot/etc/synoinfo.conf'" >> "${TMP_PATH}/rp.txt" - echo "_set_conf_kv '${KEY}' '${SYNOINFO[${KEY}]}' '/tmpRoot/etc.defaults/synoinfo.conf'" >> "${TMP_PATH}/rp.txt" + echo "_set_conf_kv '${KEY}' '${SYNOINFO[${KEY}]}' '/tmpRoot/etc/synoinfo.conf'" >>"${TMP_PATH}/rp.txt" + echo "_set_conf_kv '${KEY}' '${SYNOINFO[${KEY}]}' '/tmpRoot/etc.defaults/synoinfo.conf'" >>"${TMP_PATH}/rp.txt" done -echo "_set_conf_kv 'SN' '${SN}' '/tmpRoot/etc/synoinfo.conf'" >> "${TMP_PATH}/rp.txt" -echo "_set_conf_kv 'SN' '${SN}' '/tmpRoot/etc.defaults/synoinfo.conf'" >> "${TMP_PATH}/rp.txt" +echo "_set_conf_kv 'SN' '${SN}' '/tmpRoot/etc/synoinfo.conf'" >>"${TMP_PATH}/rp.txt" +echo "_set_conf_kv 'SN' '${SN}' '/tmpRoot/etc.defaults/synoinfo.conf'" >>"${TMP_PATH}/rp.txt" sed -e "/@@@CONFIG-GENERATED@@@/ {" -e "r ${TMP_PATH}/rp.txt" -e 'd' -e '}' -i "${RAMDISK_PATH}/sbin/init.post" rm "${TMP_PATH}/rp.txt" @@ -108,8 +107,8 @@ echo -n "." rm -rf "${TMP_PATH}/modules" mkdir -p "${TMP_PATH}/modules" tar -zxf "${MODULES_PATH}/${PLATFORM}-${KVER}.tgz" -C "${TMP_PATH}/modules" -for F in `ls "${TMP_PATH}/modules/"*.ko`; do - M=`basename ${F}` +for F in $(ls "${TMP_PATH}/modules/"*.ko); do + M=$(basename ${F}) if arrayExistItem "${M:0:-3}" "${!USERMODULES[@]}"; then cp -f "${F}" "${RAMDISK_PATH}/usr/lib/modules/${M}" else @@ -125,36 +124,36 @@ echo -n "." # Copying fake modprobe cp "${PATCH_PATH}/iosched-trampoline.sh" "${RAMDISK_PATH}/usr/sbin/modprobe" # Copying LKM to /usr/lib/modules -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 #MAXDISKS=`readConfigKey "maxdisks" "${USER_CONFIG_FILE}"` # Check if model needs Device-tree dynamic patch -DT="`readModelKey "${MODEL}" "dt"`" +DT="$(readModelKey "${MODEL}" "dt")" echo -n "." mkdir -p "${RAMDISK_PATH}/addons" -echo "#!/bin/sh" > "${RAMDISK_PATH}/addons/addons.sh" -echo 'echo "addons.sh called with params ${@}"' >> "${RAMDISK_PATH}/addons/addons.sh" -echo "export PLATFORM=${PLATFORM}" >> "${RAMDISK_PATH}/addons/addons.sh" -echo "export MODEL=${MODEL}" >> "${RAMDISK_PATH}/addons/addons.sh" -echo "export BUILD=${BUILD}" >> "${RAMDISK_PATH}/addons/addons.sh" -echo "export MLINK=${PAT_URL}" >> "${RAMDISK_PATH}/addons/addons.sh" -echo "export MCHECKSUM=${PAT_MD5_HASH}" >> "${RAMDISK_PATH}/addons/addons.sh" -echo "export LAYOUT=${LAYOUT}" >> "${RAMDISK_PATH}/addons/addons.sh" -echo "export KEYMAP=${KEYMAP}" >> "${RAMDISK_PATH}/addons/addons.sh" +echo "#!/bin/sh" >"${RAMDISK_PATH}/addons/addons.sh" +echo 'echo "addons.sh called with params ${@}"' >>"${RAMDISK_PATH}/addons/addons.sh" +echo "export PLATFORM=${PLATFORM}" >>"${RAMDISK_PATH}/addons/addons.sh" +echo "export MODEL=${MODEL}" >>"${RAMDISK_PATH}/addons/addons.sh" +echo "export BUILD=${BUILD}" >>"${RAMDISK_PATH}/addons/addons.sh" +echo "export MLINK=${PAT_URL}" >>"${RAMDISK_PATH}/addons/addons.sh" +echo "export MCHECKSUM=${PAT_MD5_HASH}" >>"${RAMDISK_PATH}/addons/addons.sh" +echo "export LAYOUT=${LAYOUT}" >>"${RAMDISK_PATH}/addons/addons.sh" +echo "export KEYMAP=${KEYMAP}" >>"${RAMDISK_PATH}/addons/addons.sh" chmod +x "${RAMDISK_PATH}/addons/addons.sh" # Required addons: eudev, disks, wol 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 installAddon disks -echo "/addons/disks.sh \${1} ${DT} ${UNIQUE}" >> "${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog +echo "/addons/disks.sh \${1} ${DT} ${UNIQUE}" >>"${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog [ -f "${USER_UP_PATH}/${MODEL}.dts" ] && cp "${USER_UP_PATH}/${MODEL}.dts" "${RAMDISK_PATH}/addons/model.dts" 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 installAddon localrss -echo "/addons/localrss.sh \${1} " >> "${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog +echo "/addons/localrss.sh \${1} " >>"${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog # User addons for ADDON in ${!ADDONS[@]}; do PARAMS=${ADDONS[${ADDON}]} @@ -162,34 +161,34 @@ for ADDON in ${!ADDONS[@]}; do echo "ADDON ${ADDON} not found!" | tee -a "${LOG_FILE}" exit 1 fi - echo "/addons/${ADDON}.sh \${1} ${PARAMS}" >> "${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog + echo "/addons/${ADDON}.sh \${1} ${PARAMS}" >>"${RAMDISK_PATH}/addons/addons.sh" 2>"${LOG_FILE}" || dieLog done -[ "2" = "${BUILD:0:1}" ] && sed -i 's/function //g' `find "${RAMDISK_PATH}/addons/" -type f -name "*.sh"` +[ "2" = "${BUILD:0:1}" ] && sed -i 's/function //g' $(find "${RAMDISK_PATH}/addons/" -type f -name "*.sh") # Enable Telnet -echo "inetd" >> "${RAMDISK_PATH}/addons/addons.sh" +echo "inetd" >>"${RAMDISK_PATH}/addons/addons.sh" # Build modules dependencies /opt/arpl/depmod -a -b ${RAMDISK_PATH} 2>/dev/null # Network card configuration file -for N in `seq 0 7`; do -echo -e "DEVICE=eth${N}\nBOOTPROTO=dhcp\nONBOOT=yes\nIPV6INIT=dhcp\nIPV6_ACCEPT_RA=1" > "${RAMDISK_PATH}/etc/sysconfig/network-scripts/ifcfg-eth${N}" +for N in $(seq 0 7); do + echo -e "DEVICE=eth${N}\nBOOTPROTO=dhcp\nONBOOT=yes\nIPV6INIT=dhcp\nIPV6_ACCEPT_RA=1" >"${RAMDISK_PATH}/etc/sysconfig/network-scripts/ifcfg-eth${N}" done # Reassembly ramdisk echo -n "." if [ "${RD_COMPRESSED}" == "true" ]; then - (cd "${RAMDISK_PATH}" && find . | cpio -o -H newc -R root:root | xz -9 --format=lzma > "${MOD_RDGZ_FILE}") >"${LOG_FILE}" 2>&1 || dieLog + (cd "${RAMDISK_PATH}" && find . | cpio -o -H newc -R root:root | xz -9 --format=lzma >"${MOD_RDGZ_FILE}") >"${LOG_FILE}" 2>&1 || dieLog else - (cd "${RAMDISK_PATH}" && find . | cpio -o -H newc -R root:root > "${MOD_RDGZ_FILE}") >"${LOG_FILE}" 2>&1 || dieLog + (cd "${RAMDISK_PATH}" && find . | cpio -o -H newc -R root:root >"${MOD_RDGZ_FILE}") >"${LOG_FILE}" 2>&1 || dieLog fi # Clean rm -rf "${RAMDISK_PATH}" # Update SHA256 hash -RAMDISK_HASH="`sha256sum ${ORI_RDGZ_FILE} | awk '{print$1}'`" +RAMDISK_HASH="$(sha256sum ${ORI_RDGZ_FILE} | awk '{print$1}')" writeConfigKey "ramdisk-hash" "${RAMDISK_HASH}" "${USER_CONFIG_FILE}" echo diff --git a/files/board/arpl/overlayfs/opt/arpl/zimage-patch.sh b/files/board/arpl/overlayfs/opt/arpl/zimage-patch.sh index d599e761..a82eb785 100755 --- a/files/board/arpl/overlayfs/opt/arpl/zimage-patch.sh +++ b/files/board/arpl/overlayfs/opt/arpl/zimage-patch.sh @@ -21,6 +21,6 @@ echo -n "." /opt/arpl/vmlinux-to-bzImage.sh "${TMP_PATH}/vmlinux-mod" "${MOD_ZIMAGE_FILE}" >"${LOG_FILE}" 2>&1 || dieLog echo -n "." # Update HASH of new DSM zImage -HASH="`sha256sum ${ORI_ZIMAGE_FILE} | awk '{print$1}'`" +HASH="$(sha256sum ${ORI_ZIMAGE_FILE} | awk '{print$1}')" writeConfigKey "zimage-hash" "${HASH}" "${USER_CONFIG_FILE}" echo