Skip to content

Enable Synology integrated fan speed control for XPenology by hooking scemd

Notifications You must be signed in to change notification settings

armanism/scemd_fanspeed_hook

 
 

Repository files navigation

scemd_fanspeed_hook

hooks scemd's ioctl function, check if it's fanspeed controlling code, then redirecting it to our own fan speed control logic.

The code contains speed control code for ITE IT8728F chip, from the below credits you can find the IT8772E

Usage:

  1. Compile: make

  2. On Synology, move the /usr/syno/bin/scemd to /usr/syno/bin/scemd.orig

  3. Copy the compiled scemd and scemd_hijack.so to /usr/syno/bin

  4. (Optional) tweak your settings in /usr/syno/etc/scemd.xml and /usr/syno/etc.defaults/scemd.xml

Credits:

For developers

  • I found the magic ioctl request code by reverse engineering the scemd, libsynoscemd.so.1 and libhwcontrol.so.1. The ScemFanSpeedAdjuster function in libsynoscemd.so.1 will do the call to SYNOFanDebugPrint in libhwcontrol.so.1, then you'll find everything looking at SYNOFanDebugPrint's cross references :)
  • You can enable verbose debug log by echo 1 > /tmp/m2tmp.txt

About

Enable Synology integrated fan speed control for XPenology by hooking scemd

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 92.7%
  • Makefile 6.5%
  • C++ 0.8%