[ffmpeg] h264_v4l2m2m: can't configure decoder

Post Reply
Arcueid
Posts: 31
Joined: Sun Dec 17, 2017 7:27 pm
languages_spoken: english, french
ODROIDs: XU4
Has thanked: 0
Been thanked: 0
Contact:

[ffmpeg] h264_v4l2m2m: can't configure decoder

Post by Arcueid »

Hi all,

I've build latest recalbox master (buildroot) which now uses Kodi 19.4 on odroid-xu4.
Kodi crashes during video decoding.
Even if it is related to kodi, the log looks like related to ffmpeg/decoding to I guess it is more related to xu4 ?

Here is the log:

Code: Select all

2024-01-04 11:06:01.174 T:1543     INFO <general>: CDVDVideoCodecFFmpeg::Open() Using codec: V4L2 mem2mem H.264 decoder wrapper
2024-01-04 11:06:01.175 T:1543    DEBUG <general>: CDVDVideoCodecFFmpeg - open frame threaded with 12 threads
2024-01-04 11:06:01.177 T:1543    ERROR <general>: ffmpeg[0x2cce728X]: [h264_v4l2m2m] Could not find a valid device
2024-01-04 11:06:01.178 T:1543    ERROR <general>: ffmpeg[0x2cce728X]: [h264_v4l2m2m] can't configure decoder
2024-01-04 11:06:01.179 T:1543    DEBUG <general>: CDVDVideoCodecFFmpeg::Open() Unable to open codec
Do you have any information on this issue ?
I've found this old topic, but I'm not sure I have the skills to fix it alone:
viewtopic.php?f=177&t=44051&sid=06831eb ... f27e1511d5

Here are some software versions:

Code: Select all

# uname -a
Linux RECALBOX 6.1.49 #1 SMP PREEMPT Tue Jan  2 05:30:56 CET 2024 armv7l GNU/Linux
# ffmpeg --version
ffmpeg version 4.4.4 Copyright (c) 2000-2023 the FFmpeg developers
# kodi --version
19.5 (19.5.0) Git:20240102-nogitfound Media Center Kodi
BR,
Alex.

mdrjr
Site Admin
Posts: 12093
Joined: Fri Feb 22, 2013 11:34 pm
languages_spoken: english, portuguese
ODROIDs: -
Location: Brazil
Has thanked: 8 times
Been thanked: 151 times
Contact:

Re: [ffmpeg] h264_v4l2m2m: can't configure decoder

Post by mdrjr »

Post the output of the following commands:

dmesg | grep -i mfc

and

ls /dev/video*

Arcueid
Posts: 31
Joined: Sun Dec 17, 2017 7:27 pm
languages_spoken: english, french
ODROIDs: XU4
Has thanked: 0
Been thanked: 0
Contact:

Re: [ffmpeg] h264_v4l2m2m: can't configure decoder

Post by Arcueid »

Sure, here it is:

Code: Select all

# dmesg | grep -i mfc
[    3.294748] exynos-bus: new bus device registered: soc:bus-mfc ( 83250 KHz ~ 333000 KHz)
# ls /dev/video*
ls: /dev/video*: No such file or directory

mdrjr
Site Admin
Posts: 12093
Joined: Fri Feb 22, 2013 11:34 pm
languages_spoken: english, portuguese
ODROIDs: -
Location: Brazil
Has thanked: 8 times
Been thanked: 151 times
Contact:

Re: [ffmpeg] h264_v4l2m2m: can't configure decoder

Post by mdrjr »

So there's your problem, the kernel you are using doesn't have the hardware decoder enabled.
You need to ask whoever you got this to enable the MFC and related friends so ffmpeg can find the hardware decoder.
These users thanked the author mdrjr for the post:
odroid (Fri Jan 05, 2024 9:19 am)

Arcueid
Posts: 31
Joined: Sun Dec 17, 2017 7:27 pm
languages_spoken: english, french
ODROIDs: XU4
Has thanked: 0
Been thanked: 0
Contact:

Re: [ffmpeg] h264_v4l2m2m: can't configure decoder

Post by Arcueid »

Thanks !

Arcueid
Posts: 31
Joined: Sun Dec 17, 2017 7:27 pm
languages_spoken: english, french
ODROIDs: XU4
Has thanked: 0
Been thanked: 0
Contact:

Re: [ffmpeg] h264_v4l2m2m: can't configure decoder

Post by Arcueid »

Hi,

Sorry I'm back on this topic.

If in kernel I have below config and these firmware are present it should work isn't it ?

Code: Select all

CONFIG_S5P_DEV_MFC=y
CONFIG_EXYNOS_IOMMU=y
CONFIG_ARM_DMA_USE_IOMMU=y
CONFIG_ARM_DMA_IOMMU_ALIGNMENT=8

Code: Select all

# find /lib/firmware/ -name "s5p-mfc-v*.fw"
/lib/firmware/s5p-mfc-v6-v2.fw
/lib/firmware/s5p-mfc-v6.fw
/lib/firmware/s5p-mfc-v7.fw
/lib/firmware/s5p-mfc-v8.fw
Unfortunately, I still don't find any video device.

Is there any other kernel configuration or logs to look for ?

Alex.

Arcueid
Posts: 31
Joined: Sun Dec 17, 2017 7:27 pm
languages_spoken: english, french
ODROIDs: XU4
Has thanked: 0
Been thanked: 0
Contact:

Re: [ffmpeg] h264_v4l2m2m: can't configure decoder

Post by Arcueid »

Hi,

Sorry for the bump. I'd like to fix it ;)

Alex.

mdrjr
Site Admin
Posts: 12093
Joined: Fri Feb 22, 2013 11:34 pm
languages_spoken: english, portuguese
ODROIDs: -
Location: Brazil
Has thanked: 8 times
Been thanked: 151 times
Contact:

Re: [ffmpeg] h264_v4l2m2m: can't configure decoder

Post by mdrjr »

Nope, as far as kernel this should cover it.

When you dmesg | grep -i mfc

what you get?

Arcueid
Posts: 31
Joined: Sun Dec 17, 2017 7:27 pm
languages_spoken: english, french
ODROIDs: XU4
Has thanked: 0
Been thanked: 0
Contact:

Re: [ffmpeg] h264_v4l2m2m: can't configure decoder

Post by Arcueid »

Hi, sorry for the delay.
I get this:

Code: Select all

# dmesg | grep -i mfc
[    3.349463] exynos-bus: new bus device registered: soc:bus-mfc ( 83250 KHz ~ 333000 KHz)

mdrjr
Site Admin
Posts: 12093
Joined: Fri Feb 22, 2013 11:34 pm
languages_spoken: english, portuguese
ODROIDs: -
Location: Brazil
Has thanked: 8 times
Been thanked: 151 times
Contact:

Re: [ffmpeg] h264_v4l2m2m: can't configure decoder

Post by mdrjr »

I have no idea what you are missing on the kernel config.

Here's our defconfig for kernel 6.1: https://github.com/hardkernel/linux/blo ... _defconfig
You can compare and see what you are missing.

Arcueid
Posts: 31
Joined: Sun Dec 17, 2017 7:27 pm
languages_spoken: english, french
ODROIDs: XU4
Has thanked: 0
Been thanked: 0
Contact:

Re: [ffmpeg] h264_v4l2m2m: can't configure decoder

Post by Arcueid »

Here is the diff I get between your defconfig and my board /proc/config.gz:

Code: Select all

3c3
< # Linux/arm 6.1.45 Kernel Configuration
---
> # Linux/arm 6.1.49 Kernel Configuration
5c5
< CONFIG_CC_VERSION_TEXT="arm-linux-gnueabihf-gcc (Linaro GCC 7.5-2019.12) 7.5.0"
---
> CONFIG_CC_VERSION_TEXT="arm-buildroot-linux-gnueabihf-gcc.br_real (Buildroot 2023.02.2-dirty) 11.4.0"
7c7
< CONFIG_GCC_VERSION=70500
---
> CONFIG_GCC_VERSION=110400
10c10
< CONFIG_AS_VERSION=22802
---
> CONFIG_AS_VERSION=23800
12c12
< CONFIG_LD_VERSION=22802
---
> CONFIG_LD_VERSION=23800
15a16,17
> CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
> CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y
161a164
> CONFIG_CC_NO_ARRAY_BOUNDS=y
486d488
< # CONFIG_STACKPROTECTOR_PER_TASK is not set
691,692c693
< CONFIG_GCC_PLUGINS=y
< # CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set
---
> # CONFIG_GCC_PLUGINS is not set
705c706
< # CONFIG_MODULE_COMPRESS_NONE is not set
---
> CONFIG_MODULE_COMPRESS_NONE=y
707c708
< CONFIG_MODULE_COMPRESS_XZ=y
---
> # CONFIG_MODULE_COMPRESS_XZ is not set
709d709
< # CONFIG_MODULE_DECOMPRESS is not set
1829c1829
< CONFIG_BLK_DEV_LOOP=m
---
> CONFIG_BLK_DEV_LOOP=y
4543,4546c4543
< CONFIG_LOGO=y
< CONFIG_LOGO_LINUX_MONO=y
< CONFIG_LOGO_LINUX_VGA16=y
< CONFIG_LOGO_LINUX_CLUT224=y
---
> # CONFIG_LOGO is not set
6767c6764
< CONFIG_OVERLAY_FS=m
---
> CONFIG_OVERLAY_FS=y
6840c6837
< CONFIG_SQUASHFS=m
---
> CONFIG_SQUASHFS=y
7052,7054d7048
< # CONFIG_GCC_PLUGIN_STRUCTLEAK_USER is not set
< # CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF is not set
< # CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL is not set
7056a7051,7052
> CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y
> # CONFIG_ZERO_CALL_USED_REGS is not set
7060,7061d7055
< # CONFIG_RANDSTRUCT_FULL is not set
< # CONFIG_RANDSTRUCT_PERFORMANCE is not set
7513a7508
> CONFIG_HAVE_KCSAN_COMPILER=y
7536a7532,7533
> CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
> # CONFIG_KASAN is not set
7663c7660
< # end of Kernel hacking
\ No newline at end of file
---
> # end of Kernel hacking
I do not find many differences related to video. What do you think ?

