0

我正在尝试在 docker 容器中启动 Weston。根据我的阅读,这应该是可能的,但它会劫持我的屏幕,我需要强制重启机器以退出容器。

我有一个安装 weston 的 dockerfile。然后我以特权身份运行容器。

FROM ubuntu:latest

RUN sed s/#.deb-src/deb-src/ -i /etc/apt/sources.list
RUN apt-get update && \
    DEBIAN_FRONTEND=noninteractive apt-get install -y \
    cog \
    git \
    weston \
    udev \
    nodejs

RUN mkdir /etc/xdg/weston
RUN mkdir /tmp/xdg
RUN chmod 700 /tmp/xdg

RUN su -c 'echo XDG_RUNTIME_DIR=/tmp/xdg >> /etc/environment'

ENV XDG_RUNTIME_DIR=/tmp/xdg
ENV COG_PLATFORM_FDO_VIEW_FULLSCREEN=1
ENV GST_VAAPI_ALL_DRIVERS=1

WORKDIR app

COPY app/start.sh .
COPY app/weston.ini .
COPY app/app.js .

CMD ["node", "app.js"]

app.js反过来,/sys/class/drm根据Arch wiki 文档,用可用的内容填充 weston.ini 文件。

最终的 weston.ini 文件位于/etc/xdg/weston/weston.ini. 我正在使用 Ubuntu 20.04 的 VirtualBox VM 中工作,因此输出的名称和潜在的错误源可能是什么?

[core]
idle-time=0
require-input=false

[shell]
panel-location=""
panel-position=none
locking=false
num-workspaces=1
background-color=0x00000000
background-image=none# 
cursor-size=0
[output]
name=Virtual-1
mode=1920x1440
[output]
name=Virtual-2
mode=1920x1440
[output]
name=Virtual-3
mode=1920x1440
[output]
name=Virtual-4
mode=1920x1440
[output]
name=Virtual-5
mode=1920x1440
[output]
name=Virtual-6
mode=1920x1440
[output]
name=Virtual-7
mode=1920x1440
[output]
name=Virtual-8

设置 weston.ini 后,脚本会尝试使用以下命令启动 weston 和 cog start.sh

#!/bin/sh
service udev start < /dev/null
weston-launch --tty /dev/tty1 --user root &
sleep 5
cog $1

atomic然而,在此之后我没有进一步,我从and得到两个错误repaint-flush

* Starting hotplug events dispatcher systemd-udevd                                                                                                                     [ OK ] 
 * Synthesizing the initial hotplug events (subsystems)...                                                                                                              [ OK ] 
 * Synthesizing the initial hotplug events (devices)...                                                                                                                 [ OK ] 
 * Waiting for /dev to be fully populated...                                                                                                                            [ OK ] 
Date: 2021-06-22 UTC
[14:37:28.475] weston 8.0.0
               https://wayland.freedesktop.org
               Bug reports to: https://gitlab.freedesktop.org/wayland/weston/issues/
               Build: 8.0.0
[14:37:28.475] Command line: /usr/bin/weston
[14:37:28.475] OS: Linux, 5.4.0-74-generic, #83-Ubuntu SMP Sat May 8 02:35:39 UTC 2021, x86_64
[14:37:28.475] Using config file '/etc/xdg/weston/weston.ini'
[14:37:28.475] Output repaint window is 7 ms maximum.
[14:37:28.475] Loading module '/usr/lib/x86_64-linux-gnu/libweston-8/drm-backend.so'
[14:37:28.476] initializing drm backend
[14:37:28.476] logind: not running in a systemd session
[14:37:28.476] logind: cannot setup systemd-logind helper (-61), using legacy fallback
[14:37:28.477] using /dev/dri/card0
[14:37:28.477] DRM: supports universal planes
[14:37:28.477] DRM: supports atomic modesetting
[14:37:28.477] DRM: supports picture aspect ratio
[14:37:28.477] Loading module '/usr/lib/x86_64-linux-gnu/libweston-8/gl-renderer.so'
VMware: No 3D enabled (0, Success).
[14:37:28.491] EGL client extensions: EGL_EXT_device_base
               EGL_EXT_device_enumeration EGL_EXT_device_query
               EGL_EXT_platform_base EGL_KHR_client_get_all_proc_addresses
               EGL_EXT_client_extensions EGL_KHR_debug EGL_EXT_platform_device
               EGL_EXT_platform_wayland EGL_KHR_platform_wayland
               EGL_EXT_platform_x11 EGL_KHR_platform_x11 EGL_MESA_platform_gbm
               EGL_KHR_platform_gbm EGL_MESA_platform_surfaceless
