当前位置: 首页 > news >正文

华为 RH2288 V3 安装 Ubuntu 24.04 后黑屏:Tesla V100 与 simpledrm 冲突的绕开方案

环境与故障现象

硬件

  • 服务器:华为 RH2288 V3
  • 板载显卡:Hi171x BMC 芯片(负责物理显示输出)
  • 计算卡:NVIDIA Tesla V100 SXM2 16 GB(无显示输出)

软件

  • 操作系统:全新安装 Ubuntu 24.04.4 desktop amd64
  • 安装时未勾选“Install third-party software for graphics and Wi-Fi”
  • 内核:6.17.0-22-generic(Ubuntu 24.04 的 HWE 内核,注意该版本号为 Ubuntu 打包版本,非主线 Linux 版本)
  • NVIDIA 驱动:nvidia-driver-535-server(安装后自动拉入 nvidia_drm 等显示模块)

现象
安装 NVIDIA 驱动并重启后,系统黑屏,仅左上角闪烁下划线光标。可切换至命令行(Ctrl+Alt+F2),网络和 SSH 正常。


排查要点

ls -la /dev/dri/                 # 只有 card1(来自 nvidia_drm),没有 card0
lsmod | grep nvidia              # nvidia_drm 和 nvidia_modeset 已加载
grep -i hibmc /boot/config-$(uname -r)
# 输出:# CONFIG_DRM_HISI_HIBMC is not set
  • 板载 BMC 显卡驱动 hibmc_drm 被 Ubuntu 内核禁用(编译选项未开启),因此无法使用。
  • 内核自带的 simpledrm 已接管 BMP 帧缓冲,生成 /dev/fb0,并应提供 card0
  • 但由于 nvidia_drm 加载后,DRM 主设备 minor 号被抢占,导致 card0 节点消失。
  • GDM 不断报错:maximum number of X display failures reached

根本原因:nvidia_drm 显示模块与 simpledrm 冲突,而 Tesla V100 无物理输出,导致图形子系统彻底瘫痪。


解决方案(两步走)

第一步:现场恢复图形(无需重启)

# 注意卸载顺序:先卸载依赖模块 nvidia_modeset,再卸载 nvidia_drm
sudo rmmod nvidia_modeset
sudo rmmod nvidia_drm# 让 udev 为 simpledrm 创建设备节点
sudo udevadm trigger --subsystem-match=drm
sudo udevadm settle# 验证 card0 出现
ls -la /dev/dri/          # 此时应出现 card0# 启动图形界面
sudo systemctl restart gdm3

第二步:永久防止冲突

使用 install 指令彻底阻止 nvidia_drmnvidia_modeset 加载(blacklist 无效,因为它阻止不了依赖加载)。

sudo tee /etc/modprobe.d/disable-nvidia-drm.conf > /dev/null << 'EOF'
install nvidia_drm /bin/false
install nvidia_modeset /bin/false
EOF

必须更新 initramfs,使配置在启动早期生效(针对所有已安装内核):

sudo update-initramfs -u -k all

重启系统:

sudo reboot

为什么不用 GRUB 内核参数?
你最初可能尝试了 modprobe.blacklist=nvidia_drm,nvidia_modeset,但在 install /bin/false 存在时这是多余的,而且内核参数黑名单与 install 拦截机制可能冲突,建议删除 /etc/default/grub 中的该参数,仅保留 install 拦截即可。


验证结果

重启后直接进入图形桌面:

$ ls -la /dev/dri/
total 0
drwxr-xr-x   3 root root      80 Apr 30 19:18 .
drwxr-xr-x  20 root root    4400 Apr 30 19:18 ..
drwxr-xr-x   2 root root      60 Apr 30 19:18 by-path
crw-rw----+  1 root video 226, 0 Apr 30 19:18 card0$ lsmod | grep nvidia
nvidia_uvm           1769472  0
nvidia              56930304  10 nvidia_uvm$ nvidia-smi
# 正常显示 Tesla V100,驱动 535.288.01,CUDA 12.2
  • card0 存在,card1 消失
  • NVIDIA 核心模块加载,显示模块被彻底禁止
  • 图形与计算各司其职,再无冲突

