ubuntu20修改xorg.conf实现双屏幕输出

如果显卡工作正常是不需要自己手动编写xorg.conf的(这个文件一般不存在或者是空的),系统会根据xorg.conf的缺省自动设置屏幕。

但有时候有的屏幕输出不对,想手动固定一下配置。比如我的ROG想设置内屏用intel驱动(集显),外屏用nvidia独显驱动,那么可以这么写(虽然因为显卡驱动的bug目前不支持这种搭配,我的xorg.conf没有发挥应有的作用,但还是记录一下):

bash 复制代码
# 没有/etc/X11/xorg.conf文件的话先生成一个(已经安装了nvidia显卡驱动)
nvidia-xconfig
sudo gedit /etc/X11/xorg.conf

我把xorg.conf修改为:

bash 复制代码
# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 535.154.05

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "ScreenIntel" 0 0 #表示从(0,0)像素坐标开始
    Screen      1  "ScreenExternalNvidia" RightOf "ScreenIntel" # 表示屏幕关系
EndSection


Section "Monitor"
    Identifier     "Monitor0" # 必需
    VendorName     "Unknown"
    ModelName      "Unknown"
    Option         "DPMS"
EndSection

Section "Device"
    Identifier  "CardIntel" # 必需
    Driver      "intel" # 必需
    BusID          "PCI:0:2:0" # 为了区分显卡,必需
    Screen      0 # 为了区分屏幕,可能需要加上
EndSection

Section "Screen"
    Identifier "ScreenIntel" # 必需
    Device "CardIntel" # 必需
    Monitor        "Monitor0" # 为了区分monitor
EndSection


Section "Monitor"
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "Unknown"
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "CardNvidia"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BusID          "PCI:1:0:0"
    Screen      1
    Option "IgnoreDisplayDevices" "CRT"
EndSection

Section "Screen"
    Identifier     "ScreenExternalNvidia"
    Device         "CardNvidia"
    Monitor        "Monitor1"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
    # Option          "metamodes" "DFP-2: nvidia-auto-select"
EndSection

其中Identifier可以自己命名,区分开就行,Driver其实没那么重要,因为系统会根据插槽上实际的显卡来安排Driver,里面也不是所有参数都是必须的,缺省的系统会自动安排。具体说明可参考https://www.x.org/releases/current/doc/man/man5/xorg.conf.5.xhtml

其中BusID是根据自己电脑来设置的:

bash 复制代码
lspci | grep VGA

我的电脑输出是01:00.0是nvidia显卡,0:2.0是intel集显,注意是十六进制,busID是十进制。

一些常用指令:

bash 复制代码
# 查看xorg启动日志,方便发现问题
gedit /var/log/Xorg.0.log
# 系统日志导出到txt
dmesg > log.txt
# 查看xorg的补充配置文件
ls /usr/share/X11/xorg.conf.d/

每次修改xorg后,不需要重启电脑,只需要重启图形界面服务就行:

bash 复制代码
# 如果你用的是gdm3(ubuntu20默认)
sudo systemctl restart gdm3.service
# 如果你用的是lightdm(兼容性更好)
sudo systemctl restart lightdm.service
# 安装lightdm替代gdm3
sudo apt install lightdm

如果修改xorg.conf不当导致黑屏,可以按Ctrl+Alt+F1~F7登录命令行,然后用vim或者vi来修改xorg

bash 复制代码
sudo vim /etc/X11/xorg.conf

一般不要手动修改固定xorg.conf,出了问题想恢复,可以:

bash 复制代码
# 清空xorg.conf
echo '' | sudo tee /etc/X11/xorg.conf
# 或者删除xorg.conf
sudo rm /etc/X11/xorg.conf
相关推荐
NailiConveyor1 小时前
柔性物流方案如何适配工厂升级?自动化输送流水线定制要点
大数据·运维·自动化·制造·业界资讯
Lsetea2 小时前
Certbot webroot申请SSL证书总是404:Nginx挑战目录与路径映射检查
运维·nginx·https·ssl证书·certbot
如若1232 小时前
Windows SSH + Headscale/Tailscale 组网及免密登录完整配置教程
运维·windows·ubuntu·ssh·内网穿透
开开心心就好2 小时前
音频降噪剪辑工具,音量裁剪一键处理
运维·服务器·前端·spring·ocr·音视频·1024程序员节
一枕槐安4872 小时前
大模型限流、重试、超时处理:API 调用健壮性方案
linux·服务器·php·大模型api·指数退避·限流控制·超时预算
西索斯coding2 小时前
gpt-image-2.5-sunburst 和 gemini-3.1-flash-image 差多少?60 组项目素材的成功成本评测框架
java·linux·gpt·ai
箓维2 小时前
应用层协议基础_序列化与反序列化
linux
李纲明2 小时前
WordPress 白屏或提示「出现了严重错误」:先开 WP_DEBUG 抓致命错误,再二分插件与主题
运维·php·debug·wordpress·白屏·插件冲突·devdiy
wuminyu3 小时前
Java字节码学习总结:字节码如何加载、解析和执行
java·linux·c语言·jvm·c++
十年磨一剑~3 小时前
Linux 内核中断处理机制与软硬件协同流程
linux·嵌入式硬件