[14:37:28.492] EGL version: 1.4
[14:37:28.492] EGL vendor: Mesa Project
[14:37:28.492] EGL client APIs: OpenGL OpenGL_ES 
[14:37:28.492] EGL extensions: EGL_ANDROID_blob_cache EGL_EXT_buffer_age
               EGL_EXT_image_dma_buf_import
               EGL_EXT_image_dma_buf_import_modifiers EGL_KHR_cl_event2
               EGL_KHR_config_attribs EGL_KHR_create_context
               EGL_KHR_create_context_no_error EGL_KHR_fence_sync
               EGL_KHR_get_all_proc_addresses EGL_KHR_gl_colorspace
               EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image
               EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image
               EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap
               EGL_KHR_no_config_context EGL_KHR_reusable_sync
               EGL_KHR_surfaceless_context EGL_EXT_pixel_format_float
               EGL_KHR_wait_sync EGL_MESA_configless_context
               EGL_MESA_image_dma_buf_export EGL_MESA_query_driver
[14:37:28.492] warning: Disabling render GPU timeline and explicit synchronization due to missing EGL_ANDROID_native_fence_sync extension
[14:37:28.492] EGL_KHR_surfaceless_context available
[14:37:28.496] GL version: OpenGL ES 3.2 Mesa 20.2.6
[14:37:28.496] GLSL version: OpenGL ES GLSL ES 3.20
[14:37:28.496] GL vendor: Mesa/X.org
[14:37:28.496] GL renderer: llvmpipe (LLVM 11.0.0, 256 bits)
[14:37:28.497] GL extensions: GL_EXT_blend_minmax GL_EXT_multi_draw_arrays
               GL_EXT_texture_compression_s3tc GL_EXT_texture_compression_dxt1
               GL_EXT_texture_compression_rgtc GL_EXT_texture_format_BGRA8888
               GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth24
               GL_OES_element_index_uint GL_OES_fbo_render_mipmap
               GL_OES_mapbuffer GL_OES_rgb8_rgba8 GL_OES_standard_derivatives
               GL_OES_stencil8 GL_OES_texture_3D GL_OES_texture_float
               GL_OES_texture_float_linear GL_OES_texture_half_float
               GL_OES_texture_half_float_linear GL_OES_texture_npot
               GL_OES_vertex_half_float GL_EXT_draw_instanced
               GL_EXT_texture_sRGB_decode GL_OES_EGL_image
               GL_OES_depth_texture GL_OES_packed_depth_stencil
               GL_EXT_texture_type_2_10_10_10_REV GL_NV_conditional_render
               GL_OES_get_program_binary GL_APPLE_texture_max_level
               GL_EXT_discard_framebuffer GL_EXT_read_format_bgra
               GL_EXT_frag_depth GL_NV_fbo_color_attachments
               GL_OES_EGL_image_external GL_OES_EGL_sync
               GL_OES_vertex_array_object GL_OES_viewport_array
               GL_ANGLE_texture_compression_dxt3
               GL_ANGLE_texture_compression_dxt5
               GL_EXT_occlusion_query_boolean GL_EXT_robustness
               GL_EXT_texture_rg GL_EXT_unpack_subimage GL_NV_draw_buffers
               GL_NV_read_buffer GL_NV_read_depth GL_NV_read_depth_stencil
               GL_NV_read_stencil GL_EXT_draw_buffers GL_EXT_map_buffer_range
               GL_KHR_debug GL_KHR_robustness
               GL_KHR_texture_compression_astc_ldr GL_NV_pixel_buffer_object
               GL_OES_depth_texture_cube_map GL_OES_required_internalformat
               GL_OES_surfaceless_context GL_EXT_color_buffer_float
               GL_EXT_sRGB_write_control GL_EXT_separate_shader_objects
               GL_EXT_shader_group_vote GL_EXT_shader_implicit_conversions
               GL_EXT_shader_integer_mix GL_EXT_tessellation_point_size
               GL_EXT_tessellation_shader GL_ANDROID_extension_pack_es31a
               GL_EXT_base_instance GL_EXT_compressed_ETC1_RGB8_sub_texture
               GL_EXT_copy_image GL_EXT_draw_buffers_indexed
               GL_EXT_draw_elements_base_vertex GL_EXT_gpu_shader5
               GL_EXT_polygon_offset_clamp GL_EXT_primitive_bounding_box
               GL_EXT_render_snorm GL_EXT_shader_io_blocks
               GL_EXT_texture_border_clamp GL_EXT_texture_buffer
               GL_EXT_texture_cube_map_array GL_EXT_texture_norm16
               GL_EXT_texture_view GL_KHR_blend_equation_advanced
               GL_KHR_context_flush_control
               GL_KHR_robust_buffer_access_behavior GL_NV_image_formats
               GL_OES_copy_image GL_OES_draw_buffers_indexed
               GL_OES_draw_elements_base_vertex GL_OES_gpu_shader5
               GL_OES_primitive_bounding_box GL_OES_sample_shading
               GL_OES_sample_variables GL_OES_shader_io_blocks
               GL_OES_shader_multisample_interpolation
               GL_OES_tessellation_point_size GL_OES_tessellation_shader
               GL_OES_texture_border_clamp GL_OES_texture_buffer
               GL_OES_texture_cube_map_array GL_OES_texture_stencil8
               GL_OES_texture_storage_multisample_2d_array GL_OES_texture_view
               GL_EXT_blend_func_extended GL_EXT_buffer_storage
               GL_EXT_float_blend GL_EXT_geometry_point_size
               GL_EXT_geometry_shader GL_KHR_no_error
               GL_KHR_texture_compression_astc_sliced_3d
               GL_OES_EGL_image_external_essl3 GL_OES_geometry_point_size
               GL_OES_geometry_shader GL_OES_shader_image_atomic
               GL_EXT_clip_cull_distance GL_EXT_disjoint_timer_query
               GL_EXT_texture_compression_s3tc_srgb
               GL_MESA_shader_integer_functions GL_EXT_clip_control
               GL_EXT_texture_compression_bptc GL_KHR_parallel_shader_compile
               GL_EXT_EGL_image_storage
               GL_EXT_shader_framebuffer_fetch_non_coherent
               GL_EXT_texture_sRGB_R8 GL_EXT_texture_shadow_lod
               GL_MESA_framebuffer_flip_y GL_EXT_depth_clamp
               GL_EXT_texture_query_lod
