上火速创设,三月泡派上设置韦斯顿

Wayland Dev Mail List 中有人给出了一个可以快速构建 Wayland
的自动化脚本,不过如果你想在你的机子上让 Wayland
跑起来的话,必须满足以下条件:

几乎所有的 Linux 系统还是使用旧的 X.org 作为默认的图形服务器,Canonical
和 Red Hat
都在想着改变这一现状。

目录:

使用了 Ubuntu Maverick
10.10
Nvidia 显卡,并使用了开源的 nouveau 驱动,支持 DRI
然后你所要做的就是下载并运行这段脚本。

Canonical
决定开发自己的图形服务器:Mir。Ubuntu
Touch 想完全控制显示服务器,融合所有显示设备。另一方面,Red Hat
也想开拓新的市场和发展方向,开发另一个显示服务器 Wayland。

树莓派上安装Weston
Raspbian包
编译依赖
固件
环境配置
pkg-config配置文件
Wayland库
libxkbcommon
Weston和示例应用
故障排除
找不到bcm_host.pc
编译错误: 未定义的`wl_egl_…引用
部分或整个界面 (图形)破损
显示器或电视黑屏, 丢失信号
窗口或图像闪烁
由于硬件异常导致程序挂掉

mkdir wayland
cd wayland
wget
chmod +x wayland_build.sh
./wayland_build.sh

现在,我使用的 Ubuntu touch(Unity
8)并没有专有的图形驱动程序支持。Wayland 今后也会成为
Fedora
的默认显示服务器,最可能在今年发布的 Fedora 22 开始。

树莓派上安装Weston

 

本文将指导你把Weston装入树莓派.
所有的命令行和编译操作都直接在派上完成.
用Raspbian作为操作系统的时候需要以用户’pi’来运行Weston,
这是因为在本地登录(非ssh)该用户时Raspbian才允许输入设备接入.

 

如果你只是想试试Weston, 并不想手动编译它, 可以用下面的包.

 

Raspbian包

对于Raspbian, 有预编译好的Wayland及Weston包.

在/etc/apt/sources.list文件中添加一行:

deb http://raspberrypi.collabora.com wheezy rpi

接着运行:

sudo apt-get update
sudo apt-get install weston

这会安装一个名为 style=”color: #006600; line-height: 18px; font-size: 12px; background-color: #f4f5f7;”>weston-launch的脚本
(并非真实启动程序), 它会为你自动设置XDG_RUNTIME_DIR, 并运行weston.
想要运行Weston十分简单:

weston-launch

无需手动设置环境变量. 但是下面提及的固件仍然需要检查.

 

这个脚本会安装 Ubuntu 10.10 上相应的信赖包,并会获取最新 libdrm 、Mesa等
Git 源代码,最后在现有的 X.Org Server 上运行 Wayland compositor 及
Wayland demo clients.

如果你想在你的 Ubuntu 15.04 测试 Wayland,可以通过 PPA
进行安装,所以你要做的就是添加 PPA
到您的系统,更新本地库和安装所需的软件包。输入以下命令:

编译依赖

 

如果你使用的是Raspbian, 请安装编辑依赖:

$ sudo apt-get install build-essential automake libtool bison flex \
xutils-dev libcairo2-dev libffi-dev libmtdev-dev libjpeg-dev \
libudev-dev libxcb-xfixes0-dev libxcursor-dev libraspberrypi-dev

 

详情可以见 Mail
List中的文章。

sudo add-apt-repository ppa:wayland.admin/daily-builds

固件

 

你需要更新到最新的树莓派固件, 以便你能获得rpi-update工具.
太旧的固件会导致树莓派rpi-backend出现故障.
执行rpi-update会覆盖一些raspbian包安装的文件, 比如libraspberrypi-dev.
你先不要rpi-update, 直接运行Weston, 如果出现了图像问题, 再执行它,
看看能否解决问题.

 

你可能需要在/boot/config.txt文件中调整以下选项:

 

gpu_mem=128

 

为VideoCore保留多少内存, 例如: framebuffer, GL纹理贴图, Dispmanx资源.

 

dispmanx_offline=1

 

固件将切换为离线合成Dispmanx元素. 通常情况下合成都是在线完成的,
但是在scanout时无法处理过多的元素. 在开启离线后,
会分配一个关屏缓冲区来合成. 当屏幕复杂度(元素的数量和尺寸)过高,
将会在缓冲区中离线合成. 强烈推荐开启!

 

图片 1

sudo apt-get update

环境配置

 

我们将安装到树莓派用户的home目录下.

 

export WLD="$HOME/local"
export PATH="$WLD/bin:$PATH"
export LD_LIBRARY_PATH="$WLD/lib:/opt/vc/lib"
export PKG_CONFIG_PATH="$WLD/lib/pkgconfig/:$WLD/share/pkgconfig/"
export ACLOCAL="aclocal -I $WLD/share/aclocal"
export XDG_RUNTIME_DIR="/run/shm/wayland"
export XDG_CONFIG_HOME="$WLD/etc"
export XORGCONFIG="$WLD/etc/xorg.conf"

mkdir -p “$WLD/share/aclocal”
mkdir -p “$XDG_RUNTIME_DIR”
chmod 0700 “$XDG_RUNTIME_DIR”

 

你可以把上面的内容放到一个脚本里并在终端里放置到你想编译包的位置或者运行Weston.

 

sudo apt-get install xwayland weston

pkg-config配置文件

 

派上的一些库并没有安装合适的 pkg-config文件. 我们需要手动安装它们.

 

从git://git.collabora.co.uk/git/user/pq/Android-pc-files.git下载.pc文件并且确保你选取的是raspberrypi分支.
主分支是适用于Android平台的相似文件.

 

复制.pc文件到$WLD/share/pkgconfig/目录下:

$ cp bcm_host.pc egl.pc glesv2.pc $WLD/share/pkgconfig/

 

Ubuntu Gnome 用户输入以下命令安装:

Wayland库

 

Libwayland请按照the generic build
guide来编译及安装.

$ git clone git://anongit.freedesktop.org/wayland/wayland
$ cd wayland
$ ./autogen.sh --prefix=$WLD --disable-documentation
$ make
$ make install

 

使用–disable-documentation使其不依赖Doxygen.

 

sudo apt-get install gnome-session-wayland

libxkbcommon

 

Libxkbcommon同样请按照the generic build
guide来编译及安装.

$ git clone git://people.freedesktop.org/xorg/lib/libxkbcommon.git
$ cd libxkbcommon/
$ ./autogen.sh --prefix=$WLD
$ make && make install

 

测试完毕,你想回滚到原来的状态,输入命令:

Weston和示例应用

 

相比正常的编译, Weston的配置有些许不同:

$ git clone git://anongit.freedesktop.org/wayland/weston
$ cd weston

$ ./autogen.sh --prefix=$WLD \
--disable-setuid-install --with-cairo-glesv2 \
--disable-x11-compositor --disable-drm-compositor \
--disable-fbdev-compositor --disable-wayland-compositor \
--disable-weston-launch --disable-simple-egl-clients \ 
--disable-egl --disable-libunwind --disable-colord \
--disable-resize-optimization --disable-xwayland-test \
WESTON_NATIVE_BACKEND="rpi-backend.so"

$ make
$ make install

 

如果你之前就装过wayland, 需要添加–disable-wayland-compositor,
删除虚设的wayland-egl.pc pkg-config文件. 这里需要注意, toytoolkit
(Weston示例程序) 并不使用Cairo EGL. EGL不能作为客户端工作, 因为EGL
Wayland还没在树莓派上实现.

 

现在Weston应该已经可以运行了. 要记得设置环境,
以防Weston不能打开任何输入或输出设备, 最好先与树莓派开启ssh会话.
在Raspbian下最好用’pi’用户登录.

 

sudo apt-get install ppa-purge

故障排除

 

sudo ppa-purge ppa:wayland.admin/daily-builds

找不到bcm_host.pc

checking for RPI_BCM_HOST... no
configure: WARNING: Raspberry Pi BCM host libraries not found, will use stubs instead.

 

如果没有安装正确的pkg-config文件, weston的编译将会失败.
如果在Weston的配置过程中看到上面的提示, 找不到bcm_host.pc文件,
rpi-backend将无法执行. 下面是正常的提示:

checking for RPI_BCM_HOST... yes

 

Wayland
的详细介绍
:请点这里

编译错误: 未定义的`wl_egl_…引用

 

本来不应该被用到的cairo-egl被用到了. 删除虚设的wayland-egl.pc文件,
并确保在配置参数里有–disable-wayland-compositor. 当一切正常的时候,
应该提示:

checking for CAIRO_EGL... no
configure: WARNING: clients will use cairo image, cairo-egl not used

 

本文永久更新链接地址

部分或整个界面 (图形)破损

 

老旧的固件会导致图形破损. 请尝试更新固件,
并尝试上面提到的/boot/config.txt选项.

 

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-04/116784.htm

显示器或电视黑屏, 丢失信号

 

你可能没有设置固件dispmanx_offline=1.
当屏幕上有过多东西需要做在线合成处理, 没有离线合成备用,
输出就会挂掉或中断.

 

图片 2

窗口或图像闪烁

 

可能是在屏幕上有太多东西了, 即使用固件里的离线合成也忙不过来.
关掉些窗口就好了.

 

由于硬件异常导致程序挂掉

 

极大可能是你跑出了$XDG_RUNTIME_DIR的空间.
这个目录是Wayland程序分配像素缓冲区的位置.

图片 3

Post Author: admin

发表评论

电子邮件地址不会被公开。 必填项已用*标注