Ubuntu 23.04 禁用板载VGA以消除虚拟显示器问题求助
问题描述
我在SuperMicro H8QGL主板上安装了Ubuntu 23.04,搭配Nvidia M4000显卡。现在板载VGA端口(被IPMI占用)总是显示一个名为“Unknown Display”的虚拟显示器,明明没有任何设备连接。我怀疑是因为IPMI一直在使用这个VGA端口,所以系统认为始终有显示器连接。
我在BIOS里找不到禁用板载VGA控制器的选项,也不知道该黑名单哪个模块来禁用板载VGA、消除这个虚拟显示器。之前尝试修改/etc/default/grub,添加了GRUB_CMDLINE_LINUX="video=VGA-1-1:d",但重启后xrandr里还是能看到这个虚拟显示器。
系统信息
lspci | grep VGA
01:04.0 VGA compatible controller: Matrox Electronics Systems Ltd. MGA G200eW WPCM450 (rev 0a) 03:00.0 VGA compatible controller: NVIDIA Corporation GM204GL [Quadro M4000] (rev a1)
lsmod(关键模块截取)
mgag200 73728 1 drm_shmem_helper 24576 1 mgag200 drm_kms_helper 249856 4 mgag200,nvidia_drm drm 692224 14 drm_kms_helper,drm_shmem_helper,nvidia,mgag200,nvidia_drm
xrandr输出
Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 16384 x 16384 DP-0 disconnected (normal left inverted right x axis y axis) DP-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 700mm x 390mm 1920x1080 60.00*+ 59.94 50.00 60.00 50.04 1280x720 60.00 59.94 50.00 1024x768 75.03 70.07 60.00 800x600 75.00 72.19 60.32 56.25 720x576 50.00 720x480 59.94 640x480 75.00 72.81 59.94 59.93 DP-2 disconnected (normal left inverted right x axis y axis) DP-3 disconnected (normal left inverted right x axis y axis) DP-4 disconnected (normal left inverted right x axis y axis) DP-5 disconnected (normal left inverted right x axis y axis) DP-6 disconnected (normal left inverted right x axis y axis) DP-7 disconnected (normal left inverted right x axis y axis) VGA-1-1 connected (normal left inverted right x axis y axis) 1024x768 60.00 800x600 60.32 56.25 848x480 60.00 640x480 59.94 1024x768 (0x228) 65.000MHz -HSync -VSync h: width 1024 start 1048 end 1184 total 1344 skew 0 clock 48.36KHz v: height 768 start 771 end 777 total 806 clock 60.00Hz 800x600 (0x22b) 40.000MHz +HSync +VSync h: width 800 start 840 end 968 total 1056 skew 0 clock 37.88KHz v: height 600 start 601 end 605 total 628 clock 60.32Hz 800x600 (0x22c) 36.000MHz +HSync +VSync h: width 800 start 824 end 896 total 1024 skew 0 clock 35.16KHz v: height 600 start 601 end 603 total 625 clock 56.25Hz 640x480 (0x231) 25.175MHz -HSync -VSync h: width 640 start 656 end 752 total 800 skew 0 clock 31.47KHz v: height 480 start 490 end 492 total 525 clock 59.94Hz
xrandr --listproviders
Providers: number : 2 Provider 0: id: 0x217 cap: 0x1, Source Output crtcs: 4 outputs: 8 associated providers: 1 name:NVIDIA-0 Provider 1: id: 0x259 cap: 0x2, Sink Output crtcs: 1 outputs: 1 associated providers: 1 name:modesetting
解决方案建议
根据你的系统信息,板载VGA对应的驱动模块是mgag200(Matrox MGA G200eW的驱动),这就是导致虚拟显示器出现的根源。你可以通过以下步骤禁用这个模块:
创建模块黑名单文件
打开终端,运行以下命令创建黑名单配置文件:sudo nano /etc/modprobe.d/blacklist-mgag200.conf在文件中添加以下内容:
blacklist mgag200 blacklist mgag200_drm保存并退出编辑器(按
Ctrl+O回车确认,再按Ctrl+X退出)。更新initramfs
因为该模块可能被包含在初始RAM文件系统中,需要更新initramfs使黑名单生效:sudo update-initramfs -u重启系统
重启后,运行以下命令确认模块是否已被禁用:lsmod | grep mgag200如果没有任何输出,说明模块已成功禁用。此时再运行
xrandr,应该就看不到那个虚拟的VGA-1-1显示器了。
注意事项
需要提醒的是,板载VGA是IPMI远程控制台的显示通道,禁用这个模块后,IPMI的远程图形控制台功能可能会失效。如果你需要使用IPMI远程管理,可能需要权衡是否要禁用这个模块。
备注:内容来源于stack exchange,提问作者James Richters

