NotePublic/Ecology/LubanCat1/LubanCat1_安装_Weston.md

25 KiB
Raw Permalink Blame History

LubanCat1 安装 Weston

系统Ubuntu 22.04

apt install libcolord-dev liblcms2-dev libva-dev libinput-dev libdrm-dev libpango1.0-dev libpam0g-dev libgbm-dev freerdp2-dev libxkbcommon-dev libpixman-1-dev libcairo2-dev libjpeg-dev libwebp-dev libsystemd-dev libdbus-1-dev libseat-dev libx11-xcb-dev libxcb-xkb-dev libxcb-composite0-dev libgstreamer-plugins-base1.0-dev libxml2-dev libxcursor-dev

apt install meson cmake git graphviz doxygen xsltproc xmlto pkg-config

apt install libasound2 libasound2-data libasound2-dev libasound2-plugin-equal libasound2-plugins libasound2-plugins-extra alsaplayer-alsa alsa-tools alsa-topology-conf alsa-utils alsa-firmware-loaders alsa-base gstreamer1.0-libav gstreamer1.0-qt5 gstreamer1.0-alsa

sudo dpkg -i gstreamer1.0-rockchip1_1.14-4_arm64.deb

# apt install libegl-dev libgegl-common libpam0g libgles2 libpipewire-0.2-dev

其中 gstreamer1.0-rockchip1_1.14-4_arm64.deb 在 <rk356x sdk>/ubuntu/packages/arm64/gst-rkmpp/ 目录下获得。

/etc/environment:

XDG_RUNTIME_DIR="/run/user/0"
DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/0/bus"
RUNLEVEL=3
WESTON_DISABLE_ATOMIC=1
WESTON_DRM_MIRROR=1
WESTON_DRM_KEEP_RATIO=1
WESTON_FREEZE_DISPLAY=/tmp/.freeze_weston
WAYLAND_DISPLAY=wayland-0
PREFERED_VIDEOSINK=waylandsink
QT_QPA_PLATFORM=wayland
QT_GSTREAMER_WINDOW_VIDEOSINK=waylandsink
QT_GSTREAMER_WIDGET_VIDEOSINK=waylandsink
QT_GSTREAMER_PLAYBIN=playbin3
GST_VIDEO_CONVERT_PREFERRED_FORMAT=NV12:NV16:I420:YUY2
GST_VIDEO_FLIP_USE_RGA=1
GST_VIDEO_CONVERT_USE_RGA=1
PIXMAN_USE_RGA=1
QT_OPENGL=desktop

/etc/xdg/weston/weston.ini.d/pixman.ini

[core]
use-pixman=true

/etc/xdg/weston/weston.ini

[core]
xwayland=false
backend=drm-backend.so
idle-time=0

[keyboard]
keymap_layout=us

[output]
name=HDMI-A-1
mode=2560x1080

[shell]
locking=false
panel-color=0x88882244
panel-position=bottom
panel-scale=2
background-color=0x88882244


[launcher]
icon=/usr/share/icons/locolor/32x32/apps/gvim.png
path=/usr/bin/weston-terminal

#[autolaunch]
#path=/usr/bin/weston-terminal
git clone https://gitlab.freedesktop.org/wayland/wayland.git
git clone https://gitlab.freedesktop.org/wayland/wayland-protocols.git
git clone https://gitlab.freedesktop.org/wayland/weston.git
# opengl 源码从 buildroot 中拷贝

wayland:

git checkout 1.21.0
meson build/ --prefix=/usr
sudo ninja -C build/ install

wayland-protocols:

git checkout 1.24
meson build/ --prefix=/usr
sudo ninja -C build/ install

opengl:

meson build/ --prefix=/usr -Dwith-overlay=true -Dopencl-icd=false -Dkhr-header=true -Dplatform=wayland -Dgpu=bifrost-g52 -Dversion=g2p0
sudo ninja -C build/ install

weston:

