技术备忘录:华硕 A43S (Ubuntu) 插电限频故障修复

技术备忘录:华硕 A43S (Ubuntu) 插电限频故障修复

1. 故障描述
  • 现象 :接入电源适配器后,CPU 频率被硬件强制锁定在 800MHz,拔掉电源使用电池时频率恢复正常(可达 2.4GHz+)。
  • 根源 :硬件触发了 BD PROCHOT 信号。由于老旧适配器功率波动或主板传感器误报,系统判定为供电风险,强制 CPU 进入最低功耗模式。
2. 系统检测命令
  • 查看实时频率watch -n 1 "grep MHz /proc/cpuinfo"
  • 读取硬件锁状态
bash 复制代码
sudo modprobe msr
sudo rdmsr 0x1FC

结果分析:返回 4005d (奇数) 表示锁定;返回 4005c (偶数) 表示正常。

  • 查看温度与风扇sensors

3. 自动化修复方案
第一步:编写解锁脚本

创建脚本文件:sudo nano /usr/local/bin/fix_cpu_throttling.sh
脚本内容:

bash 复制代码
#!/bin/bash
# 1. 加载驱动
modprobe msr
# 2. 强制抹除硬件限频位 (将 4005d 修改为 4005c)
wrmsr -a 0x1FC 262236
# 3. 设置 CPU 为性能调度模式 (可选)
for cpu in /sys/devices/system/cpu/cpu[0-7]; do
    if [ -d "$cpu/cpufreq" ]; then
        echo "performance" > "$cpu/cpufreq/scaling_governor"
    fi
done

赋予执行权限:

bash 复制代码
sudo chmod +x /usr/local/bin/fix_cpu_throttling.sh
第二步:配置 Systemd 自动服务

创建服务文件:sudo nano /etc/systemd/system/cpu-unlock.service
服务内容:

unit 复制代码
[Unit]
Description=Unlock CPU Throttling for Asus A43S
After=multi-user.target suspend.target hibernate.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/fix_cpu_throttling.sh
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target suspend.target
第三步:激活并启动服务

依次执行以下命令,使设置永久生效并支持开机/唤醒自启:

bash 复制代码
# 重新加载系统配置
sudo systemctl daemon-reload
# 启用开机自启
sudo systemctl enable cpu-unlock.service
# 立即启动服务
sudo systemctl start cpu-unlock.service

4. 运维建议
  • 手动恢复 :如果在使用中途插拔电源导致频率再次下降,可执行 sudo systemctl restart cpu-unlock.service 快速恢复。
  • 硬件对策 :此故障 90% 源于电源适配器老化。如需根治,建议更换一个原装的华硕 90W (19V 4.74A) 适配器。
  • 安全提示:解锁后 CPU 失去了主板的"假过热"保护,虽然目前 51°C 非常安全,但若运行大型计算导致风扇狂转且掌托烫手,请留意实时温度。

记录日期 :2026年3月14日
适用环境:Ubuntu 系统 / 华硕 A43S 及同代 Sandy Bridge 架构笔记本

相关推荐
c2385617 小时前
Linux C++ 进度条进阶美化与工程化封装
linux·运维·服务器
凡人叶枫20 小时前
Effective C++ 条款17:以独立语句将 newed 对象置入智能指针
java·linux·开发语言·c++·算法
RisunJan20 小时前
Linux命令-pgrep (通过进程名查找进程 ID)
linux·运维
信创工程师-小杨21 小时前
Linux内网环境如何解决依赖的问题
linux·运维·服务器
设计师小聂!21 小时前
宝塔 Linux 面板保姆级教程
linux·mysql·开源·运维开发
不吃土豆的马铃薯21 小时前
C++ 高性能网络缓冲区 Buffer 源码解析
linux·服务器·开发语言·网络·c++
java知路21 小时前
linux yum 下载docker安装包及依赖安装包,并离线安装
linux·运维·docker
fanged21 小时前
设备树学习2--一个DTBO实验
linux·嵌入式开发
星间都市山脉1 天前
Android STS(Security Test Suite)完整介绍与测试流程
android·java·linux·windows·ubuntu·android studio·androidx
Par@ish1 天前
【网络安全】Web安全扫描工具Nikto安装和使用详细教程
安全·web安全·ubuntu