news 2026/7/11 5:40:43

海光平台debian11的系统,打开pstore功能和验证功能

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
海光平台debian11的系统,打开pstore功能和验证功能

在海光3490平台(x86_64架构)的Debian 11系统上启用pstore,核心是配置 `ramoops` 模块。它会在内存中预留一块“自留地”,用来在系统崩溃时保存“临终遗言”。

下面是具体的操作步骤:

### 📝 第一步:检查内核支持

在开始前,先确认当前内核已经编译了必要的pstore模块。

```bash
# 检查关键的内核配置选项
cat /boot/config-$(uname -r) | grep -E "CONFIG_PSTORE|CONFIG_RAMOOPS"
```

正常情况下,你应该看到以下输出,这表明基础支持已经就绪:
```
CONFIG_PSTORE=y
CONFIG_PSTORE_CONSOLE=y
CONFIG_PSTORE_RAM=y
CONFIG_RAMOOPS=y
```
**如果这些选项是 `=m`**,说明是作为模块编译的,你需要用 `modprobe pstore ramoops` 命令来加载它们。

Debian 11的官方内核通常已包含这些选项,如果你的输出缺少某些项,则可能需要重新编译内核。

### ⚙️ 第二步:配置 `ramoops` 内存区域

这是最关键的一步,需要告诉内核预留哪块内存给pstore使用。有两种方法:

#### **方法一:通过内核启动参数配置 (推荐)**

这种方式最灵活,无需重启进入BIOS。你需要编辑GRUB配置文件,在`GRUB_CMDLINE_LINUX`中添加参数。

1. **编辑GRUB配置**:
```bash
sudo vi /etc/default/grub
```
找到 `GRUB_CMDLINE_LINUX` 这一行,在引号内添加如下参数:
```
ramoops.mem_address=0x30000000 ramoops.mem_size=0x200000
```
* `ramoops.mem_address=0x30000000`:指定预留内存的**起始物理地址**(例如从 `0x30000000` 开始)。你需要根据海光平台的实际内存映射来选择一个空闲地址。
* `ramoops.mem_size=0x200000`:指定预留内存的**大小**(此处为十六进制,`0x200000` = 2MB)。2MB是一个不错的起始值,你可以根据需求调整。

2. **更新GRUB配置**:
```bash
sudo update-grub
```

#### **方法二:通过BIOS设置**

如果你的海光平台服务器BIOS提供了相关选项,也可以在那里进行配置。这通常需要在开机时进入BIOS设置界面,找到类似“Memory Reservation”或“RAMOOPS”的选项,然后设置起始地址和大小。这个方法因不同服务器厂商的BIOS而异。

### 💾 第三步:挂载 pstore 文件系统

pstore文件系统通常挂载在 `/sys/fs/pstore`,系统通常会自动挂载。你可以用以下命令检查:

```bash
mount | grep pstore
```

如果没有输出,说明未挂载,需要手动挂载:
```bash
sudo mount -t pstore pstore /sys/fs/pstore
```

为了方便,可以将挂载命令添加到 `/etc/fstab` 以实现开机自动挂载:
```
pstore /sys/fs/pstore pstore defaults 0 0
```

### 🚀 第四步:加载模块 (如果内核选项为 `=m`)

如果你之前检查时发现 `CONFIG_PSTORE_RAM=y` 或 `CONFIG_RAMOOPS=y` 是 `=m`,则需要手动加载模块:

```bash
sudo modprobe pstore
sudo modprobe ramoops
```

### ✅ 第五步:验证和测试

完成以上配置后,**重启系统**让配置生效。

1. **检查目录**:重启后,查看 `/sys/fs/pstore/` 目录。
```bash
ls -l /sys/fs/pstore/
```
正常情况下,应该看到 `console-ramoops` 或 `dmesg-ramoops-0` 等文件。

2. **模拟崩溃测试 (可选)**:
**请务必在测试或非生产环境下进行!**
你可以通过触发一个内核恐慌来测试pstore是否工作:
```bash
sudo echo c > /proc/sysrq-trigger
```
系统会立即崩溃重启。重启后,再次检查 `/sys/fs/pstore/` 目录,应该会有新的日志文件生成。

### 📖 第六步:读取和分析日志

当系统发生异常重启后,你可以通过以下命令来查看保存的日志:

```bash
# 查看控制台日志
cat /sys/fs/pstore/console-ramoops

# 查看内核日志
cat /sys/fs/pstore/dmesg-ramoops-0
```

### ⚠️ 注意事项

* **内存地址**:`ramoops.mem_address` 必须是一个有效的、未被系统使用的物理内存地址。如果设置不当,可能导致系统无法启动。你可以通过 `dmesg | grep "e820"` 查看内核发现的内存映射来选择一个合适的地址。
* **内存大小**:`ramoops.mem_size` 不宜过大,通常几MB就足够,以免浪费宝贵的内存资源。
* **断电丢失**:`ramoops` 基于RAM,系统**完全断电**后日志会丢失。它主要应对的是系统崩溃后**立即重启**(如看门狗复位)的场景。
* **权限问题**:查看日志可能需要 `root` 权限。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/11 5:38:54

从零开始学习Python:一份完整的新手入门指南

前言:为什么选择Python? Python是一门简单易学、功能强大的编程语言,近年来在人工智能、数据分析、Web开发、自动化运维、软件自动化测试等领域大放异彩。对于零基础的学习者来说,Python语法清晰、代码可读性高,是进入…

作者头像 李华
网站建设 2026/7/11 5:36:09

STM32高阶开发四大能力:时序、资源、软硬协同与鲁棒性

1. 为什么“做完正点原子例程”只是起点,而不是终点?STM32,这三个字母对很多嵌入式初学者来说,像一道分水岭——跨过去,是嵌入式开发的入场券;跨不过去,就永远卡在“能点亮LED、能发串口数据”的…

作者头像 李华
网站建设 2026/7/11 5:35:24

TaskReminderUI事项提醒工具:支持截止前多阶段提醒组合,台账管理与多维筛选,统计报表可视化分析,桌面弹窗与声音提示

大家好,我是大飞哥。在日常工作与生活中,你是否也经常被这样的事困扰:手头同时推进着好几个项目,有的要周五交方案,有的下周一要开会,还有的是月底要提交报告——这些截止日期全靠脑子记,一忙起…

作者头像 李华
网站建设 2026/7/11 5:35:22

2026合肥展台展览焕新优选|专业展台设计搭建公司实力甄选指南

2026年合肥会展经济持续升级,世界制造业大会、各类产业专业展会、科创成果博览会等行业盛会常态化落地,滨湖国际会展中心等核心场馆展会活动频次持续攀升。对于参展企业而言,优质的展台、展位呈现效果是品牌展示、客商对接、形象塑造的核心关…

作者头像 李华
网站建设 2026/7/11 5:35:05

STM32CUBE AI STUDIO 使用教程

STM32CUBE AI STUDIO 使用教程 一套交互式HTML课件,从零开始讲解如何在STM32微控制器上部署人工智能模型。 教程概述 本教程以 STM32Cube.AI(X-CUBE-AI)工具链为核心,系统介绍边缘AI开发的完整流程:从概念认知到环境搭建,从模型导入到量化优化,最终完成模型在MCU上的…

作者头像 李华