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 }} issue-number: ${{ github.event.issue.number }}
body: | body: |
Hi @${{ github.event.issue.user.login }}. 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 }} > ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
---- ----
emoji: heart emoji: heart
@ -233,25 +233,22 @@ jobs:
if [ "${{ env.format }}" = "ova" ]; then if [ "${{ env.format }}" = "ova" ]; then
. scripts/func.sh "${{ secrets.RRORG }}" . scripts/func.sh "${{ secrets.RRORG }}"
convertova "rr/rr.img" "rr/rr.ova" convertova "rr/rr.img" "rr/rr.ova"
ARTIFACTS="rr-${MODEL}-${TAG}-${{ github.run_id }}.ova.zip"
(cd rr; sha256sum rr.ova >../sha256sum) (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 else
ARTIFACTS="rr-${MODEL}-${TAG}-${{ github.run_id }}.img.zip"
(cd rr; sha256sum rr.img >../sha256sum) (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 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 "TAG=${TAG}" >> $GITHUB_ENV
echo "EMAIL=${EMAIL}" >> $GITHUB_ENV
echo "DLURL=${DLURL}" >> $GITHUB_ENV
- name: Upload to Artifacts - name: Upload to Artifacts
if: env.iscustom == 'true' && success() if: env.iscustom == 'true' && success()
@ -262,22 +259,8 @@ jobs:
rr-${{ env.model }}-${{ env.TAG }}*.zip rr-${{ env.model }}-${{ env.TAG }}*.zip
retention-days: 5 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 - name: Update Comment Success
if: env.iscustom == 'true' && success() && env.EMAIL != 'null' if: env.iscustom == 'true' && success()
uses: actions-cool/issues-helper@v3 uses: actions-cool/issues-helper@v3
with: with:
actions: 'update-comment' actions: 'update-comment'
@ -286,22 +269,7 @@ jobs:
update-mode: replace update-mode: replace
body: | body: |
Hi @${{ github.event.issue.user.login }}. Hi @${{ github.event.issue.user.login }}.
RR-${{ env.model }} has been sent to your email. 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
- 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 }}
> ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} > ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
---- ----
emoji: hooray emoji: hooray
@ -324,7 +292,7 @@ jobs:
update-mode: replace update-mode: replace
body: | body: |
Hi @${{ github.event.issue.user.login }}. 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 }} > ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
---- ----
emoji: confused emoji: confused

View File

@ -1 +1 @@
24.6.7 24.6.9

Binary file not shown.

View File