mdrjr
Site Admin
Posts: 12093
Joined: Fri Feb 22, 2013 11:34 pm
languages_spoken: english, portuguese
ODROIDs: -
Location: Brazil
Has thanked: 8 times
Been thanked: 151 times
Contact:

Re: [ffmpeg] h264_v4l2m2m: can't configure decoder

Post by mdrjr »

Indeed, no difference that would cause this.
Do you have any patch to the dts that may have it disabled?
What kernel tree you are using?

Arcueid
Posts: 31
Joined: Sun Dec 17, 2017 7:27 pm
languages_spoken: english, french
ODROIDs: XU4
Has thanked: 0
Been thanked: 0
Contact:

Re: [ffmpeg] h264_v4l2m2m: can't configure decoder

Post by Arcueid »

I'm using recalbox's master, based on buildroot: https://gitlab.com/recalbox/recalbox/-/ ... a3a8bc5647

I found these diff in buildroot dir, and some are related to DTS:

Code: Select all

diff --git a/linux/Config.in b/linux/Config.in
index 264cc58f59..bea1ac8c21 100644
--- a/linux/Config.in
+++ b/linux/Config.in
@@ -436,6 +436,13 @@ config BR2_LINUX_KERNEL_DTB_OVERLAY_SUPPORT
 
 endif
 
+config BR2_LINUX_KERNEL_DTS_INSTALL_OVERLAYS
+	bool "Build and install Device Tree Overlays (dtbo)"
+	depends on BR2_LINUX_KERNEL_DTS_SUPPORT
+	help
+	  Build in-tree device tree overlays.
+	  Currently supports Raspberry Pi kernels.
+
 config BR2_LINUX_KERNEL_INSTALL_TARGET
 	bool "Install kernel image to /boot in target"
 	depends on !BR2_TARGET_ROOTFS_INITRAMFS
diff --git a/linux/linux.mk b/linux/linux.mk
index 03d89cd204..38b15f78aa 100644
--- a/linux/linux.mk
+++ b/linux/linux.mk
@@ -446,6 +446,12 @@ define LINUX_INSTALL_DTB
 endef
 endif # BR2_LINUX_KERNEL_APPENDED_DTB
 endif # BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT
+ifeq ($(BR2_LINUX_KERNEL_DTS_INSTALL_OVERLAYS),y)
+define LINUX_INSTALL_DTB_OVERLAYS
+       mkdir -p $(1)
+       cp $(LINUX_ARCH_PATH)/boot/dts/overlays/*.dtb* $(1)
+endef
+endif # BR2_LINUX_KERNEL_DTS_INSTALL_OVERLAYS
 endif # BR2_LINUX_KERNEL_DTS_SUPPORT
 
 ifeq ($(BR2_LINUX_KERNEL_APPENDED_DTB),y)
@@ -492,6 +498,9 @@ define LINUX_BUILD_CMDS
 	)
 	$(LINUX_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) all
 	$(LINUX_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(LINUX_TARGET_NAME)
+	$(if $(BR2_LINUX_KERNEL_DTS_INSTALL_OVERLAYS),
+		$(LINUX_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) dtbs ;           \
+	)
 	$(LINUX_BUILD_DTB)
 	$(LINUX_APPEND_DTB)
 endef
@@ -529,6 +538,7 @@ endef
 define LINUX_INSTALL_IMAGES_CMDS
 	$(call LINUX_INSTALL_IMAGE,$(BINARIES_DIR))
 	$(call LINUX_INSTALL_DTB,$(BINARIES_DIR))
+	$(call LINUX_INSTALL_DTB_OVERLAYS,$(BINARIES_DIR)/overlays)
 endef
 
 ifeq ($(BR2_STRIP_strip),y)
diff --git a/package/bcm2835/Config.in b/package/bcm2835/Config.in
index 8c77a62a11..97ae7f458a 100644
--- a/package/bcm2835/Config.in
+++ b/package/bcm2835/Config.in
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_BCM2835
 	bool "bcm2835"
-	depends on BR2_arm
+	depends on BR2_arm || BR2_aarch64
 	help
 	  C library for Broadcom BCM 2835 as used in Raspberry Pi.
 	  It provides access to GPIO and other IO functions on the
diff --git a/package/binutils/binutils.mk b/package/binutils/binutils.mk
index 1ef7ee57d2..2911206824 100644
--- a/package/binutils/binutils.mk
+++ b/package/binutils/binutils.mk
@@ -133,7 +133,7 @@ endif
 # Hardlinks between binaries in different directories cause a problem
 # with rpath fixup, so we de-hardlink those binaries, and replace them
 # with copies instead.
-BINUTILS_TOOLS = ar as ld ld.bfd nm objcopy objdump ranlib readelf strip
+BINUTILS_TOOLS = ar as ld ld.bfd nm objcopy objdump ranlib readelf strip strings
 define HOST_BINUTILS_FIXUP_HARDLINKS
 	$(foreach tool,$(BINUTILS_TOOLS),\
 		rm -f $(HOST_DIR)/$(GNU_TARGET_NAME)/bin/$(tool) && \
diff --git a/package/bluez5_utils/bluez5_utils.mk b/package/bluez5_utils/bluez5_utils.mk
index f6344ce2cd..65e49afdf7 100644
--- a/package/bluez5_utils/bluez5_utils.mk
+++ b/package/bluez5_utils/bluez5_utils.mk
@@ -13,6 +13,7 @@ BLUEZ5_UTILS_LICENSE = GPL-2.0+, LGPL-2.1+
 BLUEZ5_UTILS_LICENSE_FILES = COPYING COPYING.LIB
 BLUEZ5_UTILS_CPE_ID_VENDOR = bluez
 BLUEZ5_UTILS_CPE_ID_PRODUCT = bluez
+BLUEZ5_UTILS_AUTORECONF = YES
 
 BLUEZ5_UTILS_DEPENDENCIES = \
 	$(if $(BR2_PACKAGE_BLUEZ5_UTILS_HEADERS),bluez5_utils-headers) \
@@ -27,6 +28,7 @@ BLUEZ5_UTILS_CONF_OPTS = \
 	--disable-lsan \
 	--disable-ubsan \
 	--disable-pie \
+	--localstatedir=/overlay/.configs/ \
 	--with-dbusconfdir=/etc
 
 ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_OBEX),y)
@@ -188,4 +190,12 @@ define BLUEZ5_UTILS_INSTALL_INIT_SYSV
 		$(TARGET_DIR)/etc/init.d/S40bluetoothd
 endef
 
+define BLUEZ5_UTILS_INSTALL_CONF_FILES
+	mkdir -p $(TARGET_DIR)/etc/bluetooth
+	for i in `find $(@D) -name *.conf` ; do \
+		$(INSTALL) -D -m 755 $$i $(TARGET_DIR)/etc/bluetooth/ ; \
+	done
+endef
+BLUEZ5_UTILS_POST_INSTALL_TARGET_HOOKS += BLUEZ5_UTILS_INSTALL_CONF_FILES
+
 $(eval $(autotools-package))
diff --git a/package/clang/clang.hash b/package/clang/clang.hash
index 0136b80664..33b50af6bf 100644
--- a/package/clang/clang.hash
+++ b/package/clang/clang.hash
@@ -1,3 +1,3 @@
 # locally calculated
-sha256  0a8288f065d1f57cb6d96da4d2965cbea32edc572aa972e466e954d17148558b  clang-11.1.0.src.tar.xz
+sha256  a6b673ef15377fb46062d164e8ddc4d05c348ff8968f015f7f4af03f51000067  clang-15.0.7.src.tar.xz
 sha256  ebcd9bbf783a73d05c53ba4d586b8d5813dcdf3bbec50265860ccc885e606f47  LICENSE.TXT
diff --git a/package/clang/clang.mk b/package/clang/clang.mk
index 3c75f8d6b1..1fc4ac4b20 100644
--- a/package/clang/clang.mk
+++ b/package/clang/clang.mk
@@ -5,8 +5,8 @@
 ################################################################################
 
 # LLVM, Clang and lld should be version bumped together
-CLANG_VERSION_MAJOR = 11
-CLANG_VERSION = $(CLANG_VERSION_MAJOR).1.0
+CLANG_VERSION_MAJOR = 15
+CLANG_VERSION = $(CLANG_VERSION_MAJOR).0.7
 CLANG_SITE = https://github.com/llvm/llvm-project/releases/download/llvmorg-$(CLANG_VERSION)
 CLANG_SOURCE = clang-$(CLANG_VERSION).src.tar.xz
 CLANG_LICENSE = Apache-2.0 with exceptions
diff --git a/package/dhcpcd/dhcpcd.mk b/package/dhcpcd/dhcpcd.mk
index 922d289b26..fb2682d728 100644
--- a/package/dhcpcd/dhcpcd.mk
+++ b/package/dhcpcd/dhcpcd.mk
@@ -56,7 +56,7 @@ endef
 ifeq ($(BR2_PACKAGE_NETWORK_MANAGER),)
 define DHCPCD_INSTALL_INIT_SYSV
 	$(INSTALL) -m 755 -D package/dhcpcd/S41dhcpcd \
-		$(TARGET_DIR)/etc/init.d/S41dhcpcd
+		$(TARGET_DIR)/etc/init.d/S10dhcpcd
 endef
 
 define DHCPCD_INSTALL_INIT_SYSTEMD
diff --git a/package/dropbear/S50dropbear b/package/dropbear/S50dropbear
index 9474eaafaa..dd61d78ecf 100644
--- a/package/dropbear/S50dropbear
+++ b/package/dropbear/S50dropbear
@@ -6,7 +6,15 @@
 # Allow a few customizations from a config file
 test -r /etc/default/dropbear && . /etc/default/dropbear
 
+systemsetting="recalbox_settings"
+
 start() {
+        enabled="`$systemsetting  -command load -key system.ssh.enabled`"
+        if [ "$enabled" == "0" ];then
+          echo "SSH services: disabled"
+          exit 0
+        fi
+
 	DROPBEAR_ARGS="$DROPBEAR_ARGS -R"
 
 	# If /etc/dropbear is a symlink to /var/run/dropbear, and
@@ -36,7 +44,7 @@ start() {
 stop() {
 	printf "Stopping dropbear sshd: "
 	start-stop-daemon -K -q -p /var/run/dropbear.pid
-	[ $? = 0 ] && echo "OK" || echo "FAIL"
+	start-stop-daemon -K -q -n dropbear
 }
 restart() {
 	stop
diff --git a/package/ffmpeg/ffmpeg.mk b/package/ffmpeg/ffmpeg.mk
index 59e13b503e..a4ab9e6078 100644
--- a/package/ffmpeg/ffmpeg.mk
+++ b/package/ffmpeg/ffmpeg.mk
@@ -60,6 +60,18 @@ FFMPEG_CONF_OPTS = \
 
 FFMPEG_DEPENDENCIES += host-pkgconf
 
+# this is needed for hevc decoder to work
+# for rpi4, we need a patched version of ffmpeg
+ifeq ($(BR2_PACKAGE_RECALBOX_TARGET_RPI4_64),y)
+FFMPEG_CONF_OPTS += --enable-v4l2_m2m --enable-sand --enable-v4l2-request
+FFMPEG_DEPENDENCIES += udev
+endif
+
+ifeq ($(BR2_PACKAGE_ROCKCHIP_MPP),y)
+FFMPEG_CONF_OPTS += --enable-rkmpp --enable-libdrm --enable-version3
+FFMPEG_DEPENDENCIES += rockchip-mpp
+endif
+
 ifeq ($(BR2_PACKAGE_FFMPEG_GPL),y)
 FFMPEG_CONF_OPTS += --enable-gpl
 else
diff --git a/package/initscripts/init.d/rcK b/package/initscripts/init.d/rcK
index 59e9c54ff9..c2bb2115db 100755
--- a/package/initscripts/init.d/rcK
+++ b/package/initscripts/init.d/rcK
@@ -20,6 +20,7 @@ for i in $(ls -r /etc/init.d/S??*) ;do
 	    ;;
 	*)
 	    # No sh extension, so fork subprocess.
+	    recallog -s "rcK" -t "INIT" -f init.log "stop $i"
 	    $i stop
 	    ;;
     esac
diff --git a/package/initscripts/init.d/rcS b/package/initscripts/init.d/rcS
index de411534da..d25094a751 100755
--- a/package/initscripts/init.d/rcS
+++ b/package/initscripts/init.d/rcS
@@ -20,6 +20,7 @@ for i in /etc/init.d/S??* ;do
 	    ;;
 	*)
 	    # No sh extension, so fork subprocess.
+	    recallog -s "rcS" -t "INIT" -f init.log "start $i"
 	    $i start
 	    ;;
     esac
diff --git a/package/libcec/libcec.mk b/package/libcec/libcec.mk
index 33e0463eb8..5cfbcb707b 100644
--- a/package/libcec/libcec.mk
+++ b/package/libcec/libcec.mk
@@ -24,6 +24,10 @@ ifeq ($(BR2_PACKAGE_PYTHON3),y)
 LIBCEC_DEPENDENCIES += host-swig python3
 endif
 
+ifeq ($(BR2_PACKAGE_RECALBOX_TARGET_ODROIDXU4),y)
+LIBCEC_CONF_OPTS += -DHAVE_EXYNOS_API=1
+endif
+
 ifeq ($(BR2_PACKAGE_RPI_USERLAND),y)
 LIBCEC_DEPENDENCIES += rpi-userland
 LIBCEC_CONF_OPTS += \
@@ -31,6 +35,8 @@ LIBCEC_CONF_OPTS += \
 	-DCMAKE_CXX_FLAGS="$(TARGET_CXXFLAGS) \
 		-I$(STAGING_DIR)/usr/include/interface/vmcs_host/linux \
 		-I$(STAGING_DIR)/usr/include/interface/vcos/pthreads"
+else
+LIBCEC_CONF_OPTS += -DHAVE_LINUX_API=1
 endif
 
 ifeq ($(BR2_PACKAGE_XLIB_LIBXRANDR),y)
diff --git a/package/libfreeimage/libfreeimage.mk b/package/libfreeimage/libfreeimage.mk
index 4775f92109..749cbeb52b 100644
--- a/package/libfreeimage/libfreeimage.mk
+++ b/package/libfreeimage/libfreeimage.mk
@@ -13,6 +13,10 @@ LIBFREEIMAGE_CPE_ID_VENDOR = freeimage_project
 LIBFREEIMAGE_CPE_ID_PRODUCT = freeimage
 LIBFREEIMAGE_INSTALL_STAGING = YES
 
+# NEON assembler is not supported
+# needed for EmulationStation to compile
+LIBFREEIMAGE_CFLAGS += -DPNG_ARM_NEON_OPT=0
+
 define LIBFREEIMAGE_EXTRACT_CMDS
 	$(UNZIP) $(LIBFREEIMAGE_DL_DIR)/$(LIBFREEIMAGE_SOURCE) -d $(@D)
 	mv $(@D)/FreeImage/* $(@D)
@@ -21,7 +25,9 @@ endef
 
 define LIBFREEIMAGE_BUILD_CMDS
 	$(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) \
-		CXXFLAGS="$(TARGET_CXXFLAGS) -std=c++11" $(MAKE) -C $(@D)
+		CXXFLAGS="$(TARGET_CXXFLAGS) -std=c++11" \
+		CFLAGS="$(TARGET_CFLAGS) $(LIBFREEIMAGE_CFLAGS)" \
+		$(MAKE) -C $(@D)
 endef
 
 define LIBFREEIMAGE_INSTALL_STAGING_CMDS
diff --git a/package/libgtk3/0001-disable-atk-bridge.patch b/package/libgtk3/0001-disable-atk-bridge.patch
index f3e9bff2ba..4e966abc1e 100644
--- a/package/libgtk3/0001-disable-atk-bridge.patch
+++ b/package/libgtk3/0001-disable-atk-bridge.patch
@@ -38,4 +38,15 @@ Signed-off-by: Hadrien Boutteville <hadrien.boutteville@gmail.com>
 +  atkbridge_dep  = dependency('atk-bridge-2.0', version: at_spi2_atk_req, required: false)
  
    backend_immodules += ['xim']
- 
+
+@@ -588,7 +588,9 @@
+     x11_pkgs += ['xdamage']
+   endif
+
+-  atk_pkgs += ['atk-bridge-2.0']
++  if atkbridge_dep.found()
++    atk_pkgs += ['atk-bridge-2.0']
++  endif
+
+   cdata.set('HAVE_XDAMAGE', xdamage_dep.found() ? 1 : false)
+   cdata.set('HAVE_XCURSOR', xcursor_dep.found() ? 1 : false) 
diff --git a/package/lirc-tools/lirc-tools.mk b/package/lirc-tools/lirc-tools.mk
index a3ad6bd5a0..8189bfaa0a 100644
--- a/package/lirc-tools/lirc-tools.mk
+++ b/package/lirc-tools/lirc-tools.mk
@@ -17,6 +17,7 @@ LIRC_TOOLS_AUTORECONF = YES
 
 LIRC_TOOLS_CONF_ENV = XSLTPROC=yes HAVE_WORKING_POLL=yes
 LIRC_TOOLS_CONF_OPTS = --without-x --enable-devinput --enable-uinput
+LIRC_TOOLS_MAKE=$(MAKE1)
 
 ifeq ($(BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4),y)
 LIRC_TOOLS_CONF_ENV += \
diff --git a/package/llvm/0001-nfc-Fix-missing-include.patch b/package/llvm/0001-nfc-Fix-missing-include.patch
deleted file mode 100644
index 62111ca138..0000000000
--- a/package/llvm/0001-nfc-Fix-missing-include.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From b498303066a63a203d24f739b2d2e0e56dca70d1 Mon Sep 17 00:00:00 2001
-From: serge-sans-paille <sguelton@redhat.com>
-Date: Tue, 10 Nov 2020 14:55:25 +0100
-Subject: [PATCH] [nfc] Fix missing include
-
-[Retrieved (and backported) from:
-https://github.com/llvm/llvm-project/commit/b498303066a63a203d24f739b2d2e0e56dca70d1]
-Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
----
- llvm/utils/benchmark/src/benchmark_register.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/utils/benchmark/src/benchmark_register.h b/utils/benchmark/src/benchmark_register.h
-index 0705e219f2fa2..4caa5ad4da079 100644
---- a/utils/benchmark/src/benchmark_register.h
-+++ b/utils/benchmark/src/benchmark_register.h
-@@ -1,6 +1,7 @@
- #ifndef BENCHMARK_REGISTER_H
- #define BENCHMARK_REGISTER_H
- 
-+#include <limits>
- #include <vector>
- 
- #include "check.h"
diff --git a/package/llvm/0002-Add-missing-cstdint-header-to-Signals.h.patch b/package/llvm/0002-Add-missing-cstdint-header-to-Signals.h.patch
deleted file mode 100644
index c798f585d6..0000000000
--- a/package/llvm/0002-Add-missing-cstdint-header-to-Signals.h.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From c6c71ab47d658ab8f84e6a6066d476fd9632bbca Mon Sep 17 00:00:00 2001
-From: Sergei Trofimovich <slyich@gmail.com>
-Date: Mon, 23 May 2022 08:03:23 +0100
-Subject: [PATCH] Add missing <cstdint> header to Signals.h
-
-Without the change llvm build fails on this week's gcc-13 snapshot as:
-
-    [  0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Signals.cpp.o
-    In file included from llvm/lib/Support/Signals.cpp:14:
-    llvm/include/llvm/Support/Signals.h:119:8: error: variable or field 'CleanupOnSignal' declared void
-      119 |   void CleanupOnSignal(uintptr_t Context);
-          |        ^~~~~~~~~~~~~~~
-
-Upstream: https://github.com/llvm/llvm-project/commit/ff1681ddb303223973653f7f5f3f3435b48a1983.patch
-Signed-off-by: Peter Seiderer <ps.report@gmx.net>
----
- include/llvm/Support/Signals.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/include/llvm/Support/Signals.h b/include/llvm/Support/Signals.h
-index e0a18e72..148216b8 100644
---- a/include/llvm/Support/Signals.h
-+++ b/include/llvm/Support/Signals.h
-@@ -14,6 +14,7 @@
- #ifndef LLVM_SUPPORT_SIGNALS_H
- #define LLVM_SUPPORT_SIGNALS_H
- 
-+#include <cstdint>
- #include <string>
- 
- namespace llvm {
--- 
-2.40.1
-
diff --git a/package/llvm/Config.in b/package/llvm/Config.in
index d9d30a5ba5..9317a05c8f 100644
--- a/package/llvm/Config.in
+++ b/package/llvm/Config.in
@@ -24,6 +24,7 @@ config BR2_PACKAGE_LLVM
 	depends on !BR2_STATIC_LIBS
 	depends on BR2_USE_WCHAR # std::wstring
 	depends on BR2_HOST_GCC_AT_LEAST_5 # host-llvm
+	select BR2_PACKAGE_LLVM_CMAKE
 	help
 	  The LLVM Project is a collection of modular and reusable
 	  compiler and toolchain technologies.
diff --git a/package/llvm/llvm.hash b/package/llvm/llvm.hash
index e7f79492de..4325da6f6b 100644
--- a/package/llvm/llvm.hash
+++ b/package/llvm/llvm.hash
@@ -1,3 +1,3 @@
 # locally calculated
-sha256  ce8508e318a01a63d4e8b3090ab2ded3c598a50258cc49e2625b9120d4c03ea5  llvm-11.1.0.src.tar.xz
+sha256  4ad8b2cc8003c86d0078d15d987d84e3a739f24aae9033865c027abae93ee7a4  llvm-15.0.7.src.tar.xz
 sha256  8d85c1057d742e597985c7d4e6320b015a9139385cff4cbae06ffc0ebe89afee  LICENSE.TXT
diff --git a/package/llvm/llvm.mk b/package/llvm/llvm.mk
index 977c0a08c2..2d1efa106b 100644
--- a/package/llvm/llvm.mk
+++ b/package/llvm/llvm.mk
@@ -5,7 +5,7 @@
 ################################################################################
 
 # LLVM, Clang and lld should be version bumped together
-LLVM_VERSION = 11.1.0
+LLVM_VERSION = 15.0.7
 LLVM_SITE = https://github.com/llvm/llvm-project/releases/download/llvmorg-$(LLVM_VERSION)
 LLVM_SOURCE = llvm-$(LLVM_VERSION).src.tar.xz
 LLVM_LICENSE = Apache-2.0 with exceptions
@@ -15,9 +15,17 @@ LLVM_SUPPORTS_IN_SOURCE_BUILD = NO
 LLVM_INSTALL_STAGING = YES
 
 # LLVM >= 9.0 can use python3 to build.
-HOST_LLVM_DEPENDENCIES = host-python3
+HOST_LLVM_DEPENDENCIES = host-python3 host-llvm-cmake
 LLVM_DEPENDENCIES = host-llvm
 
+# Path to cmake modules from host-llvm-cmake
+HOST_LLVM_CONF_OPTS += -DCMAKE_MODULE_PATH=$(HOST_DIR)/lib/cmake/llvm
+LLVM_CONF_OPTS += -DCMAKE_MODULE_PATH=$(HOST_DIR)/lib/cmake/llvm
+
+# Assembly files for x64 in lib/Support/BLAKE3 need to be compiled
+# by a C compiler
+HOST_LLVM_CONF_OPTS += -DCMAKE_ASM_COMPILER="$(CMAKE_HOST_C_COMPILER)"
+
 # LLVM >= 9.0 will soon require C++14 support, building llvm 8.x using a
 # toolchain using gcc < 5.1 gives an error but actually still works. Setting
 # this option makes it still build with gcc >= 4.8.
@@ -260,7 +268,8 @@ HOST_LLVM_CONF_OPTS += \
 	-DLLVM_INCLUDE_EXAMPLES=OFF \
 	-DLLVM_INCLUDE_DOCS=OFF \
 	-DLLVM_INCLUDE_GO_TESTS=OFF \
-	-DLLVM_INCLUDE_TESTS=OFF
+	-DLLVM_INCLUDE_TESTS=OFF \
+	-DLLVM_INCLUDE_BENCHMARKS=OFF
 LLVM_CONF_OPTS += \
 	-DLLVM_BUILD_EXAMPLES=OFF \
 	-DLLVM_BUILD_DOCS=OFF \
@@ -271,7 +280,8 @@ LLVM_CONF_OPTS += \
 	-DLLVM_INCLUDE_EXAMPLES=OFF \
 	-DLLVM_INCLUDE_DOCS=OFF \
 	-DLLVM_INCLUDE_GO_TESTS=OFF \
-	-DLLVM_INCLUDE_TESTS=OFF
+	-DLLVM_INCLUDE_TESTS=OFF \
+	-DLLVM_INCLUDE_BENCHMARKS=OFF
 
 # Copy llvm-config (host variant) to STAGING_DIR
 # llvm-config (host variant) returns include and lib directories
diff --git a/package/luajit/Config.in b/package/luajit/Config.in
index 31e9e0243e..7d5fb2d5c8 100644
--- a/package/luajit/Config.in
+++ b/package/luajit/Config.in
@@ -24,7 +24,6 @@ config BR2_PACKAGE_LUAJIT
 	# luajit.mk for details.
 	select BR2_PACKAGE_HAS_LUAINTERPRETER
 	select BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION_5_1
-	select BR2_HOSTARCH_NEEDS_IA32_COMPILER if !BR2_ARCH_IS_64
 	help
 	  LuaJIT implements the full set of language features defined
 	  by Lua 5.1. The virtual machine (VM) is API- and
diff --git a/package/mesa3d/0002-vc4-add-meson-option-to-disable-optional-neon-suppor.patch b/package/mesa3d/0002-vc4-add-meson-option-to-disable-optional-neon-suppor.patch
index bb5ef00a9f..f05de4d8b5 100644
--- a/package/mesa3d/0002-vc4-add-meson-option-to-disable-optional-neon-suppor.patch
+++ b/package/mesa3d/0002-vc4-add-meson-option-to-disable-optional-neon-suppor.patch
@@ -18,13 +18,13 @@ Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
  3 files changed, 11 insertions(+), 4 deletions(-)
 
 diff --git a/meson_options.txt b/meson_options.txt
-index a39596a6f19..0f6b6c62b55 100644
+index 8130c3e..6003ef2 100644
 --- a/meson_options.txt
 +++ b/meson_options.txt
-@@ -123,6 +123,13 @@ option(
-   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
-   description : 'enable gallium va frontend.',
- )
+@@ -1,6 +1,14 @@
+ # Copyright © 2017-2019 Intel Corporation
+ # SPDX-License-Identifier: MIT
+
 +option(
 +  'gallium-vc4-neon',
 +  type : 'combo',
@@ -32,9 +32,10 @@ index a39596a6f19..0f6b6c62b55 100644
 +  choices : ['auto', 'disabled'],
 +  description : 'enable gallium vc4 optional neon support.',
 +)
++
  option(
-   'va-libs-path',
-   type : 'string',
+   'platforms',
+   type : 'array',
 diff --git a/src/gallium/drivers/vc4/meson.build b/src/gallium/drivers/vc4/meson.build
 index 5ce5af5f6b4..e3f7d8d62ae 100644
 --- a/src/gallium/drivers/vc4/meson.build
diff --git a/package/mesa3d/0004-Fix-uClibc-build.patch b/package/mesa3d/0004-Fix-uClibc-build.patch
deleted file mode 100644
index 95ca95fd67..0000000000
--- a/package/mesa3d/0004-Fix-uClibc-build.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 09ce52fe375a6fc1ccf51b6b691aaa2c3f53fbd5 Mon Sep 17 00:00:00 2001
-From: Bernd Kuhls <bernd.kuhls@t-online.de>
-Date: Fri, 3 Jun 2022 16:26:03 +0200
-Subject: [PATCH] Fix uClibc build
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Fixes build errors with uClibc and gcc-9.3.0:
-
-../src/gallium/drivers/lima/lima_texture.c:47:15: error: expected
- declaration specifiers or ‘...’ before ‘__builtin_offsetof’
-   47 | static_assert(offsetof(lima_tex_desc, va) == 24,
- "lima_tex_desc->va offset isn't 24");
-
-../src/egl/main/egldisplay.c: In function ‘_eglGetNativePlatformFromEnv’:
- ../src/egl/main/egldisplay.c:101:4: error: implicit declaration of
- function ‘static_assert’ [-Werror=implicit-function-declaration] 101 |
- static_assert(ARRAY_SIZE(egl_platforms) == _EGL_NUM_PLATFORMS,
-
-../src/util/macros.h:74:4: error: implicit declaration of function
- ‘static_assert’ [-Werror=implicit-function-declaration]
-   74 |    static_assert(cond, #cond); \
-      |    ^~~~~~~~~~~~~
-
-Patch sent upstream:
-https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13898
-
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
----
- src/util/compiler.h | 10 ++++++++++
- src/util/macros.h   |  1 +
- 2 files changed, 11 insertions(+)
-
-diff --git a/src/util/compiler.h b/src/util/compiler.h
-index d184ad455af..b5c56807acc 100644
---- a/src/util/compiler.h
-+++ b/src/util/compiler.h
-@@ -36,6 +36,16 @@
- 
- #include <assert.h>
- 
-+/*
-+ * C11 static_assert() macro
-+ * assert.h only defines that name for C11 and above
-+ */
-+#if !defined(__cplusplus)
-+#ifndef static_assert
-+#define static_assert _Static_assert
-+#endif
-+#endif
-+
- #include "util/macros.h"
- 
- 
-diff --git a/src/util/macros.h b/src/util/macros.h
-index 22b18303826..8f73ee72693 100644
---- a/src/util/macros.h
-+++ b/src/util/macros.h
-@@ -27,6 +27,7 @@
- #include <stddef.h>
- #include <stdint.h>
- #include <stdio.h>
-+#include "util/compiler.h"
- 
- /* Compute the size of an array */
- #ifndef ARRAY_SIZE
--- 
-2.34.1
-
diff --git a/package/mesa3d/0006-meson-ensure-i915-Gallium-driver-includes-Intel-sour.patch b/package/mesa3d/0006-meson-ensure-i915-Gallium-driver-includes-Intel-sour.patch
deleted file mode 100644
index 6831bdafd3..0000000000
--- a/package/mesa3d/0006-meson-ensure-i915-Gallium-driver-includes-Intel-sour.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From cd861b7f38e448822ce765aee61304d1e0a3a8b5 Mon Sep 17 00:00:00 2001
-From: James Knight <james.d.knight@live.com>
-Date: Thu, 13 Apr 2023 16:38:51 -0400
-Subject: meson: ensure i915 Gallium driver includes Intel sources
-
-Ensure builds flag the use of Intel sources when the i915 Gallium driver
-is configured (`-Dgallium-drivers=i915`). Otherwise, a build may fail if
-other Intel-based configuration options are not enabled:
-
-    ./src/gallium/winsys/i915/drm/meson.build:21:0: ERROR: Unknown variable "libintel_common".
-
-Signed-off-by: James Knight <james.d.knight@live.com>
-Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22490>
-
-Upstream: https://gitlab.freedesktop.org/mesa/mesa/-/commit/cd861b7f38e448822ce765aee61304d1e0a3a8b5
-
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
----
- meson.build | 9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
-(limited to 'meson.build')
-
-diff --git a/meson.build b/meson.build
-index 23d2d965b37..a3e3c5478a8 100644
---- a/meson.build
-+++ b/meson.build
-@@ -245,7 +245,14 @@ with_microsoft_vk = _vulkan_drivers.contains('microsoft-experimental')
- with_any_vk = _vulkan_drivers.length() != 0
- 
- with_any_broadcom = with_gallium_vc4 or with_gallium_v3d or with_broadcom_vk
--with_any_intel = with_intel_vk or with_intel_hasvk or with_gallium_iris or with_gallium_crocus or with_intel_tools
-+with_any_intel = [
-+  with_gallium_crocus,
-+  with_gallium_i915,
-+  with_gallium_iris,
-+  with_intel_hasvk,
-+  with_intel_tools,
-+  with_intel_vk,
-+].contains(true)
- 
- if with_swrast_vk and not with_gallium_softpipe
-   error('swrast vulkan requires gallium swrast')
--- 
-cgit v1.2.1
-
diff --git a/package/mesa3d/Config.in b/package/mesa3d/Config.in
index e21bbbe3e4..cfe46c8558 100644
--- a/package/mesa3d/Config.in
+++ b/package/mesa3d/Config.in
@@ -316,6 +316,55 @@ comment "intel vulkan needs a glibc toolchain w/ headers >= 3.17"
 	depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 || \
 		!BR2_TOOLCHAIN_USES_GLIBC
 