经验与副作用说明

  1. blacklist 不够用,install /bin/false 才是悬崖
    blacklist 无法阻止模块被依赖拉入,只有 install 能彻底拦截。

  2. RMmod 顺序很重要
    必须按 nvidia_modeset → nvidia_drm 的顺序卸载,否则会报错。

  3. update-initramfs -u -k all 是关键
    配置文件修改后必须重建所有内核的 initramfs,否则重启依旧加载旧模块。

  4. 副作用提示

    • 禁用 nvidia_drm 后,NVIDIA GPU 将无法用于图形渲染(如 OpenGL 直接显示),但 CUDA 计算任务完全不受影响
    • 如果你需要运行依赖 GPU 图形加速的应用程序(如某些可视化工具),需评估影响。
    • 对于纯粹的服务器计算环境,这是理想的隔离方案。
  5. 为何选择绕开而非启用 hibmc?
    由于 Ubuntu 内核未启用 CONFIG_DRM_HISI_HIBMC,无法使用华为 BMC 专用驱动。但 simpledrm 已能提供稳定的基础显示,因此绕开 NVIDIA 显示模块是最简可行方案。

http://www.jsqmd.com/news/727739/

相关文章:

  • 新手必看:用Mission Planner调APM/Pixhawk飞控,这20个参数不改飞机真不稳
  • 穿越机飞行控制革命:Betaflight 2025.12版本如何彻底解决抖动问题?
  • Unity 回合制多人游戏架构解析:从 Matchmaking 到定点物理
  • AI 幻觉与可信度:大模型的阿喀琉斯之踵
  • 智融SW3517S,支持 PD 的多快充协议双口充电解决方案。
  • 在aarch64机器上安装使用R语言的季节调整包
  • 从像素邻居到距离计算:手把手用NumPy实现图像中的欧式、街区与棋盘距离
  • D149 最小生成树 Boruvka 算法
  • 利用 Taotoken 多模型能力为智能客服场景提供备选方案
  • 如何让加密音乐重获自由:Unlock Music一站式解密解决方案
  • NLP整体学习框架路线图
  • 题解:AcWing 6028 表达式括号匹配
  • 避开这些坑!河海大学软件工程复试联系导师的真相与策略(附邮件模板)
  • 情感词典动态校准术,R 4.5中基于领域语料微调AFINN-2.0的5步闭环方法论
  • RobotFrameWork自动化测试环境搭建
  • 告别词库迁移烦恼:深蓝词库转换器让20+输入法格式自由互通
  • Umi-OCR批量处理性能优化:三步解决任务阻塞与资源泄露问题
  • 为什么你的Dify权限总被绕过?——基于eBPF内核级策略拦截与OPA网关协同的终极加固方案
  • 【毕设】党员教育和管理系统的设计与实现
  • 阿克曼结构智能循迹蓝牙小车设计与制作(代码部分)
  • Apache Flink 流式计算:窗口与时间语义
  • 2026年AI大爆发:从“预测下一个词”到重塑我们的物理世界
  • 战略级开源项目管理平台:OpenProject赋能团队协作的智能化解决方案
  • 2026年主流Ai平台GEO引用媒体来源深度解析:从资源适配到效果转化的选型指南 - 发稿平台推荐
  • BM25 + Vectors:为什么真实 RAG 系统通常两者都需要
  • 别再只懂SA和NSA了!一张图看懂5G组网Option 1到Option 7的实战选择
  • SRWE窗口编辑器终极指南:免费突破Windows窗口限制的专业工具
  • 智融SW3526,支持PD的多快充协议充电解决方案。
  • 别再纠结了!给3D新手的PBR材质流程选择指南:金属度 vs. 高光
  • PicTech 妙言小智免费图片翻译3.0升级:排版优化让体验全面飞跃!