我正在尝试在 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)
我在这里想念什么?