Ubuntu 22.04实时内核5.15.0-1044下GT640显卡NVIDIA驱动安装故障求助
Ubuntu 22.04实时内核5.15.0-1044下GT640显卡NVIDIA驱动安装故障求助
我之前折腾过实时内核和NVIDIA驱动的兼容问题,对你遇到的这种情况挺有共鸣的,给你整理几个实际可行的解决方向:
优先尝试适配性更好的驱动版本
你的GT640属于Kepler架构,NVIDIA的470.x系列是支持这个架构的最后一个长期支持版本,它对老内核和实时内核的兼容性比最新驱动好很多。你可以试试卸载当前驱动后安装这个版本:sudo apt purge nvidia* sudo apt install nvidia-driver-470 sudo reboot重启后用
lsmod | grep nvidia和nvidia-smi检查驱动是否正常加载。手动给驱动打实时内核补丁
如果470系列还是不行,那可能需要给驱动打专门适配PREEMPT_RT实时内核的补丁。社区里有不少开发者会分享针对特定内核版本的补丁:- 先安装编译依赖:
sudo apt install build-essential linux-headers-$(uname -r) - 切换到命令行模式(避免图形界面干扰):
sudo systemctl set-default multi-user.target sudo reboot - 下载对应470.x版本的NVIDIA驱动.run安装包,比如
NVIDIA-Linux-x86_64-470.239.06.run,然后加执行权限:chmod +x NVIDIA-Linux-x86_64-470.239.06.run - 应用补丁并安装(替换成你找到的对应5.15实时内核的补丁路径):
./NVIDIA-Linux-x86_64-470.239.06.run --apply-patch ~/nvidia-rt-patch.patch
注意:补丁必须和你的内核版本、驱动版本严格对应,不然大概率会编译失败。
- 先安装编译依赖:
调整内核抢占模式(牺牲部分实时性换兼容性)
实时内核默认的CONFIG_PREEMPT_RT_FULL=y可能和NVIDIA闭源驱动的要求冲突,你可以尝试把内核抢占模式调整为普通低延迟的CONFIG_PREEMPT=y:- 复制当前内核配置文件到用户目录:
cp /boot/config-$(uname -r) ~/.config - 编辑配置文件,把
CONFIG_PREEMPT_RT_FULL=y改成CONFIG_PREEMPT=y,同时确保相关的实时配置项调整匹配 - 重新编译内核并安装(这个操作有一定门槛,适合有内核编译经验的用户)
这种方法会降低系统的实时性能,但能让驱动正常工作,适合对实时性要求不是极端苛刻的场景。
- 复制当前内核配置文件到用户目录:
退而求其次用开源驱动Nouveau
如果闭源驱动实在搞不定,开源的Nouveau驱动对实时内核的兼容性普遍更好,虽然性能不如闭源驱动,但能满足基础的显示需求:sudo apt purge nvidia* sudo apt install xserver-xorg-video-nouveau sudo reboot
备注:内容来源于stack exchange,提问作者Max
相关产品推荐
相关产品推荐

