mirror of
https://github.com/RROrg/rr.git
synced 2025-08-21 20:17:11 +08:00
Compare commits
12 Commits
b315109838
...
6b1801f467
Author | SHA1 | Date | |
---|---|---|---|
|
6b1801f467 | ||
|
3ca821fc5b | ||
|
a30843853e | ||
|
2f238a6e79 | ||
|
961bdd8ce0 | ||
|
47b887989b | ||
|
8146948263 | ||
|
6a9bf08298 | ||
|
d49e27cf72 | ||
|
9d54bcf0bb | ||
|
0a681563eb | ||
|
bcd2d9f7b4 |
60
.github/workflows/issues.yml
vendored
60
.github/workflows/issues.yml
vendored
@ -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
|
BIN
docs/addons.xlsx
BIN
docs/addons.xlsx
Binary file not shown.
@ -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]"
|
||||||
|
BIN
docs/models.xlsx
BIN
docs/models.xlsx
Binary file not shown.
@ -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.
@ -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
|
||||||
|
@ -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}"
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
;;
|
;;
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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]...
|
||||||
|
@ -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
|
||||||
|
@ -1 +1 @@
|
|||||||
24.6.7
|
24.6.9
|
||||||
|
@ -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)
|
||||||
|
@ -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"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user