Jump to content

NanoPi R4S: Is the armbian-built kernel has the GPU driver support?


Recommended Posts

Posted (edited)

Hi, all.

 

According to:

https://www.friendlyelec.com/index.php?route=product/product&product_id=284

GPU    Mali-T864 GPU,supports OpenGL® ES1.1/2.0/3.0/3.1, OpenCL™, DX11, and AFBC

 

And:

https://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html

> Mali-T860 GPU

 

The NanoPi R4S uses an RK3399 chip, but I do not find any GPU support on the kernel.

https://paste.armbian.com/adunopatid

 

```bash
$ ls -l /dev/mali*
zsh: no matches found: /dev/mali*

```

 

Am I missing anything?

Edited by Junkman
Posted

> Hardware support

> Debian 11 comes with Mesa 20.3 which supports the Mali 400 and 450 GPUs via the Lima driver, and various Mali G-series and T-series GPUs via the Panfrost driver. This will cover most modern ARM SoCs, including those found in the Pinebook and Pinebook Pro devices.

Panfrost supports the Mali T720 (only up to OpenGL 2.1 and OpenGL ES 2.0), Mali T760, Mali T820, Mali T860, Mali G72, Mali G31, and Mali G52.

 

PanfrostLima - Debian Wiki
https://wiki.debian.org/PanfrostLima

 

Can I just switch to Armbian Debian 11 and install Panfrost driver to enable GPU on nano pi r4s?

Posted (edited)

Hi, @Werner. I installed the packages, does the following output means I enabled Panfrost GPU driver successfully?

But the GPU interrupts indicate that GPU seems not working...

 

sudo apt install -y libglx-mesa0 libgl1-mesa-dri mesa-utils-extra
sudo apt install -y xvfb
sudo apt install -y glmark2-es2