+config BR2_PACKAGE_MESA3D_VULKAN_DRIVER_BROADCOM
+	bool "Vulkan Broadcom driver"
+	depends on BR2_arm || BR2_aarch64
+	depends on BR2_TOOLCHAIN_USES_GLIBC # ifunc, static_assert
+	select BR2_PACKAGE_MESA3D_VULKAN_DRIVER
+	help
+	  Vulkan driver for Broadcom hardware from v3dv Raspberry PI 4.
+
+comment "broadcom vulkan needs a glibc toolchain w/ headers >= 3.17"
+	depends on BR2_arm || BR2_aarch64
+	depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 || \
+		!BR2_TOOLCHAIN_USES_GLIBC
+
+config BR2_PACKAGE_MESA3D_VULKAN_DRIVER_HASWELL
+	bool "Vulkan Haswell driver"
+	depends on BR2_i386 || BR2_x86_64
+	depends on BR2_TOOLCHAIN_HAS_SYNC_4 || !BR2_PACKAGE_XORG7 # libxshmfence
+	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 # memfd.h
+	depends on BR2_TOOLCHAIN_USES_GLIBC # ifunc, static_assert
+	select BR2_PACKAGE_MESA3D_DRI3 if BR2_PACKAGE_XORG7
+	select BR2_PACKAGE_MESA3D_VULKAN_DRIVER
+	help
+	  Vulkan driver for older Intel Gen7/Gen8 GPU.
+
+comment "intel haswell vulkan needs a glibc toolchain w/ headers >= 3.17"
+	depends on BR2_i386 || BR2_x86_64
+	depends on BR2_TOOLCHAIN_HAS_SYNC_4 || !BR2_PACKAGE_XORG7
+	depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 || \
+		!BR2_TOOLCHAIN_USES_GLIBC
+
+config BR2_PACKAGE_MESA3D_VULKAN_DRIVER_AMD
+	bool "Vulkan AMD Radeon driver"
+	depends on BR2_i386 || BR2_x86_64
+	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libxshmfence
+	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 # memfd.h
+	depends on BR2_TOOLCHAIN_USES_GLIBC # ifunc, static_assert
+	depends on BR2_PACKAGE_XORG7 # xorgproto
+	select BR2_PACKAGE_MESA3D_VULKAN_DRIVER
+	select BR2_PACKAGE_XORGPROTO
+	select BR2_PACKAGE_XLIB_LIBXSHMFENCE
+	help
+	  Vulkan driver for AMD Radeon GPU.
+
+comment "radeon vulkan depends on X.org and needs a glibc toolchain w/ headers >= 3.17"
+	depends on BR2_i386 || BR2_x86_64
+	depends on BR2_TOOLCHAIN_HAS_SYNC_4
+	depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 || \
+		!BR2_TOOLCHAIN_USES_GLIBC || !BR2_PACKAGE_XORG7
+
 comment "Off-screen Rendering"
 
 config BR2_PACKAGE_MESA3D_OSMESA_GALLIUM
