Difference between revisions of "Display Server"
(Created page with " = Introduction<br/> Download<br/> Supported Devices<br/> Configuration/Environment<br/> Package = = Install<br/> 软件主要的功能/配置方法说明<br/> See also<br/>...") |
|||
(5 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | = Introduction | + | = Introduction = |
− | = | + | |
+ | = Download = | ||
+ | |||
+ | Git repository:[https://github.com/rockchip-linux/xserver https://github.com/rockchip-linux/xserver] | ||
+ | |||
+ | = Supported Devices = | ||
+ | |||
+ | |||
+ | = Configuration/Environment = | ||
+ | |||
+ | == How to debug xserver == | ||
+ | |||
+ | You should install a debugging package for xserver-core : xserver-xorg-core-dbg_1.18.4-1_armhf.deb. | ||
+ | |||
+ | Also, the Mesa/GL libraries might be involved, installing libgl1-mesa-dri-dbg and libgl1-mesa-glx-dbg might help too. | ||
+ | <pre><code>apt-get install gdb libc6-dbg | ||
+ | gdb -p $(pidof X) | ||
+ | (inside gdb) | ||
+ | set logging overwrite on | ||
+ | set logging on | ||
+ | break xorg_backtrace | ||
+ | continue | ||
+ | (X server is stopped from when gdb is attached until "continue" is typed) | ||
+ | (do whatever caused the problem) | ||
+ | bt full | ||
+ | set logging off | ||
+ | quit</code> | ||
+ | </pre> | ||
+ | |||
+ | After this, you get the gdb output in file gdb.txt in the directory where you started gdb (this is what the logging commands did, another solution is to copy-paste the output yourself). Add all this to your bug report, developers will appreciate it. If the backtrace is small, you probably miss several debugging packages, see above. | ||
+ | |||
+ | More info please see [https://www.x.org/wiki/Development/Documentation/ServerDebugging/ here]. | ||
+ | |||
+ | ==== Untrap signals ==== | ||
+ | |||
+ | The X server will by default intercept signals and for instance trap its own crashes and dump a stack trace in /var/log/Xorg.0.log. However, this stack trace is modified by the signal handler itself. To disable this signal interception, add this to your /etc/X11/xorg.conf: | ||
+ | <pre><code>Section "ServerFlags" | ||
+ | Option "NoTrapSignals" "true" | ||
+ | EndSection</code> | ||
+ | </pre> | ||
+ | |||
+ | and restart your X server. | ||
+ | |||
+ | = Package = | ||
+ | |||
+ | |||
+ | |||
+ | = Install = | ||
+ | |||
+ | == To build xserver == | ||
+ | |||
+ | We suggest that using the Debian build system to build our xserver or you would be too hard to solve dependence problem. You may reference to Debian Package Maintainer Manuel for more information. (Update: now we support build xserver with docker, see [https://github.com/rockchip-linux/docker-rockchip here] ) | ||
+ | |||
+ | #Install all the build dependency for the xserver. | ||
+ | #Install the library mali and development files. You must use the version comes from Rockchip. | ||
+ | #Entry the xserver directory. | ||
+ | #Build with the Debian build tools. | ||
+ | |||
+ | = See also = | ||
+ | |||
+ | = References = |
Latest revision as of 00:57, 17 March 2017
Contents
Introduction
Download
Git repository:https://github.com/rockchip-linux/xserver
Supported Devices
Configuration/Environment
How to debug xserver
You should install a debugging package for xserver-core : xserver-xorg-core-dbg_1.18.4-1_armhf.deb.
Also, the Mesa/GL libraries might be involved, installing libgl1-mesa-dri-dbg and libgl1-mesa-glx-dbg might help too.
<code>apt-get install gdb libc6-dbg gdb -p $(pidof X) (inside gdb) set logging overwrite on set logging on break xorg_backtrace continue (X server is stopped from when gdb is attached until "continue" is typed) (do whatever caused the problem) bt full set logging off quit</code>
After this, you get the gdb output in file gdb.txt in the directory where you started gdb (this is what the logging commands did, another solution is to copy-paste the output yourself). Add all this to your bug report, developers will appreciate it. If the backtrace is small, you probably miss several debugging packages, see above.
More info please see here.
Untrap signals
The X server will by default intercept signals and for instance trap its own crashes and dump a stack trace in /var/log/Xorg.0.log. However, this stack trace is modified by the signal handler itself. To disable this signal interception, add this to your /etc/X11/xorg.conf:
<code>Section "ServerFlags" Option "NoTrapSignals" "true" EndSection</code>
and restart your X server.
Package
Install
To build xserver
We suggest that using the Debian build system to build our xserver or you would be too hard to solve dependence problem. You may reference to Debian Package Maintainer Manuel for more information. (Update: now we support build xserver with docker, see here )
- Install all the build dependency for the xserver.
- Install the library mali and development files. You must use the version comes from Rockchip.
- Entry the xserver directory.
- Build with the Debian build tools.