Compare commits

...

12 Commits

Author SHA1 Message Date
github-actions[bot]
6b1801f467 update 2024-06-30 10:37:31 2024-06-30 10:37:31 +08:00
github-actions[bot]
3ca821fc5b update 2024-06-30 10:06:23 2024-06-30 10:06:23 +08:00
Ing
a30843853e fix something 2024-06-30 09:59:33 +08:00
Ing
2f238a6e79 add SIZE TYPE to formatDisks 2024-06-29 01:39:31 +08:00
Ing
961bdd8ce0 fix something 2024-06-28 13:26:46 +08:00
github-actions[bot]
47b887989b update 2024-06-28 03:52:25 2024-06-28 03:52:25 +08:00
github-actions[bot]
8146948263 update 2024-06-28 03:40:32 2024-06-28 03:40:32 +08:00
Ing
6a9bf08298 add vmdk,vhdx 2024-06-28 02:57:10 +08:00
Ing
d49e27cf72 fix something 2024-06-28 01:31:25 +08:00
Ing
9d54bcf0bb fix something 2024-06-28 00:23:35 +08:00
Ing
0a681563eb fix issues html 2024-06-26 21:52:33 +08:00
Ing
bcd2d9f7b4 fix something 2024-06-26 16:14:50 +08:00
19 changed files with 166 additions and 142 deletions

View File

@ -130,7 +130,7 @@ jobs:
issue-number: ${{ github.event.issue.number }}
body: |
Hi @${{ github.event.issue.user.login }}.
RR-${{ env.model }} is being build and package and will be sent to your email later..
RR-${{ env.model }} building ...
> ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
----
emoji: heart
@ -233,25 +233,22 @@ jobs:
if [ "${{ env.format }}" = "ova" ]; then
. scripts/func.sh "${{ secrets.RRORG }}"
convertova "rr/rr.img" "rr/rr.ova"
ARTIFACTS="rr-${MODEL}-${TAG}-${{ github.run_id }}.ova.zip"
(cd rr; sha256sum rr.ova >../sha256sum)
zip -9 "${ARTIFACTS}" -j rr/rr.ova sha256sum
zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.ova.zip" -j rr/rr.ova sha256sum
elif [ "${{ env.format }}" = "vmdk" ]; then
qemu-img convert rr/rr.img -O vmdk -o 'adapter_type=lsilogic,subformat=streamOptimized,compat6' rr/rr.vmdk
(cd rr; sha256sum rr.vmdk >../sha256sum)
zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.vmdk.zip" -j rr/rr.vmdk sha256sum
elif [ "${{ env.format }}" = "vhdx" ]; then
qemu-img convert rr/rr.img -O vhdx -o subformat=dynamic rr/rr.vhdx
(cd rr; sha256sum rr.vhdx >../sha256sum)
zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.vhdx.zip" -j rr/rr.vhdx sha256sum
else
ARTIFACTS="rr-${MODEL}-${TAG}-${{ github.run_id }}.img.zip"
(cd rr; sha256sum rr.img >../sha256sum)
zip -9 "${ARTIFACTS}" -j rr/rr.img sha256sum
zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.img.zip" -j rr/rr.img sha256sum
fi
# UPLOAD="$(curl -k -F "file=@${ARTIFACTS}" -F "token=${{ secrets.TT_TOKEN }}" -F "model=0" -X POST "https://tmp-cli.vx-cdn.com/app/upload_cli")"
if echo "${UPLOAD}" | grep -q "Download Page"; then
DLURL="$(echo "${UPLOAD}" | grep "Download Page" | head -1)"
else
DLURL="${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} - Actions artifacts."
fi
EMAIL=$(curl -s -H "Authorization: token ${{ secrets.ACTION }}" "https://api.github.com/users/${{ github.event.issue.user.login }}" | jq -r '.email')
echo "TAG=${TAG}" >> $GITHUB_ENV
echo "EMAIL=${EMAIL}" >> $GITHUB_ENV
echo "DLURL=${DLURL}" >> $GITHUB_ENV
- name: Upload to Artifacts
if: env.iscustom == 'true' && success()
@ -262,22 +259,8 @@ jobs:
rr-${{ env.model }}-${{ env.TAG }}*.zip
retention-days: 5
- name: Send mail
if: env.iscustom == 'true' && success() && env.EMAIL != 'null'
uses: dawidd6/action-send-mail@v3
with:
server_address: smtp-mail.outlook.com
server_port: 587
username: ${{ secrets.MAIL_USERNAME }}
password: ${{ secrets.MAIL_PASSWORD }}
subject: rr-${{ env.model }}-${{ env.TAG }}
to: ${{ env.EMAIL }}
from: ${{ secrets.MAIL_USERNAME }}
body: |
${{ env.DLURL }}
- name: Update Comment Success
if: env.iscustom == 'true' && success() && env.EMAIL != 'null'
if: env.iscustom == 'true' && success()
uses: actions-cool/issues-helper@v3
with:
actions: 'update-comment'
@ -286,22 +269,7 @@ jobs:
update-mode: replace
body: |
Hi @${{ github.event.issue.user.login }}.
RR-${{ env.model }} has been sent to your email.
> ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
----
emoji: hooray
- name: Update Comment Success
if: env.iscustom == 'true' && success() && env.EMAIL == 'null'
uses: actions-cool/issues-helper@v3
with:
actions: 'update-comment'
token: ${{ secrets.GITHUB_TOKEN }}
comment-id: ${{ steps.comment.outputs.comment-id }}
update-mode: replace
body: |
Hi @${{ github.event.issue.user.login }}.
${{ env.DLURL }}
RR-${{ env.model }} build success, please download the attachment from the below link.
> ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
----
emoji: hooray
@ -324,7 +292,7 @@ jobs:
update-mode: replace
body: |
Hi @${{ github.event.issue.user.login }}.
RR-${{ env.model }} failed to build and package, please try again.
RR-${{ env.model }} build failed, please try again.
> ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
----
emoji: confused