[14:37:28.497] GL ES 2 renderer features:
               read-back format: BGRA
               wl_shm sub-image to texture: yes
               EGL Wayland extension: no
[14:37:28.500] event0  - Power Button: is tagged by udev as: Keyboard
[14:37:28.500] event0  - Power Button: device is a keyboard
[14:37:28.501] event1  - Sleep Button: is tagged by udev as: Keyboard
[14:37:28.501] event1  - Sleep Button: device is a keyboard
[14:37:28.502] event3  - Video Bus: is tagged by udev as: Keyboard
[14:37:28.502] event3  - Video Bus: device is a keyboard
[14:37:28.502] event6  - VirtualBox mouse integration: is tagged by udev as: Mouse
[14:37:28.502] event6  - VirtualBox mouse integration: device is a pointer
[14:37:28.569] event5  - VirtualBox USB Tablet: is tagged by udev as: Mouse
[14:37:28.569] event5  - VirtualBox USB Tablet: device is a pointer
[14:37:28.570] event2  - AT Translated Set 2 keyboard: is tagged by udev as: Keyboard
[14:37:28.570] event2  - AT Translated Set 2 keyboard: device is a keyboard
[14:37:28.571] event4  - ImExPS/2 Generic Explorer Mouse: is tagged by udev as: Mouse
[14:37:28.571] event4  - ImExPS/2 Generic Explorer Mouse: device is a pointer
[14:37:28.575] libinput: configuring device "Power Button".
[14:37:28.575] libinput: configuring device "Sleep Button".
[14:37:28.575] libinput: configuring device "Video Bus".
[14:37:28.575] libinput: configuring device "VirtualBox mouse integration".
[14:37:28.575] input device event6 has no enabled output associated (none named), skipping calibration for now.
[14:37:28.575] libinput: configuring device "VirtualBox USB Tablet".
[14:37:28.575] input device event5 has no enabled output associated (none named), skipping calibration for now.
[14:37:28.575] libinput: configuring device "AT Translated Set 2 keyboard".
[14:37:28.575] libinput: configuring device "ImExPS/2 Generic Explorer Mouse".
[14:37:28.575] DRM: head 'Virtual-1' found, connector 36 is connected, EDID make 'unknown', model 'unknown', serial 'unknown'
[14:37:28.575] DRM: head 'Virtual-2' found, connector 41 is disconnected.
[14:37:28.575] DRM: head 'Virtual-3' found, connector 46 is disconnected.
[14:37:28.575] DRM: head 'Virtual-4' found, connector 51 is disconnected.
[14:37:28.575] DRM: head 'Virtual-5' found, connector 56 is disconnected.
[14:37:28.575] DRM: head 'Virtual-6' found, connector 61 is disconnected.
[14:37:28.576] DRM: head 'Virtual-7' found, connector 66 is disconnected.
[14:37:28.576] DRM: head 'Virtual-8' found, connector 71 is disconnected.
[14:37:28.576] Registered plugin API 'weston_drm_output_api_v1' of size 24
[14:37:28.576] Registered plugin API 'weston_drm_virtual_output_api_v1' of size 48
[14:37:28.576] Chosen EGL config details: id:  31 rgba: 8 8 8 0 buf: 24 dep:  0 stcl: 0 int: 1-1 type: win vis_id: XRGB8888 (0x34325258)
[14:37:28.576] Output Virtual-1 (crtc 38) video modes:
               2560x1335@60.0, preferred, 241.5 MHz
               2560x1600@60.0, 348.5 MHz
               1920x1440@60.0, current, 234.0 MHz
               1856x1392@60.0, 218.2 MHz
               1792x1344@60.0, 204.8 MHz
               1920x1200@59.9, 193.2 MHz
               1600x1200@60.0, 162.0 MHz
               1680x1050@60.0, 146.2 MHz
               1400x1050@60.0, 121.8 MHz
               1280x1024@60.0, 108.0 MHz
               1440x900@59.9, 106.5 MHz
               1280x960@60.0, 108.0 MHz
               1360x768@60.0, 85.5 MHz
               1280x800@59.8, 83.5 MHz
               1152x864@75.0, 108.0 MHz
               1280x768@59.9, 79.5 MHz
               1024x768@60.0, 65.0 MHz
               800x600@60.3, 40.0 MHz
               640x480@59.9, 25.2 MHz
               2560x1335@60.0, 241.5 MHz