@ -208,6 +208,7 @@
</script> </script>
<title>RR-CUSTOM</title> <title>RR-CUSTOM</title>
<link rel="icon" href="https://avatars.githubusercontent.com/u/151816514?s=200&v=4">
</head> </head>
<body class="logged-in env-production page-responsive" style="word-wrap: break-word"> <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="flex-auto min-width-0 width-fit mr-3">
<div class="d-flex flex-wrap flex-items-center wb-break-word f3 text-normal"> <div class="d-flex flex-wrap flex-items-center wb-break-word f3 text-normal">
<a id="titleA" href="https://github.com/RROrg/rr"> <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 Release"
<img alt="GitHub Issues" src="https://img.shields.io/github/issues-closed-raw/rrorg/rr/custom?style=flat-square&label=custom"> 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> </a>
</div> </div>
<div class="btn-link tabnav-tab preview-tab js-preview-tab flex-1 flex-md-auto width-full"> <div class="btn-link tabnav-tab preview-tab js-preview-tab flex-1 flex-md-auto width-full">
@ -263,6 +266,8 @@
value=""> value="">
<option selected="selected" value="img">img</option> <option selected="selected" value="img">img</option>
<option value="ova">ova</option> <option value="ova">ova</option>
<option value="vmdk">vmdk</option>
<option value="vhdx">vhdx</option>
</select> </select>
</div> </div>
</div> </div>
@ -316,6 +321,7 @@
<div class="form-group mt-1 mb-2 "> <div class="form-group mt-1 mb-2 ">
<div class="form-group-header"> <div class="form-group-header">
<label class="color-fg-default text-mono f6">Addons:</label> <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>
<div class="form-group-body"> <div class="form-group-body">
<textarea class="textarea-style input-contrast input-sm" type="text" id="addons" name="inputs[addons]" <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 mt-1 mb-2 ">
<div class="form-group-header"> <div class="form-group-header">
<label class="color-fg-default text-mono f6">Modules:</label> <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>
<div class="form-group-body"> <div class="form-group-body">
<textarea class="textarea-style input-contrast input-sm" type="text" id="modules" name="inputs[modules]" <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", "description": "ACPI Processor P-States Driver",
"depends": "processor" "depends": "processor"
}, },
"acpi_call": {
"description": "ACPI method caller (Compiled by RR for DSM)",
"depends": ""
},
"adm1021": { "adm1021": {
"description": "adm1021 driver", "description": "adm1021 driver",
"depends": "" "depends": ""
@ -3030,6 +3034,10 @@
"description": "ACPI Processor P-States Driver", "description": "ACPI Processor P-States Driver",
"depends": "processor" "depends": "processor"
}, },
"acpi_call": {
"description": "ACPI method caller (Compiled by RR for DSM)",
"depends": ""
},
"adm1021": { "adm1021": {
"description": "adm1021 driver", "description": "adm1021 driver",
"depends": "" "depends": ""
@ -5030,6 +5038,10 @@
"description": "ACPI Processor P-States Driver", "description": "ACPI Processor P-States Driver",
"depends": "processor" "depends": "processor"
}, },
"acpi_call": {
"description": "ACPI method caller (Compiled by RR for DSM)",
"depends": ""
},
"adm1021": { "adm1021": {
"description": "adm1021 driver", "description": "adm1021 driver",
"depends": "" "depends": ""
@ -7030,6 +7042,10 @@
"description": "ACPI Processor P-States Driver", "description": "ACPI Processor P-States Driver",
"depends": "processor" "depends": "processor"
}, },
"acpi_call": {
"description": "ACPI method caller (Compiled by RR for DSM)",
"depends": ""
},
"adm1021": { "adm1021": {
"description": "adm1021 driver", "description": "adm1021 driver",
"depends": "" "depends": ""
@ -9034,6 +9050,10 @@
"description": "ACPI Processor P-States Driver", "description": "ACPI Processor P-States Driver",
"depends": "processor" "depends": "processor"
}, },
"acpi_call": {
"description": "ACPI method caller (Compiled by RR for DSM)",
"depends": ""
},
"adm1021": { "adm1021": {
"description": "adm1021 driver", "description": "adm1021 driver",
"depends": "" "depends": ""
@ -11038,6 +11058,10 @@
"description": "ACPI Processor P-States Driver", "description": "ACPI Processor P-States Driver",
"depends": "processor" "depends": "processor"
}, },
"acpi_call": {
"description": "ACPI method caller (Compiled by RR for DSM)",
"depends": ""
},
"adm1021": { "adm1021": {
"description": "adm1021 driver", "description": "adm1021 driver",
"depends": "" "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)", "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": "" "depends": ""
}, },
"acpi_call": {
"description": "ACPI method caller (Compiled by RR for DSM)",
"depends": ""
},
"adm1021": { "adm1021": {
"description": "adm1021 driver", "description": "adm1021 driver",
"depends": "" "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)", "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": "" "depends": ""
}, },
"acpi_call": {
"description": "ACPI method caller (Compiled by RR for DSM)",
"depends": ""
},
"adm1021": { "adm1021": {
"description": "adm1021 driver", "description": "adm1021 driver",
"depends": "" "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)", "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": "" "depends": ""
}, },
"acpi_call": {
"description": "ACPI method caller (Compiled by RR for DSM)",
"depends": ""
},
"adm1021": { "adm1021": {
"description": "adm1021 driver", "description": "adm1021 driver",
"depends": "" "depends": ""
@ -17475,6 +17511,10 @@
"description": "ACPI Processor P-States Driver", "description": "ACPI Processor P-States Driver",
"depends": "processor" "depends": "processor"
}, },
"acpi_call": {
"description": "ACPI method caller (Compiled by RR for DSM)",
"depends": ""
},
"adm1021": { "adm1021": {
"description": "adm1021 driver", "description": "adm1021 driver",
"depends": "" "depends": ""
@ -19483,6 +19523,10 @@
"description": "ACPI Processor P-States Driver", "description": "ACPI Processor P-States Driver",
"depends": "processor" "depends": "processor"
}, },
"acpi_call": {
"description": "ACPI method caller (Compiled by RR for DSM)",
"depends": ""
},
"adm1021": { "adm1021": {
"description": "adm1021 driver", "description": "adm1021 driver",
"depends": "" "depends": ""
@ -21503,6 +21547,10 @@
"description": "ACPI Processor P-States Driver", "description": "ACPI Processor P-States Driver",
"depends": "processor" "depends": "processor"
}, },
"acpi_call": {
"description": "ACPI method caller (Compiled by RR for DSM)",
"depends": ""
},
"adm1021": { "adm1021": {
"description": "adm1021 driver", "description": "adm1021 driver",
"depends": "" "depends": ""

Binary file not shown.

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1 +1 @@
24.6.7 24.6.9

View File

@ -34,7 +34,7 @@ function create() {
fi fi
sudo apt update 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 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) YQ=$(command -v yq)

View File

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