diff --git a/package/mesa3d/mesa3d.hash b/package/mesa3d/mesa3d.hash
index e4de997f0e..924be4acd4 100644
--- a/package/mesa3d/mesa3d.hash
+++ b/package/mesa3d/mesa3d.hash
@@ -1,5 +1,5 @@
 # From https://lists.freedesktop.org/archives/mesa-announce/2023-January/000703.html
-sha256  37a1ddaf03f41919ee3c89c97cff41e87de96e00e9d3247959cc8279d8294593  mesa-22.3.4.tar.xz
+sha256  147fa8da178bc6e2edab6e534bfedf8a99af608cce5cc9b318c06f517a021376  mesa3d-8b6b405a0131e20b1b54cc4e2246dc07d0e0b6fb-br1.tar.gz
 sha512  6af340153244d3e95d0e155a45d6db134335654d62590797ae0ef6ba44c2ccfe91ebf95f70ff82c67cee108ac35536767b1f6848d6d1129f52eb9e8414ee321d  mesa-22.3.4.tar.xz
 # License
 sha256  a00275a53178e2645fb65be99a785c110513446a5071ff2c698ed260ad917d75  docs/license.rst
diff --git a/package/mesa3d/mesa3d.mk b/package/mesa3d/mesa3d.mk
index 36b7151510..ffb159066c 100644
--- a/package/mesa3d/mesa3d.mk
+++ b/package/mesa3d/mesa3d.mk
@@ -5,9 +5,9 @@
 ################################################################################
 
 # When updating the version, please also update mesa3d-headers
-MESA3D_VERSION = 22.3.4
-MESA3D_SOURCE = mesa-$(MESA3D_VERSION).tar.xz
-MESA3D_SITE = https://archive.mesa3d.org
+MESA3D_VERSION = 8b6b405a0131e20b1b54cc4e2246dc07d0e0b6fb
+MESA3D_SITE = https://gitlab.freedesktop.org/mesa/mesa
+MESA3D_SITE_METHOD = git
 MESA3D_LICENSE = MIT, SGI, Khronos
 MESA3D_LICENSE_FILES = docs/license.rst
 MESA3D_CPE_ID_VENDOR = mesa3d
@@ -119,7 +119,10 @@ MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_V3D)      += v3d
 MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VC4)      += vc4
 MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VIRGL)    += virgl
 # Vulkan Drivers
-MESA3D_VULKAN_DRIVERS-$(BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL)   += intel
+MESA3D_VULKAN_DRIVERS-$(BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL)    += intel
+MESA3D_VULKAN_DRIVERS-$(BR2_PACKAGE_MESA3D_VULKAN_DRIVER_HASWELL)  += intel_hasvk
+MESA3D_VULKAN_DRIVERS-$(BR2_PACKAGE_MESA3D_VULKAN_DRIVER_AMD)      += amd
+MESA3D_VULKAN_DRIVERS-$(BR2_PACKAGE_MESA3D_VULKAN_DRIVER_BROADCOM) += broadcom
 
 ifeq ($(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER),)
 MESA3D_CONF_OPTS += \
diff --git a/package/mosquitto/mosquitto.mk b/package/mosquitto/mosquitto.mk
index a95a2cac4d..16f7bbe35c 100644
--- a/package/mosquitto/mosquitto.mk
+++ b/package/mosquitto/mosquitto.mk
@@ -115,7 +115,7 @@ endef
 ifeq ($(BR2_PACKAGE_MOSQUITTO_BROKER),y)
 define MOSQUITTO_INSTALL_INIT_SYSV
 	$(INSTALL) -D -m 0755 package/mosquitto/S50mosquitto \
