레시피 파악
meta-ivi layer 에 존재한다.
meta-ivi/meta-ivi/recipes-graphics/wayland
wayland-ivi-extension_2.1.bb
의존성 : wston wayland-native
빌드 옵션 : "-DWITH_ILM_INPUT=1":q
weston_%.bbappend
Ubuntu 16.04 에 설치
다운로드 wayland-ivi-extension git clone http://github.com/GENIVI/wayland-ivi-extension.git
cmake -DBUILD_ILM_API_TESTS -D CMAKE_INSTALL_PREFIX=/opt/GENIVI/new ..
wayland/1.14.0 필요
wayland 다운로드
$ wget https://wayland.freedesktop.org/releases/wayland-protocols-1.17.tar.xz
./configure
sudo make install
설치 접기
/usr/bin/install -c -m 644 wayland-protocols.pc '/usr/local/share/pkgconfig'
/bin/mkdir -p '/usr/local/share/wayland-protocols'
/bin/mkdir -p '/usr/local/share/wayland-protocols/unstable/idle-inhibit'
/usr/bin/install -c -m 644 unstable/idle-inhibit/idle-inhibit-unstable-v1.xml '/usr/local/share/wayland-protocols/unstable/idle-inhibit'
/bin/mkdir -p '/usr/local/share/wayland-protocols/unstable/input-timestamps'
/usr/bin/install -c -m 644 unstable/input-timestamps/input-timestamps-unstable-v1.xml '/usr/local/share/wayland-protocols/unstable/input-timestamps'
/bin/mkdir -p '/usr/local/share/wayland-protocols/unstable/fullscreen-shell'
/usr/bin/install -c -m 644 unstable/fullscreen-shell/fullscreen-shell-unstable-v1.xml '/usr/local/share/wayland-protocols/unstable/fullscreen-shell'
/bin/mkdir -p '/usr/local/share/wayland-protocols/unstable/xdg-output'
/usr/bin/install -c -m 644 unstable/xdg-output/xdg-output-unstable-v1.xml '/usr/local/share/wayland-protocols/unstable/xdg-output'
/bin/mkdir -p '/usr/local/share/wayland-protocols/unstable/input-method'
/usr/bin/install -c -m 644 unstable/input-method/input-method-unstable-v1.xml '/usr/local/share/wayland-protocols/unstable/input-method'
/bin/mkdir -p '/usr/local/share/wayland-protocols/stable/viewporter'
/usr/bin/install -c -m 644 stable/viewporter/viewporter.xml '/usr/local/share/wayland-protocols/stable/viewporter'
/bin/mkdir -p '/usr/local/share/wayland-protocols/unstable/primary-selection'
/usr/bin/install -c -m 644 unstable/primary-selection/primary-selection-unstable-v1.xml '/usr/local/share/wayland-protocols/unstable/primary-selection'
/bin/mkdir -p '/usr/local/share/wayland-protocols/unstable/linux-explicit-synchronization'
/usr/bin/install -c -m 644 unstable/linux-explicit-synchronization/linux-explicit-synchronization-unstable-v1.xml '/usr/local/share/wayland-protocols/unstable/linux-explicit-synchronization'
/bin/mkdir -p '/usr/local/share/wayland-protocols/unstable/xdg-decoration'
/usr/bin/install -c -m 644 unstable/xdg-decoration/xdg-decoration-unstable-v1.xml '/usr/local/share/wayland-protocols/unstable/xdg-decoration'
/bin/mkdir -p '/usr/local/share/wayland-protocols/unstable/tablet'
/usr/bin/install -c -m 644 unstable/tablet/tablet-unstable-v1.xml unstable/tablet/tablet-unstable-v2.xml '/usr/local/share/wayland-protocols/unstable/tablet'
/bin/mkdir -p '/usr/local/share/wayland-protocols/unstable/relative-pointer'
/usr/bin/install -c -m 644 unstable/relative-pointer/relative-pointer-unstable-v1.xml '/usr/local/share/wayland-protocols/unstable/relative-pointer'
/bin/mkdir -p '/usr/local/share/wayland-protocols/stable/xdg-shell'
/usr/bin/install -c -m 644 stable/xdg-shell/xdg-shell.xml '/usr/local/share/wayland-protocols/stable/xdg-shell'
/bin/mkdir -p '/usr/local/share/wayland-protocols/unstable/xdg-shell'
/usr/bin/install -c -m 644 unstable/xdg-shell/xdg-shell-unstable-v5.xml unstable/xdg-shell/xdg-shell-unstable-v6.xml '/usr/local/share/wayland-protocols/unstable/xdg-shell'
/bin/mkdir -p '/usr/local/share/wayland-protocols/unstable/linux-dmabuf'
/usr/bin/install -c -m 644 unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml '/usr/local/share/wayland-protocols/unstable/linux-dmabuf'
/bin/mkdir -p '/usr/local/share/wayland-protocols/unstable/xdg-foreign'
/usr/bin/install -c -m 644 unstable/xdg-foreign/xdg-foreign-unstable-v1.xml unstable/xdg-foreign/xdg-foreign-unstable-v2.xml '/usr/local/share/wayland-protocols/unstable/xdg-foreign'
/bin/mkdir -p '/usr/local/share/wayland-protocols/unstable/pointer-constraints'
/usr/bin/install -c -m 644 unstable/pointer-constraints/pointer-constraints-unstable-v1.xml '/usr/local/share/wayland-protocols/unstable/pointer-constraints'
/bin/mkdir -p '/usr/local/share/wayland-protocols/unstable/pointer-gestures'
/usr/bin/install -c -m 644 unstable/pointer-gestures/pointer-gestures-unstable-v1.xml '/usr/local/share/wayland-protocols/unstable/pointer-gestures'
/bin/mkdir -p '/usr/local/share/wayland-protocols/unstable/keyboard-shortcuts-inhibit'
/usr/bin/install -c -m 644 unstable/keyboard-shortcuts-inhibit/keyboard-shortcuts-inhibit-unstable-v1.xml '/usr/local/share/wayland-protocols/unstable/keyboard-shortcuts-inhibit'
/bin/mkdir -p '/usr/local/share/wayland-protocols/stable/presentation-time'
/usr/bin/install -c -m 644 stable/presentation-time/presentation-time.xml '/usr/local/share/wayland-protocols/stable/presentation-time'
/bin/mkdir -p '/usr/local/share/wayland-protocols/unstable/text-input'
/usr/bin/install -c -m 644 unstable/text-input/text-input-unstable-v1.xml unstable/text-input/text-input-unstable-v3.xml '/usr/local/share/wayland-protocols/unstable/text-input'
/bin/mkdir -p '/usr/local/share/wayland-protocols/unstable/xwayland-keyboard-grab'
/usr/bin/install -c -m 644 unstable/xwayland-keyboard-grab/xwayland-keyboard-grab-unstable-v1.xml '/usr/local/share/wayland-protocols/unstable/xwayland-keyboard-grab'
접기 wget https://wayland.freedesktop.org/releases/wayland-1.16.0.tar.xz
./autogen.sh --prefix=PREFIX
sudo apt-get install libffi-dev
make -j8
make install
$ wayland-scanner --version
wayland-scanner 1.16.0
설치 완료후 환경변수 추가
웨스턴 설치시 문제생김
pkg_check_modules(WAYLAND_SERVER wayland-server>=1.13.0 REQUIRED)
pkg_check_modules(WESTON weston>=5.0.0 REQUIRED)
pkg_check_modules(PIXMAN pixman-1 REQUIRED)
버전문제로 버전 2.1.0 으로 변경함
이 버전에서는 weston 버전문제가 발생함
pkg_check_modules(WESTON weston>=2.0.0 REQUIRED)
pkg_check_modules(PIXMAN pixman-1 REQUIRED)
$ sudo apt-get install libjpeg-dev
$ sudo apt-get install libwebp-dev
공유
--enable-screen-sharing
./configure --prefix=/opt/GENIVI/new/wayland/ --enable-screen-sharing --enable-xwayland --enable-xwayland-test --enable-x11-compositor --enable-demo-clients-install
설정 접기
Native Backend drm-backend.so
setuid Install yes
Cairo Renderer image
EGL yes
xcb_xkb yes
XWayland yes
dbus yes
ivi-shell yes
Build wcap utility yes
Build Fullscreen Shell yes
Enable developer documentation yes
weston-launch utility yes
systemd-login support yes
systemd notify support no
DRM Compositor yes
X11 Compositor yes
Wayland Compositor yes
Headless Compositor yes
FBDEV Compositor yes
RDP Compositor no
Screen Sharing yes
JUnit XML output yes
Build Clients yes
Build EGL Clients no
Build Simple Clients yes
Build Simple EGL Clients yes
Install Demo Clients yes
Colord Support no
LCMS2 Support no
libjpeg Support yes
libwebp Support yes
VA H.264 encoding Support no
접기
cmake -D CMAKE_INSTALL_PREFIX=/opt/GENIVI/new/weston-extention ..
컴파일에러
[ 8%] Building C object weston-ivi-shell/CMakeFiles/ivi-controller.dir/src/ivi-controller.c.o
/home/kj/GDP_ivis/westonAPI/wayland-ivi-extension/weston-ivi-shell/src/ivi-controller.c: In function ‘controller_screenshot_notify’:
/home/kj/GDP_ivis/westonAPI/wayland-ivi-extension/weston-ivi-shell/src/ivi-controller.c:1280:42: error: incompatible type for argument 7 of ‘ivi_screenshot_send_done’
shm_format, output->frame_time);
^
In file included from /home/kj/GDP_ivis/westonAPI/wayland-ivi-extension/weston-ivi-shell/src/ivi-controller.c:39:0:
/home/kj/GDP_ivis/westonAPI/wayland-ivi-extension/build/weston-ivi-shell/ivi-wm-server-protocol.h:314:1: note: expected ‘uint32_t {aka unsigned int}’ but argument is of type ‘struct timespec’
ivi_screenshot_send_done(struct wl_resource *resource_, int32_t fd, int32_t width, int32_t height, int32_t stride, uint32_t format, uint32_t timestamp)
^
weston-ivi-shell/CMakeFiles/ivi-controller.dir/build.make:70: recipe for target 'weston-ivi-shell/CMakeFiles/ivi-controller.dir/src/ivi-controller.c.o' failed
make[2]: *** [weston-ivi-shell/CMakeFiles/ivi-controller.dir/src/ivi-controller.c.o] Error 1
CMakeFiles/Makefile2:173: recipe for target 'weston-ivi-shell/CMakeFiles/ivi-controller.dir/all' failed
make[1]: *** [weston-ivi-shell/CMakeFiles/ivi-controller.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2
1279 // ivi_screenshot_send_done(l->screenshot, fd, width, height, stride, shm_format,( (uint32_t)output->frame_time));
1280 ivi_screenshot_send_done(l->screenshot, fd, width, height, stride, shm_format, (uint32_t)0);
changed
1279 // ivi_screenshot_send_done(l->screenshot, fd, width, height, stride, shm_format,( (uint32_t)output->frame_time));
1280 ivi_screenshot_send_done(l->screenshot, fd, width, height, stride, shm_format,( (uint32_t)output->frame_time.tv_nsec));
error free
$ vim /home/kj/GDP_ivis/westonAPI/wayland-ivi-extension/ivi-layermanagement-examples/LayerManagerControl/src/print.cpp
#include <cstdlib>
make
sudo make install
-- Install configuration: ""
-- Up-to-date: /opt/GENIVI/new/weston-extention/lib/libivi-application.so.2.1.0
-- Up-to-date: /opt/GENIVI/new/weston-extention/lib/libivi-application.so
-- Up-to-date: /opt/GENIVI/new/weston-extention/include/ilm/ivi-application-client-protocol.h
-- Up-to-date: /opt/GENIVI/new/weston-extention/share/wayland-protocols/stable/ivi-application/ivi-application.xml
-- Installing: /pkgconfig/ivi-application.pc
-- Installing: /opt/GENIVI/new/weston-extention/lib/weston/ivi-controller.so
-- Set runtime path of "/opt/GENIVI/new/weston-extention/lib/weston/ivi-controller.so" to ""
-- Installing: /opt/GENIVI/new/weston-extention/lib/libilmCommon.so.2.1.0
-- Installing: /opt/GENIVI/new/weston-extention/lib/libilmCommon.so
-- Set runtime path of "/opt/GENIVI/new/weston-extention/lib/libilmCommon.so.2.1.0" to ""
-- Installing: /opt/GENIVI/new/weston-extention/include/ilm/ilm_common.h
-- Installing: /opt/GENIVI/new/weston-extention/include/ilm/ilm_types.h
-- Installing: /opt/GENIVI/new/weston-extention/include/ilm/ilm_platform.h
-- Installing: /pkgconfig/ilmCommon.pc
-- Installing: /opt/GENIVI/new/weston-extention/lib/libilmClient.so.2.1.0
-- Installing: /opt/GENIVI/new/weston-extention/lib/libilmClient.so
-- Set runtime path of "/opt/GENIVI/new/weston-extention/lib/libilmClient.so.2.1.0" to ""
-- Installing: /opt/GENIVI/new/weston-extention/include/ilm/ilm_client.h
-- Installing: /opt/GENIVI/new/weston-extention/lib/libilmControl.so.2.1.0
-- Installing: /opt/GENIVI/new/weston-extention/lib/libilmControl.so
-- Set runtime path of "/opt/GENIVI/new/weston-extention/lib/libilmControl.so.2.1.0" to ""
-- Installing: /opt/GENIVI/new/weston-extention/include/ilm/ilm_control.h
-- Installing: /pkgconfig/ilmControl.pc
-- Installing: /opt/GENIVI/new/weston-extention/bin/LayerManagerControl
-- Set runtime path of "/opt/GENIVI/new/weston-extention/bin/LayerManagerControl" to ""
-- Installing: /opt/GENIVI/new/weston-extention/bin/EGLWLMockNavigation
-- Set runtime path of "/opt/GENIVI/new/weston-extention/bin/EGLWLMockNavigation" to ""
-- Installing: /opt/GENIVI/new/weston-extention/bin/EGLWLInputEventExample
-- Set runtime path of "/opt/GENIVI/new/weston-extention/bin/EGLWLInputEventExample" to ""
-- Installing: /opt/GENIVI/new/weston-extention/bin/layer-add-surfaces
-- Set runtime path of "/opt/GENIVI/new/weston-extention/bin/layer-add-surfaces" to ""
-- Installing: /opt/GENIVI/new/weston-extention/bin/multi-touch-viewer
-- Set runtime path of "/opt/GENIVI/new/weston-extention/bin/multi-touch-viewer" to ""
-- Installing: /opt/GENIVI/new/weston-extention/bin/simple-ivi-share
-- Set runtime path of "/opt/GENIVI/new/weston-extention/bin/simple-ivi-share" to ""
-- Installing: /opt/GENIVI/new/weston-extention/bin/simple-weston-client
-- Set runtime path of "/opt/GENIVI/new/weston-extention/bin/simple-weston-client" to ""
weston 5.0.0
wayland1.16.0 설치 완료
wayland-ivi-extension 설치완료
ilmCommon.pc ilmControl.pc ivi-application.pc
최신버전으로 다시설치
cmake -DCMAKE_INSTALL_PREFIX=/opt/GENIVI/new/ivi-layer-master ..
세부옵션
접기
Install the project...
접기 세부옵션 접기
-- Install configuration: ""
-- Up-to-date: /opt/GENIVI/new/ivi-layer-master/lib/libivi-application.so.2.2.0
-- Up-to-date: /opt/GENIVI/new/ivi-layer-master/lib/libivi-application.so
-- Up-to-date: /opt/GENIVI/new/ivi-layer-master/include/ilm/ivi-application-client-protocol.h
-- Up-to-date: /opt/GENIVI/new/ivi-layer-master/share/wayland-protocols/stable/ivi-application/ivi-application.xml
-- Installing: /pkgconfig/ivi-application.pc
-- Installing: /opt/GENIVI/new/ivi-layer-master/lib/weston/ivi-controller.so
-- Set runtime path of "/opt/GENIVI/new/ivi-layer-master/lib/weston/ivi-controller.so" to ""
-- Installing: /opt/GENIVI/new/ivi-layer-master/lib/libilmCommon.so.2.2.0
-- Installing: /opt/GENIVI/new/ivi-layer-master/lib/libilmCommon.so
-- Set runtime path of "/opt/GENIVI/new/ivi-layer-master/lib/libilmCommon.so.2.2.0" to ""
-- Installing: /opt/GENIVI/new/ivi-layer-master/include/ilm/ilm_common.h
-- Installing: /opt/GENIVI/new/ivi-layer-master/include/ilm/ilm_types.h
-- Installing: /opt/GENIVI/new/ivi-layer-master/include/ilm/ilm_platform.h
-- Installing: /pkgconfig/ilmCommon.pc
-- Installing: /opt/GENIVI/new/ivi-layer-master/lib/libilmClient.so.2.2.0
-- Installing: /opt/GENIVI/new/ivi-layer-master/lib/libilmClient.so
-- Set runtime path of "/opt/GENIVI/new/ivi-layer-master/lib/libilmClient.so.2.2.0" to ""
-- Installing: /opt/GENIVI/new/ivi-layer-master/include/ilm/ilm_client.h
-- Installing: /opt/GENIVI/new/ivi-layer-master/lib/libilmControl.so.2.2.0
-- Installing: /opt/GENIVI/new/ivi-layer-master/lib/libilmControl.so
-- Set runtime path of "/opt/GENIVI/new/ivi-layer-master/lib/libilmControl.so.2.2.0" to ""
-- Installing: /opt/GENIVI/new/ivi-layer-master/include/ilm/ilm_control.h
-- Installing: /pkgconfig/ilmControl.pc
-- Installing: /opt/GENIVI/new/ivi-layer-master/bin/LayerManagerControl
-- Set runtime path of "/opt/GENIVI/new/ivi-layer-master/bin/LayerManagerControl" to ""
-- Installing: /opt/GENIVI/new/ivi-layer-master/bin/EGLWLMockNavigation
-- Set runtime path of "/opt/GENIVI/new/ivi-layer-master/bin/EGLWLMockNavigation" to ""
-- Installing: /opt/GENIVI/new/ivi-layer-master/share/wayland-ivi-extension/textures
-- Installing: /opt/GENIVI/new/ivi-layer-master/share/wayland-ivi-extension/textures/street.bmp
-- Installing: /opt/GENIVI/new/ivi-layer-master/share/wayland-ivi-extension/textures/skyscrapers
-- Installing: /opt/GENIVI/new/ivi-layer-master/share/wayland-ivi-extension/textures/skyscrapers/facade02.bmp
-- Installing: /opt/GENIVI/new/ivi-layer-master/share/wayland-ivi-extension/textures/skyscrapers/facade01.bmp
-- Installing: /opt/GENIVI/new/ivi-layer-master/share/wayland-ivi-extension/textures/skyscrapers/facade03.bmp
-- Installing: /opt/GENIVI/new/ivi-layer-master/share/wayland-ivi-extension/textures/skyscrapers/facade00.bmp
-- Installing: /opt/GENIVI/new/ivi-layer-master/share/wayland-ivi-extension/textures/car.bmp
-- Installing: /opt/GENIVI/new/ivi-layer-master/share/wayland-ivi-extension/textures/sources.txt
-- Installing: /opt/GENIVI/new/ivi-layer-master/share/wayland-ivi-extension/textures/base.bmp
-- Installing: /opt/GENIVI/new/ivi-layer-master/bin/EGLWLInputEventExample
-- Set runtime path of "/opt/GENIVI/new/ivi-layer-master/bin/EGLWLInputEventExample" to ""
-- Installing: /opt/GENIVI/new/ivi-layer-master/bin/layer-add-surfaces
-- Set runtime path of "/opt/GENIVI/new/ivi-layer-master/bin/layer-add-surfaces" to ""
-- Installing: /opt/GENIVI/new/ivi-layer-master/bin/multi-touch-viewer
-- Set runtime path of "/opt/GENIVI/new/ivi-layer-master/bin/multi-touch-viewer" to ""
-- Installing: /opt/GENIVI/new/ivi-layer-master/bin/simple-weston-client
-- Set runtime path of "/opt/GENIVI/new/ivi-layer-master/bin/simple-weston-client" to ""
-- Installing: /opt/GENIVI/new/ivi-layer-master/lib/libilmInput.so.2.2.0
-- Installing: /opt/GENIVI/new/ivi-layer-master/lib/libilmInput.so
-- Set runtime path of "/opt/GENIVI/new/ivi-layer-master/lib/libilmInput.so.2.2.0" to ""
-- Installing: /opt/GENIVI/new/ivi-layer-master/include/ilm/ilm_input.h
-- Installing: /pkgconfig/ilmInput.pc
-- Installing: /opt/GENIVI/new/ivi-layer-master/lib/weston/ivi-input-controller.so
-- Set runtime path of "/opt/GENIVI/new/ivi-layer-master/lib/weston/ivi-input-controller.so" to ""
접기