mirror of
https://github.com/RROrg/rr.git
synced 2025-06-21 05:51:05 +08:00
add 2>/dev/null
This commit is contained in:
parent
cb893e8290
commit
6017ea9ac6
@ -29,7 +29,7 @@ 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 [ -f ${PART1_PATH}/.build -o "$(sha256sum "${ORI_ZIMAGE_FILE}" | awk '{print$1}')" != "${ZIMAGE_HASH}" ]; then
|
||||
if [ -f ${PART1_PATH}/.build -o "$(sha256sum "${ORI_ZIMAGE_FILE}" | awk '{print $1}')" != "${ZIMAGE_HASH}" ]; then
|
||||
echo -e "\033[1;43m$(TEXT "DSM zImage changed")\033[0m"
|
||||
${WORK_PATH}/zimage-patch.sh
|
||||
if [ $? -ne 0 ]; then
|
||||
@ -58,9 +58,9 @@ SMALLNUM="$(readConfigKey "smallnum" "${USER_CONFIG_FILE}")"
|
||||
KERNEL="$(readConfigKey "kernel" "${USER_CONFIG_FILE}")"
|
||||
LKM="$(readConfigKey "lkm" "${USER_CONFIG_FILE}")"
|
||||
|
||||
DMI="$(dmesg | grep -i "DMI:" | sed 's/\[.*\] DMI: //i')"
|
||||
CPU="$(echo $(cat /proc/cpuinfo | grep 'model name' | uniq | awk -F':' '{print $2}'))"
|
||||
MEM="$(free -m | grep -i mem | awk '{print$2}') MB"
|
||||
DMI="$(dmesg 2>/dev/null | grep -i "DMI:" | sed 's/\[.*\] DMI: //i')"
|
||||
CPU="$(echo $(cat /proc/cpuinfo 2>/dev/null | grep 'model name' | uniq | awk -F':' '{print $2}'))"
|
||||
MEM="$(free -m 2>/dev/null | grep -i mem | awk '{print $2}') MB"
|
||||
|
||||
echo -e "$(TEXT "Model: ") \033[1;36m${MODEL}\033[0m"
|
||||
echo -e "$(TEXT "Version: ") \033[1;36m${PRODUCTVER}(${BUILDNUM}$([ ${SMALLNUM:-0} -ne 0 ] && echo "u${SMALLNUM}"))\033[0m"
|
||||
@ -186,7 +186,7 @@ else
|
||||
while [ ${COUNT} -lt $((${BOOTIPWAIT} + 32)) ]; do
|
||||
hasConnect="false"
|
||||
for N in ${ETHX}; do
|
||||
if ethtool ${N} | grep 'Link detected' | grep -q 'yes'; then
|
||||
if ethtool ${N} 2>/dev/null | grep 'Link detected' | grep -q 'yes'; then
|
||||
echo -en "${N} "
|
||||
hasConnect="true"
|
||||
fi
|
||||
@ -205,11 +205,11 @@ else
|
||||
DRIVER=$(ls -ld /sys/class/net/${N}/device/driver 2>/dev/null | awk -F '/' '{print $NF}')
|
||||
echo -en "${N}(${DRIVER}): "
|
||||
while true; do
|
||||
if ! ip link show ${N} | grep -q 'UP'; then
|
||||
if ! ip link show ${N} 2>/dev/null | grep -q 'UP'; then
|
||||
echo -en "\r${N}(${DRIVER}): $(TEXT "DOWN")\n"
|
||||
break
|
||||
fi
|
||||
if ethtool ${N} | grep 'Link detected' | grep -q 'no'; then
|
||||
if ethtool ${N} 2>/dev/null | grep 'Link detected' | grep -q 'no'; then
|
||||
echo -en "\r${N}(${DRIVER}): $(TEXT "NOT CONNECTED")\n"
|
||||
break
|
||||
fi
|
||||
@ -229,12 +229,12 @@ else
|
||||
done
|
||||
BOOTWAIT="$(readConfigKey "bootwait" "${USER_CONFIG_FILE}")"
|
||||
[ -z "${BOOTWAIT}" ] && BOOTWAIT=10
|
||||
w | awk '{print $1" "$2" "$4" "$5" "$6}' >WB
|
||||
w 2>/dev/null | awk '{print $1" "$2" "$4" "$5" "$6}' >WB
|
||||
MSG=""
|
||||
while test ${BOOTWAIT} -ge 0; do
|
||||
MSG="$(printf "\033[1;33m$(TEXT "%2ds (Changing access(ssh/web) status will interrupt boot)")\033[0m" "${BOOTWAIT}")"
|
||||
echo -en "\r${MSG}"
|
||||
w | awk '{print $1" "$2" "$4" "$5" "$6}' >WC
|
||||
w 2>/dev/null | awk '{print $1" "$2" "$4" "$5" "$6}' >WC
|
||||
if ! diff WB WC >/dev/null 2>&1; then
|
||||
echo -en "\r\033[1;33m$(TEXT "access(ssh/web) status has changed and booting is interrupted.")\033[0m\n"
|
||||
rm -f WB WC
|
||||
@ -268,7 +268,7 @@ 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
|
||||
for T in $(w 2>/dev/null | grep -v "TTY" | awk -F' ' '{print $2}'); do
|
||||
echo -e "\n\033[1;43m$(TEXT "[This interface will not be operational. Please wait a few minutes.\nFind DSM via http://find.synology.com/ or Synology Assistant and connect.]")\033[0m\n" >"/dev/${T}" 2>/dev/null || true
|
||||
done
|
||||
|
||||
|
@ -7,7 +7,7 @@ function availableAddons() {
|
||||
echo ""
|
||||
return 1
|
||||
fi
|
||||
for D in $(find "${ADDONS_PATH}" -maxdepth 1 -type d | sort); do
|
||||
for D in $(find "${ADDONS_PATH}" -maxdepth 1 -type d 2>/dev/null | sort); do
|
||||
[ ! -f "${D}/manifest.yml" ] && continue
|
||||
ADDON=$(basename ${D})
|
||||
checkAddonExist "${ADDON}" "${1}" "${2}" || continue
|
||||
|
@ -214,8 +214,8 @@ function _sort_netif() {
|
||||
ETHLIST=""
|
||||
ETHX=$(ls /sys/class/net/ 2>/dev/null | grep eth) # real network cards list
|
||||
for ETH in ${ETHX}; do
|
||||
MAC="$(cat /sys/class/net/${ETH}/address | sed 's/://g' | tr '[:upper:]' '[:lower:]')"
|
||||
BUS=$(ethtool -i ${ETH} | grep bus-info | awk '{print $2}')
|
||||
MAC="$(cat /sys/class/net/${ETH}/address 2>/dev/null | sed 's/://g' | tr '[:upper:]' '[:lower:]')"
|
||||
BUS=$(ethtool -i ${ETH} 2>/dev/null | grep bus-info | awk '{print $2}')
|
||||
ETHLIST="${ETHLIST}${BUS} ${MAC} ${ETH}\n"
|
||||
done
|
||||
|
||||
@ -295,10 +295,10 @@ function getIP() {
|
||||
IP=""
|
||||
if [ -n "${1}" -a -d "/sys/class/net/${1}" ]; then
|
||||
IP=$(ip route show dev ${1} 2>/dev/null | sed -n 's/.* via .* src \(.*\) metric .*/\1/p')
|
||||
[ -z "${IP}" ] && IP=$(ip addr show ${1} | grep -E "inet .* eth" | awk '{print $2}' | cut -f1 -d'/' | head -1)
|
||||
[ -z "${IP}" ] && IP=$(ip addr show ${1} 2>/dev/null | grep -E "inet .* eth" | awk '{print $2}' | cut -f1 -d'/' | head -1)
|
||||
else
|
||||
IP=$(ip route show 2>/dev/null | sed -n 's/.* via .* src \(.*\) metric .*/\1/p' | head -1)
|
||||
[ -z "${IP}" ] && IP=$(ip addr show | grep -E "inet .* eth" | awk '{print $2}' | cut -f1 -d'/' | head -1)
|
||||
[ -z "${IP}" ] && IP=$(ip addr show 2>/dev/null | grep -E "inet .* eth" | awk '{print $2}' | cut -f1 -d'/' | head -1)
|
||||
fi
|
||||
echo "${IP}"
|
||||
}
|
||||
@ -322,12 +322,12 @@ function getLogo() {
|
||||
# Find and mount the DSM root filesystem
|
||||
# (based on pocopico's TCRP code)
|
||||
function findAndMountDSMRoot() {
|
||||
[ $(mount | grep -i "${DSMROOT_PATH}" | wc -l) -gt 0 ] && return 0
|
||||
dsmrootdisk="$(blkid | grep -i linux_raid_member | grep -E "/dev/.*1: " | head -1 | awk -F ":" '{print $1}')"
|
||||
[ $(mount 2>/dev/null | grep -i "${DSMROOT_PATH}" | wc -l) -gt 0 ] && return 0
|
||||
dsmrootdisk="$(blkid 2>/dev/null | grep -i linux_raid_member | grep -E "/dev/.*1: " | head -1 | awk -F ":" '{print $1}')"
|
||||
[ -z "${dsmrootdisk}" ] && return -1
|
||||
[ ! -d "${DSMROOT_PATH}" ] && mkdir -p "${DSMROOT_PATH}"
|
||||
[ $(mount | grep -i "${DSMROOT_PATH}" | wc -l) -eq 0 ] && mount -t ext4 "${dsmrootdisk}" "${DSMROOT_PATH}"
|
||||
if [ $(mount | grep -i "${DSMROOT_PATH}" | wc -l) -eq 0 ]; then
|
||||
[ $(mount 2>/dev/null | grep -i "${DSMROOT_PATH}" | wc -l) -eq 0 ] && mount -t ext4 "${dsmrootdisk}" "${DSMROOT_PATH}"
|
||||
if [ $(mount 2>/dev/null | grep -i "${DSMROOT_PATH}" | wc -l) -eq 0 ]; then
|
||||
echo "Failed to mount"
|
||||
return -1
|
||||
fi
|
||||
@ -339,7 +339,7 @@ function findAndMountDSMRoot() {
|
||||
function rebootTo() {
|
||||
[ "${1}" != "junior" -a "${1}" != "config" ] && exit 1
|
||||
# echo "Rebooting to ${1} mode"
|
||||
GRUBPATH="$(dirname $(find ${PART1_PATH}/ -name grub.cfg | head -1))"
|
||||
GRUBPATH="$(dirname $(find ${PART1_PATH}/ -name grub.cfg 2>/dev/null | head -1))"
|
||||
ENVFILE="${GRUBPATH}/grubenv"
|
||||
[ ! -f "${ENVFILE}" ] && grub-editenv ${ENVFILE} create
|
||||
grub-editenv ${ENVFILE} set next_entry="${1}"
|
||||
|
@ -23,7 +23,7 @@ function getAllModules() {
|
||||
for F in $(ls ${TMP_PATH}/modules/*.ko 2>/dev/null); do
|
||||
local X=$(basename ${F})
|
||||
local M=${X:0:-3}
|
||||
local DESC=$(modinfo ${F} | awk -F':' '/description:/{ print $2}' | awk '{sub(/^[ ]+/,""); print}')
|
||||
local DESC=$(modinfo ${F} 2>/dev/null | awk -F':' '/description:/{ print $2}' | awk '{sub(/^[ ]+/,""); print}')
|
||||
[ -z "${DESC}" ] && DESC="${X}"
|
||||
echo "${M} \"${DESC}\""
|
||||
done
|
||||
@ -144,7 +144,7 @@ function delToModules() {
|
||||
function getdepends() {
|
||||
function _getdepends() {
|
||||
if [ -f "${TMP_PATH}/modules/${1}.ko" ]; then
|
||||
depends=($(modinfo "${TMP_PATH}/modules/${1}.ko" | grep depends: | awk -F: '{print $2}' | awk '$1=$1' | sed 's/,/ /g'))
|
||||
depends=($(modinfo "${TMP_PATH}/modules/${1}.ko" 2>/dev/null | grep depends: | awk -F: '{print $2}' | awk '$1=$1' | sed 's/,/ /g'))
|
||||
if [ ${#depends[@]} -gt 0 ]; then
|
||||
for k in ${depends[@]}; do
|
||||
echo "${k}"
|
||||
|
@ -65,7 +65,7 @@ initConfigKey "modules" "{}" "${USER_CONFIG_FILE}"
|
||||
|
||||
for ETH in ${ETHX}; do
|
||||
[ "${ETH::4}" = "wlan" ] && connectwlanif "${ETH}" && sleep 1
|
||||
MACR="$(cat /sys/class/net/${ETH}/address | sed 's/://g')"
|
||||
MACR="$(cat /sys/class/net/${ETH}/address 2>/dev/null | sed 's/://g')"
|
||||
IPR="$(readConfigKey "network.${MACR}" "${USER_CONFIG_FILE}")"
|
||||
if [ -n "${IPR}" ]; then
|
||||
ip addr add ${IPC}/24 dev ${ETH}
|
||||
@ -80,8 +80,8 @@ PID="0x0001"
|
||||
BUS=$(getBus "${LOADER_DISK}")
|
||||
|
||||
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} 2>/dev/null | grep ID_VENDOR_ID | cut -d= -f2)"
|
||||
PID="0x$(udevadm info --query property --name ${LOADER_DISK} 2>/dev/null | grep ID_MODEL_ID | cut -d= -f2)"
|
||||
elif [ "${BUS}" != "sata" -a "${BUS}" != "scsi" -a "${BUS}" != "nvme" -a "${BUS}" != "mmc" ]; then
|
||||
die "$(TEXT "Loader disk neither USB or SATA/SCSI/NVME/MMC DoM")"
|
||||
fi
|
||||
@ -125,7 +125,7 @@ COUNT=0
|
||||
while [ ${COUNT} -lt 30 ]; do
|
||||
hasConnect="false"
|
||||
for N in ${ETHX}; do
|
||||
if ethtool ${N} | grep 'Link detected' | grep -q 'yes'; then
|
||||
if ethtool ${N} 2>/dev/null | grep 'Link detected' | grep -q 'yes'; then
|
||||
echo -en "${N} "
|
||||
hasConnect="true"
|
||||
fi
|
||||
@ -144,11 +144,11 @@ for N in ${ETHX}; do
|
||||
DRIVER=$(ls -ld /sys/class/net/${N}/device/driver 2>/dev/null | awk -F '/' '{print $NF}')
|
||||
echo -en "${N}(${DRIVER}): "
|
||||
while true; do
|
||||
if ! ip link show ${N} | grep -q 'UP'; then
|
||||
if ! ip link show ${N} 2>/dev/null | grep -q 'UP'; then
|
||||
echo -en "\r${N}(${DRIVER}): $(TEXT "DOWN")\n"
|
||||
break
|
||||
fi
|
||||
if ethtool ${N} | grep 'Link detected' | grep -q 'no'; then
|
||||
if ethtool ${N} 2>/dev/null | grep 'Link detected' | grep -q 'no'; then
|
||||
echo -en "\r${N}(${DRIVER}): $(TEXT "NOT CONNECTED")\n"
|
||||
break
|
||||
fi
|
||||
@ -191,7 +191,7 @@ if [ "${DSMLOGO}" = "true" -a -c "/dev/fb0" ]; then
|
||||
fi
|
||||
|
||||
# Check memory
|
||||
RAM=$(free -m 2>/dev/null | awk '/Mem:/{print$2}')
|
||||
RAM=$(free -m 2>/dev/null | awk '/Mem:/{print $2}')
|
||||
if [ ${RAM:-0} -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
|
||||
|
@ -11,7 +11,7 @@
|
||||
alias DIALOG='dialog --backtitle "$(backtitle)" --colors --aspect 50'
|
||||
|
||||
# Check partition 3 space, if < 2GiB is necessary clean cache folder
|
||||
PACELEFT=$(df -m ${LOADER_DISK_PART3} | awk 'NR==2 {print $4}')
|
||||
PACELEFT=$(df -m ${LOADER_DISK_PART3} 2>/dev/null | awk 'NR==2 {print $4}')
|
||||
CLEARCACHE=0
|
||||
if [ ${PACELEFT:-0} -lt 430 ]; then
|
||||
CLEARCACHE=1
|
||||
@ -106,7 +106,7 @@ function modelMenu() {
|
||||
Y=$(echo ${M} | tr -cd "[0-9]")
|
||||
Y=${Y:0-2}
|
||||
echo "${M} ${Y}" >>"${TMP_PATH}/modellist"
|
||||
done <<<$(find "${WORK_PATH}/model-configs" -maxdepth 1 -name \*.yml | sed 's/.*\///; s/\.yml//')
|
||||
done <<<$(find "${WORK_PATH}/model-configs" -maxdepth 1 -name \*.yml 2>/dev/null | sed 's/.*\///; s/\.yml//')
|
||||
|
||||
while true; do
|
||||
echo -n "" >"${TMP_PATH}/menu"
|
||||
@ -141,11 +141,11 @@ function modelMenu() {
|
||||
[ -z "${resp}" ] && return
|
||||
if [ "${resp}" = "c" ]; then
|
||||
models=(DS918+ RS1619xs+ DS419+ DS1019+ DS719+ DS1621xs+)
|
||||
[ $(lspci -d ::300 | grep 8086 | wc -l) -gt 0 ] && iGPU=1 || iGPU=0
|
||||
[ $(lspci -d ::104 | wc -l) -gt 0 -o $(lspci -d ::107 | wc -l) -gt 0 ] && LSI=1 || LSI=0
|
||||
[ $(lspci -d ::108 | wc -l) -gt 0 ] && NVME=1 || NVME=0
|
||||
[ $(lspci -d ::300 2>/dev/null | grep 8086 | wc -l) -gt 0 ] && iGPU=1 || iGPU=0
|
||||
[ $(lspci -d ::104 2>/dev/null | wc -l) -gt 0 -o $(lspci -d ::107 2>/dev/null | wc -l) -gt 0 ] && LSI=1 || LSI=0
|
||||
[ $(lspci -d ::108 2>/dev/null | wc -l) -gt 0 ] && NVME=1 || NVME=0
|
||||
if [ "${NVME}" = "1" ]; then
|
||||
for PCI in $(lspci -d ::108 | awk '{print $1}'); do
|
||||
for PCI in $(lspci -d ::108 2>/dev/null | awk '{print $1}'); do
|
||||
if [ ! -d "/sys/devices/pci0000:00/0000:${PCI}/nvme" ]; then
|
||||
NVME=2
|
||||
break
|
||||
@ -374,13 +374,13 @@ function ParsePat() {
|
||||
break
|
||||
fi
|
||||
|
||||
MODELTMP=$(grep -E "MODEL=\".*\"" ${UNTAR_PAT_PATH}/GRUB_VER | sed 's/.*MODEL="\(.*\)".*/\1/')
|
||||
MODELTMP=$(grep -E "MODEL=\".*\"" ${UNTAR_PAT_PATH}/GRUB_VER 2>/dev/null | sed 's/.*MODEL="\(.*\)".*/\1/')
|
||||
if [ -n "${MODELTMP}" ]; then
|
||||
if [ -f "${WORK_PATH}/model-configs/${MODELTMP}.yml" ]; then
|
||||
MODEL=${MODELTMP}
|
||||
else
|
||||
IS_FIND="false"
|
||||
for M in $(find "${WORK_PATH}/model-configs" -maxdepth 1 -name \*.yml | sed 's/.*\///; s/\.yml//'); do
|
||||
for M in $(find "${WORK_PATH}/model-configs" -maxdepth 1 -name \*.yml 2>/dev/null | sed 's/.*\///; s/\.yml//'); do
|
||||
if [ "$(readModelKey "${M}" "id")" = "${MODELTMP}" ]; then
|
||||
MODEL=${M}
|
||||
IS_FIND="true"
|
||||
@ -421,9 +421,9 @@ function ParsePat() {
|
||||
|
||||
mkdir -p "${PART3_PATH}/dl"
|
||||
# Check disk space left
|
||||
SPACELEFT=$(df -m ${LOADER_DISK_PART3} | awk 'NR==2 {print $4}')
|
||||
SPACELEFT=$(df -m ${LOADER_DISK_PART3} 2>/dev/null | awk 'NR==2 {print $4}')
|
||||
# Discover remote file size
|
||||
FILESIZE=$(du -m "${PAT_PATH}" | awk '{print $1}')
|
||||
FILESIZE=$(du -m "${PAT_PATH}" 2>/dev/null | awk '{print $1}')
|
||||
if [ ${FILESIZE:-0} -ge ${SPACELEFT:-0} ]; then
|
||||
# No disk space to copy, mv it to dl
|
||||
mv -f "${PAT_PATH}" "${PART3_PATH}/dl/${MODEL}-${PRODUCTVER}.pat"
|
||||
@ -694,7 +694,7 @@ function moduleMenu() {
|
||||
DIALOG --title "$(TEXT "Modules")" \
|
||||
--infobox "$(TEXT "Selecting loaded modules")" 0 0
|
||||
KOLIST=""
|
||||
for I in $(lsmod | awk -F' ' '{print $1}' | grep -v 'Module'); do
|
||||
for I in $(lsmod 2>/dev/null | awk -F' ' '{print $1}' | grep -v 'Module'); do
|
||||
KOLIST+="$(getdepends "${PLATFORM}" "$([ -n "${KPRE}" ] && echo "${KPRE}-")${KVER}" "${I}") ${I} "
|
||||
done
|
||||
KOLIST=($(echo ${KOLIST} | tr ' ' '\n' | sort -u))
|
||||
@ -705,7 +705,7 @@ function moduleMenu() {
|
||||
touch ${PART1_PATH}/.build
|
||||
;;
|
||||
u)
|
||||
if ! tty | grep -q "/dev/pts"; then #if ! tty | grep -q "/dev/pts" || [ -z "${SSH_TTY}" ]; then
|
||||
if ! tty 2>/dev/null | grep -q "/dev/pts"; then #if ! tty 2>/dev/null | grep -q "/dev/pts" || [ -z "${SSH_TTY}" ]; then
|
||||
MSG=""
|
||||
MSG+="$(TEXT "This feature is only available when accessed via ssh (Requires a terminal that supports ZModem protocol).\n")"
|
||||
DIALOG --title "$(TEXT "Modules")" \
|
||||
@ -1156,9 +1156,9 @@ function extractDsmFiles() {
|
||||
fi
|
||||
echo "$(printf "$(TEXT "Downloading %s ...")" "${PAT_FILE}")"
|
||||
# Check disk space left
|
||||
SPACELEFT=$(df --block-size=1 ${LOADER_DISK_PART3} | awk 'NR==2 {print $4}')
|
||||
SPACELEFT=$(df --block-size=1 ${LOADER_DISK_PART3} 2>/dev/null | awk 'NR==2 {print $4}')
|
||||
# Discover remote file size
|
||||
FILESIZE=$(curl -skLI --connect-timeout 10 "${PATURL}" | grep -i Content-Length | awk '{print$2}')
|
||||
FILESIZE=$(curl -skLI --connect-timeout 10 "${PATURL}" | grep -i Content-Length | tail -n 1 | awk '{print $2}')
|
||||
if [ ${FILESIZE:-0} -ge ${SPACELEFT:-0} ]; then
|
||||
# No disk space to download, change it to RAMDISK
|
||||
PAT_PATH="${TMP_PATH}/${PAT_FILE}"
|
||||
@ -1519,10 +1519,10 @@ function advancedMenu() {
|
||||
y)
|
||||
DIALOG --title "$(TEXT "Advanced")" \
|
||||
--infobox "$(TEXT "Scanning ...")" 0 0
|
||||
ITEM=$(iw wlan0 scan | grep SSID: | awk '{print $2}')
|
||||
ITEM=$(iw wlan0 scan 2>/dev/null | grep SSID: | awk '{print $2}')
|
||||
MSG=""
|
||||
MSG+="$(TEXT "Scanned SSIDs:\n")"
|
||||
for I in $(iw wlan0 scan | grep SSID: | awk '{print $2}'); do MSG+="${I}\n"; done
|
||||
for I in $(iw wlan0 scan 2>/dev/null | grep SSID: | awk '{print $2}'); do MSG+="${I}\n"; done
|
||||
LINENUM=$(($(echo -e "${MSG}" | wc -l) + 8))
|
||||
while true; do
|
||||
SSID=$(cat ${PART1_PATH}/wpa_supplicant.conf 2>/dev/null | grep -i SSID | cut -d'=' -f2)
|
||||
@ -1553,7 +1553,7 @@ function advancedMenu() {
|
||||
|
||||
for ETH in $(ls /sys/class/net/ 2>/dev/null | grep wlan); do
|
||||
connectwlanif "${ETH}" && sleep 1
|
||||
MACR="$(cat /sys/class/net/${ETH}/address | sed 's/://g')"
|
||||
MACR="$(cat /sys/class/net/${ETH}/address 2>/dev/null | sed 's/://g')"
|
||||
IPR="$(readConfigKey "network.${MACR}" "${USER_CONFIG_FILE}")"
|
||||
if [ -n "${IPR}" ]; then
|
||||
ip addr add ${IPC}/24 dev ${ETH}
|
||||
@ -1589,13 +1589,13 @@ function advancedMenu() {
|
||||
s)
|
||||
MSG=""
|
||||
NUMPORTS=0
|
||||
[ $(lspci -d ::106 | wc -l) -gt 0 ] && MSG+="\nATA:\n"
|
||||
for PCI in $(lspci -d ::106 | awk '{print $1}'); do
|
||||
NAME=$(lspci -s "${PCI}" | sed "s/\ .*://")
|
||||
[ $(lspci -d ::106 2>/dev/null | wc -l) -gt 0 ] && MSG+="\nATA:\n"
|
||||
for PCI in $(lspci -d ::106 2>/dev/null | awk '{print $1}'); do
|
||||
NAME=$(lspci -s "${PCI}" 2>/dev/null | sed "s/\ .*://")
|
||||
MSG+="\Zb${NAME}\Zn\nPorts: "
|
||||
PORTS=$(ls -l /sys/class/scsi_host 2>/dev/null | grep "${PCI}" | awk -F'/' '{print $NF}' | sed 's/host//' | sort -n)
|
||||
for P in ${PORTS}; do
|
||||
if lsscsi -b | grep -v - | grep -q "\[${P}:"; then
|
||||
if lsscsi -b 2>/dev/null | grep -v - | grep -q "\[${P}:"; then
|
||||
DUMMY="$([ "$(cat /sys/class/scsi_host/host${P}/ahci_port_cmd)" = "0" ] && echo 1 || echo 2)"
|
||||
if [ "$(cat /sys/class/scsi_host/host${P}/ahci_port_cmd)" = "0" ]; then
|
||||
MSG+="\Z1$(printf "%02d" ${P})\Zn "
|
||||
@ -1609,52 +1609,52 @@ function advancedMenu() {
|
||||
done
|
||||
MSG+="\n"
|
||||
done
|
||||
[ $(lspci -d ::104 | wc -l) -gt 0 ] && MSG+="\nRAID:\n"
|
||||
for PCI in $(lspci -d ::104 | awk '{print $1}'); do
|
||||
NAME=$(lspci -s "${PCI}" | sed "s/\ .*://")
|
||||
[ $(lspci -d ::104 2>/dev/null | wc -l) -gt 0 ] && MSG+="\nRAID:\n"
|
||||
for PCI in $(lspci -d ::104 2>/dev/null | awk '{print $1}'); do
|
||||
NAME=$(lspci -s "${PCI}" 2>/dev/null | sed "s/\ .*://")
|
||||
PORT=$(ls -l /sys/class/scsi_host 2>/dev/null | grep "${PCI}" | awk -F'/' '{print $NF}' | sed 's/host//' | sort -n)
|
||||
PORTNUM=$(lsscsi -b | grep -v - | grep "\[${PORT}:" | wc -l)
|
||||
PORTNUM=$(lsscsi -b 2>/dev/null | grep -v - | grep "\[${PORT}:" | wc -l)
|
||||
MSG+="\Zb${NAME}\Zn\nNumber: ${PORTNUM}\n"
|
||||
NUMPORTS=$((${NUMPORTS} + ${PORTNUM}))
|
||||
done
|
||||
[ $(lspci -d ::107 | wc -l) -gt 0 ] && MSG+="\nSerial Attached SCSI:\n"
|
||||
for PCI in $(lspci -d ::107 | awk '{print $1}'); do
|
||||
NAME=$(lspci -s "${PCI}" | sed "s/\ .*://")
|
||||
[ $(lspci -d ::107 2>/dev/null | wc -l) -gt 0 ] && MSG+="\nSerial Attached SCSI:\n"
|
||||
for PCI in $(lspci -d ::107 2>/dev/null | awk '{print $1}'); do
|
||||
NAME=$(lspci -s "${PCI}" 2>/dev/null | sed "s/\ .*://")
|
||||
PORT=$(ls -l /sys/class/scsi_host 2>/dev/null | grep "${PCI}" | awk -F'/' '{print $NF}' | sed 's/host//' | sort -n)
|
||||
PORTNUM=$(lsscsi -b | grep -v - | grep "\[${PORT}:" | wc -l)
|
||||
PORTNUM=$(lsscsi -b 2>/dev/null | grep -v - | grep "\[${PORT}:" | wc -l)
|
||||
MSG+="\Zb${NAME}\Zn\nNumber: ${PORTNUM}\n"
|
||||
NUMPORTS=$((${NUMPORTS} + ${PORTNUM}))
|
||||
done
|
||||
[ $(lspci -d ::100 | wc -l) -gt 0 ] && MSG+="\nSCSI:\n"
|
||||
for PCI in $(lspci -d ::100 | awk '{print $1}'); do
|
||||
NAME=$(lspci -s "${PCI}" | sed "s/\ .*://")
|
||||
[ $(lspci -d ::100 2>/dev/null | wc -l) -gt 0 ] && MSG+="\nSCSI:\n"
|
||||
for PCI in $(lspci -d ::100 2>/dev/null | awk '{print $1}'); do
|
||||
NAME=$(lspci -s "${PCI}" 2>/dev/null | sed "s/\ .*://")
|
||||
PORTNUM=$(ls -l /sys/block/* 2>/dev/null | grep "${PCI}" | wc -l)
|
||||
[ ${PORTNUM} -eq 0 ] && continue
|
||||
MSG+="\Zb${NAME}\Zn\nNumber: ${PORTNUM}\n"
|
||||
NUMPORTS=$((${NUMPORTS} + ${PORTNUM}))
|
||||
done
|
||||
[ $(ls -l /sys/class/scsi_host 2>/dev/null | grep usb | wc -l) -gt 0 ] && MSG+="\nUSB:\n"
|
||||
for PCI in $(lspci -d ::c03 | awk '{print $1}'); do
|
||||
NAME=$(lspci -s "${PCI}" | sed "s/\ .*://")
|
||||
for PCI in $(lspci -d ::c03 2>/dev/null | awk '{print $1}'); do
|
||||
NAME=$(lspci -s "${PCI}" 2>/dev/null | sed "s/\ .*://")
|
||||
PORT=$(ls -l /sys/class/scsi_host 2>/dev/null | grep "${PCI}" | awk -F'/' '{print $NF}' | sed 's/host//' | sort -n)
|
||||
PORTNUM=$(lsscsi -b | grep -v - | grep "\[${PORT}:" | wc -l)
|
||||
PORTNUM=$(lsscsi -b 2>/dev/null | grep -v - | grep "\[${PORT}:" | wc -l)
|
||||
[ ${PORTNUM} -eq 0 ] && continue
|
||||
MSG+="\Zb${NAME}\Zn\nNumber: ${PORTNUM}\n"
|
||||
NUMPORTS=$((${NUMPORTS} + ${PORTNUM}))
|
||||
done
|
||||
[ $(ls -l /sys/class/mmc_host 2>/dev/null | grep mmc_host | wc -l) -gt 0 ] && MSG+="\nMMC:\n"
|
||||
for PCI in $(lspci -d ::805 | awk '{print $1}'); do
|
||||
NAME=$(lspci -s "${PCI}" | sed "s/\ .*://")
|
||||
for PCI in $(lspci -d ::805 2>/dev/null | awk '{print $1}'); do
|
||||
NAME=$(lspci -s "${PCI}" 2>/dev/null | sed "s/\ .*://")
|
||||
PORTNUM=$(ls -l /sys/block/mmc* 2>/dev/null | grep "${PCI}" | wc -l)
|
||||
[ ${PORTNUM} -eq 0 ] && continue
|
||||
MSG+="\Zb${NAME}\Zn\nNumber: ${PORTNUM}\n"
|
||||
NUMPORTS=$((${NUMPORTS} + ${PORTNUM}))
|
||||
done
|
||||
[ $(lspci -d ::108 | wc -l) -gt 0 ] && MSG+="\nNVME:\n"
|
||||
for PCI in $(lspci -d ::108 | awk '{print $1}'); do
|
||||
NAME=$(lspci -s "${PCI}" | sed "s/\ .*://")
|
||||
[ $(lspci -d ::108 2>/dev/null | wc -l) -gt 0 ] && MSG+="\nNVME:\n"
|
||||
for PCI in $(lspci -d ::108 2>/dev/null | awk '{print $1}'); do
|
||||
NAME=$(lspci -s "${PCI}" 2>/dev/null | sed "s/\ .*://")
|
||||
PORT=$(ls -l /sys/class/nvme 2>/dev/null | grep "${PCI}" | awk -F'/' '{print $NF}' | sed 's/nvme//' | sort -n)
|
||||
PORTNUM=$(lsscsi -b | grep -v - | grep "\[N:${PORT}:" | wc -l)
|
||||
PORTNUM=$(lsscsi -b 2>/dev/null | grep -v - | grep "\[N:${PORT}:" | wc -l)
|
||||
MSG+="\Zb${NAME}\Zn\nNumber: ${PORTNUM}\n"
|
||||
NUMPORTS=$((${NUMPORTS} + ${PORTNUM}))
|
||||
done
|
||||
@ -1777,7 +1777,7 @@ function advancedMenu() {
|
||||
--no-items --menu "$(TEXT "Choose a user name")" 0 0 0 --file "${TMP_PATH}/menu" \
|
||||
2>${TMP_PATH}/resp
|
||||
[ $? -ne 0 ] && return
|
||||
USER="$(cat "${TMP_PATH}/resp" | awk '{print $1}')"
|
||||
USER="$(cat "${TMP_PATH}/resp" 2>/dev/null | awk '{print $1}')"
|
||||
[ -z "${USER}" ] && return
|
||||
while true; do
|
||||
DIALOG --title "$(TEXT "Advanced")" \
|
||||
@ -1794,7 +1794,7 @@ function advancedMenu() {
|
||||
mkdir -p "${TMP_PATH}/sdX1"
|
||||
for I in $(ls /dev/sd*1 2>/dev/null | grep -v "${LOADER_DISK_PART1}"); do
|
||||
mount "${I}" "${TMP_PATH}/sdX1"
|
||||
OLDPASSWD="$(cat "${TMP_PATH}/sdX1/etc/shadow" | grep "^${USER}:" | awk -F ':' '{print $2}')"
|
||||
OLDPASSWD="$(cat "${TMP_PATH}/sdX1/etc/shadow" 2>/dev/null | grep "^${USER}:" | awk -F ':' '{print $2}')"
|
||||
if [ -n "${NEWPASSWD}" -a -n "${OLDPASSWD}" ]; then
|
||||
sed -i "s|${OLDPASSWD}|${NEWPASSWD}|g" "${TMP_PATH}/sdX1/etc/shadow"
|
||||
sed -i "/^${USER}:/ s/\([^:]*\):\([^:]*\):\([^:]*\):\([^:]*\):\([^:]*\):\([^:]*\):\([^:]*\):\([^:]*\):\([^:]*\)/\1:\2:\3:\4:\5:\6:\7::\9/" "${TMP_PATH}/sdX1/etc/shadow"
|
||||
@ -1916,7 +1916,7 @@ EOF
|
||||
--msgbox "$(TEXT "No disk selected!")" 0 0
|
||||
return
|
||||
else
|
||||
SIZE=$(df -m ${RESP} | awk 'NR==2 {print $2}')
|
||||
SIZE=$(df -m ${RESP} 2>/dev/null | awk 'NR==2 {print $2}')
|
||||
if [ ${SIZE:-0} -lt 1024 ]; then
|
||||
DIALOG --title "$(TEXT "Advanced")" \
|
||||
--msgbox "$(printf "$(TEXT "Disk %s size is less than 1GB and cannot be cloned!")" "${RESP}")" 0 0
|
||||
@ -1938,19 +1938,19 @@ EOF
|
||||
sleep 3
|
||||
|
||||
mkdir -p "${TMP_PATH}/sdX1"
|
||||
mount "$(lsblk "${RESP}" -pno KNAME,LABEL | grep RR1 | awk '{print $1}')" "${TMP_PATH}/sdX1"
|
||||
mount "$(lsblk "${RESP}" -pno KNAME,LABEL 2>/dev/null | grep RR1 | awk '{print $1}')" "${TMP_PATH}/sdX1"
|
||||
cp -vRf "${PART1_PATH}/". "${TMP_PATH}/sdX1/"
|
||||
sync
|
||||
umount "${TMP_PATH}/sdX1"
|
||||
|
||||
mkdir -p "${TMP_PATH}/sdX2"
|
||||
mount "$(lsblk "${RESP}" -pno KNAME,LABEL | grep RR2 | awk '{print $1}')" "${TMP_PATH}/sdX2"
|
||||
mount "$(lsblk "${RESP}" -pno KNAME,LABEL 2>/dev/null | grep RR2 | awk '{print $1}')" "${TMP_PATH}/sdX2"
|
||||
cp -vRf "${PART2_PATH}/". "${TMP_PATH}/sdX2/"
|
||||
sync
|
||||
umount "${TMP_PATH}/sdX2"
|
||||
|
||||
mkdir -p "${TMP_PATH}/sdX3"
|
||||
mount "$(lsblk "${RESP}" -pno KNAME,LABEL | grep RR3 | awk '{print $1}')" "${TMP_PATH}/sdX3"
|
||||
mount "$(lsblk "${RESP}" -pno KNAME,LABEL 2>/dev/null | grep RR3 | awk '{print $1}')" "${TMP_PATH}/sdX3"
|
||||
cp -vRf "${PART3_PATH}/". "${TMP_PATH}/sdX3/"
|
||||
sync
|
||||
umount "${TMP_PATH}/sdX3"
|
||||
@ -2086,11 +2086,11 @@ function tryRecoveryDSM() {
|
||||
MODEL=""
|
||||
PRODUCTVER=""
|
||||
if [ -f "${DSMROOT_PATH}/.syno/patch/VERSION" ]; then
|
||||
eval $(cat ${DSMROOT_PATH}/.syno/patch/VERSION | grep unique)
|
||||
eval $(cat ${DSMROOT_PATH}/.syno/patch/VERSION | grep majorversion)
|
||||
eval $(cat ${DSMROOT_PATH}/.syno/patch/VERSION | grep minorversion)
|
||||
eval $(cat ${DSMROOT_PATH}/.syno/patch/VERSION | grep buildnumber)
|
||||
eval $(cat ${DSMROOT_PATH}/.syno/patch/VERSION | grep smallfixnumber)
|
||||
eval $(cat ${DSMROOT_PATH}/.syno/patch/VERSION 2>/dev/null | grep unique)
|
||||
eval $(cat ${DSMROOT_PATH}/.syno/patch/VERSION 2>/dev/null | grep majorversion)
|
||||
eval $(cat ${DSMROOT_PATH}/.syno/patch/VERSION 2>/dev/null | grep minorversion)
|
||||
eval $(cat ${DSMROOT_PATH}/.syno/patch/VERSION 2>/dev/null | grep buildnumber)
|
||||
eval $(cat ${DSMROOT_PATH}/.syno/patch/VERSION 2>/dev/null | grep smallfixnumber)
|
||||
if [ -n "${unique}" ]; then
|
||||
while read F; do
|
||||
M="$(basename ${F})"
|
||||
@ -2099,7 +2099,7 @@ function tryRecoveryDSM() {
|
||||
[ "${unique}" = "${UNIQUE}" ] || continue
|
||||
# Found
|
||||
modelMenu "${M}"
|
||||
done <<<$(find "${WORK_PATH}/model-configs" -maxdepth 1 -name \*.yml | sort)
|
||||
done <<<$(find "${WORK_PATH}/model-configs" -maxdepth 1 -name \*.yml 2>/dev/null | sort)
|
||||
if [ -n "${MODEL}" ]; then
|
||||
productversMenu "${majorversion}.${minorversion}"
|
||||
if [ -n "${PRODUCTVER}" ]; then
|
||||
@ -2667,7 +2667,7 @@ function updateMenu() {
|
||||
[ -n "${F}" ] && updateCKs "${F}" "${SILENT}"
|
||||
;;
|
||||
u)
|
||||
if ! tty | grep -q "/dev/pts" || [ -z "${SSH_TTY}" ]; then
|
||||
if ! tty 2>/dev/null | grep -q "/dev/pts" || [ -z "${SSH_TTY}" ]; then
|
||||
MSG=""
|
||||
MSG+="$(TEXT "This feature is only available when accessed via ssh (Requires a terminal that supports ZModem protocol).\n")"
|
||||
MSG+="$(TEXT "Manually uploading update*.zip,addons*.zip,modules*.zip,rp-lkms*.zip,rr-cks*.zip to /tmp/ will skip the download.")"
|
||||
|
@ -227,9 +227,9 @@ 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 . 2>/dev/null | 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 . 2>/dev/null | cpio -o -H newc -R root:root >"${MOD_RDGZ_FILE}") >"${LOG_FILE}" 2>&1 || dieLog
|
||||
fi
|
||||
|
||||
# Clean
|
||||
|
@ -68,7 +68,7 @@ if [ ${KVER_MAJOR} -eq 4 ] || [ ${KVER_MAJOR} -eq 3 ]; then
|
||||
|
||||
RUN_SIZE=$(objdump -h ${VMLINUX_MOD} | sh "${SCRIPT_DIR}/calc_run_size.sh")
|
||||
size_le ${RUN_SIZE} | dd of=${ZIMAGE_MOD} bs=15745210 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
|
||||
size_le $(($((16#$(crc32 "${ZIMAGE_MOD}" | awk '{print$1}'))) ^ 0xFFFFFFFF)) | dd of="${ZIMAGE_MOD}" conv=notrunc oflag=append >"${LOG_FILE}" 2>&1 || dieLog
|
||||
size_le $(($((16#$(crc32 "${ZIMAGE_MOD}" | awk '{print $1}'))) ^ 0xFFFFFFFF)) | dd of="${ZIMAGE_MOD}" conv=notrunc oflag=append >"${LOG_FILE}" 2>&1 || dieLog
|
||||
else
|
||||
# Kernel version 5.x
|
||||
gzip -dc "${SCRIPT_DIR}/bzImage-template-v5.gz" >"${ZIMAGE_MOD}"
|
||||
@ -78,5 +78,5 @@ else
|
||||
file_size_le "${VMLINUX_MOD}" | dd of="${ZIMAGE_MOD}" bs=34479132 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
|
||||
# RUN_SIZE=`objdump -h ${VMLINUX_MOD} | sh "${SCRIPT_DIR}/calc_run_size.sh"`
|
||||
# size_le ${RUN_SIZE} | dd of=${ZIMAGE_MOD} bs=34626904 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
|
||||
size_le $(($((16#$(crc32 "${ZIMAGE_MOD}" | awk '{print$1}'))) ^ 0xFFFFFFFF)) | dd of="${ZIMAGE_MOD}" conv=notrunc oflag=append >"${LOG_FILE}" 2>&1 || dieLog
|
||||
size_le $(($((16#$(crc32 "${ZIMAGE_MOD}" | awk '{print $1}'))) ^ 0xFFFFFFFF)) | dd of="${ZIMAGE_MOD}" conv=notrunc oflag=append >"${LOG_FILE}" 2>&1 || dieLog
|
||||
fi
|
||||
|
@ -37,7 +37,7 @@ fi
|
||||
|
||||
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
|
||||
|
@ -272,8 +272,8 @@ function resizeImg() {
|
||||
INPUT_FILE="$(readlink -f "${INPUT_FILE}")"
|
||||
OUTPUT_FILE="$(readlink -f "${OUTPUT_FILE}")"
|
||||
|
||||
SIZE=$(($(du -m "${INPUT_FILE}" | awk '{print $1}')$(echo "${CHANGE_SIZE}" | sed 's/M//g; s/b//g')))
|
||||
[ -z "${SIZE}" -o "${SIZE}" -lt 0 ] && exit 1
|
||||
SIZE=$(($(du -m "${INPUT_FILE}" 2>/dev/null | awk '{print $1}')$(echo "${CHANGE_SIZE}" | sed 's/M//g; s/b//g')))
|
||||
[ "${SIZE:-0}" -lt 0 ] && exit 1
|
||||
|
||||
if [ ! "${INPUT_FILE}" = "${OUTPUT_FILE}" ]; then
|
||||
sudo cp -f "${INPUT_FILE}" "${OUTPUT_FILE}"
|
||||
|
Loading…
x
Reference in New Issue
Block a user