-		$(TARGET_DIR)/etc/init.d/S50mosquitto
+		$(TARGET_DIR)/etc/init.d/S29mosquitto
 endef
 
 define MOSQUITTO_INSTALL_INIT_SYSTEMD
diff --git a/package/mpv/mpv.mk b/package/mpv/mpv.mk
index f9250070d1..bdbb3cd497 100644
--- a/package/mpv/mpv.mk
+++ b/package/mpv/mpv.mk
@@ -27,7 +27,8 @@ MPV_CONF_OPTS = \
 	--disable-opensles \
 	--disable-rubberband \
 	--disable-uchardet \
-	--disable-vapoursynth
+	--disable-vapoursynth \
+	--disable-sdl2-gamepad
 
 ifeq ($(BR2_REPRODUCIBLE),y)
 MPV_CONF_OPTS += --disable-build-date
diff --git a/package/python-pygame/python-pygame.hash b/package/python-pygame/python-pygame.hash
index c0496515e2..c507acde76 100644
--- a/package/python-pygame/python-pygame.hash
+++ b/package/python-pygame/python-pygame.hash
@@ -1,3 +1,3 @@
 # Locally computed
-sha256  f95a7dd68ea294d415e36e068d2f533c5a01c67773452d14a535c5c7455681fe  pygame-d61ea8eabd56.tar.gz
+sha256  2f8c4ed6d5d84aca81507d16deea3985d1b1976cb0aeb902ce0096dfcc3bec91  python-pygame-2.2.0.tar.gz
 sha256  a190dc9c8043755d90f8b0a75fa66b9e42d4af4c980bf5ddc633f0124db3cee7  LGPL
diff --git a/package/python-pygame/python-pygame.mk b/package/python-pygame/python-pygame.mk
index 600dd9e743..c7d3f8ffff 100644
--- a/package/python-pygame/python-pygame.mk
+++ b/package/python-pygame/python-pygame.mk
@@ -4,90 +4,35 @@
 #
 ################################################################################
 
-# stable 1.9.1 release requires V4L which has been wiped out of recent Linux
-# kernels, so use latest mercurial revision until next stable release is out.
-PYTHON_PYGAME_VERSION = d61ea8eabd56
-PYTHON_PYGAME_SOURCE = pygame-$(PYTHON_PYGAME_VERSION).tar.gz
-PYTHON_PYGAME_SITE = https://bitbucket.org/pygame/pygame
-PYTHON_PYGAME_SITE_METHOD = hg
-PYTHON_PYGAME_SETUP_TYPE = distutils
+PYTHON_PYGAME_VERSION = 2.2.0
+PYTHON_PYGAME_SITE = $(call github,pygame,pygame,$(PYTHON_PYGAME_VERSION))
+PYTHON_PYGAME_SETUP_TYPE = setuptools
 PYTHON_PYGAME_LICENSE = LGPL-2.1+
 PYTHON_PYGAME_LICENSE_FILES = LGPL
+PYTHON_PYGAME_DEPENDENCIES = sdl2
+PYTHON_PYGAME_BUILD_OPTS = -config -auto -sdl2
 
 ifeq ($(BR2_PACKAGE_PYTHON_PYGAME_IMAGE),y)
-PYTHON_PYGAME_OPT_DEPENDS += sdl_image
+PYTHON_PYGAME_DEPENDENCIES += sdl2_image
 endif
 
 ifeq ($(BR2_PACKAGE_PYTHON_PYGAME_FONT),y)
-PYTHON_PYGAME_OPT_DEPENDS += sdl_ttf
+PYTHON_PYGAME_DEPENDENCIES += sdl2_ttf
 endif
 
 ifeq ($(BR2_PACKAGE_PYTHON_PYGAME_MIXER),y)
-PYTHON_PYGAME_OPT_DEPENDS += sdl_mixer
+PYTHON_PYGAME_DEPENDENCIES += sdl2_mixer
 endif
 
-PYTHON_PYGAME_DEPENDENCIES = sdl $(PYTHON_PYGAME_OPT_DEPENDS)
-
-ifneq ($(BR2_PACKAGE_PYTHON_PYGAME_IMAGE),y)
-define PYTHON_PYGAME_UNCONFIGURE_IMAGE
-	$(SED) 's/^imageext/#imageext/' $(@D)/Setup
-endef
-endif
-
-ifneq ($(BR2_PACKAGE_PYTHON_PYGAME_FONT),y)
-define PYTHON_PYGAME_UNCONFIGURE_FONT
-	$(SED) 's/^font/#font/' $(@D)/Setup
-endef
+ifeq ($(BR2_ARM_CPU_HAS_NEON),y)
+PYTHON_PYGAME_BUILD_OPTS += -enable-arm-neon
 endif
 
-ifneq ($(BR2_PACKAGE_PYTHON_PYGAME_MIXER),y)
-define PYTHON_PYGAME_UNCONFIGURE_MIXER
-	$(SED) 's/^mixer/#mixer/g' $(@D)/Setup
-endef
-endif
-
-# Both require numpy or numeric python module
-define PYTHON_PYGAME_UNCONFIGURE_SNDARRAY
-	$(SED) 's/^_numericsndarray/#_numericsndarray/' $(@D)/Setup
-endef
-
-define PYTHON_PYGAME_UNCONFIGURE_SURFARRAY
-	$(SED) 's/^_numericsurfarray/#_numericsurfarray/' $(@D)/Setup
-endef
-
-# Requires smpeg
-define PYTHON_PYGAME_UNCONFIGURE_MOVIE
-	$(SED) 's/^movie/#movie/' $(@D)/Setup
-endef
-
-ifneq ($(BR2_PACKAGE_PYTHON_PYGAME_SCRAP),y)
-define PYTHON_PYGAME_UNCONFIGURE_SCRAP
-	$(SED) 's/^scrap/#scrap/' $(@D)/Setup
-endef
-endif
-
-define PYTHON_PYGAME_UNCONFIGURE_FREETYPE
-	$(SED) 's/^_freetype/#_freetype/' $(@D)/Setup
-endef
-
-PYTHON_PYGAME_SDL_FLAGS = `$(STAGING_DIR)/usr/bin/sdl-config --cflags`
-PYTHON_PYGAME_SDL_FLAGS += `$(STAGING_DIR)/usr/bin/sdl-config --libs`
-
-# Pygame needs a Setup file where options should be commented out if
-# dependencies are not available
-define PYTHON_PYGAME_CONFIGURE_CMDS
-	cp -f $(@D)/Setup.in $(@D)/Setup
-	$(SED) "s~^SDL = ~SDL = $(PYTHON_PYGAME_SDL_FLAGS) \n#~" $(@D)/Setup
-	$(SED) 's/^pypm/#pypm/' $(@D)/Setup
-	$(PYTHON_PYGAME_UNCONFIGURE_IMAGE)
-	$(PYTHON_PYGAME_UNCONFIGURE_FONT)
-	$(PYTHON_PYGAME_UNCONFIGURE_MIXER)
-	$(PYTHON_PYGAME_UNCONFIGURE_SNDARRAY)
-	$(PYTHON_PYGAME_UNCONFIGURE_SURFARRAY)
-	$(PYTHON_PYGAME_UNCONFIGURE_MOVIE)
-	$(PYTHON_PYGAME_UNCONFIGURE_SCRAP)
-	$(PYTHON_PYGAME_UNCONFIGURE_FREETYPE)
-endef
+PYTHON_PYGAME_ENV = \
+	PNG_CONFIG="$(STAGING_DIR)/usr/bin/libpng-config" \
+	SDL_CONFIG="$(STAGING_DIR)/usr/bin/sdl2-config" \
+	PKG_CONFIG_PATH="$(STAGING_DIR)/usr/lib/pkgconfig" \
+	LOCALBASE="$(STAGING_DIR)/usr"
 
 define PYTHON_PYGAME_REMOVE_DOC
 	rm -rf $(TARGET_DIR)/usr/lib/python*/site-packages/pygame/docs
diff --git a/package/rpi-firmware/Config.in b/package/rpi-firmware/Config.in
index a9aeaed745..8b833a6c94 100644
--- a/package/rpi-firmware/Config.in
+++ b/package/rpi-firmware/Config.in
@@ -91,8 +91,9 @@ config BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTBS
 config BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTB_OVERLAYS
 	bool "Install DTB overlays"
 	default y
-	depends on BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTBS \
-		|| BR2_LINUX_KERNEL_DTS_SUPPORT
+	depends on (BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTBS \
+	  || BR2_LINUX_KERNEL_DTS_SUPPORT) && \
+	  !BR2_LINUX_KERNEL_DTS_INSTALL_OVERLAYS
 	select BR2_LINUX_KERNEL_DTB_OVERLAY_SUPPORT \
 		if BR2_LINUX_KERNEL_DTS_SUPPORT
 	help
diff --git a/package/rpi-firmware/rpi-firmware.hash b/package/rpi-firmware/rpi-firmware.hash
index ec13115f3b..ffede9e77d 100644
--- a/package/rpi-firmware/rpi-firmware.hash
+++ b/package/rpi-firmware/rpi-firmware.hash
@@ -1,3 +1,3 @@
 # Locally computed
-sha256  33aea2cb9c3be94c3dd6a96fbb3443eee5af1dc5fc9140e1fadc50832983064e  rpi-firmware-3f20b832b27cd730deb6419b570f31a98167eef6.tar.gz
+sha256  59b72279934bba07eb9614ea08d2f3e395ddfad331d2aad6a37ea466ee276afb  rpi-firmware-7f14c6192dd536392efbad2280e990285447591a.tar.gz
 sha256  c7283ff51f863d93a275c66e3b4cb08021a5dd4d8c1e7acc47d872fbe52d3d6b  boot/LICENCE.broadcom
