树莓派上安装Weston

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

树莓派上安装Weston

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

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

Raspbian包

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

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

deb wheezy rpi

接着运行:

sudo apt-get update sudo apt-get install weston

这会安装一个名为weston-launch的脚本 (并非真实启动程序), 它会为你自动设置XDG_RUNTIME_DIR, 并运行weston. 想要运行Weston十分简单:

weston-launch

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

编译依赖

如果你使用的是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 固件

你需要更新到最新的树莓派固件, 以便你能获得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时无法处理过多的元素. 在开启离线后, 会分配一个关屏缓冲区来合成. 当屏幕复杂度(元素的数量和尺寸)过高, 将会在缓冲区中离线合成. 强烈推荐开启!

环境配置

我们将安装到树莓派用户的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.

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/ 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.

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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/19583.html