[Buildroot] Raspberrypi4: Unable to run Weston?
Rostislav Lisovy
rostislav.lisovy at r7-engineering.com
Mon Oct 28 20:34:54 UTC 2019
Hi everyone,
I am building system for my RPi4 using Buildroot (master branch).
I would like to run simple libgtk3 (libwebkitgtk) application with
graphical output shown on a display connected through HDMI.
I did following in the configuration (based on raspberrypi4_defconfig):
* glibc
* systemd
* Mesa3D Gallium VC4
* *not using* rpi-userland
* Weston & Wayland
Exact content of my custom defconfig (created using `make
savedefconfig`) is following (interesting/important lines start with
exclamation mark):
BR2_arm=y
BR2_cortex_a72=y
BR2_ARM_FPU_NEON_VFPV4=y
BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_INIT_SYSTEMD=y
BR2_TARGET_GENERIC_ROOT_PASSWD="aaa"
BR2_TARGET_GENERIC_GETTY_PORT="ttyS0"
BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200=y
BR2_SYSTEM_DHCP="eth0"
BR2_ROOTFS_POST_BUILD_SCRIPT="board/raspberrypi4/post-build.sh"
BR2_ROOTFS_POST_IMAGE_SCRIPT="board/raspberrypi4/post-image.sh"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,raspberrypi-kernel_1.20190819-1)/linux-raspberrypi-kernel_1.20190819-1.tar.gz"
BR2_LINUX_KERNEL_DEFCONFIG="bcm2711"
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2711-rpi-4-b"
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
BR2_PACKAGE_KMSCUBE=y
BR2_PACKAGE_MESA3D_DEMOS=y
BR2_PACKAGE_MESA3D=y
BR2_PACKAGE_MESA3D_LLVM=y
BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_KMSRO=y
! BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VC4=y
BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST=y
BR2_PACKAGE_MESA3D_OPENGL_ES=y
! BR2_PACKAGE_WESTON=y
! BR2_PACKAGE_WESTON_DRM=y
BR2_PACKAGE_WESTON_FBDEV=y
BR2_PACKAGE_WESTON_DEMO_CLIENTS=y
! BR2_PACKAGE_RPI_FIRMWARE=y
! BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4=y
BR2_PACKAGE_OPENSSL=y
BR2_PACKAGE_LIBDRM_INSTALL_TESTS=y
BR2_PACKAGE_DROPBEAR=y
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
BR2_TARGET_ROOTFS_EXT2_SIZE="1G"
# BR2_TARGET_ROOTFS_TAR is not set
BR2_PACKAGE_HOST_DOSFSTOOLS=y
BR2_PACKAGE_HOST_GENIMAGE=y
BR2_PACKAGE_HOST_MTOOLS=y
My "config.txt" contains:
dtoverlay=vc4-kms-v3d
and default
gpu_mem_256=100
gpu_mem_512=100
gpu_mem_1024=100
When I power on my RPi4 (with my LG 4k display connected to HDMI) I can
definitely see some testing (?) color pattern and then kernel console
(in a decent resolution), then there is just black screen and nothing
else...
Kernel log (dmesg) contains following at its end:
[ 8.443019] rpivid-mem feb00000.hevc-decoder: rpivid-hevcmem initialised: Registers at 0xfeb00000 length 0x0000ffff
[ 8.464522] rpivid-mem feb10000.rpivid-local-intc: rpivid-intcmem initialised: Registers at 0xfeb10000 length 0x00000fff
[ 8.478300] rpivid-mem feb20000.h264-decoder: rpivid-h264mem initialised: Registers at 0xfeb20000 length 0x0000ffff
[ 8.493534] vc_sm_cma: module is from the staging directory, the quality is unknown, you have been warned.
[ 8.501060] media: Linux media interface: v0.10
[ 8.513475] bcm2835_vc_sm_cma_probe: Videocore shared memory driver
[ 8.527433] rpivid-mem feb30000.vp9-decoder: rpivid-vp9mem initialised: Registers at 0xfeb30000 length 0x0000ffff
[ 8.527966] [vc_sm_connected_init]: start
[ 8.562646] [vc_sm_connected_init]: installed successfully
[ 8.563267] videodev: Linux video capture interface: v2.00
[ 8.712772] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[ 9.032843] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[ 9.039723] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[ 9.048565] cfg80211: failed to load regulatory.db
[ 9.055761] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned.
[ 9.055765] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned.
[ 9.106096] [drm] Initialized v3d 1.0.0 20180419 for fec00000.v3d on minor 0
[ 9.127611] bcm2835_v4l2: module is from the staging directory, the quality is unknown, you have been warned.
[ 9.133626] brcmfmac: F1 signature read @0x18000000=0x15264345
[ 9.138893] bcm2835_codec: module is from the staging directory, the quality is unknown, you have been warned.
[ 9.157000] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43455-sdio for chip BCM4345/6
[ 9.166491] bcm2835-codec bcm2835-codec: Device registered as /dev/video10
[ 9.173639] bcm2835-codec bcm2835-codec: Loaded V4L2 decode
[ 9.173945] brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43455-sdio.bin failed with error -2
[ 9.176065] bcmgenet: Skipping UMAC reset
[ 9.195449] usbcore: registered new interface driver brcmfmac
[ 9.197317] bcm2835-codec bcm2835-codec: Device registered as /dev/video11
[ 9.209475] bcm2835-codec bcm2835-codec: Loaded V4L2 encode
[ 9.218436] bcm2835-codec bcm2835-codec: Device registered as /dev/video12
[ 9.225648] bcm2835-codec bcm2835-codec: Loaded V4L2 isp
[ 9.272020] bcmgenet fd580000.genet: configuring instance for external RGMII (no delay)
[ 9.280828] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 9.352593] vc4_hdmi fe902000.hdmi: ASoC: Failed to create component debugfs directory
[ 9.362087] vc4_hdmi fe902000.hdmi: vc4-hdmi-hifi <-> fe902000.hdmi mapping ok
[ 9.370166] vc4-drm soc:gpu: bound fe902000.hdmi (ops vc4_hdmi_ops [vc4])
[ 9.377413] vc4-drm soc:gpu: bound fe806000.vec (ops vc4_vec_ops [vc4])
[ 9.384399] vc4-drm soc:gpu: bound fe004000.txp (ops vc4_txp_ops [vc4])
[ 9.391219] vc4-drm soc:gpu: bound fe400000.hvs (ops vc4_hvs_ops [vc4])
[ 9.398416] vc4-drm soc:gpu: bound fe206000.pixelvalve (ops vc4_crtc_ops [vc4])
[ 9.406845] vc4-drm soc:gpu: bound fe207000.pixelvalve (ops vc4_crtc_ops [vc4])
[ 9.414938] vc4-drm soc:gpu: bound fe807000.pixelvalve (ops vc4_crtc_ops [vc4])
[ 9.423624] [drm] Initialized vc4 0.0.0 20140616 for soc:gpu on minor 1
[ 9.430791] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 9.438240] [drm] Driver supports precise vblank timestamp query.
[ 10.212853] brcmfmac: brcmf_sdio_htclk: HT Avail timeout (1000000): clkctl 0x50
[ 10.311665] bcmgenet fd580000.genet eth0: Link is Down
[ 10.471468] i2c-bcm2835 fe805000.i2c: i2c transfer timed out
[ 11.511476] i2c-bcm2835 fe805000.i2c: i2c transfer timed out
[ 12.551453] i2c-bcm2835 fe805000.i2c: i2c transfer timed out
[ 13.591464] i2c-bcm2835 fe805000.i2c: i2c transfer timed out
[ 14.471688] bcmgenet fd580000.genet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
[ 14.479770] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 14.631460] i2c-bcm2835 fe805000.i2c: i2c transfer timed out
[ 24.791538] [drm:drm_atomic_helper_wait_for_flip_done [drm_kms_helper]] *ERROR* [CRTC:116:crtc-2] flip_done timed out
[ 24.791647] Console: switching to colour frame buffer device 90x30
[ 35.031547] [drm:drm_atomic_helper_wait_for_dependencies [drm_kms_helper]] *ERROR* [CRTC:116:crtc-2] flip_done timed out
[ 45.271542] [drm:drm_atomic_helper_wait_for_dependencies [drm_kms_helper]] [ 853.517889] i2c-bcm2835 fe805000.i2c: i2c transfer timed out
*ERROR* [CONNECTOR:44:Composite-1] flip_done timed out
[ 55.511538] [drm:drm_atomic_helper_wait_for_dependencies [drm_kms_helper]] *ERROR* [PLANE:113:plane-20] flip_done timed out
[ 65.751603] [drm:drm_atomic_helper_wait_for_flip_done [drm_kms_helper]] *ERROR* [CRTC:116:crtc-2] flip_done timed out
[ 65.842171] vc4-drm soc:gpu: fb0: DRM emulated frame buffer device
[ 67.991534] i2c-bcm2835 fe805000.i2c: i2c transfer timed out
[ 69.031556] i2c-bcm2835 fe805000.i2c: i2c transfer timed out
[ 70.071556] i2c-bcm2835 fe805000.i2c: i2c transfer timed out
[ 71.111566] i2c-bcm2835 fe805000.i2c: i2c transfer timed out
[ 72.151559] i2c-bcm2835 fe805000.i2c: i2c transfer timed out
[ 73.191558] i2c-bcm2835 fe805000.i2c: i2c transfer timed out
[ 74.231562] i2c-bcm2835 fe805000.i2c: i2c transfer timed out
[ 75.271566] i2c-bcm2835 fe805000.i2c: i2c transfer timed out
[ 76.311569] i2c-bcm2835 fe805000.i2c: i2c transfer timed out
[ 77.351572] i2c-bcm2835 fe805000.i2c: i2c transfer timed out
[ 87.511686] [drm:drm_atomic_helper_wait_for_dependencies [drm_kms_helper]] *ERROR* [CRTC:116:crtc-2] flip_done timed out
[ 97.751695] [drm:drm_atomic_helper_wait_for_dependencies [drm_kms_helper]] *ERROR* [CONNECTOR:44:Composite-1] flip_done timed out
[ 104.826916] random: crng init done
[ 104.833185] random: 7 urandom warning(s) missed due to ratelimiting
[ 107.991704] [drm:drm_atomic_helper_wait_for_dependencies [drm_kms_helper]] *ERROR* [PLANE:113:plane-20] flip_done timed out
[ 118.231702] [drm:drm_atomic_helper_wait_for_flip_done [drm_kms_helper]] *ERROR* [CRTC:116:crtc-2] flip_done timed out
[ 129.511825] i2c-bcm2835 fe805000.i2c: i2c transfer timed out
[ 130.551854] i2c-bcm2835 fe805000.i2c: i2c transfer timed out
[ 131.591879] i2c-bcm2835 fe805000.i2c: i2c transfer timed out
[ 132.631909] i2c-bcm2835 fe805000.i2c: i2c transfer timed out
[ 133.671934] i2c-bcm2835 fe805000.i2c: i2c transfer timed out
[ 144.872175] i2c-bcm2835 fe805000.i2c: i2c transfer timed out
[ 145.912191] i2c-bcm2835 fe805000.i2c: i2c transfer timed out
[ 146.952244] i2c-bcm2835 fe805000.i2c: i2c transfer timed out
[ 147.992231] i2c-bcm2835 fe805000.i2c: i2c transfer timed out
and the "i2c-bcm2835 fe805000.i2c: i2c transfer timed out" goes on and
on... approx. 1 times per second...
When I ssh to the RPi4 and try to run Weston, following happens:
# mkdir /tmp/wayland
# chmod 0700 /tmp/wayland
# export XDG_RUNTIME_DIR=/tmp/wayland
# weston --backend=drm-backend.so --tty=2
Date: 2019-10-28 UTC
[20:19:42.911] weston 6.0.1
https://wayland.freedesktop.org
Bug reports to: https://gitlab.freedesktop.org/wayland/weston/issues/
Build: unknown (not built from git or tarball)
[20:19:42.911] Command line: weston --backend=drm-backend.so --tty=2
[20:19:42.912] OS: Linux, 4.19.66-v7l, #1 SMP Mon Oct 28 18:30:00 CET 2019, armv7l
[20:19:42.913] Starting with no config file.
[20:19:42.914] Output repaint window is 7 ms maximum.
[20:19:42.916] Loading module '/usr/lib/libweston-6/drm-backend.so'
[20:19:42.926] initializing drm backend
[20:19:42.927] logind: not running in a systemd session
[20:19:42.927] logind: cannot setup systemd-logind helper (-61), using legacy fallback
[20:20:23.860] using /dev/dri/card1
[20:20:23.860] DRM: supports universal planes
[20:20:23.860] DRM: supports atomic modesetting
[20:20:23.861] DRM: supports picture aspect ratio
[20:20:23.862] Loading module '/usr/lib/libweston-6/gl-renderer.so'
MESA-LOADER: failed to open kms_swrast (search paths /usr/lib/dri)
failed to load driver: kms_swrast
[20:20:24.664] EGL client extensions: EGL_EXT_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_KHR_debug
EGL_EXT_platform_wayland EGL_MESA_platform_gbm
EGL_EXT_platform_device
libEGL warning: did not find extension DRI2_Flush version 1
libEGL warning: did not find extension DRI_IMAGE version 1
[20:20:24.667] failed to initialize display
[20:20:24.667] EGL error state: EGL_NOT_INITIALIZED (0x3001)
[20:20:24.672] failed to initialize egl
[20:21:09.962] fatal: failed to create compositor backend
[20:21:09.962] Internal warning: debug scope 'drm-backend' has not been destroyed.
When I try to run es2gears_wayland:
# es2gears_wayland
EGLUT: failed to initialize native display
I do not necessarily require to use 3D acceleration or things like
that, framebuffer might be enough, however my understanding is that if
I want to use libgtk3 and libwebkitgtk I need to use Mesa3d/Gallium
VC4, not the proprietary(?) "rpi-userland".
To be more specific in case Mesa3D is not selected (BR2_PACKAGE_MESA3D
[=n]), I am unable to select `libgtk3`:
*** libgtk3 needs an OpenGL or an OpenGL-EGL/wayland backend ***
When I tried to use both Mesa3D and "rpi-userland" the following error
message during make appeared:
package/rpi-userland/rpi-userland.mk:64: *** Configuration error:
both "rpi-userland" and "mesa3d" are selected as providers for
virtual package "libegl". Only one provider can be selected at a
time. Please fix your configuration. Stop.
So what is going on?
Am I missing something in my configuration?
What
should I do differently to run my libgtk3+ application on RPi4?
I will appreciate your comments.
Thanks,
Rosty
More information about the buildroot
mailing list