支持主板风扇调速的龙芯3A2000C Linux 5.10内核

之前在《安装DEBIAN 11到长城龙芯3A2000C平台》一文中,记录了如何将Debian 11安装到龙芯3A2000C电脑上。Debian 11默认的Linux内核版本是5.10,对比龙芯官方的内核,版本比较新,能够支持许多新的特性。但是也带来了一些问题,这个内核并未针对长城的龙芯3A2000C主板做优化,例如主板的风扇转速就一直居高不下,且操作系统也无法获得主板的转速,在特定的场合就无法静音运行(例如做NAS)。

龙芯官方的内核是4.19版本的,没有这个问题。我花时间研究了下官方的4.19内核源码,发现产生这个问题的原因是,5.10内核并未包含EC芯片的驱动程序,且主板上的EC芯片也无法直接获得CPU的温度,官方内核的解决办法是,通过CPU获得当前温度,每秒更新一次给EC芯片,以便于其根据策略控制风扇转速。