Skip to content

Commit a76ad00

Browse files
committed
ramdisk: fix
Signed-off-by: AuxXxilium <[email protected]>
1 parent 6e60043 commit a76ad00

File tree

1 file changed

+19
-28
lines changed

1 file changed

+19
-28
lines changed

files/initrd/opt/arc/ramdisk-patch.sh

Lines changed: 19 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -102,17 +102,16 @@ PATCHES=(
102102
)
103103

104104
for PE in "${PATCHES[@]}"; do
105-
RET=1
106-
echo "Patching with ${PE}" >>"${LOG_FILE}"
107-
# ${PE} contains *, so double quotes cannot be added
105+
RET=2
106+
MATCHED=0
108107
for PF in ${PATCH_PATH}/${PE}; do
109108
[ ! -e "${PF}" ] && continue
110-
echo "Patching with ${PF}" >>"${LOG_FILE}"
111-
# busybox patch and gun patch have different processing methods and parameters.
109+
MATCHED=1
112110
(cd "${RAMDISK_PATH}" && busybox patch -p1 -i "${PF}") >>"${LOG_FILE}" 2>&1
113111
RET=$?
114112
[ ${RET} -eq 0 ] && break
115113
done
114+
[ ${MATCHED} -eq 0 ] && continue # skip if no patch files found
116115
[ ${RET} -ne 0 ] && exit 1
117116
done
118117

@@ -170,31 +169,23 @@ installModules "${PLATFORM}" "${KVERP}" "${!MODULES[@]}" || exit 1
170169
gzip -dc "${LKMS_PATH}/rp-${PLATFORM}-${KVERP}-${LKM}.ko.gz" >"${RAMDISK_PATH}/usr/lib/modules/rp.ko" 2>>"${LOG_FILE}" || exit 1
171170

172171
# Patch synoinfo.conf
173-
# Patch synoinfo.conf
174-
: > "${RAMDISK_PATH}/addons/synoinfo.conf" # Safely truncate file
175-
172+
echo -n "" >"${RAMDISK_PATH}/addons/synoinfo.conf"
176173
for KEY in "${!SYNOINFO[@]}"; do
177-
echo "Set synoinfo ${KEY}" >> "${LOG_FILE}"
178-
echo "${KEY}=\"${SYNOINFO[${KEY}]}\"" >> "${RAMDISK_PATH}/addons/synoinfo.conf"
179-
_set_conf_kv "${RAMDISK_PATH}/etc/synoinfo.conf" "${KEY}" "${SYNOINFO[${KEY}]}" || {
180-
echo "Failed to set ${KEY} in etc/synoinfo.conf" >> "${LOG_FILE}"
181-
exit 1
182-
}
183-
_set_conf_kv "${RAMDISK_PATH}/etc.defaults/synoinfo.conf" "${KEY}" "${SYNOINFO[${KEY}]}" || {
184-
echo "Failed to set ${KEY} in etc.defaults/synoinfo.conf" >> "${LOG_FILE}"
185-
exit 1
186-
}
187-
done
188-
189-
# Create helper scripts for key-value access
190-
for BIN in get_key_value set_key_value; do
191-
BIN_PATH="${RAMDISK_PATH}/usr/bin/${BIN}"
192-
FUNC_NAME="_${BIN/_key_value/conf_kv}"
193-
if [ ! -x "${BIN_PATH}" ]; then
194-
printf '#!/bin/sh\n%s\n%s "$@"\n' "$(declare -f ${FUNC_NAME})" "${FUNC_NAME}" > "${BIN_PATH}"
195-
chmod a+x "${BIN_PATH}"
196-
fi
174+
echo "Set synoinfo ${KEY}" >>"${LOG_FILE}"
175+
echo "${KEY}=\"${SYNOINFO[${KEY}]}\"" >>"${RAMDISK_PATH}/addons/synoinfo.conf"
176+
_set_conf_kv "${RAMDISK_PATH}/etc/synoinfo.conf" "${KEY}" "${SYNOINFO[${KEY}]}" || exit 1
177+
_set_conf_kv "${RAMDISK_PATH}/etc.defaults/synoinfo.conf" "${KEY}" "${SYNOINFO[${KEY}]}" || exit 1
197178
done
179+
rm -f "${RAMDISK_PATH}/usr/bin/get_key_value"
180+
if [ ! -x "${RAMDISK_PATH}/usr/bin/get_key_value" ]; then
181+
printf '#!/bin/sh\n%s\n_get_conf_kv "$@"' "$(declare -f _get_conf_kv)" >"${RAMDISK_PATH}/usr/bin/get_key_value"
182+
chmod a+x "${RAMDISK_PATH}/usr/bin/get_key_value"
183+
fi
184+
rm -f "${RAMDISK_PATH}/usr/bin/set_key_value"
185+
if [ ! -x "${RAMDISK_PATH}/usr/bin/set_key_value" ]; then
186+
printf '#!/bin/sh\n%s\n_set_conf_kv "$@"' "$(declare -f _set_conf_kv)" >"${RAMDISK_PATH}/usr/bin/set_key_value"
187+
chmod a+x "${RAMDISK_PATH}/usr/bin/set_key_value"
188+
fi
198189

199190
# Copying modulelist
200191
if [ -f "${USER_UP_PATH}/modulelist" ]; then

0 commit comments

Comments
 (0)