You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Arch Linux:启动阶段DisplayPort无输出,仅startx后正常

看起来你遇到的是开机阶段显示输出优先级被HDMI抢占的问题——这其实是很常见的多显示器配置问题,尤其是当你平时关闭副屏的时候。下面给你几个从根本上解决的方案,按优先级来:

1. 先调BIOS/UEFI的显示输出顺序(最关键)

开机阶段的主板logo、密码界面、甚至Linux早期启动文本,都是由BIOS/UEFI直接控制的,和系统无关。所以第一步先改这里:

  • 重启电脑,按主板提示的按键(一般是Del、F2或F10)进入BIOS设置
  • 找到Display SettingsVideo Output Priority或者类似的选项(不同主板命名可能不一样)
  • 把你的DisplayPort接口(可能显示为DP或者主显示器的型号)设为第一输出设备,HDMI设为第二
  • 保存设置重启,这样开机全程的画面应该都会优先输出到DP主显示器了

2. 配置Linux早期KMS,让内核启动阶段识别DP

如果BIOS没有输出优先级选项,或者调整后还是有问题,那就需要让Linux内核在启动早期就加载显卡驱动,正确识别DP显示器:

  1. 编辑/etc/mkinitcpio.conf,找到MODULES行,添加NVIDIA驱动模块:
    MODULES=(nvidia nvidia-drm)
    
  2. 重新生成initramfs:
    sudo mkinitcpio -P
    
  3. 编辑GRUB配置文件/etc/default/grub,在GRUB_CMDLINE_LINUX里添加KMS启用参数:
    GRUB_CMDLINE_LINUX="nvidia-drm.modeset=1"
    
  4. 更新GRUB配置:
    sudo grub-mkconfig -o /boot/grub/grub.cfg
    
    这样内核在启动初期就会加载显卡驱动,tty控制台也会输出到DP显示器了。

3. 配置Xorg默认关闭副屏,确保主屏优先级

虽然你运行startx后DP能正常工作,但可以让Xorg默认关闭HDMI副屏,并且始终把DP设为主显示器:

  • 创建或编辑/etc/X11/xorg.conf.d/10-monitor.conf,写入以下配置:
    Section "Monitor"
        Identifier "DP-0"
        Option "Primary" "true"
    EndSection
    
    Section "Monitor"
        Identifier "HDMI-0"
        Option "Disable" "true"
    EndSection
    
    Section "Screen"
        Identifier "Screen0"
        Device "Card0"
        Monitor "DP-0"
    EndSection
    
  • 以后需要开启副屏时,只需要运行这条命令:
    xrandr --output HDMI-0 --auto --right-of DP-0
    
  • 关闭副屏则运行:
    xrandr --output HDMI-0 --off
    

4. 临时应急方案(不想改配置的话)

如果暂时不想折腾BIOS或系统配置,你可以在开机前拔掉HDMI线,等进入系统后再插上——这样DP会一直作为默认输出设备。不过这个方法比较麻烦,还是推荐前面的持久化配置方案。

内容的提问来源于stack exchange,提问作者SuperPykkon

火山引擎 最新活动