This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] J722SXH01EVM:如何启用 Xorg 或 Wayland 等 GUI 服务器

Guru**** 2465890 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1474961/j722sxh01evm-how-to-enable-gui-server-like-xorg-or-wayland

器件型号:J722SXH01EVM

工具与软件:

1) 1)我使用   TI-SDK https://dr-download.ti.com/software-development/software-development-kit-sdk/MD-R9W8pVWsOt/10.01.00.04/ti-processor-sdk-linux-adas-j722s-evm-10_01_00_04-Linux-x86-Install.bin

如何  启用 Xorg 或 Wayland 等 GUI 服务器?  

2)一些观察,如:

  root@j722s-evm:/usr/share/examples/gui/analogueclock ./analogeclock


  qt.qpa.plugin:找不到 Qt 平台插件"xcb. " in "[7573.756070]  audit:type=1701 audit (1728496657.587:90):auid=4294967295 uid=0 gid=0 ses=4294967295 subj=kernel pid=1472 comm="analogeclock"      EXE="/usr/share/examples/gui/analogueclock/analogueclock sig = 6 res=1

由于无法初始化任何 Qt 平台插件、此应用程序无法启动。  重新安装应用程序可能会修复以下问题[7573.784978]审核:type=1334审核(1728496657.615:91):prog-id=47 op=load
问题。

可用的平台插件包括:eglfs、linuxfb、min[7573 .797252]审核:type=1334审核(1728496657.627:92):prog-id=48 op=load
imal、minimalegl、offscreen、VNC、wayland-EGL、 运地。

[7573.809552] audit : type=1334 audit (1728496657.639:93): prog-id=49 op=load
已中止(已转储内核)
root@j722s-evm:/usr/share/examples/gui/analogueclock #[ 7574.202782]审核:type=1334审核(1728496658.035:94):prog-id=49 op=unload
[7574.209783] audit:type=1334 audit (1728496658.035:95):prog-id=48 op=unload
[7574.216790] audit:type=1334 audit (1728496658.035:96):prog-id=47 op=unload

root@j722s-evm:/usr/share/examples/gui/analogueclock echo $xdg_session_type

TTY

root@j722s-evm:/usr/share/examples/gui/analogueclock  回显$Desktop_Session