View File

@ -1 +1 @@
24.6.7
24.6.9

Binary file not shown.

View File

@ -208,6 +208,7 @@
</script>
<title>RR-CUSTOM</title>
<link rel="icon" href="https://avatars.githubusercontent.com/u/151816514?s=200&v=4">
</head>
<body class="logged-in env-production page-responsive" style="word-wrap: break-word">
@ -235,8 +236,10 @@
<div class="flex-auto min-width-0 width-fit mr-3">
<div class="d-flex flex-wrap flex-items-center wb-break-word f3 text-normal">
<a id="titleA" href="https://github.com/RROrg/rr">
<img alt="GitHub Release" src="https://img.shields.io/github/v/release/rrorg/rr?include_prereleases&style=flat-square&label=current">
<img alt="GitHub Issues" src="https://img.shields.io/github/issues-closed-raw/rrorg/rr/custom?style=flat-square&label=custom">
<img alt="GitHub Release"
src="https://img.shields.io/github/v/release/rrorg/rr?include_prereleases&style=flat-square&label=current">
<img alt="GitHub Issues"
src="https://img.shields.io/github/issues-closed-raw/rrorg/rr/custom?style=flat-square&label=custom">
</a>
</div>
<div class="btn-link tabnav-tab preview-tab js-preview-tab flex-1 flex-md-auto width-full">
@ -263,6 +266,8 @@
value="">
<option selected="selected" value="img">img</option>
<option value="ova">ova</option>
<option value="vmdk">vmdk</option>
<option value="vhdx">vhdx</option>
</select>
</div>
</div>
@ -316,6 +321,7 @@
<div class="form-group mt-1 mb-2 ">
<div class="form-group-header">
<label class="color-fg-default text-mono f6">Addons:</label>
<a href="https://github.com/RROrg/rr/raw/main/docs/addons.xlsx"> Details</a>
</div>
<div class="form-group-body">
<textarea class="textarea-style input-contrast input-sm" type="text" id="addons" name="inputs[addons]"
@ -327,6 +333,7 @@
<div class="form-group mt-1 mb-2 ">
<div class="form-group-header">
<label class="color-fg-default text-mono f6">Modules:</label>
<a href="https://github.com/RROrg/rr/raw/main/docs/modules.xlsx"> Details</a>
</div>
<div class="form-group-body">
<textarea class="textarea-style input-contrast input-sm" type="text" id="modules" name="inputs[modules]"

Binary file not shown.

View File

