mirror of
https://github.com/fbelavenuto/arpl.git
synced 2026-01-03 23:22:05 +08:00
Compare commits
31 Commits
v1.0-beta7
...
v1.0-beta9
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f7e6573703 | ||
|
|
811a6c6dde | ||
|
|
a954e10ae4 | ||
|
|
f5978543aa | ||
|
|
a261f827b4 | ||
|
|
d7bc78bd59 | ||
|
|
a30a131c65 | ||
|
|
60ea3e7ba2 | ||
|
|
87c351c111 | ||
|
|
17a35c1dc7 | ||
|
|
6e3ae602bc | ||
|
|
2edab6d5dd | ||
|
|
39522773e5 | ||
|
|
8a36f91e90 | ||
|
|
5ef0c6bdcf | ||
|
|
094ad9c715 | ||
|
|
3010935eda | ||
|
|
e74366f17c | ||
|
|
9e2644c293 | ||
|
|
66ff2e6ace | ||
|
|
04935c7a14 | ||
|
|
0ba4c0332f | ||
|
|
d194e501a8 | ||
|
|
e5ee612511 | ||
|
|
2c6f55070d | ||
|
|
a03716086b | ||
|
|
1abd0fa4b7 | ||
|
|
c3dbe8fce7 | ||
|
|
9d0eb20e8a | ||
|
|
dfe345fe76 | ||
|
|
26a6f25428 |
9
.github/workflows/main.yml
vendored
9
.github/workflows/main.yml
vendored
@@ -74,6 +74,15 @@ jobs:
|
|||||||
echo "Extracting ${PKG} to ${DEST_PATH}/${ADDON}"
|
echo "Extracting ${PKG} to ${DEST_PATH}/${ADDON}"
|
||||||
tar xaf "${PKG}" -C "${DEST_PATH}/${ADDON}"
|
tar xaf "${PKG}" -C "${DEST_PATH}/${ADDON}"
|
||||||
done
|
done
|
||||||
|
# Get latest modules
|
||||||
|
echo "Getting latest modules"
|
||||||
|
MODULES_DIR="files/board/arpl/p3/modules"
|
||||||
|
TAG=`curl -s https://api.github.com/repos/fbelavenuto/arpl-modules/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}'`
|
||||||
|
while read PLATFORM KVER; do
|
||||||
|
FILE="${PLATFORM}-${KVER}"
|
||||||
|
curl -L "https://github.com/fbelavenuto/arpl-modules/releases/download/${TAG}/${FILE}.tgz" -o "${MODULES_DIR}/${FILE}.tgz"
|
||||||
|
done < PLATFORMS
|
||||||
|
curl -L "https://github.com/fbelavenuto/arpl-modules/releases/download/${TAG}/firmware.tgz" -o "${MODULES_DIR}/firmware.tgz"
|
||||||
# Copy files
|
# Copy files
|
||||||
echo "Copying files"
|
echo "Copying files"
|
||||||
sed 's/^ARPL_VERSION=.*/ARPL_VERSION="'${VERSION}'"/' -i files/board/arpl/overlayfs/opt/arpl/include/consts.sh
|
sed 's/^ARPL_VERSION=.*/ARPL_VERSION="'${VERSION}'"/' -i files/board/arpl/overlayfs/opt/arpl/include/consts.sh
|
||||||
|
|||||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -9,3 +9,6 @@ docker/syno-compiler/Dockerfile
|
|||||||
cache
|
cache
|
||||||
*.bak
|
*.bak
|
||||||
*.o
|
*.o
|
||||||
|
/files/board/arpl/p3/addons
|
||||||
|
/files/board/arpl/p3/lkms
|
||||||
|
/files/board/arpl/p3/modules
|
||||||
|
|||||||
@@ -150,9 +150,9 @@ echo -e "\033[1;37mLoading DSM kernel...\033[0m"
|
|||||||
# Executes DSM kernel via KEXEC
|
# Executes DSM kernel via KEXEC
|
||||||
if [ "${EFI_BUG}" = "yes" -a ${EFI} -eq 1 ]; then
|
if [ "${EFI_BUG}" = "yes" -a ${EFI} -eq 1 ]; then
|
||||||
echo -e "\033[1;33mWarning, running kexec with --noefi param, strange things will happen!!\033[0m"
|
echo -e "\033[1;33mWarning, running kexec with --noefi param, strange things will happen!!\033[0m"
|
||||||
kexec --noefi -l "${MOD_ZIMAGE_FILE}" --initrd "${MOD_RDGZ_FILE}" --command-line="${CMDLINE_LINE}" >"${LOG_FILE}" 2>&1 || dieLog
|
kexec --args-linux --noefi -l "${MOD_ZIMAGE_FILE}" --initrd "${MOD_RDGZ_FILE}" --command-line="${CMDLINE_LINE}" >"${LOG_FILE}" 2>&1 || dieLog
|
||||||
else
|
else
|
||||||
kexec -l "${MOD_ZIMAGE_FILE}" --initrd "${MOD_RDGZ_FILE}" --command-line="${CMDLINE_LINE}" >"${LOG_FILE}" 2>&1 || dieLog
|
kexec --args-linux -l "${MOD_ZIMAGE_FILE}" --initrd "${MOD_RDGZ_FILE}" --command-line="${CMDLINE_LINE}" >"${LOG_FILE}" 2>&1 || dieLog
|
||||||
fi
|
fi
|
||||||
/sbin/swapoff -a >/dev/null 2>&1 || true
|
/sbin/swapoff -a >/dev/null 2>&1 || true
|
||||||
/bin/umount -a -r >/dev/null 2>&1 || true
|
/bin/umount -a -r >/dev/null 2>&1 || true
|
||||||
|
|||||||
BIN
files/board/arpl/overlayfs/opt/arpl/bzImage-template-v5.gz
Normal file
BIN
files/board/arpl/overlayfs/opt/arpl/bzImage-template-v5.gz
Normal file
Binary file not shown.
@@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
ARPL_VERSION="1.0-beta7"
|
ARPL_VERSION="1.0-beta9"
|
||||||
|
|
||||||
# Define paths
|
# Define paths
|
||||||
TMP_PATH="/tmp"
|
TMP_PATH="/tmp"
|
||||||
|
|||||||
@@ -147,6 +147,14 @@ function arrayExistItem() {
|
|||||||
return ${EXISTS}
|
return ${EXISTS}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Get values in .conf K=V file
|
||||||
|
# 1 - key
|
||||||
|
# 2 - file
|
||||||
|
function _get_conf_kv() {
|
||||||
|
grep "${1}" "${2}" | sed "s|^${1}=\"\(.*\)\"$|\1|g"
|
||||||
|
}
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Replace/remove/add values in .conf K=V file
|
# Replace/remove/add values in .conf K=V file
|
||||||
# 1 - name
|
# 1 - name
|
||||||
@@ -168,3 +176,18 @@ function _set_conf_kv() {
|
|||||||
# Add if doesn't exist
|
# Add if doesn't exist
|
||||||
echo "$1=\"$2\"" >> $3
|
echo "$1=\"$2\"" >> $3
|
||||||
}
|
}
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Find and mount the DSM root filesystem
|
||||||
|
# (based on pocopico's TCRP code)
|
||||||
|
function findAndMountDSMRoot() {
|
||||||
|
[ $(mount | grep -i "${DSMROOT_PATH}" | wc -l) -gt 0 ] && return 0
|
||||||
|
dsmrootdisk="$(blkid /dev/sd* | grep -i raid | awk '{print $1 " " $4}' | grep UUID | grep sd[a-z]1 | head -1 | awk -F ":" '{print $1}')"
|
||||||
|
[ -z "${dsmrootdisk}" ] && return -1
|
||||||
|
[ $(mount | grep -i "${DSMROOT_PATH}" | wc -l) -eq 0 ] && mount -t ext4 $dsmrootdisk "${DSMROOT_PATH}"
|
||||||
|
if [ $(mount | grep -i "${DSMROOT_PATH}" | wc -l) -eq 0 ]; then
|
||||||
|
echo "Failed to mount"
|
||||||
|
return -1
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ fsck.ext2 -p ${LOADER_DISK}3 >/dev/null 2>&1 || true
|
|||||||
mkdir -p ${BOOTLOADER_PATH}
|
mkdir -p ${BOOTLOADER_PATH}
|
||||||
mkdir -p ${SLPART_PATH}
|
mkdir -p ${SLPART_PATH}
|
||||||
mkdir -p ${CACHE_PATH}
|
mkdir -p ${CACHE_PATH}
|
||||||
|
mkdir -p ${DSMROOT_PATH}
|
||||||
# Mount the partitions
|
# Mount the partitions
|
||||||
mount ${LOADER_DISK}1 ${BOOTLOADER_PATH} || die "Can't mount ${BOOTLOADER_PATH}"
|
mount ${LOADER_DISK}1 ${BOOTLOADER_PATH} || die "Can't mount ${BOOTLOADER_PATH}"
|
||||||
mount ${LOADER_DISK}2 ${SLPART_PATH} || die "Can't mount ${SLPART_PATH}"
|
mount ${LOADER_DISK}2 ${SLPART_PATH} || die "Can't mount ${SLPART_PATH}"
|
||||||
|
|||||||
Binary file not shown.
@@ -61,74 +61,83 @@ function backtitle() {
|
|||||||
###############################################################################
|
###############################################################################
|
||||||
# Shows available models to user choose one
|
# Shows available models to user choose one
|
||||||
function modelMenu() {
|
function modelMenu() {
|
||||||
RESTRICT=1
|
if [ -z "${1}" ]; then
|
||||||
FLGBETA=0
|
RESTRICT=1
|
||||||
dialog --backtitle "`backtitle`" --title "Model" --aspect 18 \
|
FLGBETA=0
|
||||||
--infobox "Reading models" 0 0
|
dialog --backtitle "`backtitle`" --title "Model" --aspect 18 \
|
||||||
while true; do
|
--infobox "Reading models" 0 0
|
||||||
echo "" > "${TMP_PATH}/menu"
|
while true; do
|
||||||
FLGNEX=0
|
echo "" > "${TMP_PATH}/menu"
|
||||||
while read M; do
|
FLGNEX=0
|
||||||
M="`basename ${M}`"
|
while read M; do
|
||||||
M="${M::-4}"
|
M="`basename ${M}`"
|
||||||
PLATFORM=`readModelKey "${M}" "platform"`
|
M="${M::-4}"
|
||||||
DT="`readModelKey "${M}" "dt"`"
|
PLATFORM=`readModelKey "${M}" "platform"`
|
||||||
BETA="`readModelKey "${M}" "beta"`"
|
DT="`readModelKey "${M}" "dt"`"
|
||||||
[ "${BETA}" = "true" -a ${FLGBETA} -eq 0 ] && continue
|
BETA="`readModelKey "${M}" "beta"`"
|
||||||
# Check id model is compatible with CPU
|
[ "${BETA}" = "true" -a ${FLGBETA} -eq 0 ] && continue
|
||||||
COMPATIBLE=1
|
# Check id model is compatible with CPU
|
||||||
if [ ${RESTRICT} -eq 1 ]; then
|
COMPATIBLE=1
|
||||||
for F in `readModelArray "${M}" "flags"`; do
|
if [ ${RESTRICT} -eq 1 ]; then
|
||||||
if ! grep -q "^flags.*${F}.*" /proc/cpuinfo; then
|
for F in `readModelArray "${M}" "flags"`; do
|
||||||
COMPATIBLE=0
|
if ! grep -q "^flags.*${F}.*" /proc/cpuinfo; then
|
||||||
FLGNEX=1
|
COMPATIBLE=0
|
||||||
break
|
FLGNEX=1
|
||||||
fi
|
break
|
||||||
done
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
[ "${DT}" = "true" ] && DT="-DT" || DT=""
|
||||||
|
[ ${COMPATIBLE} -eq 1 ] && echo "${M} \"\Zb${PLATFORM}${DT}\Zn\" " >> "${TMP_PATH}/menu"
|
||||||
|
done < <(find "${MODEL_CONFIG_PATH}" -maxdepth 1 -name \*.yml | sort)
|
||||||
|
[ ${FLGNEX} -eq 1 ] && echo "f \"\Z1Disable flags restriction\Zn\"" >> "${TMP_PATH}/menu"
|
||||||
|
[ ${FLGBETA} -eq 0 ] && echo "b \"\Z1Show beta models\Zn\"" >> "${TMP_PATH}/menu"
|
||||||
|
dialog --backtitle "`backtitle`" --colors --menu "Choose the model" 0 0 0 \
|
||||||
|
--file "${TMP_PATH}/menu" 2>${TMP_PATH}/resp
|
||||||
|
[ $? -ne 0 ] && return
|
||||||
|
resp=$(<${TMP_PATH}/resp)
|
||||||
|
[ -z "${resp}" ] && return
|
||||||
|
if [ "${resp}" = "f" ]; then
|
||||||
|
RESTRICT=0
|
||||||
|
continue
|
||||||
fi
|
fi
|
||||||
[ "${DT}" = "true" ] && DT="-DT" || DT=""
|
if [ "${resp}" = "b" ]; then
|
||||||
[ ${COMPATIBLE} -eq 1 ] && echo "${M} \"\Zb${PLATFORM}${DT}\Zn\" " >> "${TMP_PATH}/menu"
|
FLGBETA=1
|
||||||
done < <(find "${MODEL_CONFIG_PATH}" -maxdepth 1 -name \*.yml | sort)
|
continue
|
||||||
[ ${FLGNEX} -eq 1 ] && echo "f \"\Z1Disable flags restriction\Zn\"" >> "${TMP_PATH}/menu"
|
fi
|
||||||
[ ${FLGBETA} -eq 0 ] && echo "b \"\Z1Show beta models\Zn\"" >> "${TMP_PATH}/menu"
|
break
|
||||||
dialog --backtitle "`backtitle`" --colors --menu "Choose the model" 0 0 0 \
|
done
|
||||||
--file "${TMP_PATH}/menu" 2>${TMP_PATH}/resp
|
else
|
||||||
[ $? -ne 0 ] && return
|
resp="${1}"
|
||||||
resp=$(<${TMP_PATH}/resp)
|
fi
|
||||||
[ -z "${resp}" ] && return
|
# If user change model, clean buildnumber and S/N
|
||||||
if [ "${resp}" = "f" ]; then
|
if [ "${MODEL}" != "${resp}" ]; then
|
||||||
RESTRICT=0
|
MODEL=${resp}
|
||||||
continue
|
writeConfigKey "model" "${MODEL}" "${USER_CONFIG_FILE}"
|
||||||
fi
|
BUILD=""
|
||||||
if [ "${resp}" = "b" ]; then
|
writeConfigKey "build" "${BUILD}" "${USER_CONFIG_FILE}"
|
||||||
FLGBETA=1
|
SN=""
|
||||||
continue
|
writeConfigKey "sn" "${SN}" "${USER_CONFIG_FILE}"
|
||||||
fi
|
# Delete old files
|
||||||
# If user change model, clean buildnumber and S/N
|
rm -f "${ORI_ZIMAGE_FILE}" "${ORI_RDGZ_FILE}" "${MOD_ZIMAGE_FILE}" "${MOD_RDGZ_FILE}"
|
||||||
if [ "${MODEL}" != "${resp}" ]; then
|
DIRTY=1
|
||||||
MODEL=${resp}
|
fi
|
||||||
writeConfigKey "model" "${MODEL}" "${USER_CONFIG_FILE}"
|
|
||||||
BUILD=""
|
|
||||||
writeConfigKey "build" "${BUILD}" "${USER_CONFIG_FILE}"
|
|
||||||
SN=""
|
|
||||||
writeConfigKey "sn" "${SN}" "${USER_CONFIG_FILE}"
|
|
||||||
# Delete old files
|
|
||||||
rm -f "${ORI_ZIMAGE_FILE}" "${ORI_RDGZ_FILE}" "${MOD_ZIMAGE_FILE}" "${MOD_RDGZ_FILE}"
|
|
||||||
DIRTY=1
|
|
||||||
fi
|
|
||||||
break
|
|
||||||
done
|
|
||||||
}
|
}
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Shows available buildnumbers from a model to user choose one
|
# Shows available buildnumbers from a model to user choose one
|
||||||
function buildMenu() {
|
function buildMenu() {
|
||||||
ITEMS="`readConfigEntriesArray "builds" "${MODEL_CONFIG_PATH}/${MODEL}.yml" | sort -r`"
|
ITEMS="`readConfigEntriesArray "builds" "${MODEL_CONFIG_PATH}/${MODEL}.yml" | sort -r`"
|
||||||
dialog --clear --no-items --backtitle "`backtitle`" \
|
if [ -z "${1}" ]; then
|
||||||
--menu "Choose a build number" 0 0 0 ${ITEMS} 2>${TMP_PATH}/resp
|
dialog --clear --no-items --backtitle "`backtitle`" \
|
||||||
[ $? -ne 0 ] && return
|
--menu "Choose a build number" 0 0 0 ${ITEMS} 2>${TMP_PATH}/resp
|
||||||
resp=$(<${TMP_PATH}/resp)
|
[ $? -ne 0 ] && return
|
||||||
[ -z "${resp}" ] && return
|
resp=$(<${TMP_PATH}/resp)
|
||||||
|
[ -z "${resp}" ] && return
|
||||||
|
else
|
||||||
|
if ! arrayExistItem "${1}" ${ITEMS}; then return; fi
|
||||||
|
resp="${1}"
|
||||||
|
fi
|
||||||
if [ "${BUILD}" != "${resp}" ]; then
|
if [ "${BUILD}" != "${resp}" ]; then
|
||||||
dialog --backtitle "`backtitle`" --title "Build Number" \
|
dialog --backtitle "`backtitle`" --title "Build Number" \
|
||||||
--infobox "Reconfiguring Synoinfo, Addons and Modules" 0 0
|
--infobox "Reconfiguring Synoinfo, Addons and Modules" 0 0
|
||||||
@@ -638,12 +647,12 @@ function extractDsmFiles() {
|
|||||||
mkdir -p "${RAMDISK_PATH}"
|
mkdir -p "${RAMDISK_PATH}"
|
||||||
tar -xf "${OLDPAT_PATH}" -C "${RAMDISK_PATH}" rd.gz >"${LOG_FILE}" 2>&1
|
tar -xf "${OLDPAT_PATH}" -C "${RAMDISK_PATH}" rd.gz >"${LOG_FILE}" 2>&1
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
rm "${OLDPAT_PATH}"
|
rm -f "${OLDPAT_PATH}"
|
||||||
rm -rf "${RAMDISK_PATH}"
|
rm -rf "${RAMDISK_PATH}"
|
||||||
dialog --backtitle "`backtitle`" --title "Error extracting" --textbox "${LOG_FILE}" 0 0
|
dialog --backtitle "`backtitle`" --title "Error extracting" --textbox "${LOG_FILE}" 0 0
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
rm -f "${TMP_PATH}/DS3622xs+-42218.pat"
|
[ ${CLEARCACHE} -eq 1 ] && rm -f "${OLDPAT_PATH}"
|
||||||
# Extract all files from rd.gz
|
# Extract all files from rd.gz
|
||||||
(cd "${RAMDISK_PATH}"; xz -dc < rd.gz | cpio -idm) >/dev/null 2>&1 || true
|
(cd "${RAMDISK_PATH}"; xz -dc < rd.gz | cpio -idm) >/dev/null 2>&1 || true
|
||||||
# Copy only necessary files
|
# Copy only necessary files
|
||||||
@@ -753,6 +762,7 @@ function advancedMenu() {
|
|||||||
echo "r \"Switch direct boot: \Z4${DIRECTBOOT}\Zn\"" >> "${TMP_PATH}/menu"
|
echo "r \"Switch direct boot: \Z4${DIRECTBOOT}\Zn\"" >> "${TMP_PATH}/menu"
|
||||||
fi
|
fi
|
||||||
echo "u \"Edit user config file manually\"" >> "${TMP_PATH}/menu"
|
echo "u \"Edit user config file manually\"" >> "${TMP_PATH}/menu"
|
||||||
|
echo "t \"Try to recovery a DSM installed system\"" >> "${TMP_PATH}/menu"
|
||||||
echo "e \"Exit\"" >> "${TMP_PATH}/menu"
|
echo "e \"Exit\"" >> "${TMP_PATH}/menu"
|
||||||
|
|
||||||
dialog --default-item ${NEXT} --backtitle "`backtitle`" --title "Advanced" \
|
dialog --default-item ${NEXT} --backtitle "`backtitle`" --title "Advanced" \
|
||||||
@@ -771,11 +781,55 @@ function advancedMenu() {
|
|||||||
NEXT="u"
|
NEXT="u"
|
||||||
;;
|
;;
|
||||||
u) editUserConfig; NEXT="e" ;;
|
u) editUserConfig; NEXT="e" ;;
|
||||||
|
t) tryRecoveryDSM ;;
|
||||||
e) break ;;
|
e) break ;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Try to recovery a DSM already installed
|
||||||
|
function tryRecoveryDSM() {
|
||||||
|
dialog --backtitle "`backtitle`" --title "Try recovery DSM" --aspect 18 \
|
||||||
|
--infobox "Trying to recovery a DSM installed system" 0 0
|
||||||
|
if findAndMountDSMRoot; then
|
||||||
|
MODEL=""
|
||||||
|
BUILD=""
|
||||||
|
if [ -f "${DSMROOT_PATH}/.syno/patch/VERSION" ]; then
|
||||||
|
eval `cat ${DSMROOT_PATH}/.syno/patch/VERSION | grep unique`
|
||||||
|
eval `cat ${DSMROOT_PATH}/.syno/patch/VERSION | grep base`
|
||||||
|
if [ -n "${unique}" ] ; then
|
||||||
|
while read F; do
|
||||||
|
M="`basename ${F}`"
|
||||||
|
M="${M::-4}"
|
||||||
|
UNIQUE=`readModelKey "${M}" "unique"`
|
||||||
|
[ "${unique}" = "${UNIQUE}" ] || continue
|
||||||
|
# Found
|
||||||
|
modelMenu "${M}"
|
||||||
|
done < <(find "${MODEL_CONFIG_PATH}" -maxdepth 1 -name \*.yml | sort)
|
||||||
|
if [ -n "${MODEL}" ]; then
|
||||||
|
buildMenu ${base}
|
||||||
|
if [ -n "${BUILD}" ]; then
|
||||||
|
cp "${DSMROOT_PATH}/.syno/patch/zImage" "${SLPART_PATH}"
|
||||||
|
cp "${DSMROOT_PATH}/.syno/patch/rd.gz" "${SLPART_PATH}"
|
||||||
|
MSG="Found a installation:\nModel: ${MODEL}\nBuildnumber: ${BUILD}"
|
||||||
|
SN=`_get_conf_kv SN "${DSMROOT_PATH}/etc/synoinfo.conf"`
|
||||||
|
if [ -n "${SN}" ]; then
|
||||||
|
writeConfigKey "sn" "${SN}" "${USER_CONFIG_FILE}"
|
||||||
|
MSG+="\nSerial: ${SN}"
|
||||||
|
fi
|
||||||
|
dialog --backtitle "`backtitle`" --title "Try recovery DSM" \
|
||||||
|
--aspect 18 --msgbox "${MSG}" 0 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
dialog --backtitle "`backtitle`" --title "Try recovery DSM" --aspect 18 \
|
||||||
|
--msgbox "Unfortunately I couldn't mount the DSM partition!" 0 0
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Permit user select the modules to include
|
# Permit user select the modules to include
|
||||||
function selectModules() {
|
function selectModules() {
|
||||||
@@ -980,7 +1034,7 @@ function updateMenu() {
|
|||||||
dialog --backtitle "`backtitle`" --title "Update arpl" --aspect 18 \
|
dialog --backtitle "`backtitle`" --title "Update arpl" --aspect 18 \
|
||||||
--yesno "Arpl updated with success to ${TAG}!\nReboot?" 0 0
|
--yesno "Arpl updated with success to ${TAG}!\nReboot?" 0 0
|
||||||
[ $? -ne 0 ] && continue
|
[ $? -ne 0 ] && continue
|
||||||
reboot
|
arpl-reboot.sh config
|
||||||
exit
|
exit
|
||||||
;;
|
;;
|
||||||
|
|
||||||
@@ -1117,11 +1171,11 @@ while true; do
|
|||||||
echo "b \"Boot the loader\" " >> "${TMP_PATH}/menu"
|
echo "b \"Boot the loader\" " >> "${TMP_PATH}/menu"
|
||||||
fi
|
fi
|
||||||
echo "k \"Choose a keymap\" " >> "${TMP_PATH}/menu"
|
echo "k \"Choose a keymap\" " >> "${TMP_PATH}/menu"
|
||||||
if [ ${CLEARCACHE} -eq 0 -a -d "${CACHE_PATH}/dl" ]; then
|
if [ ${CLEARCACHE} -eq 1 -a -d "${CACHE_PATH}/dl" ]; then
|
||||||
echo "c \"Clean disk cache\"" >> "${TMP_PATH}/menu"
|
echo "c \"Clean disk cache\"" >> "${TMP_PATH}/menu"
|
||||||
fi
|
fi
|
||||||
echo "p \"Update menu\"" >> "${TMP_PATH}/menu"
|
echo "p \"Update menu\"" >> "${TMP_PATH}/menu"
|
||||||
echo "e \"Exit\"" >> "${TMP_PATH}/menu"
|
echo "e \"Exit\"" >> "${TMP_PATH}/menu"
|
||||||
|
|
||||||
dialog --default-item ${NEXT} --backtitle "`backtitle`" --colors \
|
dialog --default-item ${NEXT} --backtitle "`backtitle`" --colors \
|
||||||
--menu "Choose the option" 0 0 0 --file "${TMP_PATH}/menu" \
|
--menu "Choose the option" 0 0 0 --file "${TMP_PATH}/menu" \
|
||||||
|
|||||||
@@ -19,8 +19,8 @@ beta: true
|
|||||||
dom: 2
|
dom: 2
|
||||||
serial:
|
serial:
|
||||||
prefix:
|
prefix:
|
||||||
- "0000"
|
- "2060"
|
||||||
middle: "XXX"
|
middle: "RYR"
|
||||||
suffix: "alpha"
|
suffix: "alpha"
|
||||||
disks: 6
|
disks: 6
|
||||||
dt: true
|
dt: true
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ serial:
|
|||||||
- "2040"
|
- "2040"
|
||||||
- "20C0"
|
- "20C0"
|
||||||
- "2150"
|
- "2150"
|
||||||
middle: "SBR"
|
middle: "TQR"
|
||||||
suffix: "alpha"
|
suffix: "alpha"
|
||||||
disks: 4
|
disks: 4
|
||||||
builds:
|
builds:
|
||||||
|
|||||||
@@ -0,0 +1,46 @@
|
|||||||
|
id: "SA6400"
|
||||||
|
synoinfo: &synoinfo
|
||||||
|
support_disk_compatibility: "no"
|
||||||
|
support_memory_compatibility: "no"
|
||||||
|
support_led_brightness_adjustment: "no"
|
||||||
|
rss_server: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
|
||||||
|
rss_server_ssl: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.xml"
|
||||||
|
rss_server_v2: "https://raw.githubusercontent.com/fbelavenuto/arpl/main/rss.json"
|
||||||
|
cmdline: &cmdline
|
||||||
|
SMBusHddDynamicPower: 1
|
||||||
|
synoboot2:
|
||||||
|
syno_ttyS0: "serial,0x3f8"
|
||||||
|
syno_ttyS1: "serial,0x2f8"
|
||||||
|
vender_format_version: 2
|
||||||
|
platform: "epyc7002"
|
||||||
|
unique: "synology_epyc7002_sa6400"
|
||||||
|
beta: true
|
||||||
|
dom: 2
|
||||||
|
serial:
|
||||||
|
prefix:
|
||||||
|
- "0000"
|
||||||
|
middle: "XXX"
|
||||||
|
suffix: "alpha"
|
||||||
|
disks: 16
|
||||||
|
dt: true
|
||||||
|
builds:
|
||||||
|
42962:
|
||||||
|
ver: "7.1.1"
|
||||||
|
kver: "5.10.55"
|
||||||
|
rd-compressed: false
|
||||||
|
efi-bug: no
|
||||||
|
cmdline:
|
||||||
|
<<: *cmdline
|
||||||
|
synoinfo:
|
||||||
|
<<: *synoinfo
|
||||||
|
pat:
|
||||||
|
url: "https://global.download.synology.com/download/DSM/release/7.1.1/42962/DSM_SA6400_42962.pat"
|
||||||
|
hash: "83fc408380ebb1381224261de6220b873d7b62a99e715557509ae9553f618a71"
|
||||||
|
ramdisk-hash: "d4efe45fc4dd71758fe365f7eb39d24982d1440b00986259cab9a03577982f68"
|
||||||
|
zimage-hash: "d5b8af848fc585695e35bd1c4f4c953fd8e54435b2799face4f8f350bac6df93"
|
||||||
|
md5-hash: "fdbbea86e280a8f754339a064f9ad2df"
|
||||||
|
patch:
|
||||||
|
- "ramdisk-common-disable-root-pwd.patch"
|
||||||
|
- "ramdisk-common-init-script.patch"
|
||||||
|
- "ramdisk-common-etc-rc.patch"
|
||||||
|
- "ramdisk-42951-post-init-script.patch"
|
||||||
@@ -13,6 +13,12 @@ echo -n "Patching Ramdisk"
|
|||||||
# Remove old rd.gz patched
|
# Remove old rd.gz patched
|
||||||
rm -f "${MOD_RDGZ_FILE}"
|
rm -f "${MOD_RDGZ_FILE}"
|
||||||
|
|
||||||
|
# Check disk space left
|
||||||
|
LOADER_DISK="`blkid | grep 'LABEL="ARPL3"' | cut -d3 -f1`"
|
||||||
|
LOADER_DEVICE_NAME=`echo ${LOADER_DISK} | sed 's|/dev/||'`
|
||||||
|
SPACELEFT=`df --block-size=1 | awk '/'${LOADER_DEVICE_NAME}'3/{print$4}'`
|
||||||
|
[ ${SPACELEFT} -le 268435456 ] && rm -rf "${CACHE_PATH}/dl"
|
||||||
|
|
||||||
# Unzipping ramdisk
|
# Unzipping ramdisk
|
||||||
echo -n "."
|
echo -n "."
|
||||||
rm -rf "${RAMDISK_PATH}" # Force clean
|
rm -rf "${RAMDISK_PATH}" # Force clean
|
||||||
@@ -25,6 +31,7 @@ mkdir -p "${RAMDISK_PATH}"
|
|||||||
MODEL="`readConfigKey "model" "${USER_CONFIG_FILE}"`"
|
MODEL="`readConfigKey "model" "${USER_CONFIG_FILE}"`"
|
||||||
BUILD="`readConfigKey "build" "${USER_CONFIG_FILE}"`"
|
BUILD="`readConfigKey "build" "${USER_CONFIG_FILE}"`"
|
||||||
LKM="`readConfigKey "lkm" "${USER_CONFIG_FILE}"`"
|
LKM="`readConfigKey "lkm" "${USER_CONFIG_FILE}"`"
|
||||||
|
SN="`readConfigKey "sn" "${USER_CONFIG_FILE}"`"
|
||||||
|
|
||||||
if [ ${BUILD} -ne ${buildnumber} ]; then
|
if [ ${BUILD} -ne ${buildnumber} ]; then
|
||||||
echo -e "\033[A\n\033[1;32mBuild number changed from \033[1;31m${BUILD}\033[1;32m to \033[1;31m${buildnumber}\033[0m"
|
echo -e "\033[A\n\033[1;32mBuild number changed from \033[1;31m${BUILD}\033[1;32m to \033[1;31m${buildnumber}\033[0m"
|
||||||
@@ -72,6 +79,8 @@ echo -n "."
|
|||||||
for KEY in ${!SYNOINFO[@]}; do
|
for KEY in ${!SYNOINFO[@]}; do
|
||||||
_set_conf_kv "${KEY}" "${SYNOINFO[${KEY}]}" "${RAMDISK_PATH}/etc/synoinfo.conf" >"${LOG_FILE}" 2>&1 || dieLog
|
_set_conf_kv "${KEY}" "${SYNOINFO[${KEY}]}" "${RAMDISK_PATH}/etc/synoinfo.conf" >"${LOG_FILE}" 2>&1 || dieLog
|
||||||
done
|
done
|
||||||
|
# Add serial number to synoinfo.conf, to help to recovery a installed DSM
|
||||||
|
_set_conf_kv "SN" "${SN}" "${RAMDISK_PATH}/etc/synoinfo.conf" >"${LOG_FILE}" 2>&1 || dieLog
|
||||||
|
|
||||||
# Patch /sbin/init.post
|
# Patch /sbin/init.post
|
||||||
echo -n "."
|
echo -n "."
|
||||||
@@ -80,9 +89,11 @@ sed -e "/@@@CONFIG-MANIPULATORS-TOOLS@@@/ {" -e "r ${TMP_PATH}/rp.txt" -e 'd' -e
|
|||||||
rm "${TMP_PATH}/rp.txt"
|
rm "${TMP_PATH}/rp.txt"
|
||||||
touch "${TMP_PATH}/rp.txt"
|
touch "${TMP_PATH}/rp.txt"
|
||||||
for KEY in ${!SYNOINFO[@]}; do
|
for KEY in ${!SYNOINFO[@]}; do
|
||||||
echo "_set_conf_kv '${KEY}' '${SYNOINFO[${KEY}]}' '/tmpRoot/etc/synoinfo.conf'" >> "${TMP_PATH}/rp.txt"
|
echo "_set_conf_kv '${KEY}' '${SYNOINFO[${KEY}]}' '/tmpRoot/etc/synoinfo.conf'" >> "${TMP_PATH}/rp.txt"
|
||||||
echo "_set_conf_kv '${KEY}' '${SYNOINFO[${KEY}]}' '/tmpRoot/etc.defaults/synoinfo.conf'" >> "${TMP_PATH}/rp.txt"
|
echo "_set_conf_kv '${KEY}' '${SYNOINFO[${KEY}]}' '/tmpRoot/etc.defaults/synoinfo.conf'" >> "${TMP_PATH}/rp.txt"
|
||||||
done
|
done
|
||||||
|
echo "_set_conf_kv 'SN' '${SN}' '/tmpRoot/etc/synoinfo.conf'" >> "${TMP_PATH}/rp.txt"
|
||||||
|
echo "_set_conf_kv 'SN' '${SN}' '/tmpRoot/etc.defaults/synoinfo.conf'" >> "${TMP_PATH}/rp.txt"
|
||||||
sed -e "/@@@CONFIG-GENERATED@@@/ {" -e "r ${TMP_PATH}/rp.txt" -e 'd' -e '}' -i "${RAMDISK_PATH}/sbin/init.post"
|
sed -e "/@@@CONFIG-GENERATED@@@/ {" -e "r ${TMP_PATH}/rp.txt" -e 'd' -e '}' -i "${RAMDISK_PATH}/sbin/init.post"
|
||||||
rm "${TMP_PATH}/rp.txt"
|
rm "${TMP_PATH}/rp.txt"
|
||||||
|
|
||||||
|
|||||||
@@ -1,21 +1,11 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
# Based on code and ideas from @jumkey
|
||||||
|
|
||||||
. /opt/arpl/include/functions.sh
|
. /opt/arpl/include/functions.sh
|
||||||
|
|
||||||
#zImage_head 16494
|
MODEL="`readConfigKey "model" "${USER_CONFIG_FILE}"`"
|
||||||
#payload(
|
BUILD="`readConfigKey "build" "${USER_CONFIG_FILE}"`"
|
||||||
# vmlinux.bin x
|
KVER="`readModelKey "${MODEL}" "builds.${BUILD}.kver"`"
|
||||||
# padding 0xf00000-x
|
|
||||||
# vmlinux.bin size 4
|
|
||||||
#) 0xf00004
|
|
||||||
#zImage_tail(
|
|
||||||
# unknown 72
|
|
||||||
# run_size 4
|
|
||||||
# unknown 30
|
|
||||||
# vmlinux.bin size 4
|
|
||||||
# unknown 114460
|
|
||||||
#) 114570
|
|
||||||
#crc32 4
|
|
||||||
|
|
||||||
# Adapted from: scripts/Makefile.lib
|
# Adapted from: scripts/Makefile.lib
|
||||||
# Usage: size_append FILE [FILE2] [FILEn]...
|
# Usage: size_append FILE [FILE2] [FILEn]...
|
||||||
@@ -51,12 +41,42 @@ size_le () {
|
|||||||
SCRIPT_DIR=`dirname $0`
|
SCRIPT_DIR=`dirname $0`
|
||||||
VMLINUX_MOD=${1}
|
VMLINUX_MOD=${1}
|
||||||
ZIMAGE_MOD=${2}
|
ZIMAGE_MOD=${2}
|
||||||
gzip -cd "${SCRIPT_DIR}/zImage_template.gz" > "${ZIMAGE_MOD}"
|
KVER_MAJOR=${KVER:0:1}
|
||||||
|
if [ $KVER_MAJOR -eq 4 ] || [ $KVER_MAJOR -eq 3 ]; then
|
||||||
|
# Kernel version 4.x or 3.x (bromolow)
|
||||||
|
#zImage_head 16494
|
||||||
|
#payload(
|
||||||
|
# vmlinux.bin x
|
||||||
|
# padding 0xf00000-x
|
||||||
|
# vmlinux.bin size 4
|
||||||
|
#) 0xf00004
|
||||||
|
#zImage_tail(
|
||||||
|
# unknown 72
|
||||||
|
# run_size 4
|
||||||
|
# unknown 30
|
||||||
|
# vmlinux.bin size 4
|
||||||
|
# unknown 114460
|
||||||
|
#) 114570
|
||||||
|
#crc32 4
|
||||||
|
gzip -cd "${SCRIPT_DIR}/bzImage-template-v4.gz" > "${ZIMAGE_MOD}"
|
||||||
|
|
||||||
dd if="${VMLINUX_MOD}" of="${ZIMAGE_MOD}" bs=16494 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
|
dd if="${VMLINUX_MOD}" of="${ZIMAGE_MOD}" bs=16494 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
|
||||||
file_size_le "${VMLINUX_MOD}" | dd of="${ZIMAGE_MOD}" bs=15745134 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
|
file_size_le "${VMLINUX_MOD}" | dd of="${ZIMAGE_MOD}" bs=15745134 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
|
||||||
|
file_size_le "${VMLINUX_MOD}" | dd of="${ZIMAGE_MOD}" bs=15745244 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
|
||||||
|
|
||||||
RUN_SIZE=`objdump -h ${VMLINUX_MOD} | sh "${SCRIPT_DIR}/calc_run_size.sh"`
|
RUN_SIZE=`objdump -h ${VMLINUX_MOD} | sh "${SCRIPT_DIR}/calc_run_size.sh"`
|
||||||
size_le $RUN_SIZE | dd of=$ZIMAGE_MOD bs=15745210 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
|
size_le ${RUN_SIZE} | dd of=${ZIMAGE_MOD} bs=15745210 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
|
||||||
file_size_le "${VMLINUX_MOD}" | dd of="${ZIMAGE_MOD}" bs=15745244 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
|
size_le $(($((16#`crc32 "${ZIMAGE_MOD}" | awk '{print$1}'`)) ^ 0xFFFFFFFF)) | dd of="${ZIMAGE_MOD}" conv=notrunc oflag=append >"${LOG_FILE}" 2>&1 || dieLog
|
||||||
size_le $(($((16#`crc32 "${ZIMAGE_MOD}" | awk '{print$1}'`)) ^ 0xFFFFFFFF)) | dd of="${ZIMAGE_MOD}" conv=notrunc oflag=append >"${LOG_FILE}" 2>&1 || dieLog
|
else
|
||||||
|
# Kernel version 5.x
|
||||||
|
gzip -cd "${SCRIPT_DIR}/bzImage-template-v5.gz" > "${ZIMAGE_MOD}"
|
||||||
|
|
||||||
|
lzma -9c ${VMLINUX_MOD} > ${TMP_PATH}/vmlinux-mod.lzma
|
||||||
|
dd if="${TMP_PATH}/vmlinux-mod.lzma" of="${ZIMAGE_MOD}" bs=15377 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
|
||||||
|
file_size_le "${VMLINUX_MOD}" | dd of="${ZIMAGE_MOD}" bs=8377991 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
|
||||||
|
file_size_le "${VMLINUX_MOD}" | dd of="${ZIMAGE_MOD}" bs=8420412 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
|
||||||
|
|
||||||
|
RUN_SIZE=`objdump -h ${VMLINUX_MOD} | sh "${SCRIPT_DIR}/calc_run_size.sh"`
|
||||||
|
size_le ${RUN_SIZE} | dd of=${ZIMAGE_MOD} bs=8420408 seek=1 conv=notrunc >"${LOG_FILE}" 2>&1 || dieLog
|
||||||
|
size_le $(($((16#`crc32 "${ZIMAGE_MOD}" | awk '{print$1}'`)) ^ 0xFFFFFFFF)) | dd of="${ZIMAGE_MOD}" conv=notrunc oflag=append >"${LOG_FILE}" 2>&1 || dieLog
|
||||||
|
fi
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ export EDITOR="/bin/nano"
|
|||||||
export BOOTLOADER_PATH="/mnt/p1"
|
export BOOTLOADER_PATH="/mnt/p1"
|
||||||
export SLPART_PATH="/mnt/p2" # Synologic partition
|
export SLPART_PATH="/mnt/p2" # Synologic partition
|
||||||
export CACHE_PATH="/mnt/p3"
|
export CACHE_PATH="/mnt/p3"
|
||||||
|
export DSMROOT_PATH="/mnt/dsmroot"
|
||||||
export PATH="${PATH}:/opt/arpl"
|
export PATH="${PATH}:/opt/arpl"
|
||||||
|
|
||||||
if [ ! -f ${HOME}/.initialized ]; then
|
if [ ! -f ${HOME}/.initialized ]; then
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
1.0-beta7
|
1.0-beta9
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,28 +0,0 @@
|
|||||||
version: 1
|
|
||||||
name: 9p
|
|
||||||
description: "Driver for virtio 9p"
|
|
||||||
available-for:
|
|
||||||
bromolow-3.10.108:
|
|
||||||
install-script: &script "install.sh"
|
|
||||||
copy: "bromolow-3.10.108"
|
|
||||||
apollolake-4.4.180:
|
|
||||||
install-script: *script
|
|
||||||
copy: "apollolake-4.4.180"
|
|
||||||
broadwell-4.4.180:
|
|
||||||
install-script: *script
|
|
||||||
copy: "broadwell-4.4.180"
|
|
||||||
broadwellnk-4.4.180:
|
|
||||||
install-script: *script
|
|
||||||
copy: "broadwellnk-4.4.180"
|
|
||||||
denverton-4.4.180:
|
|
||||||
install-script: *script
|
|
||||||
copy: "denverton-4.4.180"
|
|
||||||
geminilake-4.4.180:
|
|
||||||
install-script: *script
|
|
||||||
copy: "geminilake-4.4.180"
|
|
||||||
v1000-4.4.180:
|
|
||||||
install-script: *script
|
|
||||||
copy: "v1000-4.4.180"
|
|
||||||
r1000-4.4.180:
|
|
||||||
install-script: *script
|
|
||||||
copy: "r1000-4.4.180"
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,16 +0,0 @@
|
|||||||
version: 1
|
|
||||||
name: acpid
|
|
||||||
description: "Flexible and extensible daemon for delivering ACPI events"
|
|
||||||
all:
|
|
||||||
install-script: "install.sh"
|
|
||||||
copy: "all"
|
|
||||||
available-for:
|
|
||||||
bromolow-3.10.108:
|
|
||||||
apollolake-4.4.180:
|
|
||||||
broadwell-4.4.180:
|
|
||||||
broadwellnk-4.4.180:
|
|
||||||
denverton-4.4.180:
|
|
||||||
geminilake-4.4.180:
|
|
||||||
v1000-4.4.180:
|
|
||||||
r1000-4.4.180:
|
|
||||||
epyc7002-5.10.55:
|
|
||||||
Binary file not shown.
@@ -1,16 +0,0 @@
|
|||||||
version: 1
|
|
||||||
name: dbgutils
|
|
||||||
description: "Binaries to facilitate debug in the junior mode"
|
|
||||||
all:
|
|
||||||
install-script: "install.sh"
|
|
||||||
copy: "all"
|
|
||||||
available-for:
|
|
||||||
bromolow-3.10.108:
|
|
||||||
apollolake-4.4.180:
|
|
||||||
broadwell-4.4.180:
|
|
||||||
broadwellnk-4.4.180:
|
|
||||||
denverton-4.4.180:
|
|
||||||
geminilake-4.4.180:
|
|
||||||
v1000-4.4.180:
|
|
||||||
r1000-4.4.180:
|
|
||||||
epyc7002-5.10.55:
|
|
||||||
Binary file not shown.
@@ -1,18 +0,0 @@
|
|||||||
version: 1
|
|
||||||
name: dtbpatch
|
|
||||||
system: true
|
|
||||||
description: "Patch model.dtb"
|
|
||||||
compile-script: compile.sh
|
|
||||||
all:
|
|
||||||
install-script: "install.sh"
|
|
||||||
copy: "all"
|
|
||||||
available-for:
|
|
||||||
bromolow-3.10.108:
|
|
||||||
apollolake-4.4.180:
|
|
||||||
broadwell-4.4.180:
|
|
||||||
broadwellnk-4.4.180:
|
|
||||||
denverton-4.4.180:
|
|
||||||
geminilake-4.4.180:
|
|
||||||
v1000-4.4.180:
|
|
||||||
r1000-4.4.180:
|
|
||||||
epyc7002-5.10.55:
|
|
||||||
Binary file not shown.
@@ -1,18 +0,0 @@
|
|||||||
version: 1
|
|
||||||
name: eudev
|
|
||||||
system: true
|
|
||||||
description: "eudev project + kmod modified"
|
|
||||||
compile-script: compile.sh
|
|
||||||
all:
|
|
||||||
install-script: "install.sh"
|
|
||||||
copy: "all"
|
|
||||||
available-for:
|
|
||||||
bromolow-3.10.108:
|
|
||||||
apollolake-4.4.180:
|
|
||||||
broadwell-4.4.180:
|
|
||||||
broadwellnk-4.4.180:
|
|
||||||
denverton-4.4.180:
|
|
||||||
geminilake-4.4.180:
|
|
||||||
v1000-4.4.180:
|
|
||||||
r1000-4.4.180:
|
|
||||||
epyc7002-5.10.55:
|
|
||||||
Binary file not shown.
Binary file not shown.
@@ -1,11 +0,0 @@
|
|||||||
version: 1
|
|
||||||
name: i915-10th
|
|
||||||
description: "mzcls687's Intel iGPU Drivers (10th Gen)"
|
|
||||||
obs: https://xpenology.com/forum/topic/59909-i915ko-backported-driver-for-intel-10th-gen-ds918-ver-701-up3
|
|
||||||
available-for:
|
|
||||||
apollolake-4.4.180:
|
|
||||||
install-script: "install.sh"
|
|
||||||
copy: "apollolake-4.4.180"
|
|
||||||
geminilake-4.4.180:
|
|
||||||
install-script: "install.sh"
|
|
||||||
copy: "geminilake-4.4.180"
|
|
||||||
Binary file not shown.
@@ -1,7 +0,0 @@
|
|||||||
version: 1
|
|
||||||
name: i915-8th
|
|
||||||
description: "Cryental's Intel iGPU Drivers (8-9th Gen)"
|
|
||||||
available-for:
|
|
||||||
apollolake-4.4.180:
|
|
||||||
install-script: "install.sh"
|
|
||||||
copy: "apollolake-4.4.180"
|
|
||||||
Binary file not shown.
@@ -1,16 +0,0 @@
|
|||||||
version: 1
|
|
||||||
name: lsiutil
|
|
||||||
description: "A tool for working with some LSI RAID controllers"
|
|
||||||
all:
|
|
||||||
install-script: "install.sh"
|
|
||||||
copy: "all"
|
|
||||||
available-for:
|
|
||||||
bromolow-3.10.108:
|
|
||||||
apollolake-4.4.180:
|
|
||||||
broadwell-4.4.180:
|
|
||||||
broadwellnk-4.4.180:
|
|
||||||
denverton-4.4.180:
|
|
||||||
geminilake-4.4.180:
|
|
||||||
v1000-4.4.180:
|
|
||||||
r1000-4.4.180:
|
|
||||||
epyc7002-5.10.55:
|
|
||||||
Binary file not shown.
@@ -1,17 +0,0 @@
|
|||||||
version: 1
|
|
||||||
name: maxdisks
|
|
||||||
system: true
|
|
||||||
description: "Adjust maxdisks and internalportcfg automatically"
|
|
||||||
all:
|
|
||||||
install-script: "install.sh"
|
|
||||||
copy: "all"
|
|
||||||
available-for:
|
|
||||||
bromolow-3.10.108:
|
|
||||||
apollolake-4.4.180:
|
|
||||||
broadwell-4.4.180:
|
|
||||||
broadwellnk-4.4.180:
|
|
||||||
denverton-4.4.180:
|
|
||||||
geminilake-4.4.180:
|
|
||||||
v1000-4.4.180:
|
|
||||||
r1000-4.4.180:
|
|
||||||
epyc7002-5.10.55:
|
|
||||||
Binary file not shown.
@@ -1,16 +0,0 @@
|
|||||||
version: 1
|
|
||||||
name: misc
|
|
||||||
description: "Miscellaneous functions"
|
|
||||||
all:
|
|
||||||
install-script: "install.sh"
|
|
||||||
copy: "all"
|
|
||||||
available-for:
|
|
||||||
bromolow-3.10.108:
|
|
||||||
apollolake-4.4.180:
|
|
||||||
broadwell-4.4.180:
|
|
||||||
broadwellnk-4.4.180:
|
|
||||||
denverton-4.4.180:
|
|
||||||
geminilake-4.4.180:
|
|
||||||
v1000-4.4.180:
|
|
||||||
r1000-4.4.180:
|
|
||||||
epyc7002-5.10.55:
|
|
||||||
Binary file not shown.
@@ -1,17 +0,0 @@
|
|||||||
version: 1
|
|
||||||
name: powersched
|
|
||||||
description: "Utility to configure RTC according to DSM power schedule"
|
|
||||||
compile-script: compile.sh
|
|
||||||
all:
|
|
||||||
install-script: "install.sh"
|
|
||||||
copy: "all"
|
|
||||||
available-for:
|
|
||||||
bromolow-3.10.108:
|
|
||||||
apollolake-4.4.180:
|
|
||||||
broadwell-4.4.180:
|
|
||||||
broadwellnk-4.4.180:
|
|
||||||
denverton-4.4.180:
|
|
||||||
geminilake-4.4.180:
|
|
||||||
v1000-4.4.180:
|
|
||||||
r1000-4.4.180:
|
|
||||||
epyc7002-5.10.55:
|
|
||||||
0
files/board/arpl/p3/lkms/.gitkeep
Normal file
0
files/board/arpl/p3/lkms/.gitkeep
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
0
files/board/arpl/p3/modules/.gitkeep
Normal file
0
files/board/arpl/p3/modules/.gitkeep
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
kpatch/kpatch
Executable file
BIN
kpatch/kpatch
Executable file
Binary file not shown.
@@ -60,6 +60,7 @@ void errorMsg(char *fmt, ...) {
|
|||||||
va_start(args, fmt);
|
va_start(args, fmt);
|
||||||
vfprintf(stderr, fmt, args);
|
vfprintf(stderr, fmt, args);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
|
fprintf(stderr, "\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -307,15 +308,39 @@ int main(int argc, char *argv[]) {
|
|||||||
Elf_Scn *section;
|
Elf_Scn *section;
|
||||||
GElf_Shdr sectionHeader;
|
GElf_Shdr sectionHeader;
|
||||||
char *sectionName;
|
char *sectionName;
|
||||||
|
char *fileIn = NULL, *fileOut = NULL;
|
||||||
|
int onlyBoot = 0, onlyRD = 0, onlyCMOS = 0, c;
|
||||||
|
|
||||||
if (argc != 3) {
|
if (argc < 3) {
|
||||||
errorMsg("Use: kpatch <vmlinux> <output>\n");
|
errorMsg("Use: kpatch (option) <vmlinux> <output>\nOptions:\n -b Only bootparams\n -r Only ramdisk\n -c Only CMOS");
|
||||||
|
}
|
||||||
|
c = 1;
|
||||||
|
while (c < argc) {
|
||||||
|
if (strcmp(argv[c], "-b") == 0) {
|
||||||
|
onlyBoot = 1;
|
||||||
|
} else if (strcmp(argv[c], "-r") == 0) {
|
||||||
|
onlyRD = 1;
|
||||||
|
} else if (strcmp(argv[c], "-c") == 0) {
|
||||||
|
onlyCMOS = 1;
|
||||||
|
} else if (fileIn == NULL) {
|
||||||
|
fileIn = argv[c];
|
||||||
|
} else {
|
||||||
|
fileOut = argv[c];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
++c;
|
||||||
|
}
|
||||||
|
if (NULL == fileIn) {
|
||||||
|
errorMsg("Please give a input filename");
|
||||||
|
}
|
||||||
|
if (NULL == fileOut) {
|
||||||
|
errorMsg("Please give a output filename");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (elf_version(EV_CURRENT) == EV_NONE)
|
if (elf_version(EV_CURRENT) == EV_NONE)
|
||||||
elfErrno();
|
elfErrno();
|
||||||
|
|
||||||
if ((fd = open(argv[1], O_RDONLY)) == -1)
|
if ((fd = open(fileIn, O_RDONLY)) == -1)
|
||||||
errorNum();
|
errorNum();
|
||||||
|
|
||||||
if ((elfHandle = elf_begin(fd, ELF_C_READ, NULL)) == NULL)
|
if ((elfHandle = elf_begin(fd, ELF_C_READ, NULL)) == NULL)
|
||||||
@@ -367,10 +392,22 @@ int main(int argc, char *argv[]) {
|
|||||||
printf("Found .init.text offset @ %lX\n", initTextOffs);
|
printf("Found .init.text offset @ %lX\n", initTextOffs);
|
||||||
printf("Found .rodata address @ %lX\n", rodataAddr);
|
printf("Found .rodata address @ %lX\n", rodataAddr);
|
||||||
printf("Found .rodata offset @ %lX\n", rodataOffs);
|
printf("Found .rodata offset @ %lX\n", rodataOffs);
|
||||||
patchBootParams();
|
if (onlyBoot == 0 && onlyCMOS == 0 && onlyRD == 0) {
|
||||||
patchRamdiskCheck();
|
patchBootParams();
|
||||||
patchCmosWrite();
|
patchRamdiskCheck();
|
||||||
if ((fd = open(argv[2], O_WRONLY | O_CREAT, 0644)) == -1) {
|
patchCmosWrite();
|
||||||
|
} else {
|
||||||
|
if (onlyBoot == 1) {
|
||||||
|
patchBootParams();
|
||||||
|
}
|
||||||
|
if (onlyRD == 1) {
|
||||||
|
patchRamdiskCheck();
|
||||||
|
}
|
||||||
|
if (onlyCMOS == 1) {
|
||||||
|
patchCmosWrite();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((fd = open(fileOut, O_WRONLY | O_CREAT, 0644)) == -1) {
|
||||||
errorNum();
|
errorNum();
|
||||||
}
|
}
|
||||||
if (fileSize != write(fd, fileData, fileSize)) {
|
if (fileSize != write(fd, fileData, fileSize)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user