当前位置: 首页 > news >正文

MateBook 16s 2023在Deepin下开启性能模式,调节风扇转速到最大,全网首发!

方法

在Deepin下按住Fn+p快捷键,开启性能模式。

验证

首先去debian下载acpi-call-dkms
https://packages.debian.org/sid/all/acpi-call-dkms/download

然后使用root用户执行:

apt install --simulate ./acpi-call-dkms_1.2.2-2.1_all.deb 
apt install ./acpi-call-dkms_1.2.2-2.1_all.deb
modprobe acpi_call
sudo bash -c 'echo "\GFNM" > /proc/acpi/call' && cat /proc/acpi/call

得到这样的内容就是开启了:

root@likewendy-PC:/home/likewendy# sudo bash -c 'echo "\GFNM" > /proc/acpi/call' && cat /proc/acpi/call
{0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,root@likewendy-PC:/home/likewendy# 

当你关闭时会得到这样的内容:

root@likewendy-PC:/home/likewendy# sudo bash -c 'echo "\GFNM" > /proc/acpi/call' && cat /proc/acpi/call
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,root@likewendy-PC:/home/likewendy# 

其他

我研究了非常长的时间,研究了EC(嵌入式控制器)和ACPI,在ACPI发现了控制风扇级别的方法_FSV,但是方法没有实现。


还发现了GFNM(获取模式)、GFNS(获取转速)、SFND(设置测试模式和转速)、SFNM(设置模式),这些方法都有实现,但是SET的方法调用后没有效果。


还在ACPI发现了貌似是控制键盘背光的方法。


发现了sudo bash -c ‘echo “\SFNM 0xfffffffff” > /proc/acpi/call’ && cat /proc/acpi/call会返回0x01开头的数据,而其他值不会

root@likewendy-PC:/home/likewendy# sudo bash -c 'echo "\SFNM 0xfffffffff" > /proc/acpi/call' && cat /proc/acpi/call
{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,root@likewendy-PC:/home/likewendy# 

拆机找到了EC芯片,里面有厂商和型号,但是没有找到文档
在这里插入图片描述


参考了nbfc-linux和nbfc,nbfc的教程和根据EC数据找风扇参数的命令行工具ec-probe.exe monitor --clearly,对我帮助很大。


用rweverything查阅和导出dsdt数据,用 ChatGPT-o1-预览 分析数据,我导出了图片,OCR后再分析的效果不如文本文件好。


使用了很多命令行工具,在linux下的acpidump,在win和linux下的iasl。


研究花费了我很长的业余时间,对我的身心造成了一定的损害。
ps:这还导致我找到女朋友的概率下降75%


咨询了黑苹果的intel wifi驱动交流群和Magicbook黑苹果交流群,发布了一些内容,给到的实际帮助不大,有情绪价值帮助。


暂时疲惫,我猜想到使用快捷键来开启性能模式,而且是在linux上的原因是:

  • 我曾测试在windows上,先开启性能模式,然后卸载“华为电脑管家”,然后开启linux,貌似性能模式被打开了(风扇模式被切换,貌似不知道咋回事又切换回去了),也许是我的错觉。这意味着可能与“华为电脑管家”无关。

现在没有文档,也没有资料,我无法准确的找到如何通过命令或者ACPI去实现性能模式。

而且快捷键可行,让我联想到了不需要系统去控制的键盘背光,即使处在bios或者grub,也有效。这种奇怪的东西,感觉是个深渊,没有在操作系统层面去管理的必要。

这一度让我怀疑“华为电脑管家”模拟快捷键实现的性能模式切换。然后使用本文同等的方法去验证是否切换成功。


我测试快捷键是否有效时,先在已经卸载了“华为电脑管家”的windows上实验,发现可行,并且有炫酷的“性能模式已经开启”的动画。

后来在deepin上实验,也奇迹般的证明可行。


当使用“华为电脑管家”,但不安装完整的驱动时,windows下不会提示炫酷的“性能模式已经开启”的动画。也不知开启是否有效。至少在“华为电脑管家”上已经显示开启状态。


已经证实使用sudo bash -c ‘echo "\SFNM 0x1 " > /proc/acpi/call’ && cat /proc/acpi/call会导致性能模式被关闭,暂不知如何使用SFNM开启,仍可使用快捷键开启。


EC没有任何值对应风扇,至少我的研究是这样的。
ACPI对于风扇的功能,貌似有用,但是我没有很好的打开方式。


当你sudo bash -c ‘echo "\GFNS 0xfffff " > /proc/acpi/call’ && cat /proc/acpi/call的时候,无论风扇转速如何,都会返回0xff。

root@likewendy-PC:/home/likewendy# sudo bash -c 'echo "\GFNS 0xfffff " > /proc/acpi/call' && cat /proc/acpi/call
{0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,root@likewendy-PC:/home/likewendy# 

难以想象的折腾:
ps:这是dsdt的数据。
在这里插入图片描述


我为此几乎花光了 ChatGPT-o1-预览 的访问权限。

结束

本文说了很多,我写于凌晨2点,后半部分主要是总结我的思绪,我也希望能留下有意义的内容,研究过程。

我今天本来不抱有希望的,不知道是什么让我坚持了下来。

很少有人能想象那种绝望,什么都尝试了EC、ACPI、windows下wmi尝试调用、linux下写文件尝试调用,我写了很多/sys下的文件。

我脑子很乱,各种思绪,让我坚持下来的应该是“要去面对”,面对失败。在成功前,我最后尝试的方法是在windows下修改EC的值,因为ACPI的方法实在是调用不动,还尝试使用“华为电脑管家”开启性能模式,如果能保持,这也是一种方法。那是一种垂死挣扎的尝试。

最终,我又多花了一个小时来纂写文章,如果我不写,我的脑子会无法承受这突如其来的成功。

好想有人抱抱我呀。明天想请假不上班了。


http://www.mrgr.cn/news/33922.html

相关文章:

  • 机器学习(贝叶斯算法,决策树)
  • 【MYSQL】主从复制机制(图解)
  • Leetcode:118. 杨辉三角——Java数学法求解
  • 什么是量化交易
  • 计算机低能儿从0刷leetcode | 36.有效的数独
  • Redis简介、数据结构、高性能读写、持久化机制、分布式架构
  • 返利机器人在电商返利系统中的负载均衡实现
  • 【C语言零基础入门篇 - 17】:排序算法
  • PHP isset() 和 empty() 区别
  • 【C++】继承(上)
  • 定了,东湖高新区下半年中高级职称申报时间
  • java日志框架之Log4j
  • Golang | Leetcode Golang题解之第430题扁平化多级双向链表
  • C++标准库双向链表 list 中的insert函数实现。
  • C++离线查询
  • Golang | Leetcode Golang题解之第429题N叉树的层序遍历
  • Codeforces Round 969 (Div. 1) C. Eri and Expanded Sets(线段树维护差分数组gcd+双指针+尺取)
  • git-repo系列教程(4) windows平台下安装git-repo客户端
  • Leetcode 每日一题:Diameter of Binary Tree
  • AI教你学Python 第18天 : 线性数据结构
  • 程序员如何保持与提升核心竞争力
  • Study Plan For Algorithms - Part35
  • 快速了解使用路由器
  • 证书学习(五)Java实现RSA、SM2证书颁发
  • 【学习笔记】手写 Tomcat 五
  • Python | Leetcode Python题解之第430题扁平化多级双向链表