由于高精度事件计时器(HPET)驱动过时导致AMD机器装Win10的卡死蓝屏问题记录

AMD机型最近频繁卡死,蓝屏,特征在于:打游戏等高负载条件,电脑没有问题;闲置一定时间之后蓝屏或者死机,鼠标键盘无反应,界面全部卡死,只能按开机键重启。未保存的数据全部丢失。

近日蓝屏代码 有两类,一,IRQL NOT LESS OR EQUAL 。驱动程序使用了不正确的内存地址造成。
第二种是 KMODE_EXCEPTION_NOT_HANDLED。这种主要是由于过时或损坏的设备驱动程序文件。

以下是解决思路,首先能装的外设驱动都没问题,近日还更新了显卡的驱动。会不会是系统组件的底层驱动呢?还有,最近新装了电信自己的拨号软件,会不会和Win10系统不兼容呢?(与系统不兼容这点,电信安装人员已经提示我换装Win7,办不到) 觉得是这两件

以下是解决方案

摸索出来方法分享给大家,一,禁用驱动程序强制签名,以便解决某些软件驱动的问题。如果还是会蓝屏死机,就是底层驱动的问题,那么下载驱动更新软件Driver Reviver, 更新几个过时驱动程序,尤其注意HPET(高精度事件计时器)这个组件,

高精度事件计时器驱动已经过时

按道理这种配置不该卡顿
我根本没想过是HPET的问题。这个很关键的系统组件属于南桥芯片组,个人猜测是和AMD显卡的最新驱动不兼容,也一定程度上影响ssd的读写性能导致闲置待机时蓝屏死机。
网络上有零星的报道
主要还是影响AMD显卡

但还有猜测,为何显卡高负载时没有蓝屏死机的问题呢?还有待思考。

### Linux HPET 高精度事件定时器配置与使用 #### 启用HPET支持 为了使Linux系统能够利用高精度事件定时器(HPET),内核编译时需确保启用了相应的配置选项。对于希望启用HPET功能的情况,应当激活`CONFIG_HPET`以及`CONFIG_HPET_MMAP`这两个选项[^1]。 当启动带有HPET硬件的计算机并加载了适当配置过的Linux内核之后,可以通过命令行工具查看关于HPET的信息输出: ```bash $ dmesg | grep -i hpet ACPI: HPET CFBF2000, 0038 (r1 INTEL DX48BT2 76E MSFT 1000013) ACPI: HPET id: 0x8086a301 base: 0xfed00000 hpet clockevent registered HPET: 4 timers in total, 0 timers will be used for per-cpu timer hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0, 0 hpet0: 4 comparators, 64-bit 14.318180 MHz counter ``` 上述日志片段展示了在Fedora操作系统环境下成功识别到主板上的HPET设备及其初始化过程中的部分细节[^2]。 #### 使用HPET接口编程 一旦确认系统已正确安和支持HPET,则可通过用户空间程序来操作该定时器。通常情况下,这涉及到打开特殊文件节点 `/dev/hpet` 进行读写访问以控制计数器和比较寄存器的行为。下面给出了一段简单的C语言代码示例用于创建基于HPET的时间延迟函数: ```c #include <fcntl.h> #include <stdio.h> #include <unistd.h> #include <sys/ioctl.h> #include <linux/hpet.h> void delay_hpet(unsigned long microseconds){ int fd; struct hpet_info info; /* 打开/dev/hpet */ if ((fd = open("/dev/hpet", O_RDONLY)) == -1) { perror("open"); return ; } ioctl(fd, HPET_GET_INFO, &info); unsigned long ticks_per_us = info.hpi_frequency / 1e6; // 计算每微秒对应的滴答次数 unsigned long start_value = lseek(fd, 0, SEEK_CUR); // 获取当前计数值作为起点 unsigned long target_value = start_value + (ticks_per_us * microseconds); while(lseek(fd, 0, SEEK_CUR) < target_value){} // 循环等待直到达到目标值 close(fd); } ``` 这段源码实现了通过调用`/dev/hpet`驱动所提供的ioctl接口查询频率参数,并据此计算出所需延时期间的绝对计数值;接着进入循环不断检测实际进度直至满足条件为止从而实现精确度较高的软件延时效果[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

VCLZ-42

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值