AR# 72363

|

2019.x Zynq UltraScale+ MPSoC: Linux boot throws fatal errors with libmali and X11 enabled in PetaLinux or Yocto images

描述

In the 2019.1 release, using Yocto or PetaLinux build images for Zynq UltraScale+ devices with libmali and an X11 windowing system returns fatal errors.

Starting Xserver
Starting Dropbear SSH server:
Generating 2048 bit rsa key, this may take a while...

X.Org X Server 1.20.1
X Protocol Version 11, Revision 0
Build Operating System: Linux 3.10.0-327.el7.x86_64 x86_64
Current Operating System: Linux xilinx-zcu102-2019_1 4.19.0-xilinx-v2019.1 #1 SMP Wed May 15 15:45:18 UTC 2019 aarch64
Kernel command line: earlycon console=ttyPS0,115200 clk_ignore_unused
Build Date: 14 May 2019  12:59:38AM

Current version of pixman: 0.34.0
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Wed May 15 17:38:56 2019
(==) Using config file: "/etc/X11/xorg.conf"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Unsupported high keycode 372 for name <I372> ignored
>                   X11 cannot support keycodes above 255.
>                   This warning only shows for the first high keycode.
Errors from xkbcomp are not fatal to the X server
D-BUS per-session daemon address is: unix:abstract=/tmp/dbus-9zk2SMLkze,guid=38cff74960d17433c3bef7ad5cdc4eb0
/etc/X11/Xsession.d/90XWindowManager.sh: line 6: /usr/bin/x-window-manager: No such file or directory
xinit: connection to X server lost

waiting for X server to shut down Xorg: ../../xorg-server-1.20.1/include/privates.h:121: dixGetPrivateAddr: Assertion `key->initialized' failed.
(EE)
(EE) Backtrace:
(EE) 0: /usr/bin/Xorg (xorg_backtrace+0x5c) [0x555cbcfe3c]
(EE) 1: /usr/bin/Xorg (0x555ca44000+0x18fc18) [0x555cbd3c18]
(EE) 2: linux-vdso.so.1 (__kernel_rt_sigreturn+0x0) [0x7f8f6c666c]
(EE) 3: /lib/libc.so.6 (gsignal+0x98) [0x7f8f072090]
(EE) 4: /lib/libc.so.6 (abort+0xfc) [0x7f8f060894]
(EE) 5: /lib/libc.so.6 (0x7f8f040000+0x2baa4) [0x7f8f06baa4]
(EE) 6: /lib/libc.so.6 (__assert_perror_fail+0x0) [0x7f8f06bb10]
(EE) 7: /usr/lib/xorg/modules/libexa.so (0x7f8ee97000+0x6710) [0x7f8ee9d710]
(EE) 8: /usr/lib/xorg/modules/libexa.so (0x7f8ee97000+0x6c74) [0x7f8ee9dc74]
(EE) 9: /usr/bin/Xorg (0x555ca44000+0x11bfb8) [0x555cb5ffb8]
(EE) 10: /usr/lib/xorg/modules/drivers/armsoc_drv.so (0x7f8eebe000+0xb284) [0x7f8eec9284]
(EE) 11: /usr/bin/Xorg (0x555ca44000+0xe12b0) [0x555cb252b0]
(EE) 12: /usr/bin/Xorg (0x555ca44000+0x115c7c) [0x555cb59c7c]
(EE) 13: /usr/bin/Xorg (0x555ca44000+0x61d64) [0x555caa5d64]
(EE) 14: /lib/libc.so.6 (__libc_start_main+0xe4) [0x7f8f060ce4]
(EE) 15: /usr/bin/Xorg (0x555ca44000+0x4b890) [0x555ca8f890]
(EE)
(EE)
Fatal server error:
(EE) Caught signal 6 (Aborted). Server aborting
(EE)
(EE)
Please consult the The X.Org Foundation support
         at http://wiki.x.org
 for help.
(EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
(EE)
(EE) Server terminated with error (1). Closing log file.

解决方案

It is advised to use a window manager such as matchbox if you need to use X11 as a backend. 

It is possible to continue to use Xserver without a window manager if you wish to do so.

glibc has been upgraded in the Yocto Thud release, and sends an abort signal to xserver during the cleanup process which prints the backtrace log on termination. 

If you wish to avoid those prints, you can apply the patch to xserver-xorg as a work-around.

PetaLinux:

1) Create an xorg-xserver directory in <plnx-proj-root>/project-spec/meta-user/recipes-graphics

$ mkdir -p <plnx-proj-root>/project-spec/meta-user/recipes-graphics/xorg-xserver/xserver-xorg

2) Copy the attached patch to the above created directory

$ cp 0001-include-privates.h-Exit-if-key-is-not-initialized.patch <plnx-proj-root>/project-spec/meta-user/recipes-graphics/xorg-xserver/xserver-xorg

3) Create an xserver-xorg_%.bbappend file and add the content below:

$ vim <plnx-proj-root>/project-spec/meta-user/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend
# xserver-xorg_%.bbappend content
SRC_URI += "file://0001-include-privates.h-Exit-if-key-is-not-initialized.patch"

FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"


4) Clean the sstate cache for the xorg-xserver recipe:

$ petalinux-build -c xorg-xserver -x cleansstate

5) Rebuild the rootfs:

$ petalinux-build

Yocto:


1) Create an xorg-xserver directory in meta-petalinux/recipes-graphics directory.

If this directory exists, then skip this step.

$ mkdir -p meta-petalinux/recipes-graphics/xorg-xserver/xserver-xorg

2) Copy the attached patch to the above created directory.

$ cp 0001-include-privates.h-Exit-if-key-is-not-initialized.patch meta-petalinux/recipes-graphics/xorg-xserver/xserver-xorg

3) Create an xserver-xorg_%.bbappend file and add the below content

$ vim meta-petalinux/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend
# xserver-xorg_%.bbappend content
SRC_URI += "file://0001-include-privates.h-Exit-if-key-is-not-initialized.patch"

FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"


4) Clean the sstate cache for the xorg-xserver recipe:

$ bitbake xorg-xserver -c cleansstate

5) Rebuild the rootfs:

$ bitbake petalinux-image-minimal

Note: You will observe the warnings below with X11. 

This is just a warning no functional changes, and can be safely ignored:


The XKEYBOARD keymap compiler (xkbcomp) reports:

> Warning:          Unsupported high keycode 372 for name <I372> ignored
>                   X11 cannot support keycodes above 255.
>                   This warning only shows for the first high keycode.
Errors from xkbcomp are not fatal to the X server

附件

文件名 文件大小 File Type
xorg-xserver.zip 1 KB ZIP
AR# 72363
日期 05/29/2019
状态 Active
Type 综合文章
器件
Tools
Boards & Kits
People Also Viewed