fix something

This commit is contained in:
Ing 2024-03-31 01:52:06 +08:00
parent d1a498a421
commit 208e8a791b
5 changed files with 129 additions and 53 deletions

View File

@ -121,7 +121,7 @@ jobs:
- name: Run Build
if: env.iscustom == 'true'
run: |
# 累了, 毁灭吧
# 累了, 毁灭吧!
REPO=${{ github.server_url }}/${{ github.repository }}
MODEL=${{ env.model }}
@ -146,10 +146,28 @@ jobs:
export TERM=xterm
sudo ./localbuild.sh init rr rr/rr.img
sudo ./localbuild.sh config ${MODEL}
sudo ./localbuild.sh pack 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

View File

@ -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
}

View File

@ -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

View File

@ -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)

View File

@ -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