mirror of
https://github.com/RROrg/rr.git
synced 2025-06-21 05:51:05 +08:00
fix something
This commit is contained in:
parent
d1a498a421
commit
208e8a791b
22
.github/workflows/issues.yml
vendored
22
.github/workflows/issues.yml
vendored
@ -121,7 +121,7 @@ jobs:
|
||||
- name: Run Build
|
||||
if: env.iscustom == 'true'
|
||||
run: |
|
||||
# 累了, 毁灭吧
|
||||
# 累了, 毁灭吧!
|
||||
|
||||
REPO=${{ github.server_url }}/${{ github.repository }}
|
||||
MODEL=${{ env.model }}
|
||||
@ -146,9 +146,27 @@ jobs:
|
||||
|
||||
export TERM=xterm
|
||||
|
||||
sudo ./localbuild.sh init rr rr/rr.img
|
||||
sudo ./localbuild.sh init rr/ws rr/rr.img
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "init failed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# sudo cp -rf files/initrd/opt/rr/* rr/ws/initrd/opt/rr/
|
||||
# sudo sed -i "s/set -e/set -ex/" rr/ws/initrd/opt/rr/init.sh
|
||||
# sudo sed -i '/^alias/i\set -x' rr/ws/initrd/opt/rr/menu.sh
|
||||
|
||||
sudo ./localbuild.sh config ${MODEL}
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "config failed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
sudo ./localbuild.sh pack rr/rr.img
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "pack failed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ls rr -al
|
||||
zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.img.zip" -j rr/rr.img
|
||||
|
@ -114,10 +114,13 @@ function generateMacAddress() {
|
||||
PRE="$(readModelArray "${1}" "serial.macpre")"
|
||||
SUF="$(printf '%02x%02x%02x' $((${RANDOM} % 256)) $((${RANDOM} % 256)) $((${RANDOM} % 256)))"
|
||||
NUM=${2:-1}
|
||||
MACS=""
|
||||
for I in $(seq 1 ${NUM}); do
|
||||
printf '%06x%06x' $((0x${PRE:-"001132"})) $(($((0x${SUF})) + ${I}))
|
||||
[ ${I} -lt ${NUM} ] && printf ' '
|
||||
MACS+="$(printf '%06x%06x' $((0x${PRE:-"001132"})) $(($((0x${SUF})) + ${I})))"
|
||||
[ ${I} -lt ${NUM} ] && MACS+=" "
|
||||
done
|
||||
echo "${MACS}"
|
||||
return 0
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
@ -132,19 +135,16 @@ function validateSerial() {
|
||||
P=${2:4:3}
|
||||
L=${#2}
|
||||
if [ ${L} -ne 13 ]; then
|
||||
echo 0
|
||||
return
|
||||
return 0
|
||||
fi
|
||||
echo "${PREFIX}" | grep -q "${S}"
|
||||
if [ $? -eq 1 ]; then
|
||||
echo 0
|
||||
return
|
||||
return 0
|
||||
fi
|
||||
if [ "${MIDDLE}" != "${P}" ]; then
|
||||
echo 0
|
||||
return
|
||||
return 0
|
||||
fi
|
||||
echo 1
|
||||
return 1
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
@ -199,13 +199,21 @@ function _set_conf_kv() {
|
||||
# @ - url list
|
||||
function _get_fastest() {
|
||||
local speedlist=""
|
||||
for I in $@; do
|
||||
speed=$(ping -c 1 -W 5 ${I} 2>/dev/null | awk '/time=/ {print $7}' | cut -d '=' -f 2)
|
||||
speedlist+="${I} ${speed:-999}\n" # Assign default value 999 if speed is empty
|
||||
done
|
||||
if ! command -v ping >/dev/null 2>&1; then
|
||||
for I in $@; do
|
||||
speed=$(ping -c 1 -W 5 ${I} 2>/dev/null | awk -F'[= ]' '/time=/ {for(i=1;i<=NF;i++) if ($i=="time") print $(i+1)}')
|
||||
speedlist+="${I} ${speed:-999}\n" # Assign default value 999 if speed is empty
|
||||
done
|
||||
else
|
||||
for I in $@; do
|
||||
speed=$(curl -o /dev/null -s -w '%{time_total}' ${I})
|
||||
speed=$(awk "BEGIN {print (${speed:-0.999} * 1000)}")
|
||||
speedlist+="${I} ${speed:-999}\n" # Assign default value 999 if speed is empty
|
||||
done
|
||||
fi
|
||||
fastest="$(echo -e "${speedlist}" | tr -s '\n' | sort -k2n | head -1)"
|
||||
URL="$(echo "${fastest}" | awk '{print $1}')"
|
||||
SPD="$(echo "${fastest}" | awk '{print $2}')" # It is a float type
|
||||
SPD="$(echo "${fastest}" | awk '{print $2}')" # It is a float type
|
||||
echo "${URL}"
|
||||
[ $(printf "%.0f" ${SPD:-999}) -ge 999 ] && return 1 || return 0
|
||||
}
|
||||
@ -275,6 +283,7 @@ EOF
|
||||
done
|
||||
|
||||
rm -f ${TMP_PATH}/ethlist
|
||||
return 0
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
@ -289,6 +298,7 @@ function getBus() {
|
||||
# usb/scsi(sata/ide)/virtio(scsi/virtio)/mmc/nvme
|
||||
[ -z "${BUS}" ] && BUS=$(lsblk -dpno KNAME,SUBSYSTEMS 2>/dev/null | grep "${1} " | awk -F':' '{print $(NF-1)}' | sed 's/_host//') #Spaces are intentional
|
||||
echo "${BUS}"
|
||||
return 0
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
@ -304,6 +314,7 @@ function getIP() {
|
||||
[ -z "${IP}" ] && IP=$(ip addr show scope global 2>/dev/null | grep -E "inet .* eth" | awk '{print $2}' | cut -f1 -d'/' | head -1)
|
||||
fi
|
||||
echo "${IP}"
|
||||
return 0
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
@ -357,4 +368,5 @@ function connectwlanif() {
|
||||
rm -f /var/run/wpa_supplicant.pid.${1}
|
||||
fi
|
||||
wpa_supplicant -i ${1} -c "${CONF}" -B -P "/var/run/wpa_supplicant.pid.${1}" >/dev/null 2>&1
|
||||
return 0
|
||||
}
|
||||
|
@ -61,18 +61,20 @@ initConfigKey "addons.mountloader" "" "${USER_CONFIG_FILE}"
|
||||
initConfigKey "addons.reboottoloader" "" "${USER_CONFIG_FILE}"
|
||||
initConfigKey "modules" "{}" "${USER_CONFIG_FILE}"
|
||||
|
||||
# _sort_netif "$(readConfigKey "addons.sortnetif" "${USER_CONFIG_FILE}")"
|
||||
if [ ! "LOCALBUILD" = "${LOADER_DISK}" ]; then
|
||||
# _sort_netif "$(readConfigKey "addons.sortnetif" "${USER_CONFIG_FILE}")"
|
||||
|
||||
for ETH in ${ETHX}; do
|
||||
[ "${ETH::4}" = "wlan" ] && connectwlanif "${ETH}" && sleep 1
|
||||
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}
|
||||
sleep 1
|
||||
fi
|
||||
[ "${ETH::3}" = "eth" ] && ethtool -s ${ETH} wol g 2>/dev/null
|
||||
done
|
||||
for ETH in ${ETHX}; do
|
||||
[ "${ETH::4}" = "wlan" ] && connectwlanif "${ETH}" && sleep 1
|
||||
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}
|
||||
sleep 1
|
||||
fi
|
||||
[ "${ETH::3}" = "eth" ] && ethtool -s ${ETH} wol g 2>/dev/null || true
|
||||
done
|
||||
fi
|
||||
|
||||
# Get the VID/PID if we are in USB
|
||||
VID="0x46f4"
|
||||
@ -80,11 +82,12 @@ PID="0x0001"
|
||||
TYPE="DoM"
|
||||
BUS=$(getBus "${LOADER_DISK}")
|
||||
|
||||
BUSLIST="usb sata scsi nvme mmc"
|
||||
if [ "${BUS}" = "usb" ]; then
|
||||
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)"
|
||||
TYPE="flashdisk"
|
||||
elif [ "${BUS}" != "sata" -a "${BUS}" != "scsi" -a "${BUS}" != "nvme" -a "${BUS}" != "mmc" ]; then
|
||||
elif ! echo "${BUSLIST}" | grep -wq "${BUS}"; then
|
||||
if [ "LOCALBUILD" = "${LOADER_DISK}" ]; then
|
||||
echo "LOCALBUILD MODE"
|
||||
TYPE="PC"
|
||||
@ -187,7 +190,7 @@ echo -e "$(TEXT "Default SSH \033[1;31mroot\033[0m password is") \033[1;31mrr\03
|
||||
echo
|
||||
|
||||
DSMLOGO="$(readConfigKey "dsmlogo" "${USER_CONFIG_FILE}")"
|
||||
if [ "${DSMLOGO}" = "true" -a -c "/dev/fb0" ]; then
|
||||
if [ "${DSMLOGO}" = "true" -a -c "/dev/fb0" -a ! "LOCALBUILD" = "${LOADER_DISK}" ]; then
|
||||
IP="$(getIP)"
|
||||
[ -n "${IP}" ] && URL="http://${IP}:7681" || URL="http://rr:7681/"
|
||||
python ${WORK_PATH}/include/functions.py makeqr -d "${URL}" -l "0" -o "${TMP_PATH}/qrcode_init.png"
|
||||
@ -207,3 +210,5 @@ mkdir -p "${CKS_PATH}"
|
||||
mkdir -p "${LKMS_PATH}"
|
||||
mkdir -p "${ADDONS_PATH}"
|
||||
mkdir -p "${MODULES_PATH}"
|
||||
|
||||
exit 0
|
||||
|
@ -221,8 +221,8 @@ function modelMenu() {
|
||||
writeConfigKey "modules" "{}" "${USER_CONFIG_FILE}"
|
||||
writeConfigKey "kernel" "official" "${USER_CONFIG_FILE}"
|
||||
# Remove old files
|
||||
rm -f "${ORI_ZIMAGE_FILE}" "${ORI_RDGZ_FILE}" "${MOD_ZIMAGE_FILE}" "${MOD_RDGZ_FILE}" >/dev/null 2>&1
|
||||
rm -f "${PART1_PATH}/grub_cksum.syno" "${PART1_PATH}/GRUB_VER" "${PART2_PATH}/"* >/dev/null 2>&1
|
||||
rm -f "${ORI_ZIMAGE_FILE}" "${ORI_RDGZ_FILE}" "${MOD_ZIMAGE_FILE}" "${MOD_RDGZ_FILE}" >/dev/null 2>&1 || true
|
||||
rm -f "${PART1_PATH}/grub_cksum.syno" "${PART1_PATH}/GRUB_VER" "${PART2_PATH}/"* >/dev/null 2>&1 || true
|
||||
touch ${PART1_PATH}/.build
|
||||
fi
|
||||
return 0
|
||||
@ -362,8 +362,8 @@ function productversMenu() {
|
||||
writeConfigKey "modules.\"${ID}\"" "" "${USER_CONFIG_FILE}"
|
||||
done <<<$(getAllModules "${PLATFORM}" "$([ -n "${KPRE}" ] && echo "${KPRE}-")${KVER}")
|
||||
# Remove old files
|
||||
rm -f "${ORI_ZIMAGE_FILE}" "${ORI_RDGZ_FILE}" "${MOD_ZIMAGE_FILE}" "${MOD_RDGZ_FILE}" >/dev/null 2>&1
|
||||
rm -f "${PART1_PATH}/grub_cksum.syno" "${PART1_PATH}/GRUB_VER" "${PART2_PATH}/"* >/dev/null 2>&1
|
||||
rm -f "${ORI_ZIMAGE_FILE}" "${ORI_RDGZ_FILE}" "${MOD_ZIMAGE_FILE}" "${MOD_RDGZ_FILE}" >/dev/null 2>&1 || true
|
||||
rm -f "${PART1_PATH}/grub_cksum.syno" "${PART1_PATH}/GRUB_VER" "${PART2_PATH}/"* >/dev/null 2>&1 || true
|
||||
touch ${PART1_PATH}/.build
|
||||
return 0
|
||||
}
|
||||
@ -496,8 +496,8 @@ function ParsePat() {
|
||||
done <<<$(getAllModules "${PLATFORM}" "$([ -n "${KPRE}" ] && echo "${KPRE}-")${KVER}")
|
||||
|
||||
# Remove old files
|
||||
rm -f "${ORI_ZIMAGE_FILE}" "${ORI_RDGZ_FILE}" "${MOD_ZIMAGE_FILE}" "${MOD_RDGZ_FILE}" >/dev/null 2>&1
|
||||
rm -f "${PART1_PATH}/grub_cksum.syno" "${PART1_PATH}/GRUB_VER" "${PART2_PATH}/"* >/dev/null 2>&1
|
||||
rm -f "${ORI_ZIMAGE_FILE}" "${ORI_RDGZ_FILE}" "${MOD_ZIMAGE_FILE}" "${MOD_RDGZ_FILE}" >/dev/null 2>&1 || true
|
||||
rm -f "${PART1_PATH}/grub_cksum.syno" "${PART1_PATH}/GRUB_VER" "${PART2_PATH}/"* >/dev/null 2>&1 || true
|
||||
touch ${PART1_PATH}/.build
|
||||
break
|
||||
done 2>&1 | DIALOG --title "$(TEXT "Main menu")" \
|
||||
@ -953,7 +953,8 @@ function cmdlineMenu() {
|
||||
;;
|
||||
3) # extra-button
|
||||
sn=$(generateSerial "${MODEL}")
|
||||
MACS=($(generateMacAddress "${MODEL}" 2))
|
||||
NETIF_NUM=2
|
||||
MACS=($(generateMacAddress "${MODEL}" ${NETIF_NUM}))
|
||||
mac1=${MACS[0]}
|
||||
mac2=${MACS[1]}
|
||||
;;
|
||||
@ -1159,7 +1160,7 @@ function extractPatFiles() {
|
||||
fi
|
||||
# Uses the extractor to untar pat file
|
||||
echo "$(TEXT "Extracting ...")"
|
||||
LD_LIBRARY_PATH=${EXTRACTOR_PATH} "${EXTRACTOR_PATH}/${EXTRACTOR_BIN}" "${PAT_PATH}" "${EXT_PATH}" || true
|
||||
LD_LIBRARY_PATH=${EXTRACTOR_PATH} "${EXTRACTOR_PATH}/${EXTRACTOR_BIN}" "${PAT_PATH}" "${EXT_PATH}" >"${LOG_FILE}" 2>&1
|
||||
else
|
||||
echo "$(TEXT "Extracting ...")"
|
||||
tar -xf "${PAT_PATH}" -C "${EXT_PATH}" >"${LOG_FILE}" 2>&1
|
||||
@ -1289,7 +1290,7 @@ function make() {
|
||||
function __make() {
|
||||
if [ ! -f "${ORI_ZIMAGE_FILE}" -o ! -f "${ORI_RDGZ_FILE}" ]; then
|
||||
extractDsmFiles
|
||||
[ $? -ne 0 ] && break
|
||||
[ $? -ne 0 ] && return 1
|
||||
fi
|
||||
|
||||
while true; do
|
||||
@ -1325,11 +1326,15 @@ function make() {
|
||||
if [ ! "${1}" = "-1" ]; then
|
||||
__make 2>&1 | DIALOG --title "$(TEXT "Main menu")" \
|
||||
--progressbox "$(TEXT "Making ... ('ctrl + c' to exit)")" 20 100
|
||||
else
|
||||
__make
|
||||
fi
|
||||
if [ -f "${LOG_FILE}" ]; then
|
||||
if [ ! "${1}" = "-1" ]; then
|
||||
DIALOG --title "$(TEXT "Error")" \
|
||||
--msgbox "$(cat ${LOG_FILE})" 0 0
|
||||
else
|
||||
cat "${LOG_FILE}"
|
||||
fi
|
||||
rm -f "${LOG_FILE}"
|
||||
return 1
|
||||
@ -3205,12 +3210,17 @@ function updateMenu() {
|
||||
|
||||
###############################################################################
|
||||
function cleanCache() {
|
||||
(
|
||||
if [ ! "${1}" = "-1" ]; then
|
||||
(
|
||||
rm -rfv "${PART3_PATH}/dl/"*
|
||||
rm -rfv "${TMP_PATH}/"*
|
||||
) 2>&1 | DIALOG --title "$(TEXT "Main menu")" \
|
||||
--progressbox "$(TEXT "Cleaning cache ...")" 20 100
|
||||
else
|
||||
rm -rfv "${PART3_PATH}/dl/"*
|
||||
rm -rfv "${TMP_PATH}/"*
|
||||
) 2>&1 | DIALOG --title "$(TEXT "Main menu")" \
|
||||
--progressbox "$(TEXT "Cleaning cache ...")" 20 100
|
||||
return
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
@ -3344,8 +3354,7 @@ else
|
||||
NEXT="m"
|
||||
;;
|
||||
c)
|
||||
DIALOG \
|
||||
--prgbox "rm -rfv \"${PART3_PATH}/dl/\"*" 0 0
|
||||
cleanCache
|
||||
NEXT="d"
|
||||
;;
|
||||
p)
|
||||
|
@ -50,9 +50,19 @@ function init() {
|
||||
mkdir -p "/tmp/mnt/p1"
|
||||
mkdir -p "/tmp/mnt/p2"
|
||||
mkdir -p "/tmp/mnt/p3"
|
||||
sudo mount ${LOOPX}p1 "/tmp/mnt/p1"
|
||||
sudo mount ${LOOPX}p2 "/tmp/mnt/p2"
|
||||
sudo mount ${LOOPX}p3 "/tmp/mnt/p3"
|
||||
sudo mount ${LOOPX}p1 "/tmp/mnt/p1" || (
|
||||
echo -e "Can't mount ${LOOPX}p1."
|
||||
exit 1
|
||||
)
|
||||
|
||||
sudo mount ${LOOPX}p2 "/tmp/mnt/p2" || (
|
||||
echo -e "Can't mount ${LOOPX}p2."
|
||||
exit 1
|
||||
)
|
||||
sudo mount ${LOOPX}p3 "/tmp/mnt/p3" || (
|
||||
echo -e "Can't mount ${LOOPX}p3."
|
||||
exit 1
|
||||
)
|
||||
|
||||
echo "Create WORKSPACE"
|
||||
rm -rf "${WORKSPACE}"
|
||||
@ -75,6 +85,11 @@ function init() {
|
||||
rm -rf "/tmp/mnt/p3"
|
||||
sudo losetup --detach ${LOOPX}
|
||||
|
||||
if [ ! -f "${WORKSPACE}/initrd/opt/rr/init.sh" ] || ! [ -f "${WORKSPACE}/initrd/opt/rr/menu.sh" ]; then
|
||||
echo "initrd decompression failed."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
rm -f $(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)/rr.env
|
||||
echo "export LOADER_DISK=\"LOCALBUILD\"" >>$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)/rr.env
|
||||
echo "export CHROOT_PATH=\"${WORKSPACE}\"" >>$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)/rr.env
|
||||
@ -91,16 +106,24 @@ function config() {
|
||||
pushd "${CHROOT_PATH}/initrd/opt/rr"
|
||||
while true; do
|
||||
if [ -z "${1}" ]; then
|
||||
echo "init"
|
||||
./init.sh || break
|
||||
echo "menu"
|
||||
./menu.sh || break
|
||||
else
|
||||
echo "init"
|
||||
./init.sh || break
|
||||
echo "model"
|
||||
./menu.sh modelMenu "${1}" || break
|
||||
echo "version"
|
||||
./menu.sh productversMenu "7.2" || break
|
||||
echo "build"
|
||||
./menu.sh make -1 || break
|
||||
./menu.sh cleanCache || break
|
||||
echo "clean"
|
||||
./menu.sh cleanCache -1 || break
|
||||
RET=0
|
||||
fi
|
||||
break
|
||||
done
|
||||
popd
|
||||
[ ${RET} -ne 0 ] && echo "Failed." || echo "Success."
|
||||
@ -130,9 +153,18 @@ function pack() {
|
||||
mkdir -p "/tmp/mnt/p1"
|
||||
mkdir -p "/tmp/mnt/p2"
|
||||
mkdir -p "/tmp/mnt/p3"
|
||||
sudo mount ${LOOPX}p1 "/tmp/mnt/p1"
|
||||
sudo mount ${LOOPX}p2 "/tmp/mnt/p2"
|
||||
sudo mount ${LOOPX}p3 "/tmp/mnt/p3"
|
||||
sudo mount ${LOOPX}p1 "/tmp/mnt/p1" || (
|
||||
echo -e "Can't mount ${LOOPX}p1."
|
||||
exit 1
|
||||
)
|
||||
sudo mount ${LOOPX}p2 "/tmp/mnt/p2" || (
|
||||
echo -e "Can't mount ${LOOPX}p1."
|
||||
exit 1
|
||||
)
|
||||
sudo mount ${LOOPX}p3 "/tmp/mnt/p3" || (
|
||||
echo -e "Can't mount ${LOOPX}p1."
|
||||
exit 1
|
||||
)
|
||||
|
||||
echo "Pack image file"
|
||||
cp -af "${CHROOT_PATH}/mnt/p1/.locale" "/tmp/mnt/p1" 2>/dev/null
|
||||
|
Loading…
x
Reference in New Issue
Block a user