看了一下你的配置是 AMD Ryzen 3 1200。
虽然你的故障现象(空闲死机、失联)和我遇到的 Intel J3455 几乎一模一样,但解决方案完全不同,千万不要照搬 Intel 的修复教程:
1. 为什么你之前的尝试没用?
- 你尝试的
systemctl mask sleep: 这只是告诉操作系统“不要自动睡眠”,但它管不了 CPU 硬件自己为了省电偷偷进入深度休眠(C-State)。
- 关于 Intel 的修复方案: Intel修复命令放在这个网页https://bug.3ox.cc,需要用
intel_idle.max_cstate=1 指令是 Intel 专用的驱动参数,Linux 内核加载时会忽略它,所以对你的 AMD CPU 无效。
2. 真正的病灶
AMD 第一代锐龙(Ryzen 1000系列,包括你的 R3 1200)在 Linux 下有一个著名的 "C6 State Freeze" 缺陷。简单说就是 CPU 在极低负载下进入 C6 深度节能状态时,电压过低导致核心锁死。
3. 解决方案 (二选一)
方案 A:BIOS 设置 (最推荐)
进入主板 BIOS,找到 Global C-state Control 或者 Power Supply Idle Control 选项。
- 将其设置为 "Typical Current Idle" (典型电流空闲)。
- 或者直接 Disable (关闭) C-Global State。
这样最稳,不需要改系统文件。
方案 B:修改 GRUB 内核参数 (软修复)
如果 BIOS 里找不到选项,可以通过修改飞牛的引导参数来解决。
我们需要用的参数是 AMD 通用的 processor.max_cstate=1。
操作步骤:
- SSH 连接到飞牛。
- 执行以下命令(已包含 AMD防死机参数 + 修正官方GRUB语法覆盖BUG):
# 1. 备份原配置
sudo cp /etc/default/grub /etc/default/grub.bak.amd
# 2. 清理可能存在的错误分行写法
sudo sed -i '/^GRUB_CMDLINE_LINUX_DEFAULT=/d' /etc/default/grub
# 3. 写入 AMD 专用修复参数 (注意 processor.max_cstate=1)
echo 'GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pcie_port_pm=off processor.max_cstate=1"' | sudo tee -a /etc/default/grub
# 4. 更新引导并重启
sudo update-grub
sudo reboot
执行完系统会自动重启后,你的 R3 1200 就不会再因为空闲而死机了。