| Server IP : 193.86.120.172 / Your IP : 216.73.216.67 Web Server : Apache/2.4.63 (Unix) System : Linux JServices 3.10.108 #86003 SMP Wed Oct 22 13:20:46 CST 2025 x86_64 User : kubec ( 1026) PHP Version : 8.2.28 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /proc/29152/cwd/etc.defaults/ |
Upload File : |
#!/bin/sh
# Copyright (c) 2000-2014 Synology Inc. All rights reserved.
. /usr/syno/share/kernelversion.sh
CheckADTDevice()
{
file=/sys/class/hwmon/
for f in $file*
do
if [ -d $f/device ]; then
name=`cat $f/device/name`
if [ "$name" == "adt7490" ];then
return 1
fi
fi
done
return 0
}
SYNOLoadAdt7490()
{
local supportadt7490
local PLATFORM
supportadt7490=`get_key_value $SYNOINFO_DEF supportadt7490`
PLATFORM=`get_key_value $SYNOINFO_DEF unique | cut -d"_" -f2`
if [ "$supportadt7490" = "yes" ]; then
if [ "$PLATFORM" = "denverton" ] || [ "$PLATFORM" = "skylaked" ]; then
SYNOLoadModules hwmon-vid
fi
if [ "$PLATFORM" = "v1000" ] || [ "$PLATFORM" = "v1000nk" ] || [ "$PLATFORM" = "v1000sofs" ] || [ "$PLATFORM" = "epyc7002" ] || [ "$PLATFORM" = "epyc7002sofs" ] || [ "$PLATFORM" = "ryzen5k" ]; then
SYNOLoadModules hwmon-vid
else
SYNOLoadModules i2c-i801
fi
SYNOLoadModules adt7475
for retry_count in `seq 1 3`
do
CheckADTDevice
if [ $? -eq 0 ]; then
echo Can not detect ADT device, Retry: $retry_count...
sleep 1
SYNOUnloadModules i2c-i801 adt7475
sleep 1
SYNOLoadModules i2c-i801 adt7475
else
break
fi
done
fi
}
SYNOUnloadAdt7490()
{
local supportadt7490
local PLATFORM
supportadt7490=`get_key_value $SYNOINFO_DEF supportadt7490`
PLATFORM=`get_key_value $SYNOINFO_DEF unique | cut -d"_" -f2`
if [ "$supportadt7490" = "yes" ]; then
SYNOUnloadModules adt7475
if [ "$PLATFORM" = "v1000" ] || [ "$PLATFORM" = "v1000nk" ] || [ "$PLATFORM" = "v1000sofs" ] || [ "$PLATFORM" = "epyc7002" ] || [ "$PLATFORM" = "epyc7002sofs" ] || [ "$PLATFORM" = "ryzen5k" ]; then
SYNOUnloadModules hwmon-vid
else
SYNOUnloadModules i2c-i801
fi
if [ "$PLATFORM" = "denverton" ] || [ "$PLATFORM" = "skylaked" ]; then
SYNOUnloadModules hwmon-vid
fi
fi
}
findADTPath()
{
ret=0
unset ADTDIRS
file="/sys/class/i2c-dev/i2c-*/device/*-002[c-e]"
for f in $file
do
if [ ! -f "$f/name" ]; then
continue
fi
name=`cat $f/name`
if [ "$name" == "adt7490" ];then
ADTDIRS="${ADTDIRS} $f"
ret=1
fi
done
return ${ret}
}
# here we assume adt master will always 0x2e, because due to adt7490's spec, only 0x2e address can be fixed
findADTMaster()
{
unset ADTMASTER
local device
files="/sys/class/i2c-dev/i2c-*/device/*-002e \
/sys/class/i2c-dev/i2c-*/device/*-002c \
/sys/class/i2c-dev/i2c-*/device/*-002d"
for file in $files
do
if [ -f "$file/name" ]; then
device=`cat "$file/name"`
if [ "$device" == "adt7490" ]; then
ADTMASTER="$file"
break
fi
fi
done
}
SoftLink7490fanInput()
{
local supportadt7490
local kernelVer
supportadt7490=`get_key_value $SYNOINFO_DEF supportadt7490`
kernelVer=`KernelVersionCode "$(KernelVersion)"`
if [ "$supportadt7490" != "yes" ]; then
return
fi
adtfanTmpPath="/tmp/ADTFanPath/"
findADTPath
# no adt path found
if [ 1 -ne $? ]; then
return
fi
findADTMaster
if [ -z ${ADTMASTER} ]; then
return
fi
/bin/mkdir -p ${adtfanTmpPath}
# soft link master adt7490
if [ $kernelVer -ge "$(KernelVersionCode "5.10")" ]; then
masterfiles=`ls -d ${ADTMASTER}/hwmon/hwmon*/*`
else
masterfiles=`ls -d ${ADTMASTER}/*`
fi
for masterfile in ${masterfiles}
do
ln -s ${masterfile} ${adtfanTmpPath}/
done
# assume other fan input comes from 5
fanCnt=5
# soft link slave adt7490
for ADTDIR in ${ADTDIRS}
do
# skip master itself
if [ "${ADTDIR}" == "${ADTMASTER}" ]; then
continue
fi
if [ $kernelVer -ge "$(KernelVersionCode "5.10")" ]; then
slaveFans=`ls ${ADTDIR}/hwmon/hwmon*/fan*_input`
else
slaveFans=`ls ${ADTDIR}/fan*_input`
fi
for slavefan in ${slaveFans}
do
ln -s ${slavefan} ${adtfanTmpPath}/fan${fanCnt}_input
fanCnt=`expr ${fanCnt} + 1`
done
done
}