Sample Header Ad - 728x90

How to mirror serial output ttyS0 to the HDMI /dev/dri/card0?

2 votes
1 answer
79 views
When I starting my single board computer, I can face the output from the UART, or even called /dev/ttyS0. I want to mirror everything to my HDMI port which is placed on /dev/dri/card0. How can I achieve that? Here I'm running the command drm_info. I'm using Ubuntu 24.04 LTS. >> drm_info [?2004l Node: /dev/dri/card0 ├───Driver: stm (STMicroelectronics SoC DRM) version 1.0.0 (20170330) │ ├───DRM_CLIENT_CAP_STEREO_3D supported │ ├───DRM_CLIENT_CAP_UNIVERSAL_PLANES supported │ ├───DRM_CLIENT_CAP_ATOMIC supported │ ├───DRM_CLIENT_CAP_ASPECT_RATIO supported │ ├───DRM_CLIENT_CAP_WRITEBACK_CONNECTORS supported │ ├───DRM_CAP_DUMB_BUFFER = 1 │ ├───DRM_CAP_VBLANK_HIGH_CRTC = 1 │ ├───DRM_CAP_DUMB_PREFERRED_DEPTH = 0 │ ├───DRM_CAP_DUMB_PREFER_SHADOW = 0 │ ├───DRM_CAP_PRIME = 3 │ ├───DRM_CAP_TIMESTAMP_MONOTONIC = 1 │ ├───DRM_CAP_ASYNC_PAGE_FLIP = 0 │ ├───DRM_CAP_CURSOR_WIDTH = 64 │ ├───DRM_CAP_CURSOR_HEIGHT = 64 │ ├───DRM_CAP_ADDFB2_MODIFIERS = 1 │ ├───DRM_CAP_PAGE_FLIP_TARGET = 0 │ ├───DRM_CAP_CRTC_IN_VBLANK_EVENT = 1 │ ├───DRM_CAP_SYNCOBJ = 0 │ └───DRM_CAP_SYNCOBJ_TIMELINE = 0 ├───Device: platform st,stm32-ltdc │ └───Available nodes: primary ├───Framebuffer size │ ├───Width: [0, 2048] │ └───Height: [0, 2048] ├───Connectors │ └───Connector 0 │ ├───Object ID: 32 │ ├───Type: HDMI-A │ ├───Status: connected │ ├───Physical size: 1210x680 mm │ ├───Subpixel: unknown │ ├───Encoders: {0} │ ├───Modes │ │ ├───1920x1080@30.00 driver phsync pvsync 16:9 │ │ ├───1920x1080@25.00 driver phsync pvsync 16:9 │ │ ├───1920x1080@24.00 driver phsync pvsync 16:9 │ │ ├───1280x720@60.00 driver phsync pvsync │ │ ├───1280x720@60.00 driver phsync pvsync 16:9 │ │ ├───1280x720@50.00 driver phsync pvsync 16:9 │ │ ├───720x576@50.00 driver nhsync nvsync 16:9 │ │ ├───720x576@50.00 driver nhsync nvsync 4:3 │ │ ├───720x480@59.94 driver nhsync nvsync 16:9 │ │ └───720x480@59.94 driver nhsync nvsync 4:3 │ └───Properties │ ├───"EDID" (immutable): blob = 44 │ ├───"DPMS": enum {On, Standby, Suspend, Off} = On │ ├───"link-status": enum {Good, Bad} = Good │ ├───"non-desktop" (immutable): range [0, 1] = 0 │ ├───"TILE" (immutable): blob = 0 │ ├───"CRTC_ID" (atomic): object CRTC = 0 │ └───"dithering": enum {Off, On} = Off ├───Encoders │ └───Encoder 0 │ ├───Object ID: 31 │ ├───Type: DPI │ ├───CRTCS: {0} │ └───Clones: {0} ├───CRTCs │ └───CRTC 0 │ ├───Object ID: 38 │ ├───Legacy info │ │ └───Gamma size: 256 │ └───Properties │ ├───"ACTIVE" (atomic): range [0, 1] = 0 │ ├───"MODE_ID" (atomic): blob = 0 │ ├───"OUT_FENCE_PTR" (atomic): range [0, UINT64_MAX] = 0 │ ├───"VRR_ENABLED": range [0, 1] = 0 │ ├───"GAMMA_LUT": blob = 0 │ └───"GAMMA_LUT_SIZE" (immutable): range [0, UINT32_MAX] = 256 └───Planes ├───Plane 0 │ ├───Object ID: 34 │ ├───CRTCs: {0} │ ├───Legacy info │ │ ├───FB ID: 0 │ │ └───Formats: │ │ ├───ARGB8888 (0x34325241) │ │ ├───XRGB8888 (0x34325258) │ │ ├───RGB888 (0x34324752) │ │ ├───RGB565 (0x36314752) │ │ ├───ARGB1555 (0x35315241) │ │ ├───XRGB1555 (0x35315258) │ │ ├───ARGB4444 (0x32315241) │ │ ├───XRGB4444 (0x32315258) │ │ └───C8 (0x20203843) │ └───Properties │ ├───"type" (immutable): enum {Overlay, Primary, Cursor} = Primary │ ├───"FB_ID" (atomic): object framebuffer = 0 │ ├───"IN_FENCE_FD" (atomic): srange [-1, INT32_MAX] = -1 │ ├───"CRTC_ID" (atomic): object CRTC = 0 │ ├───"CRTC_X" (atomic): srange [INT32_MIN, INT32_MAX] = 0 │ ├───"CRTC_Y" (atomic): srange [INT32_MIN, INT32_MAX] = 0 │ ├───"CRTC_W" (atomic): range [0, INT32_MAX] = 0 │ ├───"CRTC_H" (atomic): range [0, INT32_MAX] = 0 │ ├───"SRC_X" (atomic): range [0, UINT32_MAX] = 0 │ ├───"SRC_Y" (atomic): range [0, UINT32_MAX] = 0 │ ├───"SRC_W" (atomic): range [0, UINT32_MAX] = 0 │ ├───"SRC_H" (atomic): range [0, UINT32_MAX] = 0 │ ├───"IN_FORMATS" (immutable): blob = 35 │ │ └───DRM_FORMAT_MOD_LINEAR (0x0) │ │ ├───ARGB8888 (0x34325241) │ │ ├───XRGB8888 (0x34325258) │ │ ├───RGB888 (0x34324752) │ │ ├───RGB565 (0x36314752) │ │ ├───ARGB1555 (0x35315241) │ │ ├───XRGB1555 (0x35315258) │ │ ├───ARGB4444 (0x32315241) │ │ ├───XRGB4444 (0x32315258) │ │ └───C8 (0x20203843) │ ├───"alpha": range [0, UINT16_MAX] = 65535 │ └───"zpos" (immutable): range [0, 0] = 0 └───Plane 1 ├───Object ID: 39 ├───CRTCs: {0} ├───Legacy info │ ├───FB ID: 0 │ └───Formats: │ ├───ARGB8888 (0x34325241) │ ├───RGB888 (0x34324752) │ ├───RGB565 (0x36314752) │ ├───ARGB1555 (0x35315241) │ ├───ARGB4444 (0x32315241) │ └───C8 (0x20203843) └───Properties ├───"type" (immutable): enum {Overlay, Primary, Cursor} = Overlay ├───"FB_ID" (atomic): object framebuffer = 0 ├───"IN_FENCE_FD" (atomic): srange [-1, INT32_MAX] = -1 ├───"CRTC_ID" (atomic): object CRTC = 0 ├───"CRTC_X" (atomic): srange [INT32_MIN, INT32_MAX] = 0 ├───"CRTC_Y" (atomic): srange [INT32_MIN, INT32_MAX] = 0 ├───"CRTC_W" (atomic): range [0, INT32_MAX] = 0 ├───"CRTC_H" (atomic): range [0, INT32_MAX] = 0 ├───"SRC_X" (atomic): range [0, UINT32_MAX] = 0 ├───"SRC_Y" (atomic): range [0, UINT32_MAX] = 0 ├───"SRC_W" (atomic): range [0, UINT32_MAX] = 0 ├───"SRC_H" (atomic): range [0, UINT32_MAX] = 0 ├───"IN_FORMATS" (immutable): blob = 40 │ └───DRM_FORMAT_MOD_LINEAR (0x0) │ ├───ARGB8888 (0x34325241) │ ├───RGB888 (0x34324752) │ ├───RGB565 (0x36314752) │ ├───ARGB1555 (0x35315241) │ ├───ARGB4444 (0x32315241) │ └───C8 (0x20203843) ├───"alpha": range [0, UINT16_MAX] = 65535 └───"zpos" (immutable): range [1, 1] = 1 [?2004hroot@stm32-os:~#
Asked by euraad (219 rep)
Sep 30, 2024, 09:32 PM
Last activity: Oct 1, 2024, 05:46 AM