I have raspberry piOS with i3 desktop.
I followed the instructions on this page, which describes official tweaks for rpi4 and Kodi.
Initially I set the gpu mem value to 1024 and it wouldn't boot. So I set the value to 256 and kodi still freezes on launch.
EDIT: increased to 512 still no change
EDIT 2:
here is the last few hundred lines from the the log file at ~/.kodi/temp/kodi.log
021-05-08 20:24:56.333 T:2972735520 NOTICE: EGL_EXTENSIONS = EGL_ANDROID_blob_cache EGL_EXT_buffer_age EGL_EXT_image_dma_buf_import EGL_EXT_image_dma_buf_import_modifiers EGL_KHR_cl_event2 EGL_KHR_config_attribs EGL_KHR_create_context EGL_KHR_create_context_no_error EGL_KHR_fence_sync EGL_KHR_get_all_proc_addresses EGL_KHR_gl_colorspace EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_KHR_no_config_context EGL_KHR_reusable_sync EGL_KHR_surfaceless_context EGL_EXT_pixel_format_float EGL_KHR_wait_sync EGL_MESA_configless_context EGL_MESA_drm_image EGL_MESA_image_dma_buf_export EGL_MESA_query_driver EGL_WL_bind_wayland_display
2021-05-08 20:24:56.333 T:2972735520 NOTICE: EGL_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_EXT_client_extensions EGL_KHR_debug EGL_EXT_platform_wayland EGL_EXT_platform_x11 EGL_MESA_platform_gbm EGL_MESA_platform_surfaceless EGL_EXT_platform_device
2021-05-08 20:24:56.336 T:2972735520 NOTICE: Checking resolution 16
2021-05-08 20:24:56.479 T:2972735520 WARNING: CGBMUtils::DestroySurface - surface already destroyed
2021-05-08 20:24:56.523 T:2972735520 NOTICE: GL_VENDOR = Broadcom
2021-05-08 20:24:56.523 T:2972735520 NOTICE: GL_RENDERER = V3D 4.2
2021-05-08 20:24:56.523 T:2972735520 NOTICE: GL_VERSION = OpenGL ES 3.1 Mesa 19.3.2
2021-05-08 20:24:56.523 T:2972735520 NOTICE: GL_SHADING_LANGUAGE_VERSION = OpenGL ES GLSL ES 3.10
2021-05-08 20:24:56.523 T:2972735520 NOTICE: GL_EXTENSIONS = GL_EXT_blend_minmax GL_EXT_multi_draw_arrays GL_EXT_texture_format_BGRA8888 GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth24 GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_mapbuffer GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_stencil8 GL_OES_texture_3D GL_OES_texture_float GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_OES_vertex_half_float GL_EXT_texture_sRGB_decode GL_OES_EGL_image GL_OES_depth_texture GL_OES_packed_depth_stencil GL_EXT_texture_type_2_10_10_10_REV GL_OES_get_program_binary GL_APPLE_texture_max_level GL_EXT_discard_framebuffer GL_EXT_read_format_bgra GL_EXT_frag_depth GL_NV_fbo_color_attachments GL_OES_EGL_image_external GL_OES_EGL_sync GL_OES_vertex_array_object GL_EXT_occlusion_query_boolean GL_EXT_texture_rg GL_EXT_unpack_subimage GL_NV_draw_buffers GL_NV_read_buffer GL_NV_read_depth GL_NV_read_depth_stencil GL_NV_read_stencil GL_EXT_draw_buffers GL_EXT_map_buffer_range GL_KHR_debug GL_KHR_texture_compression_astc_ldr GL_OES_depth_texture_cube_map GL_OES_required_internalformat GL_OES_surfaceless_context GL_EXT_color_buffer_float GL_EXT_sRGB_write_control GL_EXT_separate_shader_objects GL_EXT_shader_implicit_conversions GL_EXT_shader_integer_mix GL_EXT_base_instance GL_EXT_compressed_ETC1_RGB8_sub_texture GL_EXT_draw_elements_base_vertex GL_EXT_primitive_bounding_box GL_EXT_shader_io_blocks GL_EXT_texture_border_clamp GL_EXT_texture_norm16 GL_KHR_context_flush_control GL_NV_image_formats GL_OES_draw_elements_base_vertex GL_OES_primitive_bounding_box GL_OES_shader_io_blocks GL_OES_texture_border_clamp GL_OES_texture_stencil8 GL_OES_texture_storage_multisample_2d_array GL_EXT_buffer_storage GL_EXT_float_blend GL_KHR_no_error GL_KHR_texture_compression_astc_sliced_3d GL_OES_EGL_image_external_essl3 GL_OES_shader_image_atomic GL_MESA_shader_integer_functions GL_KHR_parallel_shader_compile GL_MESA_framebuffer_flip_y GL_EXT_texture_query_lod
2021-05-08 20:24:57.339 T:2777542864 NOTICE: Running database version Addons27
2021-05-08 20:24:57.348 T:2777542864 NOTICE: Running database version ViewModes6
2021-05-08 20:24:57.351 T:2777542864 NOTICE: Running database version Textures13
2021-05-08 20:24:57.358 T:2777542864 NOTICE: Running database version MyMusic72
2021-05-08 20:24:57.367 T:2777542864 NOTICE: Running database version MyVideos116
2021-05-08 20:24:57.370 T:2777542864 NOTICE: Running database version TV32
2021-05-08 20:24:57.372 T:2777542864 NOTICE: Running database version Epg12
2021-05-08 20:24:57.401 T:2972735520 NOTICE: start dvd mediatype detection
2021-05-08 20:24:57.438 T:2972735520 NOTICE: load skin from: /usr/share/kodi/addons/skin.estuary (version: 2.0.27)
2021-05-08 20:24:57.766 T:2972735520 WARNING: JSONRPC: Could not parse type "Setting.Details.SettingList"
2021-05-08 20:24:57.888 T:2972735520 NOTICE: Register - new keyboard device registered on application->keyboard: Keyboard (0000:0000)
2021-05-08 20:24:57.888 T:2972735520 NOTICE: Register - new mouse device registered on application->mouse: Mouse (0000:0000)
2021-05-08 20:24:57.890 T:2972735520 NOTICE: Loading player core factory settings from special://xbmc/system/playercorefactory.xml.
2021-05-08 20:24:57.891 T:2972735520 NOTICE: Loaded playercorefactory configuration
2021-05-08 20:24:57.891 T:2972735520 NOTICE: Loading player core factory settings from special://masterprofile/playercorefactory.xml.
2021-05-08 20:24:57.891 T:2972735520 NOTICE: special://masterprofile/playercorefactory.xml does not exist. Skipping.
2021-05-08 20:24:57.897 T:2972735520 NOTICE: initialize done
2021-05-08 20:24:57.897 T:2972735520 NOTICE: Running the application...
2021-05-08 20:24:57.902 T:2972735520 NOTICE: starting zeroconf publishing
2021-05-08 20:24:57.902 T:2676277456 NOTICE: ES: Starting UDP Event server on port 9777
2021-05-08 20:24:57.902 T:2676277456 NOTICE: UDP: Listening on port 9777 (ipv6 : false)
2021-05-08 20:24:57.915 T:2972735520 NOTICE: VideoPlayer::OpenFile: /var/run/lirc/lircd
2021-05-08 20:24:57.917 T:2641334480 NOTICE: Creating InputStream
2021-05-08 20:24:57.918 T:2641334480 ERROR: CVideoPlayer::OpenInputStream - error opening [/var/run/lirc/lircd]
2021-05-08 20:24:57.918 T:2641334480 NOTICE: CVideoPlayer::OnExit()
2021-05-08 20:24:58.142 T:2726633680 NOTICE: Register - new cec device registered on cec->RPI: CEC Adapter (2708:1001)
2021-05-08 20:24:58.402 T:2972735520 NOTICE: CVideoPlayer::CloseFile()
2021-05-08 20:24:58.402 T:2972735520 NOTICE: VideoPlayer: waiting for threads to exit
2021-05-08 20:24:58.402 T:2972735520 NOTICE: VideoPlayer: finished waiting
EDIT 3:
I noticed the log complaining about permissions earlier in the file, so I ran kodi as sudo and it opened just fine. However, exiting the program through the GUI caused a system freeze.
It launches, emits a sound, then a popup says something about using an old version and that a newer one is available. I then cannot select "ok" and I have to reboot the pi.
When I reboot, I go to upgrade kodi but apt says the newest version is already installed.