@ -974,6 +974,10 @@
"description": "ACPI Processor P-States Driver",
"depends": "processor"
},
"acpi_call": {
"description": "ACPI method caller (Compiled by RR for DSM)",
"depends": ""
},
"adm1021": {
"description": "adm1021 driver",
"depends": ""
@ -3030,6 +3034,10 @@
"description": "ACPI Processor P-States Driver",
"depends": "processor"
},
"acpi_call": {
"description": "ACPI method caller (Compiled by RR for DSM)",
"depends": ""
},
"adm1021": {
"description": "adm1021 driver",
"depends": ""
@ -5030,6 +5038,10 @@
"description": "ACPI Processor P-States Driver",
"depends": "processor"
},
"acpi_call": {
"description": "ACPI method caller (Compiled by RR for DSM)",
"depends": ""
},
"adm1021": {
"description": "adm1021 driver",
"depends": ""
@ -7030,6 +7042,10 @@
"description": "ACPI Processor P-States Driver",
"depends": "processor"
},
"acpi_call": {
"description": "ACPI method caller (Compiled by RR for DSM)",
"depends": ""
},
"adm1021": {
"description": "adm1021 driver",
"depends": ""
@ -9034,6 +9050,10 @@
"description": "ACPI Processor P-States Driver",
"depends": "processor"
},
"acpi_call": {
"description": "ACPI method caller (Compiled by RR for DSM)",
"depends": ""
},
"adm1021": {
"description": "adm1021 driver",
"depends": ""
@ -11038,6 +11058,10 @@
"description": "ACPI Processor P-States Driver",
"depends": "processor"
},
"acpi_call": {
"description": "ACPI method caller (Compiled by RR for DSM)",
"depends": ""
},
"adm1021": {
"description": "adm1021 driver",
"depends": ""
@ -12136,6 +12160,10 @@
"description": "Dell PERC2, 2/Si, 3/Si, 3/Di, Adaptec Advanced Raid Products, HP NetRAID-4M, IBM ServeRAID & ICP SCSI driver (Compiled by RR for DSM)",
"depends": ""
},
"acpi_call": {
"description": "ACPI method caller (Compiled by RR for DSM)",
"depends": ""
},
"adm1021": {
"description": "adm1021 driver",
"depends": ""
@ -13310,6 +13338,10 @@
"description": "Dell PERC2, 2/Si, 3/Si, 3/Di, Adaptec Advanced Raid Products, HP NetRAID-4M, IBM ServeRAID & ICP SCSI driver (Compiled by RR for DSM)",
"depends": ""
},
"acpi_call": {
"description": "ACPI method caller (Compiled by RR for DSM)",
"depends": ""
},
"adm1021": {
"description": "adm1021 driver",
"depends": ""
@ -15435,6 +15467,10 @@
"description": "Dell PERC2, 2/Si, 3/Si, 3/Di, Adaptec Advanced Raid Products, HP NetRAID-4M, IBM ServeRAID & ICP SCSI driver (Compiled by RR for DSM)",
"depends": ""
},
"acpi_call": {
"description": "ACPI method caller (Compiled by RR for DSM)",
"depends": ""
},
"adm1021": {
"description": "adm1021 driver",
"depends": ""
@ -17475,6 +17511,10 @@
"description": "ACPI Processor P-States Driver",
"depends": "processor"
},
"acpi_call": {
"description": "ACPI method caller (Compiled by RR for DSM)",
"depends": ""
},
"adm1021": {
"description": "adm1021 driver",
"depends": ""
@ -19483,6 +19523,10 @@
"description": "ACPI Processor P-States Driver",
"depends": "processor"
},
"acpi_call": {
"description": "ACPI method caller (Compiled by RR for DSM)",
"depends": ""
},
"adm1021": {
"description": "adm1021 driver",
"depends": ""
@ -21503,6 +21547,10 @@
"description": "ACPI Processor P-States Driver",
"depends": "processor"
},
"acpi_call": {
"description": "ACPI method caller (Compiled by RR for DSM)",
"depends": ""
},
"adm1021": {
"description": "adm1021 driver",
"depends": ""

Binary file not shown.

View File

@ -119,8 +119,8 @@ else
CMDLINE['noefi']=""
fi
DT="$(readConfigKey "platforms.${PLATFORM}.dt" "${WORK_PATH}/platforms.yml")"
KVER="$(readConfigKey "platforms.${PLATFORM}.productvers.[${PRODUCTVER}].kver" "${WORK_PATH}/platforms.yml")"
KPRE="$(readConfigKey "platforms.${PLATFORM}.productvers.[${PRODUCTVER}].kpre" "${WORK_PATH}/platforms.yml")"
KVER="$(readConfigKey "platforms.${PLATFORM}.productvers.\"${PRODUCTVER}\".kver" "${WORK_PATH}/platforms.yml")"
KPRE="$(readConfigKey "platforms.${PLATFORM}.productvers.\"${PRODUCTVER}\".kpre" "${WORK_PATH}/platforms.yml")"
if [ $(echo "${KVER:-4}" | cut -d'.' -f1) -lt 5 ]; then
if [ ! "${BUS}" = "usb" ]; then
SZ=$(blockdev --getsz ${LOADER_DISK} 2>/dev/null) # SZ=$(cat /sys/block/${LOADER_DISK/\/dev\//}/size)
@ -162,6 +162,10 @@ if [ "${DT}" = "true" ] && ! echo "epyc7002 purley broadwellnkv2" | grep -wq "${
[ ! "${CMDLINE['modprobe.blacklist']}" = "" ] && CMDLINE['modprobe.blacklist']+=","
CMDLINE['modprobe.blacklist']+="mpt3sas"
fi
if true; then
[ ! "${CMDLINE['modprobe.blacklist']}" = "" ] && CMDLINE['modprobe.blacklist']+=","
CMDLINE['modprobe.blacklist']+="evbug"
fi
if echo "apollolake geminilake" | grep -wq "${PLATFORM}"; then
CMDLINE["intel_iommu"]="igfx_off"
fi
@ -169,6 +173,16 @@ if echo "purley broadwellnkv2" | grep -wq "${PLATFORM}"; then
CMDLINE["SASmodel"]="1"
fi
if echo "apollolake geminilake purley" | grep -wq "${PLATFORM}"; then
if grep -q "^flags.*x2apic.*" /proc/cpuinfo; then
eval $(grep -o "RR_CMDLINE=.*$" "${USER_GRUB_CONFIG}")
[ -z "${RR_CMDLINE}" ] && RR_CMDLINE="bzImage-rr"
echo "${RR_CMDLINE}" | grep -q 'nox2apic' || sed -i "s|${RR_CMDLINE}|${RR_CMDLINE} nox2apic|" "${USER_GRUB_CONFIG}"
fi
else
grep -q ' nox2apic' "${USER_GRUB_CONFIG}" && sed -i "s| nox2apic||" "${USER_GRUB_CONFIG}"
fi
while IFS=': ' read KEY VALUE; do
[ -n "${KEY}" ] && CMDLINE["network.${KEY}"]="${VALUE}"
done <<<$(readConfigMap "network" "${USER_CONFIG_FILE}")
@ -217,6 +231,9 @@ else
echo -n "."
sleep 1
done
[ ! -f /var/run/dhcpcd/pid ] && /etc/init.d/S41dhcpcd restart >/dev/null 2>&1 || true
echo "$(TEXT "Waiting IP.")"
for N in ${ETHX}; do
COUNT=0