diff --git a/package/rpi-firmware/rpi-firmware.mk b/package/rpi-firmware/rpi-firmware.mk
index 53d6d8ca06..6d7ce77bb3 100644
--- a/package/rpi-firmware/rpi-firmware.mk
+++ b/package/rpi-firmware/rpi-firmware.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-RPI_FIRMWARE_VERSION = 3f20b832b27cd730deb6419b570f31a98167eef6
+RPI_FIRMWARE_VERSION = 7f14c6192dd536392efbad2280e990285447591a
 RPI_FIRMWARE_SITE = $(call github,raspberrypi,firmware,$(RPI_FIRMWARE_VERSION))
 RPI_FIRMWARE_LICENSE = BSD-3-Clause
 RPI_FIRMWARE_LICENSE_FILES = boot/LICENCE.broadcom
diff --git a/package/sdl2/sdl2.mk b/package/sdl2/sdl2.mk
index 5f2e1e0ed1..ebefc3383b 100644
--- a/package/sdl2/sdl2.mk
+++ b/package/sdl2/sdl2.mk
@@ -15,18 +15,17 @@ SDL2_INSTALL_STAGING = YES
 SDL2_CONFIG_SCRIPTS = sdl2-config
 
 SDL2_CONF_OPTS += \
+	--disable-hidapi \
 	--disable-rpath \
 	--disable-arts \
 	--disable-esd \
 	--disable-dbus \
-	--disable-pulseaudio \
 	--disable-video-vivante \
 	--disable-video-cocoa \
 	--disable-video-metal \
 	--disable-video-wayland \
 	--disable-video-dummy \
 	--disable-video-offscreen \
-	--disable-video-vulkan \
 	--disable-ime \
 	--disable-ibus \
 	--disable-fcitx \
@@ -50,6 +49,10 @@ define SDL2_FIX_SDL2_CONFIG_CMAKE
 		$(STAGING_DIR)/usr/lib/cmake/SDL2/sdl2-config.cmake
 endef
 SDL2_POST_INSTALL_STAGING_HOOKS += SDL2_FIX_SDL2_CONFIG_CMAKE
+define SDL2_RUN_AUTOGEN
+	$(@D)/autogen.sh
+endef
+SDL2_PRE_CONFIGURE_HOOKS += SDL2_RUN_AUTOGEN
 
 # We must enable static build to get compilation successful.
 SDL2_CONF_OPTS += --enable-static
@@ -174,6 +177,20 @@ else
 SDL2_CONF_OPTS += --disable-alsa
 endif
 
+ifeq ($(BR2_PACKAGE_PULSEAUDIO),y)
+SDL2_DEPENDENCIES += pulseaudio
+SDL2_CONF_OPTS += --enable-pulseaudio
+else
+SDL2_CONF_OPTS += --disable-pulseaudio
+endif
+
+ifeq ($(BR2_PACKAGE_RECALBOX_HAS_VULKAN),y)
+SDL2_DEPENDENCIES += vulkan-headers
+SDL2_CONF_OPTS += --enable-video-vulkan
+else
+SDL2_CONF_OPTS += --disable-video-vulkan
+endif
+
 ifeq ($(BR2_PACKAGE_SDL2_KMSDRM),y)
 SDL2_DEPENDENCIES += libdrm libgbm libegl
 SDL2_CONF_OPTS += --enable-video-kmsdrm
@@ -181,4 +198,19 @@ else
 SDL2_CONF_OPTS += --disable-video-kmsdrm
 endif
 
+ifeq ($(BR2_PACKAGE_XSERVER_XORG_SERVER),)
+  ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_EGL),y)
+    TARGET_CFLAGS += -DEGL_NO_X11
+  endif
+endif
+
+# odroid go advance
+ifeq ($(BR2_PACKAGE_LIBRGA),y)
+SDL2_DEPENDENCIES += librga
+endif
+
+ifeq ($(BR2_PACKAGE_RECALBOX_TARGET_RPI5_64),y)
+  TARGET_CFLAGS += -DSDL_PI5_NO_ASYNCPAGEFLIP=1
+endif
+
 $(eval $(autotools-package))
diff --git a/package/sdl2_mixer/sdl2_mixer.mk b/package/sdl2_mixer/sdl2_mixer.mk
index 074e282205..9afe7a615a 100644
--- a/package/sdl2_mixer/sdl2_mixer.mk
+++ b/package/sdl2_mixer/sdl2_mixer.mk
@@ -12,7 +12,12 @@ SDL2_MIXER_LICENSE_FILES = LICENSE.txt
 SDL2_MIXER_INSTALL_STAGING = YES
 SDL2_MIXER_DEPENDENCIES = sdl2 host-pkgconf
 
-SDL2_MIXER_CONF_OPTS = --disable-music-mp3
+ifeq ($(BR2_PACKAGE_MPG123),y)
+SDL2_MIXER_CONF_OPTS += --enable-music-mp3
+SDL2_MIXER_DEPENDENCIES += mpg123
+else
+SDL2_MIXER_CONF_OPTS += --disable-music-flac
+endif
 
 ifeq ($(BR2_PACKAGE_FLAC),y)
 SDL2_MIXER_CONF_OPTS += --enable-music-flac
@@ -22,7 +27,7 @@ SDL2_MIXER_CONF_OPTS += --disable-music-flac
 endif
 
 ifeq ($(BR2_PACKAGE_FLUIDSYNTH),y)
-SDL2_MIXER_CONF_OPTS += --enable-music-midi-fluidsynth
+SDL2_MIXER_CONF_OPTS += --enable-music-midi-fluidsynth --disable-music-midi-timidity
 SDL2_MIXER_DEPENDENCIES += fluidsynth
 else
 SDL2_MIXER_CONF_OPTS += --disable-music-midi-fluidsynth
diff --git a/package/sdl_sound/Config.in b/package/sdl_sound/Config.in
index 6da19853e0..d7e8520115 100644
--- a/package/sdl_sound/Config.in
+++ b/package/sdl_sound/Config.in
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_SDL_SOUND
 	bool "SDL_sound"
-	depends on BR2_PACKAGE_SDL
+	depends on BR2_PACKAGE_SDL2
 	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
 	help
 	  SDL_sound is a library that handles the decoding of several
diff --git a/package/sdl_sound/sdl_sound.mk b/package/sdl_sound/sdl_sound.mk
index c6028e7910..fe9a79b4f5 100644
--- a/package/sdl_sound/sdl_sound.mk
+++ b/package/sdl_sound/sdl_sound.mk
@@ -10,7 +10,7 @@ SDL_SOUND_SITE = http://icculus.org/SDL_sound/downloads
 SDL_SOUND_LICENSE = LGPL-2.1+
 SDL_SOUND_LICENSE_FILES = COPYING
 SDL_SOUND_INSTALL_STAGING = YES
-SDL_SOUND_DEPENDENCIES = sdl
+SDL_SOUND_DEPENDENCIES = sdl2
 SDL_SOUND_CONF_OPTS = \
 	--with-sdl-prefix=$(STAGING_DIR)/usr \
 	--with-sdl-exec-prefix=$(STAGING_DIR)/usr \
@@ -63,6 +63,14 @@ else
 SDL_SOUND_CONF_OPTS += --disable-mmx
 endif
 
+define SDL_SOUND_PATCH_CONFIGURE
+	(cd $(@D); \
+	sed -ie 's/sdl-config/sdl2-config/g' configure \
+	)
+endef
+
+SDL_SOUND_PRE_CONFIGURE_HOOKS += SDL_SOUND_PATCH_CONFIGURE
+
 define SDL_SOUND_REMOVE_PLAYSOUND
 	rm $(addprefix $(TARGET_DIR)/usr/bin/,playsound playsound_simple)
 endef
diff --git a/package/skeleton-init-common/skeleton-init-common.mk b/package/skeleton-init-common/skeleton-init-common.mk
index 4a67f51c19..afab79b463 100644
--- a/package/skeleton-init-common/skeleton-init-common.mk
+++ b/package/skeleton-init-common/skeleton-init-common.mk
@@ -78,7 +78,7 @@ endif
 define SKELETON_INIT_COMMON_SET_ROOT_PASSWD
 	$(SED) s,^root:[^:]*:,root:$(SKELETON_INIT_COMMON_ROOT_PASSWORD):, $(TARGET_DIR)/etc/shadow
 endef
-SKELETON_INIT_COMMON_TARGET_FINALIZE_HOOKS += SKELETON_INIT_COMMON_SET_ROOT_PASSWD
+#SKELETON_INIT_COMMON_TARGET_FINALIZE_HOOKS += SKELETON_INIT_COMMON_SET_ROOT_PASSWD
 
 ifeq ($(BR2_SYSTEM_BIN_SH_NONE),y)
 define SKELETON_INIT_COMMON_SET_BIN_SH
diff --git a/package/usbmount/0001-rules-fix.patch b/package/usbmount/0001-rules-fix.patch
deleted file mode 100644
index c71b613c8a..0000000000
--- a/package/usbmount/0001-rules-fix.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
----
- usbmount.rules |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-Index: b/usbmount.rules
-===================================================================
---- a/usbmount.rules
-+++ b/usbmount.rules
-@@ -1,7 +1,7 @@
- # Rules for USBmount -*- conf -*-
-
- KERNEL=="sd*", DRIVERS=="sbp2",		ACTION=="add",	RUN+="/usr/share/usbmount/usbmount add"
--KERNEL=="sd*", SUBSYSTEMS=="usb",	ACTION=="add",	RUN+="/usr/share/usbmount/usbmount add"
--KERNEL=="ub*", SUBSYSTEMS=="usb",	ACTION=="add",	RUN+="/usr/share/usbmount/usbmount add"
-+KERNEL=="sd*", SUBSYSTEM=="block",	ACTION=="add",	RUN+="/usr/share/usbmount/usbmount add"
-+KERNEL=="ub*", SUBSYSTEM=="block",	ACTION=="add",	RUN+="/usr/share/usbmount/usbmount add"
- KERNEL=="sd*",				ACTION=="remove",	RUN+="/usr/share/usbmount/usbmount remove"
- KERNEL=="ub*",				ACTION=="remove",	RUN+="/usr/share/usbmount/usbmount remove"
diff --git a/package/usbmount/usbmount.mk b/package/usbmount/usbmount.mk
index 538602fdcb..9c6bfd894c 100644
--- a/package/usbmount/usbmount.mk
+++ b/package/usbmount/usbmount.mk
@@ -22,7 +22,7 @@ define USBMOUNT_INSTALL_TARGET_CMDS
 	$(INSTALL) -m 0644 -D $(@D)/usbmount.rules $(TARGET_DIR)/lib/udev/rules.d/usbmount.rules
 	$(INSTALL) -m 0644 -D $(@D)/usbmount.conf $(TARGET_DIR)/etc/usbmount/usbmount.conf
 