$ modinfo panfrost
filename:       /lib/modules/5.15.93-rockchip64/kernel/drivers/gpu/drm/panfrost/panfrost.ko.xz
license:        GPL v2
description:    Panfrost DRM Driver
author:         Panfrost Project Developers
alias:          of:N*T*Cmediatek,mt8183-maliC*
alias:          of:N*T*Cmediatek,mt8183-mali
alias:          of:N*T*Carm,mali-bifrostC*
alias:          of:N*T*Carm,mali-bifrost
alias:          of:N*T*Carm,mali-t880C*
alias:          of:N*T*Carm,mali-t880
alias:          of:N*T*Carm,mali-t860C*
alias:          of:N*T*Carm,mali-t860
alias:          of:N*T*Carm,mali-t830C*
alias:          of:N*T*Carm,mali-t830
alias:          of:N*T*Carm,mali-t820C*
alias:          of:N*T*Carm,mali-t820
alias:          of:N*T*Carm,mali-t760C*
alias:          of:N*T*Carm,mali-t760
alias:          of:N*T*Carm,mali-t720C*
alias:          of:N*T*Carm,mali-t720
alias:          of:N*T*Carm,mali-t628C*
alias:          of:N*T*Carm,mali-t628
alias:          of:N*T*Carm,mali-t624C*
alias:          of:N*T*Carm,mali-t624
alias:          of:N*T*Carm,mali-t604C*
alias:          of:N*T*Carm,mali-t604
alias:          of:N*T*Camlogic,meson-g12a-maliC*
alias:          of:N*T*Camlogic,meson-g12a-mali
alias:          of:N*T*Camlogic,meson-gxm-maliC*
alias:          of:N*T*Camlogic,meson-gxm-mali
depends:        gpu-sched
intree:         Y
name:           panfrost
vermagic:       5.15.93-rockchip64 SMP preempt mod_unload aarch64
sig_id:         PKCS#7
signer:         Build time autogenerated kernel key
sig_key:        11:91:39:AD:08:7D:20:86:21:CA:B4:85:5F:90:99:3A:DC:D2:D0:8B
sig_hashalgo:   sha1
signature:      49:95:5F:F9:90:59:E6:E5:74:DC:D9:F8:1A:41:54:EE:69:9C:E3:3E:
		A8:FE:06:C2:26:B9:D7:5C:21:6D:4B:66:58:07:7A:63:B6:F0:DA:1F:
		C8:84:2B:34:4B:4F:1E:81:10:38:01:07:4F:BF:49:17:F6:EC:03:6C:
		17:E4:C1:81:14:09:F5:61:A4:2B:FC:09:B9:65:B5:D2:2E:0D:99:EE:
		D8:3E:FC:B9:0B:16:E7:47:F8:74:9F:0B:68:A4:76:85:2C:DD:C0:08:
		23:66:B4:2A:0B:FA:27:A9:2B:04:7F:31:9A:6E:92:3D:D4:83:0B:36:
		AF:88:CA:70:F8:42:49:C5:7E:40:C9:9B:52:77:40:66:07:17:10:F9:
		C0:A2:37:EA:AC:CE:B5:70:C9:AA:64:40:7E:75:43:A7:B9:9C:C5:97:
		E8:5C:3A:54:FB:C5:FE:97:AC:80:87:B3:9B:BF:54:A0:75:83:EF:86:
		A1:27:D5:D0:B1:EB:2E:6C:16:E7:48:93:73:78:38:F5:8B:81:54:0D:
		62:0A:3C:0D:B4:A6:C0:17:B2:23:13:E1:2F:8C:E3:42:09:E7:3E:30:
		CF:30:80:7E:2E:1A:BF:28:00:01:D3:5B:81:A4:B5:E5:08:37:07:60:
		68:4B:73:61:CB:A1:B1:26:76:4D:09:0B:FC:7A:2D:E8:9B:7F:CB:60:
		18:58:C0:52:5D:11:94:03:E4:08:61:F6:2E:D1:B8:33:16:1E:2E:59:
		6B:18:A7:4E:1A:E1:BE:A5:5E:CD:BF:B0:03:A1:80:64:74:DC:6A:74:
		6D:8F:60:7C:5F:BC:ED:9A:82:CA:8E:C6:30:FF:58:43:48:1F:11:A9:
		E7:FB:63:2A:54:AF:BE:9A:C1:D8:1F:6C:69:B6:4E:78:F0:EB:7A:87:
		35:44:5C:73:FF:8B:43:69:EC:87:F4:F4:AB:6A:4E:D8:C4:EC:5E:37:
		89:AA:6F:CD:5D:F1:07:DE:4D:FE:B3:78:00:A7:C9:79:4D:7B:1E:E2:
		05:B4:4E:D9:F0:28:33:B7:8B:F4:FE:6D:5D:18:A6:DF:F9:C6:80:D5:
		F2:A6:5B:65:4E:20:F6:EB:8E:FB:37:55:0D:56:64:65:F5:94:F8:3E:
		9E:DD:C2:FD:B4:9D:1F:33:60:02:CD:F0:8C:14:0D:5B:2F:2B:9F:45:
		8E:ED:37:7B:6A:FF:5B:BF:E7:1A:40:07:55:51:CE:8A:C2:F0:4F:68:
		35:81:AB:81:48:F7:1E:48:D7:5A:AC:1D:58:9B:4B:85:35:76:34:25:
		7F:48:59:11:A7:64:11:64:95:93:E9:F9:AD:5B:4D:83:7A:20:0E:F9:
		12:99:19:B2:FB:11:56:98:56:53:38:7A
parm:           unstable_ioctls:bool

$ sudo modprobe -vv panfrost
modprobe: INFO: ../libkmod/libkmod.c:365 kmod_set_log_fn() custom logging function 0xaaaad1f0c460 registered
insmod /lib/modules/5.15.93-rockchip64/kernel/drivers/gpu/drm/panfrost/panfrost.ko.xz 
modprobe: INFO: ../libkmod/libkmod.c:332 kmod_unref() context 0xaaaaf17474a0 released

$ lsmod | grep -w panfrost
panfrost               69632  0
gpu_sched              40960  1 panfrost

$ xvfb-run es2_info
EGL_VERSION: 1.5
EGL_VENDOR: Mesa Project
EGL_EXTENSIONS:
    EGL_EXT_create_context_robustness, EGL_KHR_cl_event2, 
    EGL_KHR_config_attribs, EGL_KHR_context_flush_control, 
    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_base, 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_query_driver