git checkout 10.0.2
# meson build/ --prefix=/usr -Dpipewire=false
meson build/ --prefix=/usr -Dpipewire=false -Ddeprecated-wl-shell=true -Dcolor-management-colord=false -Ddoc=false -Dremoting=false -Dtools=calibrator,debug,info,terminal,touch-calibrator -Dlauncher-logind=true -Dimage-jpeg=true -Dimage-webp=true -Ddeprecated-weston-launch=true -Drenderer-gl=true -Dbackend-rdp=true -Dbackend-drm=true -Dbackend-headless=true -Dbackend-wayland=true -Dbackend-drm-screencast-vaapi=true -Dcolor-management-lcms=true -Dsystemd=true -Dtest-junit-xml=true -Dshell-desktop=true -Dshell-fullscreen=true -Dshell-ivi=true -Dsimple-clients=all
sudo ninja -C build/ install

启动 westonroot 账户下执行:

weston --tty=2

systemd service/usr/lib/systemd/system/weston.service如下

[Unit]
Description=Weston
# After=syslog.target
# After=network.target
# After=multi-user.target
# After=graphical.target
After=plymouth-quit-wait.service
# After=systemd-logind.service

[Service]
RestartSec=2s
Type=simple
User=root
Group=root
ExecStart=weston-launch --tty=/dev/tty2 --user=root
Restart=always

[Install]
WantedBy=multi-user.target
[root:lubancat] qt-everywhere-src-5.15.2# ./configure -release -opensource -eglfs -pkg-config -qt-libjpeg -qt-libpng -egl
+ cd qtbase
+ /root/qt-everywhere-src-5.15.2/qtbase/configure -top-level -release -opensource -eglfs -pkg-config -qt-libjpeg -qt-libpng -egl
Creating qmake...
..... ....................................................Done.
Info: creating super cache file /root/qt-everywhere-src-5.15.2/.qmake.super
Info: creating cache file /root/qt-everywhere-src-5.15.2/.qmake.cache
Info: creating stash file /root/qt-everywhere-src-5.15.2/.qmake.stash

This is the Qt Open Source Edition.

You are licensed to use this software under the terms of
the GNU Lesser General Public License (LGPL) version 3
or the GNU General Public License (GPL) version 2.

Type 'L' to view the GNU Lesser General Public License version 3 (LGPLv3).
Type 'G' to view the GNU General Public License version 2 (GPLv2).
Type 'y' to accept this license offer.
Type 'n' to decline this license offer.

Do you accept the terms of either license? y