-	mkdir -p $(addprefix $(TARGET_DIR)/media/usb,0 1 2 3 4 5 6 7)
+	mkdir -p $(addprefix $(TARGET_DIR)/recalbox/share_init/externals/usb,0 1 2 3 4 5 6 7)
 endef
 
 $(eval $(generic-package))
diff --git a/package/vulkan-headers/vulkan-headers.hash b/package/vulkan-headers/vulkan-headers.hash
index c43736405c..ec0f3bc43b 100644
--- a/package/vulkan-headers/vulkan-headers.hash
+++ b/package/vulkan-headers/vulkan-headers.hash
@@ -1,3 +1,3 @@
 # Locally calculated
-sha256  7239108c372f1fbe365bd8d1610ca2bb4e72b73b2151f2551bf9df54dd539639  vulkan-headers-1.2.203.tar.gz
+sha256  f6e44769c42685fd5d380aea280a2406a431fe584d7ae3256ce83958cd0899f4  vulkan-headers-1.3.260.tar.gz
 sha256  cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30  LICENSE.txt
diff --git a/package/vulkan-headers/vulkan-headers.mk b/package/vulkan-headers/vulkan-headers.mk
index 13cae1e685..1e72736341 100644
--- a/package/vulkan-headers/vulkan-headers.mk
+++ b/package/vulkan-headers/vulkan-headers.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-VULKAN_HEADERS_VERSION = 1.2.203
+VULKAN_HEADERS_VERSION = 1.3.260
 VULKAN_HEADERS_SITE = $(call github,KhronosGroup,Vulkan-Headers,v$(VULKAN_HEADERS_VERSION))
 VULKAN_HEADERS_LICENSE = Apache-2.0
 VULKAN_HEADERS_LICENSE_FILES = LICENSE.txt
diff --git a/package/x265/x265.mk b/package/x265/x265.mk
index 51c39df4cd..ada7f1e4eb 100644
--- a/package/x265/x265.mk
+++ b/package/x265/x265.mk
@@ -35,4 +35,8 @@ else
 X265_CONF_OPTS += -DENABLE_CLI=OFF
 endif
 
+ifeq ($(BR2_ARM_CPU_ARMV6),y)
+X265_CONF_OPTS += -DCROSS_COMPILE_ARM=1
+endif
+
 $(eval $(cmake-package))
diff --git a/support/scripts/mkusers b/support/scripts/mkusers
index 4fc06f8fdf..b92a06c744 100755
--- a/support/scripts/mkusers
+++ b/support/scripts/mkusers
@@ -330,7 +330,9 @@ add_one_user() {
     fi
 
     # Remove any previous instance of this user
-    for _f in "${PASSWD}" "${SHADOW}"; do
+    #for _f in "${PASSWD}" "${SHADOW}"; do
+    # recalbox doesn't use the /etc/shadow
+    for _f in "${PASSWD}"; do
         sed -r -i --follow-symlinks -e '/^'"${username}"':.*/d;' "${_f}"
     done
 
@@ -364,9 +366,10 @@ add_one_user() {
            "${username}" "${uid}" "${_gid}"     \
            "${comment}" "${_home}" "${_shell}"  \
            >>"${PASSWD}"
-    printf "%s:%s:::::::\n"      \
-           "${username}" "${_passwd}"   \
-           >>"${SHADOW}"
+    # recalbox doesn't use the /etc/shadow
+    #printf "%s:%s:::::::\n"      \
+    #       "${username}" "${_passwd}"   \
+    #       >>"${SHADOW}"
 
     # Add the user to its additional groups
     if [ "${groups}" != "-" ]; then
diff --git a/system/device_table.txt b/system/device_table.txt
index dc1af51810..96c4c7bbcb 100644
--- a/system/device_table.txt
+++ b/system/device_table.txt
@@ -11,7 +11,6 @@
 /etc					d	755	0	0	-	-	-	-	-
 /root					d	700	0	0	-	-	-	-	-
 /var/www				d	755	33	33	-	-	-	-	-
-/etc/shadow				f	600	0	0	-	-	-	-	-
 /etc/passwd				f	644	0	0	-	-	-	-	-
 /etc/network/if-up.d			d	755	0	0	-	-	-	-	-
 /etc/network/if-pre-up.d		d	755	0	0	-	-	-	-	-
diff --git a/system/skeleton/etc/passwd b/system/skeleton/etc/passwd
index d8281d2585..50e0d5ca4f 100644
--- a/system/skeleton/etc/passwd
+++ b/system/skeleton/etc/passwd
@@ -1,4 +1,4 @@
-root:x:0:0:root:/root:/bin/sh
+root:x:0:0:root:/recalbox/share/system:/bin/sh
 daemon:x:1:1:daemon:/usr/sbin:/bin/false
 bin:x:2:2:bin:/bin:/bin/false
 sys:x:3:3:sys:/dev:/bin/false
There is some DTS related configs here: https://gitlab.com/recalbox/recalbox/-/ ... stom/linux

mdrjr
Site Admin
Posts: 12093
Joined: Fri Feb 22, 2013 11:34 pm
languages_spoken: english, portuguese
ODROIDs: -
Location: Brazil
Has thanked: 8 times
Been thanked: 151 times
Contact:

Re: [ffmpeg] h264_v4l2m2m: can't configure decoder

Post by mdrjr »

None of this would impact on it.
At this point I have no idea.

It would be a good idea now to enable kernel debug messages, make it more verbose and see if the mfc probing isn't being deffered by something missing or not loading.
Again, with our 6.1 tree it works just fine and I don't have to do anything special to MFC work on 6.1

Arcueid
Posts: 31
Joined: Sun Dec 17, 2017 7:27 pm
languages_spoken: english, french
ODROIDs: XU4
Has thanked: 0
Been thanked: 0
Contact:

Re: [ffmpeg] h264_v4l2m2m: can't configure decoder

Post by Arcueid »

Ok thanks.

Il also seen xu4 is now EOL product, I may search for another board to replace it ^^

ageevp
Posts: 56
Joined: Fri Oct 13, 2017 3:22 pm
languages_spoken: english
ODROIDs: odroid xu4
Has thanked: 0
Been thanked: 1 time
Contact:

Re: [ffmpeg] h264_v4l2m2m: can't configure decoder

Post by ageevp »

ffplay -i '/home/odroodroid/Downloads/bbb_sunflower_1080p_30fps_stereo_abl.mp4' -an -vcodec h264_v4l2m2m -b:v 2M
ffplay version 4.3.6-0+deb11u1 Copyright (c) 2003-2023 the FFmpeg developers
built with gcc 10 (Debian 10.2.1-6)
configuration: --prefix=/usr --extra-version=0+deb11u1 --toolchain=hardened --libdir=/usr/lib/arm-linux-gnueabihf --incdir=/usr/include/arm-linux-gnueabihf --arch=arm --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
libavutil 56. 51.100 / 56. 51.100
libavcodec 58. 91.100 / 58. 91.100
libavformat 58. 45.100 / 58. 45.100
libavdevice 58. 10.100 / 58. 10.100
libavfilter 7. 85.100 / 7. 85.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 7.100 / 5. 7.100
libswresample 3. 7.100 / 3. 7.100
libpostproc 55. 7.100 / 55. 7.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/odroodroid/Downloads/bbb_sunflower_1080p_30fps_stereo_abl.mp4':
Metadata:
major_brand : isom
minor_version : 1
compatible_brands: isomavc1
creation_time : 2013-12-16T17:46:34.000000Z
title : Big Buck Bunny, Sunflower version
artist : Blender Foundation 2008, Janus Bager Kristensen 2013
comment : Creative Commons Attribution 3.0 - http://bbb3d.renderfarming.net
genre : Animation
composer : Sacha Goedegebure
Duration: 00:10:34.53, start: 0.000000, bitrate: 5482 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x2160 [SAR 1:1 DAR 8:9], 4999 kb/s, 30 fps, 30 tbr, 30k tbn, 60 tbc (default)
Metadata:
creation_time : 2013-12-16T17:46:34.000000Z
handler_name : GPAC ISO Video Handler
Stream #0:1(und): Audio: mp3 (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 160 kb/s (default)
Metadata:
creation_time : 2013-12-16T17:46:41.000000Z
handler_name : GPAC ISO Audio Handler
Stream #0:2(und): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, 5.1(side), fltp, 320 kb/s (default)
Metadata:
creation_time : 2013-12-16T17:46:41.000000Z
handler_name : GPAC ISO Audio Handler
Side data:
audio service type: main
[h264_v4l2m2m @ 0xa2335b90] Using device /dev/video6
[h264_v4l2m2m @ 0xa2335b90] driver 's5p-mfc' on card 's5p-mfc-dec' in mplane mode
[h264_v4l2m2m @ 0xa2335b90] requesting formats: output=H264 capture=NM21

Post Reply

Return to “General Topics”

Who is online

Users browsing this forum: No registered users and 1 guest