View File

@ -1,4 +1,4 @@
RR_VERSION="24.6.7"
RR_VERSION="24.6.9"
RR_RELEASE=""
RR_TITLE="RR v${RR_VERSION}"

View File

@ -218,60 +218,35 @@ function _sort_netif() {
BUS="$(ethtool -i ${ETH} 2>/dev/null | grep bus-info | cut -d' ' -f2)"
ETHLIST="${ETHLIST}${BUS} ${MAC} ${ETH}\n"
done
ETHLISTTMPM=""
ETHLISTTMPB="$(echo -e "${ETHLIST}" | sort)"
if [ -n "${1}" ]; then
MACS="$(echo "${1}" | sed 's/://g' | tr '[:upper:]' '[:lower:]' | tr ',' ' ')"
ETHLISTTMPC=""
ETHLISTTMPF=""
for MACX in ${MACS}; do
ETHLISTTMPC="${ETHLISTTMPC}$(echo -e "${ETHLIST}" | grep "${MACX}")\n"
ETHLISTTMPM="${ETHLISTTMPM}$(echo -e "${ETHLISTTMPB}" | grep "${MACX}")\n"
ETHLISTTMPB="$(echo -e "${ETHLISTTMPB}" | grep -v "${MACX}")\n"
done
while read -r BUS MAC ETH; do
[ -z "${MAC}" ] && continue
if echo "${MACS}" | grep -q "${MAC}"; then continue; fi
ETHLISTTMPF="${ETHLISTTMPF}${BUS} ${MAC} ${ETH}\n"
done <<EOF
$(echo -e ${ETHLIST} | sort)
EOF
ETHLIST="${ETHLISTTMPC}${ETHLISTTMPF}"
else
ETHLIST="$(echo -e "${ETHLIST}" | sort)"
fi
ETHLIST="$(echo -e "${ETHLIST}" | grep -v '^$')"
echo -e "${ETHLIST}" >${TMP_PATH}/ethlist
# cat ${TMP_PATH}/ethlist
ETHLIST="$(echo -e "${ETHLISTTMPM}${ETHLISTTMPB}" | grep -v '^$')"
ETHSEQ="$(echo -e "${ETHLIST}" | awk '{print $3}' | sed 's/eth//g')"
ETHNUM="$(echo -e "${ETHLIST}" | wc -l)"
# echo "${ETHSEQ}"
# sort
IDX=0
while true; do
# cat ${TMP_PATH}/ethlist
[ ${IDX} -ge $(wc -l <${TMP_PATH}/ethlist) ] && break
ETH="$(cat ${TMP_PATH}/ethlist | sed -n "$((${IDX} + 1))p" | cut -d' ' -f3)"
# echo "ETH: ${ETH}"
if [ -n "${ETH}" ] && [ ! "${ETH}" = "eth${IDX}" ]; then
# echo "change ${ETH} <=> eth${IDX}"
ip link set dev eth${IDX} down
ip link set dev ${ETH} down
sleep 1
ip link set dev eth${IDX} name ethN
ip link set dev ${ETH} name eth${IDX}
ip link set dev ethN name ${ETH}
sleep 1
ip link set dev eth${IDX} up
ip link set dev ${ETH} up
sleep 1
sed -i "s/eth${IDX}/ethN/" ${TMP_PATH}/ethlist
sed -i "s/${ETH}/eth${IDX}/" ${TMP_PATH}/ethlist
sed -i "s/ethN/${ETH}/" ${TMP_PATH}/ethlist
sleep 1
fi
IDX=$((${IDX} + 1))
done
rm -f ${TMP_PATH}/ethlist
if [ ! "${ETHSEQ}" = "$(seq 0 $((${ETHNUM:0} - 1)))" ]; then
/etc/init.d/S41dhcpcd stop >/dev/null 2>&1
/etc/init.d/S40network stop >/dev/null 2>&1
for i in $(seq 0 $((${ETHNUM:0} - 1))); do
ip link set dev eth${i} name tmp${i}
done
I=0
for i in ${ETHSEQ}; do
ip link set dev tmp${i} name eth${I}
I=$((${I} + 1))
done
/etc/init.d/S40network start >/dev/null 2>&1
/etc/init.d/S41dhcpcd start >/dev/null 2>&1
fi
return 0
}
@ -280,12 +255,14 @@ EOF
# 1 - device path
function getBus() {
BUS=""
# xvd
[ -z "${BUS}" ] && BUS=$(lsblk -dpno KNAME,SUBSYSTEMS 2>/dev/null | grep "${1} " | grep -q "xen" && echo "xen")
# usb/ata(sata/ide)/scsi
[ -z "${BUS}" ] && BUS=$(udevadm info --query property --name "${1}" 2>/dev/null | grep ID_BUS | cut -d= -f2 | sed 's/ata/sata/')
# usb/sata(sata/ide)/nvme
[ -z "${BUS}" ] && BUS=$(lsblk -dpno KNAME,TRAN 2>/dev/null | grep "${1} " | awk '{print $2}') #Spaces are intentional
# 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
[ -z "${BUS}" ] && BUS=$(lsblk -dpno KNAME,SUBSYSTEMS 2>/dev/null | grep "${1} " | awk '{print $2}' | awk -F':' '{print $(NF-1)}' | sed 's/_host//') # Spaces are intentional
echo "${BUS}"
return 0
}
@ -312,7 +289,7 @@ function getIP() {
function getLogo() {
MODEL="${1}"
rm -f "${PART3_PATH}/logo.png"
fastest=$(_get_fastest "www.synology.com" "www.synology.cn")
fastest="www.synology.com" # $(_get_fastest "www.synology.com" "www.synology.cn")
if [ $? -ne 0 ]; then
return 1
fi

View File

@ -79,7 +79,6 @@ fi
if [ ! "LOCALBUILD" = "${LOADER_DISK}" ]; then
if arrayExistItem "sortnetif:" $(readConfigMap "addons" "${USER_CONFIG_FILE}"); then
_sort_netif "$(readConfigKey "addons.sortnetif" "${USER_CONFIG_FILE}")"
/etc/init.d/S41dhcpcd restart
fi
for ETH in ${ETHX}; do
[ "${ETH::4}" = "wlan" ] && connectwlanif "${ETH}" && sleep 1
@ -108,7 +107,7 @@ PID="0x0001"
TYPE="DoM"
BUS=$(getBus "${LOADER_DISK}")
BUSLIST="usb sata scsi nvme mmc"
BUSLIST="usb sata scsi nvme mmc xen"
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)"
@ -118,7 +117,7 @@ elif ! echo "${BUSLIST}" | grep -wq "${BUS}"; then
echo "LOCALBUILD MODE"
TYPE="PC"
else
die "$(TEXT "Loader disk neither USB or SATA/SCSI/NVME/MMC DoM")"
die "$(TEXT "Loader disk neither USB or SATA/SCSI/NVME/MMC/XEN DoM")"
fi
fi
@ -173,6 +172,9 @@ while [ ${COUNT} -lt 30 ]; do
echo -n "."
sleep 1
done
[ ! -f /var/run/dhcpcd/pid ] && /etc/init.d/S41dhcpcd restart >/dev/null 2>&1 || true
echo "$(TEXT "Waiting IP.")"
for N in ${ETHX}; do
COUNT=0

View File

@ -167,7 +167,7 @@ function modelMenu() {
# If user change model, clean build* and pat* and SN
if [ "${MODEL}" != "${resp}" ]; then
PLATFORM="$(grep -w "${resp}" "${TMP_PATH}/modellist" | awk '{print $2}' | head -n 1)"
MODEL=${resp}
MODEL="${resp}"
writeConfigKey "platform" "${PLATFORM}" "${USER_CONFIG_FILE}"
writeConfigKey "model" "${MODEL}" "${USER_CONFIG_FILE}"
MODELID=""
@ -180,7 +180,7 @@ function modelMenu() {
writeConfigKey "smallnum" "${SMALLNUM}" "${USER_CONFIG_FILE}"
writeConfigKey "paturl" "" "${USER_CONFIG_FILE}"
writeConfigKey "patsum" "" "${USER_CONFIG_FILE}"
SN=$(generateSerial "${MODEL}")
SN="$(generateSerial "${MODEL}")"
writeConfigKey "sn" "${SN}" "${USER_CONFIG_FILE}"
NETIF_NUM=2
MACS=($(generateMacAddress "${MODEL}" ${NETIF_NUM}))
@ -329,8 +329,8 @@ function productversMenu() {
writeConfigKey "synoinfo.\"${KEY}\"" "${VALUE}" "${USER_CONFIG_FILE}"
done <<<$(readConfigMap "platforms.${PLATFORM}.synoinfo" "${WORK_PATH}/platforms.yml")
# Check addons
KVER="$(readConfigKey "platforms.${PLATFORM}.productvers.[${PRODUCTVER}].kver" "${WORK_PATH}/platforms.yml")"
KPRE="$(readConfigKey "platforms.${PLATFORM}.productvers.[${PRODUCTVER}].kpre" "${WORK_PATH}/platforms.yml")"
KVER="$(readConfigKey "platforms.${PLATFORM}.productvers.\"${PRODUCTVER}\".kver" "${WORK_PATH}/platforms.yml")"
KPRE="$(readConfigKey "platforms.${PLATFORM}.productvers.\"${PRODUCTVER}\".kpre" "${WORK_PATH}/platforms.yml")"
while IFS=': ' read ADDON PARAM; do
[ -z "${ADDON}" ] && continue
if ! checkAddonExist "${ADDON}" "${PLATFORM}" "$([ -n "${KPRE}" ] && echo "${KPRE}-")${KVER}"; then
@ -369,12 +369,12 @@ function setConfigFromDSM() {
PS="$(readConfigEntriesArray "platforms" "${WORK_PATH}/platforms.yml" | sort)"
VS="$(readConfigEntriesArray "platforms.${PLATFORMTMP,,}.productvers" "${WORK_PATH}/platforms.yml" | sort -r)"
if arrayExistItem "${PLATFORMTMP,,}" ${PS} && arrayExistItem "${majorversion}.${minorversion}" ${VS}; then
PLATFORM=${PLATFORMTMP,,}
MODEL=$(echo ${MODELTMP} | sed 's/d$/D/; s/rp$/RP/; s/rp+/RP+/')
MODELID=${MODELTMP}
PRODUCTVER=${majorversion}.${minorversion}
BUILDNUM=${buildnumber}
SMALLNUM=${smallfixnumber}
PLATFORM="${PLATFORMTMP,,}"
MODEL="$(echo ${MODELTMP} | sed 's/d$/D/; s/rp$/RP/; s/rp+/RP+/')"
MODELID="${MODELTMP}"
PRODUCTVER="${majorversion}.${minorversion}"
BUILDNUM="${buildnumber}"
SMALLNUM="${smallfixnumber}"
else
echo "$(printf "$(TEXT "Currently, %s is not supported.")" "${MODELTMP}-${majorversion}.${minorversion}")" >"${LOG_FILE}"
return 1
@ -385,7 +385,7 @@ function setConfigFromDSM() {
writeConfigKey "platform" "${PLATFORM}" "${USER_CONFIG_FILE}"
writeConfigKey "model" "${MODEL}" "${USER_CONFIG_FILE}"
writeConfigKey "modelid" "${MODELID}" "${USER_CONFIG_FILE}"
SN=$(generateSerial "${MODEL}")
SN="$(generateSerial "${MODEL}")"
writeConfigKey "sn" "${SN}" "${USER_CONFIG_FILE}"
NETIF_NUM=2
MACS=($(generateMacAddress "${MODEL}" ${NETIF_NUM}))
@ -407,8 +407,8 @@ function setConfigFromDSM() {
done <<<$(readConfigMap "platforms.${PLATFORM}.synoinfo" "${WORK_PATH}/platforms.yml")
# Check addons
KVER="$(readConfigKey "platforms.${PLATFORM}.productvers.[${PRODUCTVER}].kver" "${WORK_PATH}/platforms.yml")"
KPRE="$(readConfigKey "platforms.${PLATFORM}.productvers.[${PRODUCTVER}].kpre" "${WORK_PATH}/platforms.yml")"
KVER="$(readConfigKey "platforms.${PLATFORM}.productvers.\"${PRODUCTVER}\".kver" "${WORK_PATH}/platforms.yml")"
KPRE="$(readConfigKey "platforms.${PLATFORM}.productvers.\"${PRODUCTVER}\".kpre" "${WORK_PATH}/platforms.yml")"
while IFS=': ' read ADDON PARAM; do
[ -z "${ADDON}" ] && continue
if ! checkAddonExist "${ADDON}" "${PLATFORM}" "$([ -n "${KPRE}" ] && echo "${KPRE}-")${KVER}"; then
@ -516,8 +516,8 @@ function ParsePat() {
# Manage addons
function addonMenu() {
# Read 'platform' and kernel version to check if addon exists
KVER="$(readConfigKey "platforms.${PLATFORM}.productvers.[${PRODUCTVER}].kver" "${WORK_PATH}/platforms.yml")"
KPRE="$(readConfigKey "platforms.${PLATFORM}.productvers.[${PRODUCTVER}].kpre" "${WORK_PATH}/platforms.yml")"
KVER="$(readConfigKey "platforms.${PLATFORM}.productvers.\"${PRODUCTVER}\".kver" "${WORK_PATH}/platforms.yml")"
KPRE="$(readConfigKey "platforms.${PLATFORM}.productvers.\"${PRODUCTVER}\".kpre" "${WORK_PATH}/platforms.yml")"
NEXT="a"
# Loop menu
@ -654,8 +654,8 @@ function addonMenu() {
###############################################################################
function moduleMenu() {
KVER="$(readConfigKey "platforms.${PLATFORM}.productvers.[${PRODUCTVER}].kver" "${WORK_PATH}/platforms.yml")"
KPRE="$(readConfigKey "platforms.${PLATFORM}.productvers.[${PRODUCTVER}].kpre" "${WORK_PATH}/platforms.yml")"
KVER="$(readConfigKey "platforms.${PLATFORM}.productvers.\"${PRODUCTVER}\".kver" "${WORK_PATH}/platforms.yml")"
KPRE="$(readConfigKey "platforms.${PLATFORM}.productvers.\"${PRODUCTVER}\".kpre" "${WORK_PATH}/platforms.yml")"
NEXT="c"
# loop menu
while true; do
@ -1686,13 +1686,13 @@ function showDisksInfo() {
# Format disk
function formatDisks() {
rm -f "${TMP_PATH}/opts"
while read KNAME ID PKNAME; do
while read KNAME ID SIZE TYPE PKNAME; do
[ -z "${KNAME}" ] && continue
[[ "${KNAME}" = /dev/md* ]] && continue
[ "${KNAME}" = "${LOADER_DISK}" -o "${PKNAME}" = "${LOADER_DISK}" ] && continue
[ -z "${ID}" ] && ID="Unknown"
echo "\"${KNAME}\" \"${ID}\" \"off\"" >>"${TMP_PATH}/opts"
done <<<$(lsblk -pno KNAME,ID,PKNAME)
printf "\"%s\" \"%-6s %-4s %s\" \"off\"\n" "${KNAME}" "${SIZE}" "${TYPE}" "${ID}" >>"${TMP_PATH}/opts"
done <<<$(lsblk -pno KNAME,ID,SIZE,TYPE,PKNAME)
if [ ! -f "${TMP_PATH}/opts" ]; then
DIALOG --title "$(TEXT "Advanced")" \
--msgbox "$(TEXT "No disk found!")" 0 0
@ -1797,7 +1797,7 @@ function tryRecoveryDSM() {
fi
if [ -f "${TMP_PATH}/mdX/etc/synoinfo.conf" ]; then
R_SN=$(_get_conf_kv SN "${TMP_PATH}/mdX/etc/synoinfo.conf")
R_SN="$(_get_conf_kv SN "${TMP_PATH}/mdX/etc/synoinfo.conf")"
[ -n "${R_SN}" ] && SN=${R_SN} && writeConfigKey "sn" "${SN}" "${USER_CONFIG_FILE}"
fi
@ -2910,8 +2910,8 @@ function updateRR() {
cp -Rf "${TMP_PATH}/update/${VALUE}"/* "${VALUE}"
if [ "$(realpath "${VALUE}")" = "$(realpath "${MODULES_PATH}")" ]; then
if [ -n "${MODEL}" -a -n "${PRODUCTVER}" ]; then
KVER="$(readConfigKey "platforms.${PLATFORM}.productvers.[${PRODUCTVER}].kver" "${WORK_PATH}/platforms.yml")"
KPRE="$(readConfigKey "platforms.${PLATFORM}.productvers.[${PRODUCTVER}].kpre" "${WORK_PATH}/platforms.yml")"
KVER="$(readConfigKey "platforms.${PLATFORM}.productvers.\"${PRODUCTVER}\".kver" "${WORK_PATH}/platforms.yml")"
KPRE="$(readConfigKey "platforms.${PLATFORM}.productvers.\"${PRODUCTVER}\".kpre" "${WORK_PATH}/platforms.yml")"
if [ -n "${PLATFORM}" -a -n "${KVER}" ]; then
writeConfigKey "modules" "{}" "${USER_CONFIG_FILE}"
while read ID DESC; do
@ -3044,8 +3044,8 @@ function updateModules() {
rm -rf "${MODULES_PATH}/"*
cp -rf "${TMP_PATH}/update/"* "${MODULES_PATH}/"
if [ -n "${MODEL}" -a -n "${PRODUCTVER}" ]; then
KVER="$(readConfigKey "platforms.${PLATFORM}.productvers.[${PRODUCTVER}].kver" "${WORK_PATH}/platforms.yml")"
KPRE="$(readConfigKey "platforms.${PLATFORM}.productvers.[${PRODUCTVER}].kpre" "${WORK_PATH}/platforms.yml")"
KVER="$(readConfigKey "platforms.${PLATFORM}.productvers.\"${PRODUCTVER}\".kver" "${WORK_PATH}/platforms.yml")"
KPRE="$(readConfigKey "platforms.${PLATFORM}.productvers.\"${PRODUCTVER}\".kpre" "${WORK_PATH}/platforms.yml")"
if [ -n "${PLATFORM}" -a -n "${KVER}" ]; then
writeConfigKey "modules" "{}" "${USER_CONFIG_FILE}"
while read ID DESC; do
@ -3166,8 +3166,8 @@ function updateCKs() {
rm -rf "${CKS_PATH}/"*
cp -rf "${TMP_PATH}/update/"* "${CKS_PATH}/"
if [ -n "${MODEL}" -a -n "${PRODUCTVER}" -a "${KERNEL}" = "custom" ]; then
KVER="$(readConfigKey "platforms.${PLATFORM}.productvers.[${PRODUCTVER}].kver" "${WORK_PATH}/platforms.yml")"
KPRE="$(readConfigKey "platforms.${PLATFORM}.productvers.[${PRODUCTVER}].kpre" "${WORK_PATH}/platforms.yml")"
KVER="$(readConfigKey "platforms.${PLATFORM}.productvers.\"${PRODUCTVER}\".kver" "${WORK_PATH}/platforms.yml")"
KPRE="$(readConfigKey "platforms.${PLATFORM}.productvers.\"${PRODUCTVER}\".kpre" "${WORK_PATH}/platforms.yml")"
if [ -n "${PLATFORM}" -a -n "${KVER}" ]; then
writeConfigKey "modules" "{}" "${USER_CONFIG_FILE}"
while read ID DESC; do
@ -3394,8 +3394,8 @@ else
fi
echo "u \"$(TEXT "Parse pat")\"" >>"${TMP_PATH}/menu"
if [ -n "${PRODUCTVER}" ]; then
KVER="$(readConfigKey "platforms.${PLATFORM}.productvers.[${PRODUCTVER}].kver" "${WORK_PATH}/platforms.yml")"
KPRE="$(readConfigKey "platforms.${PLATFORM}.productvers.[${PRODUCTVER}].kpre" "${WORK_PATH}/platforms.yml")"
KVER="$(readConfigKey "platforms.${PLATFORM}.productvers.\"${PRODUCTVER}\".kver" "${WORK_PATH}/platforms.yml")"
KPRE="$(readConfigKey "platforms.${PLATFORM}.productvers.\"${PRODUCTVER}\".kpre" "${WORK_PATH}/platforms.yml")"
if [ -f "${CKS_PATH}/bzImage-${PLATFORM}-$([ -n "${KPRE}" ] && echo "${KPRE}-")${KVER}.gz" ] &&
[ -f "${CKS_PATH}/modules-${PLATFORM}-$([ -n "${KPRE}" ] && echo "${KPRE}-")${KVER}.tgz" ]; then
echo "s \"$(TEXT "Kernel:") \Z4${KERNEL}\Zn\"" >>"${TMP_PATH}/menu"
@ -3559,7 +3559,7 @@ else
b)
DIALOG --title "$(TEXT "Main menu")" \
--infobox "$(TEXT "Reboot to BIOS")" 0 0
efibootmgr -n 0000
efibootmgr -n 0000 >/dev/null 2>&1
reboot
exit 0
;;

View File

@ -12,6 +12,9 @@ N kvm-intel.ko
N kvm-amd.ko
N kvm.ko
# acpi
N acpi_call.ko
# sensors
N coretemp.ko
N k10temp.ko

View File

@ -72,8 +72,8 @@ writeConfigKey "smallnum" "${SMALLNUM}" "${USER_CONFIG_FILE}"
echo -n "."
# Read model data
KVER="$(readConfigKey "platforms.${PLATFORM}.productvers.[${PRODUCTVER}].kver" "${WORK_PATH}/platforms.yml")"
KPRE="$(readConfigKey "platforms.${PLATFORM}.productvers.[${PRODUCTVER}].kpre" "${WORK_PATH}/platforms.yml")"
KVER="$(readConfigKey "platforms.${PLATFORM}.productvers.\"${PRODUCTVER}\".kver" "${WORK_PATH}/platforms.yml")"
KPRE="$(readConfigKey "platforms.${PLATFORM}.productvers.\"${PRODUCTVER}\".kpre" "${WORK_PATH}/platforms.yml")"
# Sanity check
if [ -z "${PLATFORM}" -o -z "${KVER}" ]; then

View File

@ -7,8 +7,8 @@
PLATFORM="$(readConfigKey "platform" "${USER_CONFIG_FILE}")"
PRODUCTVER="$(readConfigKey "productver" "${USER_CONFIG_FILE}")"
KVER="$(readConfigKey "platforms.${PLATFORM}.productvers.[${PRODUCTVER}].kver" "${WORK_PATH}/platforms.yml")"
KPRE="$(readConfigKey "platforms.${PLATFORM}.productvers.[${PRODUCTVER}].kpre" "${WORK_PATH}/platforms.yml")"
KVER="$(readConfigKey "platforms.${PLATFORM}.productvers.\"${PRODUCTVER}\".kver" "${WORK_PATH}/platforms.yml")"
KPRE="$(readConfigKey "platforms.${PLATFORM}.productvers.\"${PRODUCTVER}\".kpre" "${WORK_PATH}/platforms.yml")"
# Adapted from: scripts/Makefile.lib
# Usage: size_append FILE [FILE2] [FILEn]...

View File

@ -21,8 +21,8 @@ if [ "${KERNEL}" = "custom" ]; then
echo -n "."
PLATFORM="$(readConfigKey "platform" "${USER_CONFIG_FILE}")"
PRODUCTVER="$(readConfigKey "productver" "${USER_CONFIG_FILE}")"
KVER="$(readConfigKey "platforms.${PLATFORM}.productvers.[${PRODUCTVER}].kver" "${WORK_PATH}/platforms.yml")"
KPRE="$(readConfigKey "platforms.${PLATFORM}.productvers.[${PRODUCTVER}].kpre" "${WORK_PATH}/platforms.yml")"
KVER="$(readConfigKey "platforms.${PLATFORM}.productvers.\"${PRODUCTVER}\".kver" "${WORK_PATH}/platforms.yml")"
KPRE="$(readConfigKey "platforms.${PLATFORM}.productvers.\"${PRODUCTVER}\".kpre" "${WORK_PATH}/platforms.yml")"
# Extract bzImage
gzip -dc "${CKS_PATH}/bzImage-${PLATFORM}-$([ -n "${KPRE}" ] && echo "${KPRE}-")${KVER}.gz" >"${MOD_ZIMAGE_FILE}"
else

View File

@ -1 +1 @@
24.6.7
24.6.9

View File

@ -34,7 +34,7 @@ function create() {
fi
sudo apt update
sudo apt install -y locales busybox dialog curl xz-utils cpio sed
sudo apt install -y locales busybox dialog curl xz-utils cpio sed qemu-utils
sudo locale-gen ar_SA.UTF-8 de_DE.UTF-8 en_US.UTF-8 es_ES.UTF-8 fr_FR.UTF-8 ja_JP.UTF-8 ko_KR.UTF-8 ru_RU.UTF-8 th_TH.UTF-8 tr_TR.UTF-8 uk_UA.UTF-8 vi_VN.UTF-8 zh_CN.UTF-8 zh_HK.UTF-8 zh_TW.UTF-8
YQ=$(command -v yq)

View File

@ -373,6 +373,8 @@ extendedConfigFile = "${VMNAME}.vmxf"
floppy0.present = "FALSE"
ethernet0.addressType = "generated"
ethernet0.virtualDev = "vmxnet3"
ethernet0.connectionType = "nat"
ethernet0.allowguestconnectioncontrol = "true"
ethernet0.present = "TRUE"
sata0.present = "TRUE"
sata0:0.fileName = "${VMNAME}-disk1.vmdk"