Running configuration tests...
Checking for machine tuple... yes
Checking for valid makespec... yes
Checking for target architecture... arm64
Checking for alloca() in alloca.h... yes
Checking for C++14 support... yes
Checking for C++17 support... yes
Checking for C99 support... yes
Checking for C11 support... yes
Checking for pkg-config... yes
Checking for D-Bus >= 1.2... yes
Checking for dlopen()... yes
Checking for new dtags support... yes
Checking for D-Bus >= 1.2 (host)... yes
Checking for Support for Intel Control-flow Enforcement Technology... no
Checking for udev... yes
Checking for POSIX fallocate()... yes
Checking for precompiled header support... yes
Checking for RDRAND instruction... no
Checking for RDSEED instruction... no
Checking for symbol visibility support... yes
Checking for -Bsymbolic-functions support... no
Checking for Signaling NaN for doubles... yes
Checking for STL compatibility... yes
Checking for zlib... yes
Checking for Zstandard... no
Checking for clock_gettime()... yes
Checking for POSIX monotonic clock... yes
Checking for C++11 <future>... yes
Checking for eventfd... yes
Checking for futimens()... yes
Checking for getauxval()... yes
Checking for getentropy()... yes
Checking for GLib... yes
Checking for GNU libc... yes
Checking for POSIX iconv... yes
Checking for ICU... yes
Checking for inotify... yes
Checking for SysV IPC... yes
Checking for linkat()... yes
Checking for ppoll()... yes
Checking for PCRE2... yes
Checking for renameat2()... yes
Checking for slog2... no
Checking for statx() in libc... yes
Checking for 64 bit atomics... yes
Checking for DoubleConversion... no
Checking for O_CLOEXEC... yes
Checking for C++11 <random>... yes
Checking for working std::atomic for function pointers... yes
Checking for OpenSSL Headers... yes
Checking for DTLS support in OpenSSL... yes
Checking for getifaddrs()... yes
Checking for KRB5 GSSAPI Support... no
Checking for IPv6 ifname... yes
Checking for Linux AF_NETLINK sockets... yes
Checking for OCSP stapling support in OpenSSL... yes
Checking for XCB >= 1.11... yes
Checking for XCB ICCCM >= 0.3.9... no
Checking for Desktop OpenGL... yes
Checking for KMS... yes
Checking for DRM Atomic API... yes
Checking for EGL... yes
Checking for XLib... yes
Checking for EGL on X11... no
Checking for EGLDevice... yes
Checking for GBM... yes
Checking for Mali EGL... no
Checking for Mali 2 EGL... no
Checking for i.Mx6 EGL... no
Checking for XCB Xlib... yes
Checking for evdev... yes
Checking for FreeType... yes
Checking for Fontconfig... yes
Checking for libinput... yes
Checking for axis API in libinput... yes
Checking for LinuxFB... yes
Checking for mtdev... yes
Checking for OpenVG... no
Checking for default QPA platform... xcb
Checking for HarfBuzz... yes
Checking for libmd4c... no
Checking for tslib... no
Checking for Vulkan... yes
Checking for xkbcommon >= 0.5.0... yes
Checking for xkbcommon-x11... no
Checking for GTK+ >= 3.6... no
Checking for CUPS... no
Checking for DB2 (IBM)... no
Checking for InterBase... no
Checking for MySQL... no
Checking for OCI (Oracle)... no
Checking for ODBC... no
Checking for PostgreSQL... no
Checking for SQLite (version 2)... no
Checking for TDS (Sybase)... no
Checking for ntddmodm... no
Checking for Socket CAN... yes
Checking for Socket CAN FD... yes
Checking for 64bit pointers... yes
Checking for Sufficiently recent FPU on ARM... yes
Checking for python... /usr/bin/python3
Checking for Direct3D 12... no
Checking for Assimp... no
Checking for SDL2... no
Checking for Assimp... no
Checking for Autodesk FBX... no
Checking for Wayland client library... yes
Checking for Wayland cursor library... yes
Checking for wayland-scanner... yes
Checking for EGL 1.5 with Wayland Platform... yes
Checking for Linux dma-buf Buffer Sharing... no
Checking for DRM EGL Server... yes
Checking for Wayland EGL library... yes
Checking for libhybris EGL Server... no
Checking for Vulkan Buffer Sharing... yes
Checking for XComposite... no
Checking for wayland-server... yes
Checking for Linux Client dma-buf Buffer Sharing... no
Checking for Linux dma-buf Buffer Sharing... no
Checking for Vulkan Buffer Sharing... yes
Checking for BlueZ... no
Checking for sensorfw... no
Checking for Gypsy... no
Checking for WinRT Geolocation API... no
Checking for ALSA... yes
Checking for GStreamer 1.0... yes
Checking for GStreamer App 1.0... yes
Checking for GStreamer encoding-profile.h... yes
Checking for GStreamer OpenGL 1.0... yes
Checking for GStreamer Photography 1.0... no
Checking for Video for Linux... yes
Checking for OpenAL... no
Checking for PulseAudio >= 0.9.10... no
Checking for libresourceqt5... no
Checking for Flite... no
Checking for Speech Dispatcher... no
Checking for libclang... no
Checking for architecture supported... yes
Checking for bison... no
Checking for submodule initialized... yes
Checking for build path without whitespace... yes
Checking for platform supported...
Checking for gperf... no
Checking for flex... no
Checking for host pkg-config... /usr/bin/pkg-config
Checking for jumbo build merge limit... 8
Checking for linker supports -z noexecstack... yes
Checking for python2...
Checking for d-bus... yes
Checking for fontconfig... yes
Checking for freetype >= 2.4.2... yes
Checking for glib-2.0 >= 2.32.0... yes
Checking for glibc > 2.16... yes
Checking for harfbuzz >= 2.2.0... yes
Checking for jsoncpp... no
Checking for khr... yes
Checking for lcms2... yes
Checking for libdrm... yes
Checking for libevent... no
Checking for libvpx... no
Checking for libwebp, libwebpmux and libwebpdemux... yes
Checking for compatible libxml2 and libxslt... no
Checking for minizip... no
Checking for system ninja... yes
Checking for nss >= 3.26... no
Checking for opus... no
Checking for protobuf... yes
Checking for protoc... yes
Checking for re2... no
Checking for snappy... no
Checking for x11... yes
Checking for xcomposite... no
Checking for xcursor... yes
Checking for xi... no
Checking for xtst... no
Checking for zlib... yes
Done running configuration tests.

Configure summary:

Build type: linux-g++ (arm64, CPU features: cx16 neon)
Compiler: gcc 11.4.0
Configuration: compile_examples enable_new_dtags largefile neon precompile_header shared shared rpath release c++11 c++14 c++17 c++1z concurrent dbus reduce_exports stl
Build options:
  Mode ................................... release
  Optimize release build for size ........ no
  Building shared libraries .............. yes
  Using C standard ....................... C11
  Using C++ standard ..................... C++17
  Using ccache ........................... no
  Using new DTAGS ........................ yes
  Relocatable ............................ yes
  Using precompiled headers .............. yes
  Using LTCG ............................. no
  Target compiler supports:
    NEON ................................. yes
  Build parts ............................ libs examples tools
Qt modules and options:
  Qt Concurrent .......................... yes
  Qt D-Bus ............................... yes
  Qt D-Bus directly linked to libdbus .... yes
  Qt Gui ................................. yes
  Qt Network ............................. yes
  Qt Sql ................................. yes
  Qt Testlib ............................. yes
  Qt Widgets ............................. yes
  Qt Xml ................................. yes
Support enabled for:
  Using pkg-config ....................... yes
  udev ................................... yes
  Using system zlib ...................... yes
  Zstandard support ...................... no
Qt Core:
  DoubleConversion ....................... yes
    Using system DoubleConversion ........ no
  GLib ................................... yes
  iconv .................................. no
  ICU .................................... yes
  Built-in copy of the MIME database ..... yes
  Tracing backend ........................ <none>
  Logging backends:
    journald ............................. no
    syslog ............................... no
    slog2 ................................ no
  PCRE2 .................................. yes
    Using system PCRE2 ................... yes
Qt Network:
  getifaddrs() ........................... yes
  IPv6 ifname ............................ yes
  libproxy ............................... no
  Linux AF_NETLINK ....................... yes
  OpenSSL ................................ yes
    Qt directly linked to OpenSSL ........ no
  OpenSSL 1.1 ............................ yes
  DTLS ................................... yes
  OCSP-stapling .......................... yes
  SCTP ................................... no
  Use system proxies ..................... yes
  GSSAPI ................................. no
Qt Gui:
  Accessibility .......................... yes
  FreeType ............................... yes
    Using system FreeType ................ yes
  HarfBuzz ............................... yes
    Using system HarfBuzz ................ yes
  Fontconfig ............................. yes
  Image formats:
    GIF .................................. yes
    ICO .................................. yes
    JPEG ................................. yes
      Using system libjpeg ............... no
    PNG .................................. yes
      Using system libpng ................ no
  Text formats:
    HtmlParser ........................... yes
    CssParser ............................ yes
    OdfWriter ............................ yes
    MarkdownReader ....................... yes
      Using system libmd4c ............... no
    MarkdownWriter ....................... yes
  EGL .................................... yes
  OpenVG ................................. no
  OpenGL:
    Desktop OpenGL ....................... yes
    OpenGL ES 2.0 ........................ no
    OpenGL ES 3.0 ........................ no
    OpenGL ES 3.1 ........................ no
    OpenGL ES 3.2 ........................ no
  Vulkan ................................. yes
  Session Management ..................... yes
Features used by QPA backends:
  evdev .................................. yes
  libinput ............................... yes
  INTEGRITY HID .......................... no
  mtdev .................................. yes
  tslib .................................. no
  xkbcommon .............................. yes
  X11 specific:
    XLib ................................. yes
    XCB Xlib ............................. yes
    EGL on X11 ........................... no
    xkbcommon-x11 ........................ no
QPA backends:
  DirectFB ............................... no
  EGLFS .................................. yes
  EGLFS details:
    EGLFS OpenWFD ........................ no
    EGLFS i.Mx6 .......................... no
    EGLFS i.Mx6 Wayland .................. no
    EGLFS RCAR ........................... no
    EGLFS EGLDevice ...................... yes
    EGLFS GBM ............................ yes
    EGLFS VSP2 ........................... no
    EGLFS Mali ........................... no
    EGLFS Raspberry Pi ................... no
    EGLFS X11 ............................ no
  LinuxFB ................................ yes
  VNC .................................... yes
Qt Sql:
  SQL item models ........................ yes
Qt Widgets:
  GTK+ ................................... no
  Styles ................................. Fusion Windows
Qt PrintSupport:
  CUPS ................................... no
Qt Sql Drivers:
  DB2 (IBM) .............................. no
  InterBase .............................. no
  MySql .................................. no
  OCI (Oracle) ........................... no
  ODBC ................................... no
  PostgreSQL ............................. no
  SQLite2 ................................ no
  SQLite ................................. yes
    Using system provided SQLite ......... no
  TDS (Sybase) ........................... no
Qt Testlib:
  Tester for item models ................. yes
Serial Port:
  ntddmodm ............................... no
Qt SerialBus:
  Socket CAN ............................. yes
  Socket CAN FD .......................... yes
  SerialPort Support ..................... yes
Further Image Formats:
  JasPer ................................. no
  MNG .................................... no
  TIFF ................................... yes
    Using system libtiff ................. no
  WEBP ................................... yes
    Using system libwebp ................. yes
Qt QML:
  QML network support .................... yes
  QML debugging and profiling support .... yes
  QML just-in-time compiler .............. yes
  QML sequence object .................... yes
  QML XML http request ................... yes
  QML Locale ............................. yes
Qt QML Models:
  QML list model ......................... yes
  QML delegate model ..................... yes
Qt Quick:
  Direct3D 12 ............................ no
  AnimatedImage item ..................... yes
  Canvas item ............................ yes
  Support for Qt Quick Designer .......... yes
  Flipable item .......................... yes
  GridView item .......................... yes
  ListView item .......................... yes
  TableView item ......................... yes
  Path support ........................... yes
  PathView item .......................... yes
  Positioner items ....................... yes
  Repeater item .......................... yes
  ShaderEffect item ...................... yes
  Sprite item ............................ yes
QtQuick3D:
  Assimp ................................. yes
  System Assimp .......................... no
Qt Scxml:
  ECMAScript data model for QtScxml ...... yes
Qt Gamepad:
  SDL2 ................................... no
Qt 3D:
  Assimp ................................. yes
  System Assimp .......................... no
  Output Qt3D GL traces .................. no
  Use SSE2 instructions .................. no
  Use AVX2 instructions .................. no
  Aspects:
    Render aspect ........................ yes
    Input aspect ......................... yes
    Logic aspect ......................... yes
    Animation aspect ..................... yes
    Extras aspect ........................ yes
Qt 3D Renderers:
  OpenGL Renderer ........................ yes
  RHI Renderer ........................... no
Qt 3D GeometryLoaders:
  Autodesk FBX ........................... no
Qt Wayland Drivers:
  EGL .................................... yes
  Raspberry Pi ........................... no
  XComposite EGL ......................... no
  XComposite GLX ......................... no
  DRM EGL ................................ yes
  libhybris EGL .......................... no
  Linux dma-buf server buffer integration . no
  Vulkan-based server buffer integration . yes
  Shm emulation server buffer integration . yes
Qt Wayland Client Shell Integrations:
  xdg-shell .............................. yes
  xdg-shell unstable v5 (deprecated) ..... yes
  xdg-shell unstable v6 .................. yes
  ivi-shell .............................. yes
  wl-shell (deprecated) .................. yes
Qt Wayland Client ........................ yes
Qt Wayland Compositor .................... yes
Qt Wayland Compositor Layer Plugins:
  VSP2 hardware layer integration ........ no
Qt Bluetooth:
  BlueZ .................................. no
  BlueZ Low Energy ....................... no
  Linux Crypto API ....................... no
  Native Win32 Bluetooth ................. no
  WinRT Bluetooth API (desktop & UWP) .... no
  WinRT advanced bluetooth low energy API (desktop & UWP) . no
Qt Sensors:
  sensorfw ............................... no
Qt Quick Controls 2:
  Styles ................................. Default Fusion Imagine Material Universal
Qt Quick Templates 2:
  Hover support .......................... yes
  Multi-touch support .................... yes
Qt Positioning:
  Gypsy GPS Daemon ....................... no
  WinRT Geolocation API .................. no
Qt Location:
  Qt.labs.location experimental QML plugin . yes
  Geoservice plugins:
    OpenStreetMap ........................ yes
    HERE ................................. yes
    Esri ................................. yes
    Mapbox ............................... yes
    MapboxGL ............................. yes
    Itemsoverlay ......................... yes
QtXmlPatterns:
  XML schema support ..................... yes
Qt Multimedia:
  ALSA ................................... yes
  GStreamer 1.0 .......................... yes
  GStreamer 0.10 ......................... no
  Video for Linux ........................ yes
  OpenAL ................................. no
  PulseAudio ............................. no
  Resource Policy (libresourceqt5) ....... no
  Windows Audio Services ................. no
  DirectShow ............................. no
  Windows Media Foundation ............... no
Qt TextToSpeech:
  Flite .................................. no
  Flite with ALSA ........................ no
  Speech Dispatcher ...................... no
Qt Tools:
  Qt Assistant ........................... yes
  Qt Designer ............................ yes
  Qt Distance Field Generator ............ yes
  kmap2qmap .............................. yes
  Qt Linguist ............................ yes
  Mac Deployment Tool .................... no
  makeqpf ................................ yes
  pixeltool .............................. yes
  qdbus .................................. yes
  qev .................................... yes
  Qt Attributions Scanner ................ yes
  qtdiag ................................. yes
  qtpaths ................................ yes
  qtplugininfo ........................... yes
  Windows deployment tool ................ no
  WinRT Runner Tool ...................... no
Qt Tools:
  QDoc ................................... no
Qt WebEngine Build Tools:
  Use System Ninja ....................... yes
  Use System Gn .......................... no
  Jumbo Build Merge Limit ................ 8
  Developer build ........................ no
  Sanitizer .............................. no
  QtWebEngine required system libraries:
    fontconfig ........................... yes
    dbus ................................. yes
    nss .................................. no
    khr .................................. yes
    glibc ................................ yes
  Optional system libraries used:
    re2 .................................. no
    icu .................................. no
    libwebp, libwebpmux and libwebpdemux . yes
    opus ................................. no
    ffmpeg ............................... no
    libvpx ............................... no
    snappy ............................... no
    glib ................................. yes
    zlib ................................. yes
    minizip .............................. no
    libevent ............................. no
    jsoncpp .............................. no
    protobuf ............................. yes
    libxml2 and libxslt .................. no
    lcms2 ................................ yes
    png .................................. no
    JPEG ................................. no
    harfbuzz ............................. yes
    freetype ............................. yes

Note: Also available for Linux: linux-clang linux-icc

Note: The following modules are not being compiled in this configuration:
    webenginecore
    webengine
    webenginewidgets
    pdf
    pdfwidgets

WARNING: QDoc will not be compiled, probably because libclang could not be located. This means that you cannot build the Qt documentation.

Either ensure that llvm-config is in your PATH environment variable, or set LLVM_INSTALL_DIR to the location of your llvm installation.
On Linux systems, you may be able to install libclang by installing the libclang-dev or libclang-devel package, depending on your distribution.
On macOS, you can use Homebrew's llvm package.
On Windows, you must set LLVM_INSTALL_DIR to the installation path.

WARNING: Tool gperf is required to build QtWebEngine.

WARNING: Tool gperf is required to build QtPdf.

WARNING: QtWebEngine will not be built.

WARNING: QtPdf will not be built.

Qt is now configured for building. Just run 'gmake'.
Once everything is built, you must run 'gmake install'.
Qt will be installed into '/usr/local/Qt-5.15.2'.

Prior to reconfiguration, make sure you remove any leftovers from
the previous build.