EGL_CLIENT_APIS: OpenGL OpenGL_ES 
GL_VERSION: OpenGL ES 3.2 Mesa 21.2.6
GL_RENDERER: llvmpipe (LLVM 12.0.0, 128 bits)
GL_EXTENSIONS:
    GL_EXT_blend_minmax, GL_EXT_multi_draw_arrays, 
    GL_EXT_texture_compression_s3tc, GL_EXT_texture_compression_dxt1, 
    GL_EXT_texture_compression_rgtc, 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_float_linear, 
    GL_OES_texture_half_float, GL_OES_texture_half_float_linear, 
    GL_OES_texture_npot, GL_OES_vertex_half_float, GL_EXT_draw_instanced, 
    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_NV_conditional_render, 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_OES_viewport_array, GL_ANGLE_pack_reverse_row_order, 
    GL_ANGLE_texture_compression_dxt3, GL_ANGLE_texture_compression_dxt5, 
    GL_EXT_occlusion_query_boolean, GL_EXT_robustness, 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_robustness, GL_KHR_texture_compression_astc_ldr, 
    GL_NV_pixel_buffer_object, 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_group_vote, 
    GL_EXT_shader_implicit_conversions, GL_EXT_shader_integer_mix, 
    GL_EXT_tessellation_point_size, GL_EXT_tessellation_shader, 
    GL_ANDROID_extension_pack_es31a, GL_EXT_base_instance, 
    GL_EXT_compressed_ETC1_RGB8_sub_texture, GL_EXT_copy_image, 
    GL_EXT_draw_buffers_indexed, GL_EXT_draw_elements_base_vertex, 
    GL_EXT_gpu_shader5, GL_EXT_polygon_offset_clamp, 
    GL_EXT_primitive_bounding_box, GL_EXT_render_snorm, 
    GL_EXT_shader_io_blocks, GL_EXT_texture_border_clamp, 
    GL_EXT_texture_buffer, GL_EXT_texture_cube_map_array, 
    GL_EXT_texture_norm16, GL_EXT_texture_view, 
    GL_KHR_blend_equation_advanced, GL_KHR_context_flush_control, 
    GL_KHR_robust_buffer_access_behavior, GL_NV_image_formats, 
    GL_OES_copy_image, GL_OES_draw_buffers_indexed, 
    GL_OES_draw_elements_base_vertex, GL_OES_gpu_shader5, 
    GL_OES_primitive_bounding_box, GL_OES_sample_shading, 
    GL_OES_sample_variables, GL_OES_shader_io_blocks, 
    GL_OES_shader_multisample_interpolation, GL_OES_tessellation_point_size, 
    GL_OES_tessellation_shader, GL_OES_texture_border_clamp, 
    GL_OES_texture_buffer, GL_OES_texture_cube_map_array, 
    GL_OES_texture_stencil8, GL_OES_texture_storage_multisample_2d_array, 
    GL_OES_texture_view, GL_EXT_blend_func_extended, GL_EXT_buffer_storage, 
    GL_EXT_float_blend, GL_EXT_geometry_point_size, GL_EXT_geometry_shader, 
    GL_EXT_texture_filter_minmax, GL_EXT_texture_sRGB_R8, 
    GL_EXT_texture_sRGB_RG8, GL_KHR_no_error, 
    GL_KHR_texture_compression_astc_sliced_3d, GL_OES_EGL_image_external_essl3, 
    GL_OES_geometry_point_size, GL_OES_geometry_shader, 
    GL_OES_shader_image_atomic, GL_EXT_clip_cull_distance, 
    GL_EXT_disjoint_timer_query, GL_EXT_texture_compression_s3tc_srgb, 
    GL_MESA_shader_integer_functions, GL_EXT_clip_control, 
    GL_EXT_color_buffer_half_float, GL_EXT_texture_compression_bptc, 
    GL_KHR_parallel_shader_compile, GL_EXT_EGL_image_storage, 
    GL_EXT_shader_framebuffer_fetch_non_coherent, GL_EXT_texture_shadow_lod, 
    GL_MESA_framebuffer_flip_y, GL_EXT_depth_clamp, GL_EXT_texture_query_lod, 
    GL_MESA_bgra

$ xvfb-run glmark2-es2 --fullscreen
TBD

$ cat /proc/interrupts | grep -i panfrost
 64:          0          0          0          0          0          0     GICv3  52 Level     panfrost-job
 65:          0          0          0          0          0          0     GICv3  53 Level     panfrost-mmu
 66:          6          0          0          0          0          0     GICv3  51 Level     panfrost-gpu

 

 

Edited by Junkman

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines