本帖最后由 aby001 于 2023-6-20 23:13 编辑
感谢ljfl大佬、感谢zeroqi2008,感谢rmt大佬,尤其感谢zeroqi2008大佬,您的帖子图文并茂从model写法到温控配置,在此特别感谢smc326大佬,你走过的坑我又一个不落的走了一遍,为了避免后来的朋友再次走入,特此分享。 折腾温控的前置条件。 必须有一台已经成功运行的黑威联通NAS主机。 必须有一台已经成功运行的黑威联通NAS主机,能进入系统就行。 必须有一台已经成功运行的黑威联通NAS主机,能进入系统就行,然后我们开始研究温控。
本文主要谈论如何找到适合自己qnap版本使用的驱动文件并挂载
1、搞清自己温度芯片sio型号(zeroqi2008) (1)主板启动时在bios设置界面查看。 (2)优盘弄个winPe或者电脑中用AIDA64查看传感器型号。路径:aida64——(左侧)计算机——传感器 (3)直接看主板的芯片,指甲盖大小的 ITE系列以it87为例,NCT系列以nct6775 (rmt) 2、驱动文件的样子 ite系列:it87.ko(rmt) nct系列:nct6775.ko(rmt) 上述it87.ko,nct6775.ko是一个系列的合集,不同版本的it87.ko里面支持的芯片是不同的,所以多试试,只要不是冷门的主板,大概率是可以的 linux/blob/master/drivers/hwmon/it87.c
3、查看Qnap系统内核版本 自己安装的版本大伙都知道的,5.0以上的默认都是【5.10.60-qnap】 路径:SISH登陆启动的物理机 输入:cat/proc/version 白话太长版:此威联通系统使用Linux内核版本5.10.60,并在gcc-4.9.2编译器环境下编译。 Linuxversion5.10.60-qnap(root@U16BuildServer118)(x86_64-QNAP-linux-gnu-gcc(toolchainconfig:[gcc-4.9.2binutils-2.25glibc-2.21])4.9.2,GNUld(GNUBinutils)2.25)#1SMPFriApr2101:32:40CST2023
问:有人会问了,这个有什么用呢? 答:4.x和5.x的版本的驱动试不同用的,甚至不同型号的驱动都可以不通用,这个涉及打包的驱动路径,和编译驱动的路径,类似 /lib/modules/5.10.60-qnap/
4、加载驱动的位置 例:主板温控芯片是ite-8689e,根据论坛和上述资料,温控驱动一定是it87.ko 如果芯片 Nuvoton NCT6796D/5582D呢,温控驱动就要找nct67**.ko (1)需要加载的驱动路径: 把驱动先拷贝到安装好的物理机,不是工具盘模式,驱动的目录找个简单一点的, 测试用的如下: /share/SSD1/lib/it87.ko 这个路径根据个人的机器自己改下,这里暂时放在SSD1共享文件夹中的lib文件夹下的it87.ko
(后期改好后,可以根据工具盘操作打包进驱动合集里面)
(2)尝试加载驱动 路径:SISH登陆,启动的物理机,需要进威联通开启SiSH功能(控制台——网络与文件服务——telnet/SiSH),windows用户可以用Putty,MAC用户自带终端,Linux用户自带terminal终端。 因设备是it87的所以用了smc326的命令,卸载的驱动可以通过用lsmod查看 命令如下: rmmod it87 #卸载驱动
rmmod coretemp #卸载驱动
rmmod k10temp #卸载驱动
insmod /share/SSD1/lib/it87/it87.ko #根据自己的位置加载下,保存此步报错,然后结合dmesg一起看 错误1:文件不存在,或命令错误 [~] # insmod/share/SSD1/lib/it87/it87.ko -sh: insmod/share/SSD1/lib/it87/it87.ko: No such file or directory 请自己检查上述驱动位置是否正确,是否拼写正确,比如这里insmod/share ,insmod后面需要空格,虽然位置是对的但是命令拼写不对也会报错 错误2:无法插入,文件存在 Insmod /share/SSD1/lib/it87/it87.ko Insmod can't insert '/share/SSD1/lib/it87/it87.ko':File exists 错误但是需要此种3:无法插入,设备资源忙碌 [~] # insmod /share/SSD1/lib/it87/it87.ko insmod: can't insert '/share/SSD1/lib/it87/it87.ko'evice or resource busy 结合dmesg命令查下,输入 dmesg 6691.589167] it87: it87 driver versionv1.0-52-g2b8b4fe [ 6691.596264] it87: Found IT8689E chip at 0xa40, revision1,Patched by R-mt for QNAP [ 6691.605889] it87: Beeping is supported [ 6691.611294] GPIO Simple IO Base Address= 0xa00 [ 6691.617465] ACPI Warning: SystemIO range0x0000000000000A45-0x0000000000000A46 conflicts with OpRegion0x0000000000000A45-0x0000000000000A46 (\GSA1.SIO1) (20200925/utaddress-213) [ 6691.636009] ACPI: If an ACPI driver isavailable for this device, you should use it instead of the native driver 答:这个是啥意思呢,查了下某些华硕和jijia的主板ite芯片用的是acpi接口有冲突,有冲突就要解决冲突,或者强制使用,这里感谢rmt大佬在帖子中回复说的 方案一、insmod /share/SSD1/lib/it87/it87.ko ignore_resource_conflict=1 这里是加载it87.ko时候再跟一个命令,不用换行 ignore_resource_conflict=1
方案二、grubcfg加上acpi_enforce_resources=lax root=/dev/ram0 rwacpi_enforce_resources=lax 这里是在系统优盘的sda1,有的优盘可能是sdb1(U盘的第一个启动分区),这里的grub.cfg中加上一句,强制acpi这个资源使用,然后重启 正常启动好的物理机,加载sdb1命令: mkdir /mnt/sdb1 #在mnt目录下创建sdb1文件夹 mount /dev/sdb1 /mnt/sdb1 #加载文件夹
能加载的效果,用lsmod查看以上驱动是否挂载成功。
系统加载的驱动显示的时候是没有ko结尾的,加载命令是需要it87.ko,卸载命令就没有ko例: rmmod it87 #卸载驱动
insmod /share/SSD1/lib/it87/it87.ko #加载驱动
到此驱动试加载上了,所以要看看效果
安装好的物理机: cat /sys/class/hwmon/hwmon0/name cat /sys/class/hwmon/hwmon1/name 我们的目标是hwmon0识别出来,有可能hwmon1识别出来,只要hwmon识别出来, 就登陆物理机的ubantu 输入sensors看看温度有没有 如果输入sensors没反应,先安装ubantu的温控组件 命令:apt install lm_sensors
后续是hwmon1变成hwmon0 让系统识别的温控显示出来
|