Compare commits

...

2 Commits

3 changed files with 49 additions and 47 deletions

View File

@ -61,15 +61,16 @@ function getAllModules() {
UNPATH="${TMP_PATH}/modules" UNPATH="${TMP_PATH}/modules"
unpackModules "${PLATFORM}" "${PKVER}" "${UNPATH}" unpackModules "${PLATFORM}" "${PKVER}" "${UNPATH}"
for F in ${UNPATH}/*.ko; do for D in "" "update"; do
[ ! -e "${F}" ] && continue for F in ${UNPATH}/${D:+${D}/}*.ko; do
local N DESC [ ! -e "${F}" ] && continue
N="$(basename "${F}" .ko)" local N DESC
DESC="$(modinfo -F description "${F}" 2>/dev/null)" N="$(basename "${F}" .ko)"
DESC="$(echo "${DESC}" | tr -d '\n\r\t\\' | sed "s/\"/'/g")" DESC="$(modinfo -F description "${F}" 2>/dev/null)"
echo "${N} \"${DESC:-${N}}\"" DESC="$(echo "${DESC}" | tr -d '\n\r\t\\' | sed "s/\"/'/g")"
echo "${D:+${D}/}${N} \"${DESC:-${D:+${D}/}${N}}\""
done
done done
rm -rf "${UNPATH}" rm -rf "${UNPATH}"
} }
@ -122,15 +123,18 @@ function installModules() {
unpackModules "${PLATFORM}" "${PKVER}" "${UNPATH}" unpackModules "${PLATFORM}" "${PKVER}" "${UNPATH}"
ODP="$(readConfigKey "odp" "${USER_CONFIG_FILE}")" ODP="$(readConfigKey "odp" "${USER_CONFIG_FILE}")"
for F in ${UNPATH}/*.ko; do for D in "" "update"; do
[ ! -e "${F}" ] && continue for F in ${UNPATH}/${D:+${D}/}*.ko; do
M=$(basename "${F}") [ ! -e "${F}" ] && continue
[ "${ODP}" = "true" ] && [ -f "${RAMDISK_PATH}/usr/lib/modules/${M}" ] && continue M=$(basename "${F}")
if echo "${MLIST}" | grep -wq "$(basename "${M}" .ko)"; then [ "${ODP}" = "true" ] && [ -f "${RAMDISK_PATH}/usr/lib/modules/${D:+${D}/}${M}" ] && continue # TODO: check if module is already loaded
cp -f "${F}" "${RAMDISK_PATH}/usr/lib/modules/${M}" 2>"${LOG_FILE}" if echo "${MLIST}" | grep -wq "${D:+${D}/}$(basename "${M}" .ko)"; then
else mkdir -p "${RAMDISK_PATH}/usr/lib/modules/${D:+${D}/}"
rm -f "${RAMDISK_PATH}/usr/lib/modules/${M}" 2>"${LOG_FILE}" cp -f "${F}" "${RAMDISK_PATH}/usr/lib/modules/${D:+${D}/}${M}" 2>"${LOG_FILE}"
fi else
rm -f "${RAMDISK_PATH}/usr/lib/modules/${D:+${D}/}${M}" 2>"${LOG_FILE}"
fi
done
done done
rm -rf "${UNPATH}" rm -rf "${UNPATH}"

View File

@ -456,6 +456,7 @@ function reconfiguringV() {
deleteConfigKey "addons.\"${ADDON}\"" "${USER_CONFIG_FILE}" deleteConfigKey "addons.\"${ADDON}\"" "${USER_CONFIG_FILE}"
fi fi
done <<<"$(readConfigMap "addons" "${USER_CONFIG_FILE}")" done <<<"$(readConfigMap "addons" "${USER_CONFIG_FILE}")"
# Rewrite modules # Rewrite modules
writeConfigKey "modules" "{}" "${USER_CONFIG_FILE}" writeConfigKey "modules" "{}" "${USER_CONFIG_FILE}"
mergeConfigModules "$(getAllModules "${PLATFORM}" "${KPRE:+${KPRE}-}${KVER}" | awk '{print $1}')" "${USER_CONFIG_FILE}" mergeConfigModules "$(getAllModules "${PLATFORM}" "${KPRE:+${KPRE}-}${KVER}" | awk '{print $1}')" "${USER_CONFIG_FILE}"

View File

@ -100,6 +100,7 @@ while IFS=': ' read -r KEY VALUE; do
done <<<"$(readConfigMap "synoinfo" "${USER_CONFIG_FILE}")" done <<<"$(readConfigMap "synoinfo" "${USER_CONFIG_FILE}")"
# Patches (diff -Naru OLDFILE NEWFILE > xxx.patch) # Patches (diff -Naru OLDFILE NEWFILE > xxx.patch)
echo -n "."
PATCHS=( PATCHS=(
"ramdisk-etc-rc-*.patch" "ramdisk-etc-rc-*.patch"
"ramdisk-init-script-*.patch" "ramdisk-init-script-*.patch"
@ -119,11 +120,26 @@ for PE in "${PATCHS[@]}"; do
done done
[ ${RET} -ne 0 ] && exit 1 [ ${RET} -ne 0 ] && exit 1
done done
# for DSM 7.3
sed -i 's#/usr/syno/sbin/broadcom_update.sh#/usr/syno/sbin/broadcom_update.sh.rr#g' "${RAMDISK_PATH}/linuxrc.syno.impl"
# LKM
gzip -dc "${LKMS_PATH}/rp-${PLATFORM}-${KPRE:+${KPRE}-}${KVER}-${LKM}.ko.gz" >"${RAMDISK_PATH}/usr/lib/modules/rp.ko" 2>"${LOG_FILE}" || exit 1
if [ "$(echo "${KVER:-4}" | cut -d'.' -f1)" -lt 5 ]; then
# Copying fake modprobe
cp -f "${WORK_PATH}/patch/iosched-trampoline.sh" "${RAMDISK_PATH}/usr/sbin/modprobe"
else
# for issues/313
sed -i 's#/dev/console#/var/log/lrc#g' "${RAMDISK_PATH}/usr/bin/busybox"
sed -i '/^echo "START/a \\nmknod -m 0666 /dev/console c 1 3' "${RAMDISK_PATH}/linuxrc.syno"
fi
mkdir -p "${RAMDISK_PATH}/addons" if [ "${PLATFORM}" = "broadwellntbap" ]; then
sed -i 's/IsUCOrXA="yes"/XIsUCOrXA="yes"/g; s/IsUCOrXA=yes/XIsUCOrXA=yes/g' "${RAMDISK_PATH}/usr/syno/share/environments.sh"
fi
# Addons # Addons
echo -n "." echo -n "."
mkdir -p "${RAMDISK_PATH}/addons"
echo "Create addons.sh" >"${LOG_FILE}" echo "Create addons.sh" >"${LOG_FILE}"
{ {
echo "#!/bin/sh" echo "#!/bin/sh"
@ -159,14 +175,17 @@ for ADDON in "${!ADDONS[@]}"; do
echo "/addons/${ADDON}.sh \${1} ${PARAMS}" >>"${RAMDISK_PATH}/addons/addons.sh" 2>>"${LOG_FILE}" || exit 1 echo "/addons/${ADDON}.sh \${1} ${PARAMS}" >>"${RAMDISK_PATH}/addons/addons.sh" 2>>"${LOG_FILE}" || exit 1
done done
# Extract ck modules to ramdisk # Modules
echo -n "." echo -n "."
installModules "${PLATFORM}" "${KPRE:+${KPRE}-}${KVER}" "${!MODULES[@]}" || exit 1 installModules "${PLATFORM}" "${KPRE:+${KPRE}-}${KVER}" "${!MODULES[@]}" || exit 1
# Build modules dependencies
# Copying fake modprobe # ${WORK_PATH}/depmod -a -b ${RAMDISK_PATH} 2>/dev/null # addon eudev will do this
[ "$(echo "${KVER:-4}" | cut -d'.' -f1)" -lt 5 ] && cp -f "${WORK_PATH}/patch/iosched-trampoline.sh" "${RAMDISK_PATH}/usr/sbin/modprobe" # Copying modulelist
# Copying LKM to /usr/lib/modules if [ -f "${USER_UP_PATH}/modulelist" ]; then
gzip -dc "${LKMS_PATH}/rp-${PLATFORM}-${KPRE:+${KPRE}-}${KVER}-${LKM}.ko.gz" >"${RAMDISK_PATH}/usr/lib/modules/rp.ko" 2>"${LOG_FILE}" || exit 1 cp -f "${USER_UP_PATH}/modulelist" "${RAMDISK_PATH}/addons/modulelist"
else
cp -f "${WORK_PATH}/patch/modulelist" "${RAMDISK_PATH}/addons/modulelist"
fi
# Patch synoinfo.conf # Patch synoinfo.conf
echo -n "." echo -n "."
@ -189,17 +208,7 @@ fi
echo -n "." echo -n "."
echo "Modify files" >"${LOG_FILE}" echo "Modify files" >"${LOG_FILE}"
# Remove function from scripts # Remove function from scripts
[ "2" = "${BUILDNUM:0:1}" ] && find "${RAMDISK_PATH}/addons/" -type f -name "*.sh" -exec sed -i 's/function //g' {} \; [ "${BUILDNUM}" -le 25556 ] && find "${RAMDISK_PATH}/addons/" -type f -name "*.sh" -exec sed -i 's/function //g' {} \;
# Build modules dependencies
# ${WORK_PATH}/depmod -a -b ${RAMDISK_PATH} 2>/dev/null # addon eudev will do this
# Copying modulelist
if [ -f "${USER_UP_PATH}/modulelist" ]; then
cp -f "${USER_UP_PATH}/modulelist" "${RAMDISK_PATH}/addons/modulelist"
else
cp -f "${WORK_PATH}/patch/modulelist" "${RAMDISK_PATH}/addons/modulelist"
fi
# backup current loader configs # backup current loader configs
mkdir -p "${RAMDISK_PATH}/usr/rr" mkdir -p "${RAMDISK_PATH}/usr/rr"
@ -232,18 +241,6 @@ for N in $(seq 0 7); do
echo -e "DEVICE=eth${N}\nBOOTPROTO=dhcp\nONBOOT=yes\nIPV6INIT=auto_dhcp\nIPV6_ACCEPT_RA=1" >"${RAMDISK_PATH}/etc/sysconfig/network-scripts/ifcfg-eth${N}" echo -e "DEVICE=eth${N}\nBOOTPROTO=dhcp\nONBOOT=yes\nIPV6INIT=auto_dhcp\nIPV6_ACCEPT_RA=1" >"${RAMDISK_PATH}/etc/sysconfig/network-scripts/ifcfg-eth${N}"
done done
# issues/313
if [ "$(echo "${KVER:-4}" | cut -d'.' -f1)" -lt 5 ]; then
:
else
sed -i 's#/dev/console#/var/log/lrc#g' "${RAMDISK_PATH}/usr/bin/busybox"
sed -i '/^echo "START/a \\nmknod -m 0666 /dev/console c 1 3' "${RAMDISK_PATH}/linuxrc.syno"
fi
if [ "${PLATFORM}" = "broadwellntbap" ]; then
sed -i 's/IsUCOrXA="yes"/XIsUCOrXA="yes"/g; s/IsUCOrXA=yes/XIsUCOrXA=yes/g' "${RAMDISK_PATH}/usr/syno/share/environments.sh"
fi
# Call user patch scripts # Call user patch scripts
echo -n "." echo -n "."
for F in ${SCRIPTS_PATH}/*.sh; do for F in ${SCRIPTS_PATH}/*.sh; do