Difference between revisions of "Wayland (简体中文)"

From ArchWiki
Jump to: navigation, search
(安装: Wayland moved to extra)
(update translation)
Line 7: Line 7:
 
{{Article summary wiki|Xorg (简体中文)}}
 
{{Article summary wiki|Xorg (简体中文)}}
 
{{Article summary end}}
 
{{Article summary end}}
{{TranslationStatus (简体中文)|Wayland|2012-09-25|224527}}
+
{{TranslationStatus (简体中文)|Wayland|2013-03-07|249323}}
 
'''Wayland''' 是 Linux 的一个新的图形接口协议,目的是替代有 25 年历史的 X11 Server。使用 Wayland 需要更改或重新安装一部分系统中的软件。更多关于 Wayland 的信息参见 [http://wayland.freedesktop.org/ 主页]。
 
'''Wayland''' 是 Linux 的一个新的图形接口协议,目的是替代有 25 年历史的 X11 Server。使用 Wayland 需要更改或重新安装一部分系统中的软件。更多关于 Wayland 的信息参见 [http://wayland.freedesktop.org/ 主页]。
  
Line 16: Line 16:
  
 
== 安装 ==
 
== 安装 ==
你需要安装官方软件仓库中的 {{pkg|wayland}} 或者从 [[AUR (简体中文)|AUR]] 中编译并安装 {{AUR|wayland-git}} {{AUR|mesa-full-wayland}},也可以添加如下[mesa-git]源。由于目前 Mesa 主开发进程还不支持 Wayland,因此必需替换为该分支下的驱动。
+
Wayland 应该已经作为{{pkg|gtk2}}{{pkg|gtk3}}的依赖安装到系统里面。如果没有,可以从 extra 安装软件包{{pkg|wayland}}
  [mesa-git]
+
  # mesa git builds for testing and multilib-testing
+
  Server = http://pkgbuild.com/~lcarlier/$repo/$arch
+
  
 
== 使用 ==
 
== 使用 ==
Line 26: Line 23:
 
== Weston ==
 
== Weston ==
 
=== 安装 ===
 
=== 安装 ===
编译和安装 [[AUR (简体中文)|AUR]] 上的 {{AUR|weston-git}} 包。
+
从 community 安装 {{pkg|weston}}
  
 
如果出现错误: "Failed to create XKB context",请安装 {{Pkg|xkeyboard-config}}.
 
如果出现错误: "Failed to create XKB context",请安装 {{Pkg|xkeyboard-config}}.
Line 38: Line 35:
 
   $ export EGL_DRIVER=/usr/lib/egl/egl_gallium.so
 
   $ export EGL_DRIVER=/usr/lib/egl/egl_gallium.so
  
接下来你就可以在 TTY 下运行 demo:
+
接下来你就可以在 TTY 下打开 wayland 的终端:
 
  $ weston-terminal
 
  $ weston-terminal
将会打开 wayland 的终端
 
  
 +
在屏幕上移动一朵花儿,用以测试帧控制功能:
 
  $ weston-flower  
 
  $ weston-flower  
在屏幕上移动一朵花儿,用以测试帧控制功能。
 
  
 +
在 Wayland 上运行 glxgears 程序:
 
  $ weston-gears  
 
  $ weston-gears  
在 Wayland 上运行 glxgears 程序。
 
  
 +
显示图片:
 
  $ weston-image image1.jpg image2.jpg...
 
  $ weston-image image1.jpg image2.jpg...
显示图片
 
  
 +
显示 PDF 文件:
 
  $ weston-view doc1.pdf doc2.pdf...
 
  $ weston-view doc1.pdf doc2.pdf...
显示 PDF 文件
 
  
 
== Qt ==
 
== Qt ==
  
 
=== 安装 ===
 
=== 安装 ===
安装 [[AUR]] 上的 {{AUR|qt-qpa}} 包。它包括了有 QPA (Lighthouse)支持的 Qt 4.8 开发环境。由于与无 QPA 支持的 Qt 版本可执行文件冲突,它被安装在 /opt/qt-qpa 路径下。
+
安装 {{Pkg|qt5-base}}.
  
 
=== 使用 ===
 
=== 使用 ===
Line 63: Line 59:
  
 
然后用 qmake 来编译 Qt 工程
 
然后用 qmake 来编译 Qt 工程
$ export PATH=/opt/qt-qpa/bin:$PATH
 
$ export LD_LIBRARY_PATH=/opt/qt-qpa/lib
 
 
  $ qmake
 
  $ qmake
 
  $ make
 
  $ make
  
 
指定编译库,运行程序
 
指定编译库,运行程序
$ export LD_LIBRARY_PATH=/opt/qt-qpa/lib
 
 
  $ export QT_QPA_PLATFORM=waylandgl
 
  $ export QT_QPA_PLATFORM=waylandgl
 
  $ ./binaryname
 
  $ ./binaryname
Line 80: Line 73:
  
 
===GTK+===
 
===GTK+===
GTK+ 3.0 开始,GTK+ 开始有运行时多个后端支持,就像有 lighthouse 支持的 Qt 一样。 GTK+ 开发中提供了 Wayland 支持,但默认没有开启。要在 Wayland 上尝试 GTK+,请以<code>--enable-wayland</code> 来配置并重新编译 GTK+ 源码:
+
[testing]软件仓库中的{{pkg|gtk3}}GTK+ 已经提供了 Wayland 支持. GTK+ 默认会使用 X11。可以通过把<code>GDK_BACKEND</code>环境变量设为<code>wayland</code>来改变这一规则。
$ git clone git://git.gnome.org/gtk+
+
$ cd gtk+
+
$ ./configure --prefix=/usr --enable-x11-backend --enable-wayland-backend --enable-debug=yes
+
$ make
+
 
+
当同时支持 Wayland 和 X 后端时,GTK+ 默认会使用 X11。可以通过把<code>GDK_BACKEND</code>环境变量设为<code>wayland</code>来改变这一规则。
+
 
+
{{注意|也可以从[[AUR]]安装 {{AUR|gtk3-git}} 包}}
+
  
 
===Clutter===
 
===Clutter===
Line 103: Line 88:
  
 
===KDE===
 
===KDE===
KDE 的 Wayland 支持分三个步骤实现,前两步的计划是在今年 KDE SC 4.8 和 4.9 开发过程中完成。详细信息请参考[http://community.kde.org/KWin/Wayland here]
+
[http://blog.martin-graesslin.com/blog/2011/03/kwin-at-gsoc-2011/ 在早期的工作]中提供了在 Wayland 上运行 KWin (KDE 窗口管理器)的方法。
 
+
另外,[http://blog.martin-graesslin.com/blog/2011/03/kwin-at-gsoc-2011/ early work] 中提供了在 Wayland 上运行 KWin (KDE 窗口管理器)的方法。
+
  
 
===GNOME===
 
===GNOME===
Line 112: Line 95:
 
===Unity===
 
===Unity===
 
Ubuntu 桌面 shell Unity 以 Compiz 为窗口管理器, 后者已经被移植到了 Wayland 上 [http://www.markshuttleworth.com/archives/551 announced]。
 
Ubuntu 桌面 shell Unity 以 Compiz 为窗口管理器, 后者已经被移植到了 Wayland 上 [http://www.markshuttleworth.com/archives/551 announced]。
 +
 +
===Pure Wayland===
 +
 +
{{Warning|Some really quick notes on installing a pure (no X11) wayland system on Archlinux. This is from source and installed into /usr/local. May break your system. You have been warned. (by elethiomel@gmail.com)}}
 +
 +
First install a base Archlinux install with base and base-devel. Do not install xorg or any of its libraries
 +
 +
===== Wayland =====
 +
 +
$ pacman -S libffi
 +
$ git clone git://anongit.freedesktop.org/wayland/wayland
 +
$ cd wayland
 +
$ ./autogen.sh --prefix=/usr/local
 +
$ make
 +
$ make install
 +
 +
===== DRM and Mesa =====
 +
 +
$ git clone git://anongit.freedesktop.org/git/mesa/drm
 +
$ cd drm
 +
$ ./autogen.sh --prefix=/usr/local
 +
$ make
 +
$ make install
 +
 +
$ git clone git://anongit.freedesktop.org/mesa/mesa
 +
$ cd mesa
 +
$ CFLAGS=-DMESA_EGL_NO_X11_HEADERS ./autogen.sh --prefix=/usr/local --enable-gles2 --disable-gallium-egl --with-egl-platforms=wayland,drm --enable-gbm --enable-shared-glapi --with-gallium-drivers=r300,r600,swrast,nouveau --disable-glx --disable-xlib
 +
$ make
 +
$ make install
 +
 +
===== xorg-macros =====
 +
 +
$ git clone http://anongit.freedesktop.org/git/xorg/util/macros.git
 +
$ cd macros/
 +
$ ./autogen.sh --prefix=/usr/local/
 +
$ make
 +
$ make install
 +
 +
===== libxkbcommon =====
 +
 +
$ git clone git://people.freedesktop.org/xorg/lib/libxkbcommon.git
 +
$ cd libxkbcommon/
 +
$ export ACLOCAL_PATH=/usr/local/share/aclocal/
 +
$ ./autogen.sh --prefix=/usr/local/ --with-xkb-config-root=/usr/local/share/X11/xkb
 +
$ make
 +
$ make install
 +
 +
===== pixman =====
 +
 +
$ git clone git://anongit.freedesktop.org/pixman
 +
$ cd pixman/
 +
$ ./autogen.sh --prefix=/usr/local/
 +
$ make
 +
$ make install
 +
 
 +
===== cairo =====
 +
 +
Note - no glx/gl or xcb - EGL only.
 +
 +
$ pacman -S libpng
 +
$ git clone git://anongit.freedesktop.org/cairo
 +
$ cd cairo
 +
$ CFLAGS=-DMESA_EGL_NO_X11_HEADERS ./autogen.sh --prefix=/usr/local/  --disable-xcb  --enable-glesv2
 +
$ make
 +
$ make install
 +
 +
===== xkb files =====
 +
 +
Either
 +
 +
a) Copy from an existing system a set of xkb layouts
 +
 +
$ scp -r /usr/share/X11/xkb to /usr/local/share/X11/
 +
 +
or
 +
 +
b) build  {{ic|xkeyboard-config}} from git with {{ic|--prefix&#61;/usr/local}} and {{ic|--disable-runtime-deps}}
 +
 +
===== weston =====
 +
 +
$ git clone git://anongit.freedesktop.org/wayland/weston
 +
$ cd weston/
 +
$ CFLAGS="-I/usr/local/include/libdrm/ -DMESA_EGL_NO_X11_HEADERS" ./autogen.sh --prefix=/usr/local/ --with-cairo-glesv2 --disable-xwayland --disable-x11-compositor --disable- xwayland-test
 +
$ make
 +
$ make install
  
 
==问题解决==
 
==问题解决==

Revision as of 01:20, 7 March 2013

摘要 help replacing me
关于安装和运行 Wayland 显示服务器的指南。
相关页面
Kernel Mode Setting (简体中文)
Xorg (简体中文)
翻译状态: 本文是英文页面 Wayland翻译,最后翻译时间:2013-03-07,点击这里可以查看翻译后英文页面的改动。

Wayland 是 Linux 的一个新的图形接口协议,目的是替代有 25 年历史的 X11 Server。使用 Wayland 需要更改或重新安装一部分系统中的软件。更多关于 Wayland 的信息参见 主页

警告: Wayland虽然已经发布了1.0.0版,稳定了接口,但各种应用仍然还需要一定时间来适应它,故而目前暂时难以达到替代x11的效果

系统需求

目前 Wayland 只能在使用了 KMS 的系统上工作。

安装

Wayland 应该已经作为gtk2gtk3的依赖安装到系统里面。如果没有,可以从 extra 安装软件包wayland

使用

Wayland 仅仅是一个库,无法单独工作。因此使用 Wayland 需要有混合程序(weston), Weston 演示程序、Qt5 或打开 QPA 的 Qt4 库外加 Wayland 插件,还可以选择使用有 Wayland 支持的 GTK+ 库。

Weston

安装

从 community 安装 weston

如果出现错误: "Failed to create XKB context",请安装 xkeyboard-config.

使用

安装完了 Wayland 及它所信赖的包之后,就可以开始试用了。切换到终端,运行:

 $ weston-launch

注意如果不以 root 身份运行,可能会出现键盘或是鼠标失灵的情况。

如果 nouveau 驱动有问题,可以尝试运行:

 $ export EGL_DRIVER=/usr/lib/egl/egl_gallium.so

接下来你就可以在 TTY 下打开 wayland 的终端:

$ weston-terminal

在屏幕上移动一朵花儿,用以测试帧控制功能:

$ weston-flower 

在 Wayland 上运行 glxgears 程序:

$ weston-gears 

显示图片:

$ weston-image image1.jpg image2.jpg...

显示 PDF 文件:

$ weston-view doc1.pdf doc2.pdf...

Qt

安装

安装 qt5-base.

使用

首先,你需要有一个像之前运行 demo 程序的 Wayland compositor,或者一个实验性版本的 KWin 亦可。

然后用 qmake 来编译 Qt 工程

$ qmake
$ make

指定编译库,运行程序

$ export QT_QPA_PLATFORM=waylandgl
$ ./binaryname

Qt Compositor

有一个正在进行的 Qt-Compositor 工程,它的目的在于在 Wayland 基础之上实现 Qt Compositor 层。

其他 GUI 库

参见(来自官方网站的页面)

GTK+

[testing]软件仓库中的gtk3GTK+ 已经提供了 Wayland 支持. GTK+ 默认会使用 X11。可以通过把GDK_BACKEND环境变量设为wayland来改变这一规则。

Clutter

Clutter 工具包有 Wayland 后端支持,可以作为 Wayland 程式运行。这一后端支持已经存在于开发主分支中main repo,可以以 --with-flavour=wayland来加以配置

SDL

Benjamin Franzke 将 SDL 移植到 Wayland 上, 可以从freedesktop.org sdl-wayland repo处获得。Andre Heider 接着 Benjamin Franzke 的工作进行开发,代码在libsdl 的 wayland 分支

EFL

EFL 已经完全支持 Wayland。请参考这里获取更多细节。

窗口管理器和桌面 shell

KDE

在早期的工作中提供了在 Wayland 上运行 KWin (KDE 窗口管理器)的方法。

GNOME

GNOME 将在未来的版本中移植到 Wayland 上。

Unity

Ubuntu 桌面 shell Unity 以 Compiz 为窗口管理器, 后者已经被移植到了 Wayland 上 announced

Pure Wayland

Warning: Some really quick notes on installing a pure (no X11) wayland system on Archlinux. This is from source and installed into /usr/local. May break your system. You have been warned. (by elethiomel@gmail.com)

First install a base Archlinux install with base and base-devel. Do not install xorg or any of its libraries

Wayland
$ pacman -S libffi
$ git clone git://anongit.freedesktop.org/wayland/wayland
$ cd wayland
$ ./autogen.sh --prefix=/usr/local
$ make
$ make install
DRM and Mesa
$ git clone git://anongit.freedesktop.org/git/mesa/drm
$ cd drm
$ ./autogen.sh --prefix=/usr/local
$ make
$ make install
$ git clone git://anongit.freedesktop.org/mesa/mesa
$ cd mesa
$ CFLAGS=-DMESA_EGL_NO_X11_HEADERS ./autogen.sh --prefix=/usr/local --enable-gles2 --disable-gallium-egl --with-egl-platforms=wayland,drm --enable-gbm --enable-shared-glapi --with-gallium-drivers=r300,r600,swrast,nouveau --disable-glx --disable-xlib
$ make
$ make install
xorg-macros
$ git clone http://anongit.freedesktop.org/git/xorg/util/macros.git
$ cd macros/
$ ./autogen.sh --prefix=/usr/local/
$ make
$ make install
libxkbcommon
$ git clone git://people.freedesktop.org/xorg/lib/libxkbcommon.git
$ cd libxkbcommon/
$ export ACLOCAL_PATH=/usr/local/share/aclocal/
$ ./autogen.sh --prefix=/usr/local/ --with-xkb-config-root=/usr/local/share/X11/xkb
$ make
$ make install
pixman
$ git clone git://anongit.freedesktop.org/pixman
$ cd pixman/
$ ./autogen.sh --prefix=/usr/local/
$ make
$ make install
 
cairo

Note - no glx/gl or xcb - EGL only.

$ pacman -S libpng
$ git clone git://anongit.freedesktop.org/cairo
$ cd cairo
$ CFLAGS=-DMESA_EGL_NO_X11_HEADERS ./autogen.sh --prefix=/usr/local/  --disable-xcb  --enable-glesv2 
$ make
$ make install
xkb files

Either

a) Copy from an existing system a set of xkb layouts

$ scp -r /usr/share/X11/xkb to /usr/local/share/X11/

or

b) build xkeyboard-config from git with --prefix=/usr/local and --disable-runtime-deps

weston
$ git clone git://anongit.freedesktop.org/wayland/weston
$ cd weston/
$ CFLAGS="-I/usr/local/include/libdrm/ -DMESA_EGL_NO_X11_HEADERS" ./autogen.sh --prefix=/usr/local/ --with-cairo-glesv2 --disable-xwayland --disable-x11-compositor --disable- xwayland-test
$ make
$ make install

问题解决

更多信息

forum discussion 页面将持续关注 Wayland 信息 ,如有兴趣请留意。