Bra*_*iam 5 xorg x11 gnome3 gdm3
我已经从 git 构建了整个 Xserver 以使用freedesktop.org 提供的build.sh作为针对 git 树编译所有模块的更简单方法,并安装在/opt/xorg路径下。问题是我找不到如何gdm决定从哪里加载 Xserver 和相关的二进制文件。
我在X.org 网站上阅读了以下部分:“实际运行一致性测试”,但我可以使用的脚本/帮助程序返回 404。
虽然我知道 Xorg 可执行文件的位置及其链接,但我不确定这是否足以使一切按预期工作,因为我想测试在自定义路径中构建和安装的 Xserver。
我使用的是 Debian 7.0 和 GDM 3.4.1。
也可以使用任何其他方法吗?
2个字回答:
Xserver for GDM的位置在configure.ac编译时硬编码,X_SERVER变量第1199行,无法配置。所以,也许您可以使用符号链接,将/usr/bin/Xorg(或者,不太可能/usr/bin/X,请参阅此)链接到您的 Xserver 构建。
细节:
我也有 Debian 7,这是我的进程树:
|-gdm3-+-gdm-simple-slav-+-Xorg
| | |-gdm-session-wor-+-gnome-session-+-bluetooth-apple---{bluetooth-apple}
| | | | |-evolution-alarm---2*[{evolution-alarm}]
| | | | |-gdu-notificatio
| | | | |-gnome-fallback----2*[{gnome-fallback-}]
| | | | |-gnome-panel-+-gnome-terminal-+-bash
| | | | | | |-bash---vi
| | | | | | |-bash-+-less
| | | | | | | `-pstree
| | | | | | |-gnome-pty-helpe
| | | | | | `-3*[{gnome-terminal}]
| | | | | |-iceweasel-+-plugin-containe-+-4*[gtk-gnash]
| | | | | | | `-{plugin-containe}
| | | | | | `-31*[{iceweasel}]
| | | | | |-pidgin
| | | | | `-3*[{gnome-panel}]
| | | | |-gnome-screensav---2*[{gnome-screensav}]
| | | | |-gnome-settings----2*[{gnome-settings-}]
| | | | |-gnome-sound-app---{gnome-sound-app}
| | | | |-metacity---3*[{metacity}]
| | | | |-nm-applet---{nm-applet}
| | | | |-notification-da---{notification-da}
| | | | |-polkit-gnome-au---{polkit-gnome-au}
| | | | |-ssh-agent
| | | | |-tracker-miner-f---2*[{tracker-miner-f}]
| | | | |-tracker-store---6*[{tracker-store}]
| | | | `-3*[{gnome-session}]
| | | `-2*[{gdm-session-wor}]
| | `-{gdm-simple-slav}
| `-{gdm3}
Run Code Online (Sandbox Code Playgroud)
所以,Xorg 是通过 gdm-simple-slave 启动的。Definitly,/etc/gdm/Init/Default无关与开始Xserver的,因为有人说这里和这里。
有一些迹象表明无法配置 X 如何从 gdm 启动。
我决定去寻找结构很好的源代码。所以:
转到源代码,有一个daemon文件夹,其中包含一个INTERNALS文件,解释了代码的结构。
在那里你可以阅读:
** GdmServer
从站使用的类,用于管理运行本地 X 服务器。
所以,我们需要的文件是https://git.gnome.org/browse/gdm/tree/daemon/gdm-server.c
有几个嵌套函数,负责调用 X 服务器并创建其命令行参数。
运行X服务器进程直接负责的功能是gdm_server_spawn,其产卵在该X线694与油嘴的g_spawn_async_with_pipes。
所以,我们要找出它argv是如何形成的。好吧,用两个词来说,它是第 293 行,我们需要 X_SERVER 宏的值(除非您使用的是 RedHat 的 systemd 而不是 sysVinit,但您不是 :))。
唉,这个宏似乎是在 configure.ac,第 1199 行中形成的,并且是硬编码的。因此,似乎最好的选择是将指向您的 Xserver 构建的符号链接放置到这些位置之一。
| 归档时间: |
|
| 查看次数: |
3419 次 |
| 最近记录: |