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
相关推荐
大家的笔记本12 分钟前
jetson orin super nano(arm linux系统)上读取大恒图像工业相机(型号MER-050-560U3C)教程
linux·arm开发·相机
九章云极AladdinEdu26 分钟前
深度学习优化器进化史:从SGD到AdamW的原理与选择
linux·服务器·开发语言·网络·人工智能·深度学习·gpu算力
Xxtaoaooo38 分钟前
Nginx 502 网关错误:upstream 超时配置的踩坑与优化
运维·nginx·负载均衡·502错误·upstream超时
青草地溪水旁1 小时前
Linux epoll 事件模型终极指南:深入解析 epoll_event 与事件类型
linux·epoll
..过云雨1 小时前
04.【Linux系统编程】基础开发工具2(makefile、进度条程序实现、版本控制器Git、调试器gdb/cgdb的使用)
linux·笔记·学习
zzzsde1 小时前
【Linux】初识Linux
linux·运维·服务器
fouryears_234172 小时前
云服务器使用代理稳定与github通信方法
运维·服务器·github
渡我白衣2 小时前
Linux网络:应用层协议http
linux·网络·http
pofenx2 小时前
使用nps创建隧道,进行内网穿透
linux·网络·内网穿透·nps
Ronin3052 小时前
【Linux系统】单例式线程池
linux·服务器·单例模式·线程池·线程安全·死锁