root@j722s-evm:/usr/share/examples/gui/analogueclock

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Anurag:

    如果未显示、则默认情况下、ADAS 图像通过器件树叠加层在 Linux 中禁用显示。 您是否可以检查引导分区中的 uEnv.txt 文件并注释掉叠加层?

    如果显示正在出现、但问题是 Weston/wayland 桌面未自动出现、则可以参考此文档以手动启动 Weston: https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-j722s/10_01_00_04/exports/docs/linux/Foundational_Components Graphics/Common/Weston.html

    此致、

    Takuma

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    1) 1) uEnv.txt 文件  

    #此 uEnv.txt 文件可以包含您所需的其他环境设置
    #想要在引导时设置 U-Boot。 这可以是简单的变量
    #作为 serverip 或自定义变量。 该文件的格式为:
    # variable=值
    #注:此文件将在 bootcmd 运行和后进行评估
    # bootcmd 必须设置为加载此文件(如果存在)
    #默认所有较新的 U-Boot 映像。 这也意味着其中一些
    #自此文件无法更改 bootdelay 等变量
    #它在 bootcmd 运行之前不会被评估。

    #根据 board_name 更新 Linux 主机名
    # SK 还需要额外的 dtbo 来引导。 根据 board_name 将其添加到 name_overlays
    uenvcmd=if test "$board_name"="am67-sk";then;setenv args_all $args_all systemd.hostname=am67a-sk;fi.

    #设置正确的 U-Boot 环境变量
    dorprocboot=1
    name_overlages=ti/k3-j722s-vision-apps.dtbo

    2) 2)我尝试了以下步骤来启用 Waylon:  

     a)

    root@j722s-evm:/usr/share/examples/gui/analogueclock
    root@j722s-evm:/usr/share/examples/gui/analogueclock ls /dev/dri/card
    /dev/dri/card0


      b)

    root@j722s-evm:/usr/share/examples/gui/analogueclock weston --drm-device=card0
    日期:2024年10月09日 UTC
    [15:58:38.669] Weston 13.0.1.
    wayland.freedesktop.org
    错误报告至: gitlab.freedesktop.org/.../
    构建:13.0.1
    [15:58:38.670]命令行:weston --drm-device=card0
    [15:58:38.670]操作系统:Linux、6.0.44-ti-01478-g541c20281af7-dirty、#1 SMP 抢占 Thu Nov 14 19:20:24 UTC 2024、AArch64
    [15:58:38.670]飞行记录仪:已启用
    [15:58:38.670]使用配置文件/etc/xdg/weston/weston.ini
    [15:58:38.671]输出重绘窗口最大为7 ms。
    [15:58:38.672]正在加载模块"/usr/lib/libweston-13/wayland-backend.so
    [15:58:38.735]错误:无法连接到父 Wayland compositor:没有这样的文件或目录
    显示选项:(无)、WAYLAND_DISPLAY=/run/wayland-0
    [15:58:38.736]致命:无法创建 compositor 后端
    root@j722s-evm:/usr/share/examples/gui/analogueclock

    C)  、并添加了以下行  

    [serivce]
     ExecStart=/usr/bin/weston --modules=systemd-notife.so --drm-device=card0 

    到 Weston

     root@j722s-evm:/usr/share/examples/gui/analogueclock systemctl 编辑 Weston


    [892.596143] kauditd_printk_skb:抑制20次回调
    [892.596157] audit : type=1334 audit (1728490271.973:64 ): prog-id=38 op=load
    [892.608276]审核: type=1334审核(1728490271.973:65): prog-id=24 op=unload
    [892.615274]审核: type=1334审核(1728490271.985:66 ): prog-id=39 op=load
    [892.622086]审核: type=1334审核(1728490271.985:67): prog-id=35 op=unload
    [892.629097]审核:类型=1334审核(1728490271.993:68): PROG-id=40 op=load
    [892.635926] audit : type=1334 audit (1728490271.997:69): prog-id=41 op=load
    [892.642746]审核: type=1334审核(1728490271.997:70): prog-id=36 op=unload
    [892.64973] audit : type=1334 audit (1728490271.997:71): prog-id=37 op=unload
    [892.656743]审核: type=1334审核(1728490272.005:72 ): prog-id=42 op=load
    [892.663558] audit: type=1334 audit(1728490272.005:73 ): prog-id=23 op=unload
    root@j722s-evm:/usr/share/examples/gui/analogueclock
    root@j722s-evm:/usr/share/examples/gui/analogueclock
    root@j722s-evm:/usr/share/examples/gui/analogueclock

    d)  CAT /etc/profile.d/weston-socket.sh

    #!/bin/sh

    #设置 Weston 变量以与全局 Weston 套接字一起使用
    global_socket="/run/wayland-0 "
    如果[-e "$global_socket"];则
    weston_group=$(stat -c "%G""$GLOBAL_SOCKE")
    如果["$(id -u)"="0"];则
    导出 WAYLAND 显示="$GLOBAL_SOCKET"
    设计
    中的案例"$(组"$USER")"
    *"$Weston_group"*)
    导出 WAYLAND 显示="$GLOBAL_SOCKET"
    ;;;
    *)
    ;;;
    ESAC
    和数据
    取消设置 Weston_group
    和数据
    取消设置 GLOBAL_SOCKET
    root@j722s-evm:/usr/share/examples/gui/analogueclock  

    使用 W ü Systemd 启动 Weston

    e)   root@j722s-evm:/usr/share/examples/gui/analogueclock systemctl 启动 Weston

    [1986.026099] kauditd_printk_skb:抑制了20次回调
    [1986.026112]审核: type=1006审核(1728491365.401:94 ): pid=1333 uid=0 subj=kernel old-auid=4294967295 auid=1000 tty=(none) old-ses=4294967295 ses=10 res=1
    [ 1986.045315]审核:type=1300审核(1728491365.401:94):arch=c00000b7 syscall=64成功=yes exit=4 a0=8 a1=ffd2aefb28 a2=4 a3=1项=0 pid=1 null =1333 auid=1000 uid=0 gid=0 euid=0 suid=0 suid=0 suid=0sufd=4 aefb28 a2aefb28 a2=4 aib28 s=4 aid=d=4 sessesd=0 (subid=0)/usr/lib/systemd/systemd-executor
    [1986.073347] audit : type=1327 audit (1728491365.401:94): procurite="( systemd)"
    [1986.744594]审核: type=1006审核(1728491366.121:95): pid=1330 uid=0 subj=kernel old-auid=4294967295 auid=1000 tty=tty7 old-ses=4294967295 ses=11 res=1
    [ 1986.758384]审核:type=1300审核(1728491366.121:95):arch=c00000b7 syscall=64成功=yes exit=4 a0=8 a1=ffd7da7838 a2=4 a3=1项=0 pid=1 pid=1330 auid=1000 uid=0 gid=0 euid=0 suid=0 suid=0 suid=0 suid=0 sucid=0 /usr/lib/systemd/systemd-executor 上 d=fsuid=0"j=j=0"
    [1986.786194] audit: type=1327 audit(1728491366.121:95): proctitle="(韦斯顿)"
    由于控制进程因错误代码而退出、weston.service 的作业失败。
    有关详细信息、请参阅"systemctl status weston.service"和"journalctl -xeu weston.service"。

    F)  root@j722s-evm:/usr/share/examples/gui/analogueclock  systemctl 状态 weston.service weston.socket

    X weston.service - Weston,一个 Wayland compositor,作为一个系统服务
    已加载:已加载(/usr/lib/systemd/system/weston.service;已启用;预设:已启用)
    活动:失败(结果:退出代码)、自 Wed 2024年10月09日16:29:26 UTC;2分钟前
    TriggeredBy:* weston.socket
    文档:man:weston (1)
    男士:weston.ini(5)
    wayland.freedesktop.org/
    过程:1330 ExecStart=/usr/bin/weston --modules=systemd-notife.so (code=exited, status=1/failure)
    主 PID:1330 (代码=已退出、状态= 1 /故障)
    CPU:34ms

    10月09 16:29:25 j722s-evm systemd[1]:启动 Wayland 合成器 Weston、作为系统服务...
    10月09 16:29:25 j722s-EVM (Weston)[1330]:PAM_UNIX (Weston-autologin:Session):Weston (uid=0)为用户 Weston (uid=1000)打开会话
    10月09 16:29:26 j722s-evm systemd[1]:weston.service:主过程已退出、代码=已退出、状态= 1/故障
    10月09 16:29:26 j722s-evm systemd[1]:weston.service:失败并显示结果"exit-code"。
    10月09 16:29:26 j722s-evm systemd[1]:无法将 Wayland 合成器 Weston 作为系统服务启动。

    * weston.socket - weston socket
    已加载:已加载(/usr/lib/systemd/system/weston.socket;已启用;预设:已启用)
    主动:主动(正在收听)自 Wed 2024年10月09日16:29:25 UTC;2分钟33秒前
    触发器:* weston.service
    Listen:/run/wayland-0 (流)
    任务:0 (限制:6776)
    存储器:0B (峰值:256.0K)
    CPU:4ms
    cgroup:/system.slice/weston.socket

    10月09 16:29:25 j722s-evm systemd[1]:正在启动 Weston 插槽...
    10月09 16:29:25 j722s-evm systemd[1]:侦听 Weston 插槽。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Anurag:

    首先、请编辑 uEnv.txt 文件、并注释掉"name_overlages=ti/k3-j722s-vision-apps.dtbo"

    其次、请在 uEnv.txt 中注释掉覆盖文件后、从"dmesg"命令共享完整的启动日志。

    此致、

    Takuma

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    决策  name_overlages=ti/k3-j722s-vision-apps.dtbo 注释不起作用  

    但在两个通信后->   

                  dorprocboot=1
                  name_overlages=ti/k3-j722s-vision-apps.dtbo  

    某些 Qt GUI 正在成功运行

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Anurag:

    嗯... 奇怪的是, dorprocboot 也需要被注释掉。 这应该是 U-Boot 环境变量、用于控制远程处理器固件加载、从而影响 C7x 和 R5F 等因素。 如果需要的话、那么我认为正在发生的情况是加载到 R5F 的固件正在影响 A72上运行的 Linux 中的显示流水线初始化。

    但是、很高兴听到您能够运行 QT GUI!

    我可以假设这个线程是关闭的吗? 如果弹出新问题、请随时创建新主题。

    此致、

    Takuma