[14:37:28.576] associating input device event0 with output Virtual-1 (none by udev)
[14:37:28.576] associating input device event1 with output Virtual-1 (none by udev)
[14:37:28.576] associating input device event3 with output Virtual-1 (none by udev)
[14:37:28.576] associating input device event6 with output Virtual-1 (none by udev)
[14:37:28.576] associating input device event5 with output Virtual-1 (none by udev)
[14:37:28.576] associating input device event2 with output Virtual-1 (none by udev)
[14:37:28.576] associating input device event4 with output Virtual-1 (none by udev)
[14:37:28.576] Output 'Virtual-1' enabled with head(s) Virtual-1
[14:37:28.576] Compositor capabilities:
               arbitrary surface rotation: yes
               screen capture uses y-flip: yes
               presentation clock: CLOCK_MONOTONIC, id 1
               presentation clock resolution: 0.000000001 s
[14:37:28.577] Loading module '/usr/lib/x86_64-linux-gnu/weston/desktop-shell.so'
[14:37:28.577] launching '/usr/lib/x86_64-linux-gnu/weston-keyboard'
[14:37:28.577] launching '/usr/lib/x86_64-linux-gnu/weston-desktop-shell'
[14:37:28.615] atomic: couldn't commit new state: Permission denied
[14:37:28.615] repaint-flush failed: Permission denied
could not load theme '(null)'
could not load theme '(null)'
none#: No such file or directory
[14:37:28.671] atomic: couldn't commit new state: Permission denied
[14:37:28.671] repaint-flush failed: Permission denied
[14:37:28.785] Error: /usr/lib/x86_64-linux-gnu/weston-desktop-shell apparently cannot run at all.
               Quitting...[14:37:28.785] background surface gone
[14:37:28.786] output for input device event0 removed
[14:37:28.786] output for input device event1 removed
[14:37:28.786] output for input device event3 removed
[14:37:28.786] output for input device event6 removed
[14:37:28.786] output for input device event5 removed
[14:37:28.787] output for input device event2 removed
[14:37:28.787] output for input device event4 removed
[14:37:28.787] event0  - Power Button: device removed
[14:37:28.787] event1  - Sleep Button: device removed
[14:37:28.787] event3  - Video Bus: device removed
[14:37:28.787] event6  - VirtualBox mouse integration: device removed
[14:37:28.787] event5  - VirtualBox USB Tablet: device removed
[14:37:28.787] event2  - AT Translated Set 2 keyboard: device removed
[14:37:28.787] event4  - ImExPS/2 Generic Explorer Mouse: device removed
failed to restore keyboard mode: Invalid argument
failed to set KD_TEXT mode on tty: Invalid argument

** (cog:160): WARNING **: 14:37:33.468: Platform setup failed: Could not open Wayland display

** (cog:160): CRITICAL **: 14:37:33.468: WebKitWebViewBackend* webkit_web_view_backend_new(wpe_view_backend*, GDestroyNotify, gpointer): assertion 'backend' failed

** (cog:160): ERROR **: 14:37:33.468: Could not instantiate any WPE backend.
Trace/breakpoint trap (core dumped)

我在这里想念什么?

4

0 回答 0