我想知道 Ubuntu 使用的确切过程(如果可能的话,还要附带配置文件的位置)以启动 X(使用 lightdm)。
我没有找到关于此过程的任何精确、详细和全面的文档。
我想详细说明的一些问题是:
- 使用了哪些脚本和配置文件(我的意思是它们在哪里)?
- 如何以干净的方式定制它们?
xorg.conf
在具有集成卡和独立卡的计算机上,X 如何确定将使用哪种显卡(以及驱动程序)(因为现在看来毫无用处)?- 如何强制 X 使用特定的驱动程序(以避免大量无用的日志消息)?
- linux内核驱动和xorg图形驱动之间有什么关系?
答案1
我开始回答这个问题(当我开始回答 AU 上的很多问题时,我都会这样做),因为我想了解更多。你问了一些相当不错的问题如何工作我承认,我当时没有立即得到答案。我已经尽力了。
man xorg.conf
当你看到并发现如下内容时,你就会明白我在说什么:
VIDEOADAPTOR SECTION
Nobody wants to say how this works. Maybe nobody knows ...
严重地。
LightDM 由 Upstart(init
系统,由内核在启动时启动)在此处启动:
/etc/init/lightdm.conf
这些数据将输入到lightdm
读取(座位信息等)的命令中:
/etc/lightdm/lightdm.conf
/etc/lightdm/lightdm.conf.d/*
然后启动 X,查找以下配置:
/etc/X11/<cmdline>
/usr/etc/X11/<cmdline>
/etc/X11/$XORGCONFIG
/usr/etc/X11/$XORGCONFIG
/etc/X11/xorg.conf
/etc/xorg.conf
/usr/etc/X11/xorg.conf.<hostname>
/usr/etc/X11/xorg.conf
/usr/lib/X11/xorg.conf.<hostname>
/usr/lib/X11/xorg.conf
/etc/X11/xorg.conf.d/*
/usr/etc/X11/xorg.conf.d/*
如果在配置中存在,那么 X 就会这样选择驱动程序/监视器/等的布局...如果不存在,那么较新的 XRandR 扩展将在猜测和持久监视器设置方面发挥重要作用。
如果你不想要最佳猜测,你可以通过以下方式强制它朝一个方向:
- 告诉 xrandr 做某件事
- 阻止错误的模块(例如二进制 nvidia 将免费的 nouveau 驱动程序列入黑名单)
- 设置 xorg.conf
但是如果你让它xrandr
处理事情,一旦你登录,配置就来自:
~/.config/monitors.xml
X 启动后,会启动大量会话 gubbins(自动启动等),这些会话 gubbins 与图形处理不是特别相关,但可能值得一提。提到了。
有两点尚无法正确解释:
- Xorg 和内核驱动程序之间的关系让我彻底困惑了。我发现了一个关于这个主题的非常详尽的书[PDF!] 但还没有时间去触及它。
- Xorg/XRandr 如何选择正确的驱动程序。
与过去相比,现在的自动化争论确实多了很多。