UniformBuffer Posted February 18, 2020 Posted February 18, 2020 (edited) Armbianmonitor: http://ix.io/2c3L Hi, first of all, thanks for all the good work on supporting all these single board computer. There no exist other disto that can do it. Indeed, this is the only general purpouse linux distro that officially support Le Potato. I would like to ask some help to solve these problems that i have encountered using my board. I have searched on the forum and i have not found any post on these problems. Sorry to be vague in the title, but all these bug appeared after the kernel update, so they may be caused by the same problem. I use a Libre Computer Le Potato inside a Sunfounder Raspad kit. The system is an Armbian Stable with apt linked to Debian Sid repository, so i receive stable updates from Armbian and unstable updates from Debian. I know that Sid is experimental and a lot of thing could not work, but i don't think these problem are related to this, but instead to something wrong in the kernel since these problems appeared after the kernel update, in November 2019, if i remember well. I will try to describe the problems accuratly as much as i can. If some more data is needed, i can provide all the informations. Impossible to use all the memory: I have noticed that the system does not use ram over 1GB, but instead start to allocate to the swap memory. I have tried to reduce the swappiness to 0,but it does not help. It is like there is an "hard limit" that does not allow the system to allocate more than 1GB of ram. I don't know if it can be helpful, but after some research i have noticed that on the /proc/meminfo, at the voice CmaTotal, the value is setted on 917504 kB. If i'm not wrong cma is a separate allocation system that reserve some of the system memory. On the armbianEnv.txt, the cma is setted on 512M; it is strange that the value is not the same. I have also tried to set a lower value, but nothing happen. Unable to use any kind of drm kms program: For a university project that i'm doing, i need to use the drm kms system, but seems that any kind of program that use that system does not work. I have tried: Removed the forced software rendering on Xorg (that make X use the drm system); the desktop appear, but blink continuously and after some moment become unresponsive GDM: Crash at startup Weston: Crash at startup kmscube: Start, but i get no signal from monitor until i terminate with CTRL-C the program Many other test programs found on drm test of mesa library have the same result I have also noticed that when i use some of the mentioned program, the dmesg report something like "alloc_contig_range: [X, Y) PFNs busy". From some research, it seems to be a problem in the memory allocation using the cma system, so the problem could be connected with the previous one. Before the kernel update, the drm system worked simply using software rendering. Now it does not work nor using gpu, nor using software. Audio problem: After the kernel update the audio sound like an old radio. I can hear what the audio is playing, but it is very confused and disturbed. The audio come from the HDMI. On the dmesg appear: [ 33.305753] hdmi-audio-codec hdmi-audio-codec.5.auto: hdmi_codec_hw_params() width 16 rate 44100 channels 2 [ 33.305788] meson-dw-hdmi c883a000.hdmi-tx: channels=2 sample_width=16 sample_rate=44100 [ 33.305877] __setup_desc: width=16 channels=2 desc=0 [ 33.305902] meson_aiu_i2s_dma_hw_params: physical_width=16 buffer_bytes=17664 period_bytes=4352 [ 33.306008] __dma_init_mem [ 33.348631] meson-aiu-i2s meson-aiu-i2s.3.auto: Failed to set sysclk to 0Hz Then also continuously appear: [ 33.362214] __hold: enable=1 [ 33.362280] __dma_enable: enable=0 [ 33.363573] meson-aiu-i2s meson-aiu-i2s.3.auto: Failed to set sysclk to 0Hz Lastly, i don't know if could be important, but before the February update, the monitor was not centered, but have an offset of half a centimeter that move the screen on the bottom. Like i said, this problem is now fixed with the last kernel update. I think it's all. If there are some question or missing data, i will provide anything is needed. Thanks again for the dedicated time and the effort invested on the Armbian project. Edited February 18, 2020 by UniformBuffer Clarification
lanefu Posted February 18, 2020 Posted February 18, 2020 16 minutes ago, UniformBuffer said: Armbianmonitor: http://ix.io/2c3L Hi, first of all, thanks for all the good work on supporting all these single board computer. There no exist other disto that can do it. Indeed, this is the only general purpouse linux distro that officially support Le Potato. I would like to ask some help to solve these problems that i have encountered using my board. I have searched on the forum and i have not found any post on these problems. Sorry to be vague in the title, but all these bug appeared after the kernel update, so they may be caused by the same problem. I use a Libre Computer Le Potato inside a Sunfounder Raspad kit. The system is an Armbian Stable with apt linked to Debian Sid repository, so i receive stable updates from Armbian and unstable updates from Debian. I know that Sid is experimental and a lot of thing could not work, but i don't think these problem are related to this, but instead to something wrong in the kernel since these problems appeared after the kernel update, in November 2019, if i remember well. I will try to describe the problems accuratly as much as i can. If some more data is needed, i can provide all the informations Sorry you're having trouble. we switched from a special kernel branch to mainline... Honestly you'll probably want to roll back to the older kernel for all the DRM stuff at this point. Try this image and see if its any better.. The audio has hte same issue on this image tho. https://armbian.lane-fu.com/Armbian_20.02.0_Lepotato_buster_current_5.4.20_desktop.img
TonyMac32 Posted February 19, 2020 Posted February 19, 2020 Echoing what Lanefu said, thanks for the info, and sorry about the rough edges! A new set of sound patches have been submitted upstream, I will take a look at them and see if they can be used as a means of cleaning up our current implementation (targeted originally for 4.19). The memory limit seems to be a potential u-boot issue. For the display, the Amlogic clock framework has been an ongoing project for mainline, with a lot of changes. I will spend some quality time with everyone's favorite S905X board and get back to you. 🙂 2
lanefu Posted February 19, 2020 Posted February 19, 2020 6 hours ago, UniformBuffer said: Impossible to use all the memory: I have noticed that the system does not use ram over 1GB, but instead start to allocate to the swap memory. I have tried to reduce the swappiness to 0,but it does not help. It is like there is an "hard limit" that does not allow the system to allocate more than 1GB of ram. I don't know if it can be helpful, but after some research i have noticed that on the /proc/meminfo, at the voice CmaTotal, the value is setted on 917504 kB. If i'm not wrong cma is a separate allocation system that reserve some of the system memory. On the armbianEnv.txt, the cma is setted on 512M; it is strange that the value is not the same. I have also tried to set a lower value, but nothing happen. yeah that's super interesting.. according to your armbianmonitor -u the OS definitely sees 2 gig. What happens if your turn swap off total used free shared buff/cache available Mem: 1,9Gi 755Mi 953Mi 23Mi 254Mi 1,1Gi Swap: 981Mi 452Mi 528Mi
UniformBuffer Posted February 19, 2020 Author Posted February 19, 2020 12 hours ago, lanefu said: yeah that's super interesting.. according to your armbianmonitor -u the OS definitely sees 2 gig. What happens if your turn swap off total used free shared buff/cache available Mem: 1,9Gi 755Mi 953Mi 23Mi 254Mi 1,1Gi Swap: 981Mi 452Mi 528Mi Turning off the swap memory using swapoff command make the system slow and stuck when near to the 1GB limit, like the system goes out of memory. Having a swap memory simply cause the system to start to use it after 1GB like the RAM is full.
lanefu Posted February 19, 2020 Posted February 19, 2020 best thing you can do is probably roll back sudo apt install linux-image-current-meson64=19.11.3 1
lanefu Posted February 20, 2020 Posted February 20, 2020 Okay i've got patched 5.4..... sound works.... was able to use more than a gig of ram when i ran armbianmonitor -z and watched htop from the desktop https://github.com/armbian/build/pull/1805 1
lanefu Posted February 20, 2020 Posted February 20, 2020 Here's lepotato holding together and using lots of ram. with 2 instances of armbianmonitor -z running 1
UniformBuffer Posted February 20, 2020 Author Posted February 20, 2020 Wow, you managed to solve it, can't wait to see your fix merged. Also, your suggestion to rollback the kernel works, now i have sound again while waiting your patch. Thanks a lot for your blazing fast support and the effort employed to solve these problems. I would also like to contribute to development but i have not yet reached the necessary skill level.... for now :-) 1
lanefu Posted February 21, 2020 Posted February 21, 2020 Testing, documenting, spell checking, helping others and just reading issues on github are all great ways to start
UniformBuffer Posted February 22, 2020 Author Posted February 22, 2020 Just downloaded the new kernel with your fixes. Like you said, audio and memory bug is now fixed. Also the meminfo now report correctly: CmaTotal: 262144 kB instead of ~1GB Thanks again for the effort and the dedicated time! 1
UniformBuffer Posted February 23, 2020 Author Posted February 23, 2020 Regarding the drm kms problem, i found that mesa have some drm integrated tests, one among them "modetest". When launched on my machine the result is: Spoiler trying to open device 'i915'...failed trying to open device 'amdgpu'...failed trying to open device 'radeon'...failed trying to open device 'nouveau'...failed trying to open device 'vmwgfx'...failed trying to open device 'omapdrm'...failed trying to open device 'exynos'...failed trying to open device 'tilcdc'...failed trying to open device 'msm'...failed trying to open device 'sti'...failed trying to open device 'tegra'...failed trying to open device 'imx-drm'...failed trying to open device 'rockchip'...failed trying to open device 'atmel-hlcdc'...failed trying to open device 'fsl-dcu-drm'...failed trying to open device 'vc4'...failed trying to open device 'virtio_gpu'...failed trying to open device 'mediatek'...failed trying to open device 'meson'...done Encoders: id crtc type possible crtcs possible clones 32 0 TVDAC 0x00000001 0x00000000 33 39 TMDS 0x00000001 0x00000000 Connectors: id encoder status name size (mm) modes encoders 31 0 connected composite-1 0x0 2 32 modes: name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot) 720x576i 50 720 732 795 864 576 580 586 625 13500 flags: interlace; type: driver 720x480i 60 720 739 801 858 480 488 494 525 13500 flags: interlace; type: driver props: 1 EDID: flags: immutable blob blobs: value: 2 DPMS: flags: enum enums: On=0 Standby=1 Suspend=2 Off=3 value: 3 5 link-status: flags: enum enums: Good=0 Bad=1 value: 0 6 non-desktop: flags: immutable range values: 0 1 value: 0 4 TILE: flags: immutable blob blobs: value: 20 CRTC_ID: flags: object value: 0 34 33 connected HDMI-A-1 0x0 28 33 modes: name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot) 1280x800 60 1280 1328 1360 1440 800 803 807 823 71000 flags: phsync, pvsync; type: preferred, driver 1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 148500 flags: phsync, pvsync; type: driver 1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 148500 flags: phsync, pvsync; type: driver 1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 148352 flags: phsync, pvsync; type: driver 1920x1080i 60 1920 2008 2052 2200 1080 1084 1094 1125 74250 flags: phsync, pvsync, interlace; type: driver 1920x1080i 60 1920 2008 2052 2200 1080 1084 1094 1125 74250 flags: phsync, pvsync, interlace; type: driver 1920x1080i 60 1920 2008 2052 2200 1080 1084 1094 1125 74176 flags: phsync, pvsync, interlace; type: driver 1280x1024 60 1280 1328 1440 1688 1024 1025 1028 1066 108000 flags: phsync, pvsync; type: driver 1280x960 60 1280 1376 1488 1800 960 961 964 1000 108000 flags: phsync, pvsync; type: driver 1152x864 75 1152 1216 1344 1600 864 865 868 900 108000 flags: phsync, pvsync; type: driver 1280x720 60 1280 1390 1430 1650 720 725 730 750 74250 flags: phsync, pvsync; type: driver 1280x720 60 1280 1390 1430 1650 720 725 730 750 74250 flags: phsync, pvsync; type: driver 1280x720 60 1280 1390 1430 1650 720 725 730 750 74176 flags: phsync, pvsync; type: driver 1024x768 85 1024 1072 1168 1376 768 769 772 808 94500 flags: phsync, pvsync; type: driver 1024x768 75 1024 1040 1136 1312 768 769 772 800 78750 flags: phsync, pvsync; type: driver 1024x768 70 1024 1048 1184 1328 768 771 777 806 75000 flags: nhsync, nvsync; type: driver 1024x768 60 1024 1048 1184 1344 768 771 777 806 65000 flags: nhsync, nvsync; type: driver 800x600 85 800 832 896 1048 600 601 604 631 56250 flags: phsync, pvsync; type: driver 800x600 75 800 816 896 1056 600 601 604 625 49500 flags: phsync, pvsync; type: driver 800x600 72 800 856 976 1040 600 637 643 666 50000 flags: phsync, pvsync; type: driver 800x600 60 800 840 968 1056 600 601 605 628 40000 flags: phsync, pvsync; type: driver 800x600 56 800 824 896 1024 600 601 603 625 36000 flags: phsync, pvsync; type: driver 720x480 60 720 736 798 858 480 489 495 525 27000 flags: nhsync, nvsync; type: driver 720x480 60 720 736 798 858 480 489 495 525 27000 flags: nhsync, nvsync; type: driver 720x480 60 720 736 798 858 480 489 495 525 27000 flags: nhsync, nvsync; type: driver 640x480 85 640 696 752 832 480 481 484 509 36000 flags: nhsync, nvsync; type: driver 640x480 75 640 656 720 840 480 481 484 500 31500 flags: nhsync, nvsync; type: driver 640x480 73 640 664 704 832 480 489 492 520 31500 flags: nhsync, nvsync; type: driver props: 1 EDID: flags: immutable blob blobs: value: 00ffffffffffff0020641d7b01000000 201b0103800000780ae0ce9e59579723 124c542fce00455981808140714f6159 315901010101bc1b00a0502017303020 340000000000001e000000ff004c544d 31320a20202020202020000000fc0048 444d49310a20202020202020000000fc 00504a343032442d320a20202020013f 02031bf1489005040302071601230907 0765030c00100083010000023a801871 382d40582c450007442100001e011d80 18711c1620582c250007442100009e01 1d007251d01e206e2855000744210000 1e8c0ad08a20e02d10103e9600074421 00001800000000000000000000000000 00000000000000000000000000000047 2 DPMS: flags: enum enums: On=0 Standby=1 Suspend=2 Off=3 value: 0 5 link-status: flags: enum enums: Good=0 Bad=1 value: 0 6 non-desktop: flags: immutable range values: 0 1 value: 0 4 TILE: flags: immutable blob blobs: value: 20 CRTC_ID: flags: object value: 39 CRTCs: id fb pos size 39 41 (0,0) (1280x800) 1280x800 60 1280 1328 1360 1440 800 803 807 823 71000 flags: phsync, pvsync; type: preferred, driver props: 22 ACTIVE: flags: range values: 0 1 value: 1 23 MODE_ID: flags: blob blobs: value: 58150100000530055005a00500002003 23032703370300003c00000005000000 48000000313238307838303000000000 00000000000000000000000000000000 00000000 19 OUT_FENCE_PTR: flags: range values: 0 18446744073709551615 value: 0 24 VRR_ENABLED: flags: range values: 0 1 value: 0 Planes: id crtc fb CRTC x,y x,y gamma size possible crtcs 35 39 41 0,0 0,0 0 0x000000ff formats: AR24 AB24 XR24 XB24 RG24 RG16 props: 8 type: flags: immutable enum enums: Overlay=0 Primary=1 Cursor=2 value: 1 17 FB_ID: flags: object value: 41 18 IN_FENCE_FD: flags: signed range values: -1 2147483647 value: -1 20 CRTC_ID: flags: object value: 39 13 CRTC_X: flags: signed range values: -2147483648 2147483647 value: 0 14 CRTC_Y: flags: signed range values: -2147483648 2147483647 value: 0 15 CRTC_W: flags: range values: 0 2147483647 value: 1280 16 CRTC_H: flags: range values: 0 2147483647 value: 800 9 SRC_X: flags: range values: 0 4294967295 value: 0 10 SRC_Y: flags: range values: 0 4294967295 value: 0 11 SRC_W: flags: range values: 0 4294967295 value: 83886080 12 SRC_H: flags: range values: 0 4294967295 value: 52428800 36 zpos: flags: immutable range values: 1 1 value: 1 37 0 0 0,0 0,0 0 0x000000ff formats: YUYV NV12 NV21 YU24 YU16 YU12 YU11 YUV9 props: 8 type: flags: immutable enum enums: Overlay=0 Primary=1 Cursor=2 value: 0 17 FB_ID: flags: object value: 0 18 IN_FENCE_FD: flags: signed range values: -1 2147483647 value: -1 20 CRTC_ID: flags: object value: 0 13 CRTC_X: flags: signed range values: -2147483648 2147483647 value: 0 14 CRTC_Y: flags: signed range values: -2147483648 2147483647 value: 0 15 CRTC_W: flags: range values: 0 2147483647 value: 0 16 CRTC_H: flags: range values: 0 2147483647 value: 0 9 SRC_X: flags: range values: 0 4294967295 value: 0 10 SRC_Y: flags: range values: 0 4294967295 value: 0 11 SRC_W: flags: range values: 0 4294967295 value: 0 12 SRC_H: flags: range values: 0 4294967295 value: 0 38 zpos: flags: immutable range values: 0 0 value: 0 Frame buffers: id size pitch A strange thing that I have noticed is that the first connector called "composite-1" is attached to encoder with id 0, that does not exist. If I'm not wrong, every connector must have a valid encoder. Maybe the programs that use drm crash because the first connector is automatically chosen? Also in some places are reported the use of a framebuffer with id 41, but the framebuffer list at the bottom is empty. To be honest maybe the problem could be related to the monitor i use since the drm, from what i know, is highly integrated with the presentation system. As monitor i use the Raspad display connected with HDMI. To be precise, the monitor is a 10.1 inch IPS HDMI LCD with a native resolution of 1280×800. I have also compiled glmark2 and executed it. When launched normally wth "glmark2-es2-drm -d" the screen become black (because the drm grab the control of the screen), but nothing is displayed and i get "no signal" from the monitor. If launched adding the validate option using the command "glmark2-es2-drm --validate -d", i got some errors and the result is this: Spoiler ======================================================= glmark2 2017.07 ======================================================= OpenGL Information GL_VENDOR: lima GL_RENDERER: Mali450 GL_VERSION: OpenGL ES 2.0 Mesa 19.3.3 ======================================================= [build] use-vbo=false: Validation: Failure [build] use-vbo=true: Validation: Success [texture] texture-filter=nearest: Validation: Failure [texture] texture-filter=linear: Validation: Success [texture] texture-filter=mipmap: Validation: Success [shading] shading=gouraud: Validation: Failure [shading] shading=blinn-phong-inf: Validation: Failure [shading] shading=phong:Errore di segmentazione fabio@lepotato:~$ glmark2-es2-drm --validate -d Debug: Using Udev to detect the right DRM node to use Debug: Looking for the main GPU DRM node... Debug: Not found! Debug: Looking for a concrete GPU DRM node... Debug: Success! Debug: Trying to use the DRM node /dev/dri/card0 Debug: Success! Debug: Using eglGetPlatformDisplayEXT() Debug: Got 4 suitable EGLConfigs: Debug: Debug: cfg buf rgb colorbuffer dp st config native support surface sample Debug: id sz lum r g b a th cl caveat render visid type buf ns Debug: ------------------------------------------------------------------------ Debug: 0x2 32 rgb 8 8 8 8 24 0 None true0x34325241 0x4 0 0 Debug: 0x3 32 rgb 8 8 8 8 24 8 None true0x34325241 0x4 0 0 Debug: 0x5 32 rgb 8 8 8 8 24 0 None true0x34325241 0x4 1 4 Debug: 0x6 32 rgb 8 8 8 8 24 8 None true0x34325241 0x4 1 4 Debug: Debug: Best EGLConfig ID: 0x2 Info: ======================================================= Info: glmark2 2017.07 Info: ======================================================= Info: OpenGL Information Info: GL_VENDOR: lima Info: GL_RENDERER: Mali450 Info: GL_VERSION: OpenGL ES 2.0 Mesa 19.3.3 Info: ======================================================= Debug: Loading vertex shader from file None: Debug: const vec4 MaterialDiffuse = vec4(1.000000, 1.000000, 1.000000, 1.000000); Debug: const vec4 LightSourcePosition = vec4(20.000000, 20.000000, 10.000000, 1.000000); Debug: attribute vec3 position; Debug: attribute vec3 normal; Debug: attribute vec2 texcoord; Debug: Debug: uniform mat4 ModelViewProjectionMatrix; Debug: uniform mat4 NormalMatrix; Debug: Debug: varying vec4 Color; Debug: varying vec2 TextureCoord; Debug: Debug: void main(void) Debug: { Debug: // Transform the normal to eye coordinates Debug: vec3 N = normalize(vec3(NormalMatrix * vec4(normal, 1.0))); Debug: Debug: // The LightSourcePosition is actually its direction for directional light Debug: vec3 L = normalize(LightSourcePosition.xyz); Debug: Debug: // Multiply the diffuse value by the vertex color (which is fixed in this case) Debug: // to get the actual color that we will use to draw this vertex with Debug: float diffuse = max(dot(N, L), 0.0); Debug: Color = vec4(diffuse * MaterialDiffuse.rgb, MaterialDiffuse.a); Debug: Debug: // Set the texture coordinates as a varying Debug: TextureCoord = texcoord; Debug: Debug: // Transform the position to clip coordinates Debug: gl_Position = ModelViewProjectionMatrix * vec4(position, 1.0); Debug: } Debug: Loading fragment shader from file None: Debug: #ifdef GL_ES Debug: precision mediump float; Debug: #endif Debug: varying vec4 Color; Debug: varying vec2 TextureCoord; Debug: Debug: void main(void) Debug: { Debug: gl_FragColor = Color; Debug: } Debug: Loading model from 3ds file '/usr/local/share/glmark2/models/horse.3ds' Debug: Object name: HORSE_L_Mate Vertex count: 3582 Face count: 7172 Info: [build] use-vbo=false:Debug: Validation failed! Expected: 0xffa7a7a7 Actual: 0x0 Distance: 289.252485 Validation: Failure Debug: Loading vertex shader from file None: Debug: const vec4 MaterialDiffuse = vec4(1.000000, 1.000000, 1.000000, 1.000000); Debug: const vec4 LightSourcePosition = vec4(20.000000, 20.000000, 10.000000, 1.000000); Debug: attribute vec3 position; Debug: attribute vec3 normal; Debug: attribute vec2 texcoord; Debug: Debug: uniform mat4 ModelViewProjectionMatrix; Debug: uniform mat4 NormalMatrix; Debug: Debug: varying vec4 Color; Debug: varying vec2 TextureCoord; Debug: Debug: void main(void) Debug: { Debug: // Transform the normal to eye coordinates Debug: vec3 N = normalize(vec3(NormalMatrix * vec4(normal, 1.0))); Debug: Debug: // The LightSourcePosition is actually its direction for directional light Debug: vec3 L = normalize(LightSourcePosition.xyz); Debug: Debug: // Multiply the diffuse value by the vertex color (which is fixed in this case) Debug: // to get the actual color that we will use to draw this vertex with Debug: float diffuse = max(dot(N, L), 0.0); Debug: Color = vec4(diffuse * MaterialDiffuse.rgb, MaterialDiffuse.a); Debug: Debug: // Set the texture coordinates as a varying Debug: TextureCoord = texcoord; Debug: Debug: // Transform the position to clip coordinates Debug: gl_Position = ModelViewProjectionMatrix * vec4(position, 1.0); Debug: } Debug: Loading fragment shader from file None: Debug: #ifdef GL_ES Debug: precision mediump float; Debug: #endif Debug: varying vec4 Color; Debug: varying vec2 TextureCoord; Debug: Debug: void main(void) Debug: { Debug: gl_FragColor = Color; Debug: } Debug: Loading model from 3ds file '/usr/local/share/glmark2/models/horse.3ds' Debug: Object name: HORSE_L_Mate Vertex count: 3582 Face count: 7172 Info: [build] use-vbo=true: Validation: Success Debug: Reading PNG file /usr/local/share/glmark2/textures/crate-base.png Debug: Height: 512 Width: 512 Bpp: 3 Debug: Loading vertex shader from file None: Debug: const vec4 MaterialDiffuse = vec4(1.000000, 1.000000, 1.000000, 1.000000); Debug: const vec4 LightSourcePosition = vec4(20.000000, 20.000000, 10.000000, 1.000000); Debug: attribute vec3 position; Debug: attribute vec3 normal; Debug: attribute vec2 texcoord; Debug: Debug: uniform mat4 ModelViewProjectionMatrix; Debug: uniform mat4 NormalMatrix; Debug: Debug: varying vec4 Color; Debug: varying vec2 TextureCoord; Debug: Debug: void main(void) Debug: { Debug: // Transform the normal to eye coordinates Debug: vec3 N = normalize(vec3(NormalMatrix * vec4(normal, 1.0))); Debug: Debug: // The LightSourcePosition is actually its direction for directional light Debug: vec3 L = normalize(LightSourcePosition.xyz); Debug: Debug: // Multiply the diffuse value by the vertex color (which is fixed in this case) Debug: // to get the actual color that we will use to draw this vertex with Debug: float diffuse = max(dot(N, L), 0.0); Debug: Color = vec4(diffuse * MaterialDiffuse.rgb, MaterialDiffuse.a); Debug: Debug: // Set the texture coordinates as a varying Debug: TextureCoord = texcoord; Debug: Debug: // Transform the position to clip coordinates Debug: gl_Position = ModelViewProjectionMatrix * vec4(position, 1.0); Debug: } Debug: Loading fragment shader from file None: Debug: #ifdef GL_ES Debug: precision mediump float; Debug: #endif Debug: uniform sampler2D MaterialTexture0; Debug: Debug: varying vec4 Color; Debug: varying vec2 TextureCoord; Debug: Debug: void main(void) Debug: { Debug: vec4 texel = texture2D(MaterialTexture0, TextureCoord); Debug: gl_FragColor = texel * Color; Debug: } Debug: Debug: Loading model from 3ds file '/usr/local/share/glmark2/models/cube.3ds' Debug: Object name: Cube Vertex count: 20 Face count: 12 Info: [texture] texture-filter=nearest:Debug: Validation failed! Expected: 0xff282a2b Actual: 0xffadadad Distance: 227.486263 Validation: Failure Debug: Reading PNG file /usr/local/share/glmark2/textures/crate-base.png Debug: Height: 512 Width: 512 Bpp: 3 Debug: Loading vertex shader from file None: Debug: const vec4 MaterialDiffuse = vec4(1.000000, 1.000000, 1.000000, 1.000000); Debug: const vec4 LightSourcePosition = vec4(20.000000, 20.000000, 10.000000, 1.000000); Debug: attribute vec3 position; Debug: attribute vec3 normal; Debug: attribute vec2 texcoord; Debug: Debug: uniform mat4 ModelViewProjectionMatrix; Debug: uniform mat4 NormalMatrix; Debug: Debug: varying vec4 Color; Debug: varying vec2 TextureCoord; Debug: Debug: void main(void) Debug: { Debug: // Transform the normal to eye coordinates Debug: vec3 N = normalize(vec3(NormalMatrix * vec4(normal, 1.0))); Debug: Debug: // The LightSourcePosition is actually its direction for directional light Debug: vec3 L = normalize(LightSourcePosition.xyz); Debug: Debug: // Multiply the diffuse value by the vertex color (which is fixed in this case) Debug: // to get the actual color that we will use to draw this vertex with Debug: float diffuse = max(dot(N, L), 0.0); Debug: Color = vec4(diffuse * MaterialDiffuse.rgb, MaterialDiffuse.a); Debug: Debug: // Set the texture coordinates as a varying Debug: TextureCoord = texcoord; Debug: Debug: // Transform the position to clip coordinates Debug: gl_Position = ModelViewProjectionMatrix * vec4(position, 1.0); Debug: } Debug: Loading fragment shader from file None: Debug: #ifdef GL_ES Debug: precision mediump float; Debug: #endif Debug: uniform sampler2D MaterialTexture0; Debug: Debug: varying vec4 Color; Debug: varying vec2 TextureCoord; Debug: Debug: void main(void) Debug: { Debug: vec4 texel = texture2D(MaterialTexture0, TextureCoord); Debug: gl_FragColor = texel * Color; Debug: } Debug: Debug: Loading model from 3ds file '/usr/local/share/glmark2/models/cube.3ds' Debug: Object name: Cube Vertex count: 20 Face count: 12 Info: [texture] texture-filter=linear: Validation: Success Debug: Reading PNG file /usr/local/share/glmark2/textures/crate-base.png Debug: Height: 512 Width: 512 Bpp: 3 Debug: Loading vertex shader from file None: Debug: const vec4 MaterialDiffuse = vec4(1.000000, 1.000000, 1.000000, 1.000000); Debug: const vec4 LightSourcePosition = vec4(20.000000, 20.000000, 10.000000, 1.000000); Debug: attribute vec3 position; Debug: attribute vec3 normal; Debug: attribute vec2 texcoord; Debug: Debug: uniform mat4 ModelViewProjectionMatrix; Debug: uniform mat4 NormalMatrix; Debug: Debug: varying vec4 Color; Debug: varying vec2 TextureCoord; Debug: Debug: void main(void) Debug: { Debug: // Transform the normal to eye coordinates Debug: vec3 N = normalize(vec3(NormalMatrix * vec4(normal, 1.0))); Debug: Debug: // The LightSourcePosition is actually its direction for directional light Debug: vec3 L = normalize(LightSourcePosition.xyz); Debug: Debug: // Multiply the diffuse value by the vertex color (which is fixed in this case) Debug: // to get the actual color that we will use to draw this vertex with Debug: float diffuse = max(dot(N, L), 0.0); Debug: Color = vec4(diffuse * MaterialDiffuse.rgb, MaterialDiffuse.a); Debug: Debug: // Set the texture coordinates as a varying Debug: TextureCoord = texcoord; Debug: Debug: // Transform the position to clip coordinates Debug: gl_Position = ModelViewProjectionMatrix * vec4(position, 1.0); Debug: } Debug: Loading fragment shader from file None: Debug: #ifdef GL_ES Debug: precision mediump float; Debug: #endif Debug: uniform sampler2D MaterialTexture0; Debug: Debug: varying vec4 Color; Debug: varying vec2 TextureCoord; Debug: Debug: void main(void) Debug: { Debug: vec4 texel = texture2D(MaterialTexture0, TextureCoord); Debug: gl_FragColor = texel * Color; Debug: } Debug: Debug: Loading model from 3ds file '/usr/local/share/glmark2/models/cube.3ds' Debug: Object name: Cube Vertex count: 20 Face count: 12 Info: [texture] texture-filter=mipmap: Validation: Success Debug: Loading vertex shader from file None: Debug: const vec4 MaterialDiffuse = vec4(0.000000, 0.000000, 1.000000, 1.000000); Debug: const vec4 LightSourcePosition = vec4(20.000000, 20.000000, 10.000000, 1.000000); Debug: attribute vec3 position; Debug: attribute vec3 normal; Debug: attribute vec2 texcoord; Debug: Debug: uniform mat4 ModelViewProjectionMatrix; Debug: uniform mat4 NormalMatrix; Debug: Debug: varying vec4 Color; Debug: varying vec2 TextureCoord; Debug: Debug: void main(void) Debug: { Debug: // Transform the normal to eye coordinates Debug: vec3 N = normalize(vec3(NormalMatrix * vec4(normal, 1.0))); Debug: Debug: // The LightSourcePosition is actually its direction for directional light Debug: vec3 L = normalize(LightSourcePosition.xyz); Debug: Debug: // Multiply the diffuse value by the vertex color (which is fixed in this case) Debug: // to get the actual color that we will use to draw this vertex with Debug: float diffuse = max(dot(N, L), 0.0); Debug: Color = vec4(diffuse * MaterialDiffuse.rgb, MaterialDiffuse.a); Debug: Debug: // Set the texture coordinates as a varying Debug: TextureCoord = texcoord; Debug: Debug: // Transform the position to clip coordinates Debug: gl_Position = ModelViewProjectionMatrix * vec4(position, 1.0); Debug: } Debug: Loading fragment shader from file None: Debug: #ifdef GL_ES Debug: precision mediump float; Debug: #endif Debug: varying vec4 Color; Debug: varying vec2 TextureCoord; Debug: Debug: void main(void) Debug: { Debug: gl_FragColor = Color; Debug: } Debug: Loading model from 3ds file '/usr/local/share/glmark2/models/cat.3ds' Debug: Object name: Mesh1_Materi Vertex count: 7340 Face count: 14348 Info: [shading] shading=gouraud:Debug: Validation failed! Expected: 0xff2d0000 Actual: 0xff191818 Distance: 39.395431 Validation: Failure Debug: Loading vertex shader from file None: Debug: attribute vec3 position; Debug: attribute vec3 normal; Debug: Debug: uniform mat4 ModelViewProjectionMatrix; Debug: uniform mat4 NormalMatrix; Debug: Debug: varying vec3 Normal; Debug: Debug: void main(void) Debug: { Debug: // Transform the normal to eye coordinates Debug: Normal = normalize(vec3(NormalMatrix * vec4(normal, 1.0))); Debug: Debug: // Transform the position to clip coordinates Debug: gl_Position = ModelViewProjectionMatrix * vec4(position, 1.0); Debug: } Debug: Loading fragment shader from file None: Debug: #ifdef GL_ES Debug: precision mediump float; Debug: #endif Debug: const vec3 LightSourceHalfVector = vec3(0.408248, 0.408248, 0.816497); Debug: const vec4 LightSourcePosition = vec4(20.000000, 20.000000, 10.000000, 1.000000); Debug: varying vec3 Normal; Debug: Debug: void main(void) Debug: { Debug: const vec4 LightSourceAmbient = vec4(0.1, 0.1, 0.1, 1.0); Debug: const vec4 LightSourceDiffuse = vec4(0.8, 0.8, 0.8, 1.0); Debug: const vec4 LightSourceSpecular = vec4(0.8, 0.8, 0.8, 1.0); Debug: const vec4 MaterialAmbient = vec4(1.0, 1.0, 1.0, 1.0); Debug: const vec4 MaterialDiffuse = vec4(0.0, 0.0, 1.0, 1.0); Debug: const vec4 MaterialSpecular = vec4(1.0, 1.0, 1.0, 1.0); Debug: const float MaterialShininess = 100.0; Debug: Debug: vec3 N = normalize(Normal); Debug: Debug: // In the lighting model we are using here (Blinn-Phong with light at Debug: // infinity, viewer at infinity), the light position/direction and the Debug: // half vector is constant for the all the fragments. Debug: vec3 L = normalize(LightSourcePosition.xyz); Debug: vec3 H = normalize(LightSourceHalfVector); Debug: Debug: // Calculate the diffuse color according to Lambertian reflectance Debug: vec4 diffuse = MaterialDiffuse * LightSourceDiffuse * max(dot(N, L), 0.0); Debug: Debug: // Calculate the ambient color Debug: vec4 ambient = MaterialAmbient * LightSourceAmbient; Debug: Debug: // Calculate the specular color according to the Blinn-Phong model Debug: vec4 specular = MaterialSpecular * LightSourceSpecular * Debug: pow(max(dot(N,H), 0.0), MaterialShininess); Debug: Debug: // Calculate the final color Debug: gl_FragColor = vec4((ambient + specular + diffuse).xyz, 1.0); Debug: } Debug: Loading model from 3ds file '/usr/local/share/glmark2/models/cat.3ds' Debug: Object name: Mesh1_Materi Vertex count: 7340 Face count: 14348 Info: [shading] shading=blinn-phong-inf:Debug: Validation failed! Expected: 0xff3e1a1a Actual: 0xff3b0000 Distance: 36.891733 Validation: Failure Debug: Loading vertex shader from file None: Debug: attribute vec3 position; Debug: attribute vec3 normal; Debug: Debug: uniform mat4 ModelViewProjectionMatrix; Debug: uniform mat4 NormalMatrix; Debug: uniform mat4 ModelViewMatrix; Debug: Debug: varying vec3 vertex_normal; Debug: varying vec4 vertex_position; Debug: Debug: void main(void) Debug: { Debug: vec4 current_position = vec4(position, 1.0); Debug: Debug: // Transform the normal to eye coordinates Debug: vertex_normal = normalize(vec3(NormalMatrix * vec4(normal, 1.0))); Debug: Debug: // Transform the current position to eye coordinates Debug: vertex_position = ModelViewMatrix * current_position; Debug: Debug: // Transform the current position to clip coordinates Debug: gl_Position = ModelViewProjectionMatrix * current_position; Debug: } Debug: Loading fragment shader from file None: Debug: #ifdef GL_ES Debug: precision mediump float; Debug: #endif Debug: #ifdef GL_ES Debug: precision mediump float; Debug: #endif Debug: const vec4 MaterialDiffuse = vec4(0.000000, 0.000000, 1.000000, 1.000000); Debug: const vec4 LightColor0 = vec4(0.800000, 0.800000, 0.800000, 1.000000); Debug: const vec4 LightSourcePosition0 = vec4(0.000000, 1.000000, 0.000000, 1.000000); Debug: varying vec3 vertex_normal; Debug: varying vec4 vertex_position; Debug: Debug: vec4 Debug: compute_color(vec4 light_position, vec4 diffuse_light_color) Debug: { Debug: const vec4 lightAmbient = vec4(0.1, 0.1, 0.1, 1.0); Debug: const vec4 lightSpecular = vec4(0.8, 0.8, 0.8, 1.0); Debug: const vec4 matAmbient = vec4(0.2, 0.2, 0.2, 1.0); Debug: const vec4 matSpecular = vec4(1.0, 1.0, 1.0, 1.0); Debug: const float matShininess = 100.0; Debug: vec3 eye_direction = normalize(-vertex_position.xyz); Debug: vec3 light_direction = normalize(light_position.xyz/light_position.w - Debug: vertex_position.xyz/vertex_position.w); Debug: vec3 normalized_normal = normalize(vertex_normal); Debug: vec3 reflection = reflect(-light_direction, normalized_normal); Debug: float specularTerm = pow(max(0.0, dot(reflection, eye_direction)), matShininess); Debug: float diffuseTerm = max(0.0, dot(normalized_normal, light_direction)); Debug: vec4 specular = (lightSpecular * matSpecular); Debug: vec4 ambient = (lightAmbient * matAmbient); Debug: vec4 diffuse = (diffuse_light_color * MaterialDiffuse); Debug: vec4 result = (specular * specularTerm) + ambient + (diffuse * diffuseTerm); Debug: return result; Debug: } Debug: Debug: void main(void) Debug: { Debug: gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0); Debug: gl_FragColor += compute_color(LightSourcePosition0, LightColor0); Debug: Debug: } Debug: Loading model from 3ds file '/usr/local/share/glmark2/models/cat.3ds' Debug: Object name: Mesh1_Materi Vertex count: 7340 Face count: 14348 Info: [shading] shading=phong:Errore di segmentazione Anyway I thought these reports could be helpfull to find the root of the problem, so i posted them. Thanks again for the attention, have a good day
UniformBuffer Posted February 27, 2020 Author Posted February 27, 2020 After some research i discovered some error in the dmesg log regarding the lima driver initialization. Following an extract of dmesg: Spoiler [ 7.944455] meson-drm d0100000.vpu: Queued 3 outputs on vpu [ 7.952116] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013). [ 7.952125] [drm] No driver support for vblank timestamp query. [ 7.987426] meson-dw-hdmi c883a000.hdmi-tx: Detected HDMI TX controller v2.01a with HDCP (meson_dw_hdmi_phy) [ 7.993242] meson-dw-hdmi c883a000.hdmi-tx: registered DesignWare HDMI I2C bus driver [ 7.993804] meson-drm d0100000.vpu: bound c883a000.hdmi-tx (ops meson_dw_hdmi_ops [meson_dw_hdmi]) [ 7.994618] [drm] Initialized meson 1.0.0 20161109 for d0100000.vpu on minor 0 [ 8.067311] Adding 1005128k swap on /dev/zram1. Priority:5 extents:1 across:1005128k SSFS [ 8.151488] lima d00c0000.gpu: IRQ ppmmu3 not found [ 8.151498] lima d00c0000.gpu: IRQ ppmmu4 not found [ 8.151502] lima d00c0000.gpu: IRQ ppmmu5 not found [ 8.151507] lima d00c0000.gpu: IRQ ppmmu6 not found [ 8.151512] lima d00c0000.gpu: IRQ ppmmu7 not found [ 8.151527] lima d00c0000.gpu: gp - mali450 version major 0 minor 0 [ 8.151559] lima d00c0000.gpu: pp0 - mali450 version major 0 minor 0 [ 8.151591] lima d00c0000.gpu: pp1 - mali450 version major 0 minor 0 [ 8.151619] lima d00c0000.gpu: pp2 - mali450 version major 0 minor 0 [ 8.151645] lima d00c0000.gpu: IRQ pp3 not found [ 8.151651] lima d00c0000.gpu: IRQ pp4 not found [ 8.151655] lima d00c0000.gpu: IRQ pp5 not found [ 8.151660] lima d00c0000.gpu: IRQ pp6 not found [ 8.151665] lima d00c0000.gpu: IRQ pp7 not found [ 8.151671] lima d00c0000.gpu: l2 cache 8K, 4-way, 64byte cache line, 128bit external bus [ 8.151677] lima d00c0000.gpu: l2 cache 64K, 4-way, 64byte cache line, 128bit external bus [ 8.185292] [drm] kms: can't enable cloning when we probably wanted to. [ 8.185549] lima d00c0000.gpu: bus rate = 166666667 [ 8.185557] lima d00c0000.gpu: mod rate = 744000000 [ 8.186299] [drm] Initialized lima 1.0.0 20190217 for d00c0000.gpu on minor 1 I'm refering to the errors like: IRQ ppmmu3 not found. Maybe have something to do with the drm problem. I found a report on the lima git where the author of the post have the exactly same error on the dmesg: https://gitlab.freedesktop.org/lima/linux/issues/26 He s905 with kernel 5.4. These should be similar to my configuration. On the same post a patch is suggested to fix the problem and seems, from the author reaction, that worked. I don't know if this patch is already merged or not and i have not tried myself. Anyway i thought it could be useful for solving the problem, so i posted it. Thanks again for the hard work and dedicated effort. 1
lanefu Posted February 27, 2020 Posted February 27, 2020 35 minutes ago, UniformBuffer said: On the same post a patch is suggested to fix the problem and seems, from the author reaction, that worked. I don't know if this patch is already merged or not Here are the patches currently used in the v20.02 kernelhttps://github.com/armbian/build/tree/v20.02/patch/kernel/meson64-current 1
UniformBuffer Posted February 28, 2020 Author Posted February 28, 2020 Thanks for the info, now i can check if some patches are applied. Anyway after some troubleshooting, i think that the problem with the drm has something related with the monitor (that is initializated by the lima driver? i don't know). Even with randr if i try to get some info, it report: Spoiler xrandr: Failed to get size of gamma for output default Screen 0: minimum 1280 x 800, current 1280 x 800, maximum 1280 x 800 default connected 1280x800+0+0 0mm x 0mm 1280x800 0.00* Searching a bit deeper i tried to get some info directly from the edid of the monitor using the program "edid-decode"(maybe the monitor is not recognized correctly). In the /sys/class/drm/ folder i have: card0/ card0-HDMI-A-1/ renderD128/ card0-Composite-1/ card1/ version If i check the edid in card0-HDMI-A-1, it report: Spoiler edid-decode (hex): 00 ff ff ff ff ff ff 00 20 64 1d 7b 01 00 00 00 20 1b 01 03 80 00 00 78 0a e0 ce 9e 59 57 97 23 12 4c 54 2f ce 00 45 59 81 80 81 40 71 4f 61 59 31 59 01 01 01 01 bc 1b 00 a0 50 20 17 30 30 20 34 00 00 00 00 00 00 1e 00 00 00 ff 00 4c 54 4d 31 32 0a 20 20 20 20 20 20 20 00 00 00 fc 00 48 44 4d 49 31 0a 20 20 20 20 20 20 20 00 00 00 fc 00 50 4a 34 30 32 44 2d 32 0a 20 20 20 20 01 3f 02 03 1b f1 48 90 05 04 03 02 07 16 01 23 09 07 07 65 03 0c 00 10 00 83 01 00 00 02 3a 80 18 71 38 2d 40 58 2c 45 00 07 44 21 00 00 1e 01 1d 80 18 71 1c 16 20 58 2c 25 00 07 44 21 00 00 9e 01 1d 00 72 51 d0 1e 20 6e 28 55 00 07 44 21 00 00 1e 8c 0a d0 8a 20 e0 2d 10 10 3e 96 00 07 44 21 00 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 47 ---------------- EDID version: 1.3 Manufacturer: HCD Model 31517 Serial Number 1 Made in week 32 of 2017 Digital display Image size is variable Gamma: 2.20 RGB color display First detailed timing is preferred timing Color Characteristics Red: 0.6201, 0.3496 Green: 0.3398, 0.5898 Blue: 0.1396, 0.0703 White: 0.2998, 0.3300 Established Timings I & II 640x480 59.940 Hz 4:3 31.469 kHz 25.175 MHz (DMT) 640x480 72.809 Hz 4:3 37.861 kHz 31.500 MHz (DMT) 640x480 75.000 Hz 4:3 37.500 kHz 31.500 MHz (DMT) 800x600 56.250 Hz 4:3 35.156 kHz 36.000 MHz (DMT) 800x600 60.317 Hz 4:3 37.879 kHz 40.000 MHz (DMT) 800x600 72.188 Hz 4:3 48.077 kHz 50.000 MHz (DMT) 800x600 75.000 Hz 4:3 46.875 kHz 49.500 MHz (DMT) 1024x768 60.004 Hz 4:3 48.363 kHz 65.000 MHz (DMT) 1024x768 70.069 Hz 4:3 56.476 kHz 75.000 MHz (DMT) 1024x768 75.029 Hz 4:3 60.023 kHz 78.750 MHz (DMT) Standard Timings 800x600 85.061 Hz 4:3 53.674 kHz 56.250 MHz (DMT) 1280x1024 60.020 Hz 5:4 63.981 kHz 108.000 MHz (DMT) 1280x960 60.000 Hz 4:3 60.000 kHz 108.000 MHz (DMT) 1152x864 75.000 Hz 4:3 67.500 kHz 108.000 MHz (DMT) 1024x768 84.997 Hz 4:3 68.677 kHz 94.500 MHz (DMT) 640x480 85.008 Hz 4:3 43.269 kHz 36.000 MHz (DMT) Detailed mode: Clock 71.000 MHz 1280 1328 1360 1440 ( 48 32 80) 800 803 807 823 ( 3 4 16) +hsync +vsync VertFreq: 59.910 Hz, HorFreq: 49.306 kHz Display Product Serial Number: LTM12 Display Product Name: HDMI1 Display Product Name: PJ402D-2 Has 1 extension block Checksum: 0x3f ---------------- CTA-861 Extension Block Revision 3 Underscans PC formats by default Basic audio support Supports YCbCr 4:4:4 Supports YCbCr 4:2:2 1 native detailed modes 23 bytes of CTA data blocks Video Data Block 1920x1080 60.000 Hz 16:9 67.500 kHz 148.500 MHz (VIC 16, native) 1920x1080i 60.000 Hz 16:9 33.750 kHz 74.250 MHz (VIC 5) 1280x720 60.000 Hz 16:9 45.000 kHz 74.250 MHz (VIC 4) 720x480 59.940 Hz 16:9 31.469 kHz 27.000 MHz (VIC 3) 720x480 59.940 Hz 4:3 31.469 kHz 27.000 MHz (VIC 2) 1440x480i 59.940 Hz 16:9 15.734 kHz 27.000 MHz (VIC 7) 1440x576i 50.000 Hz 16:9 15.625 kHz 27.000 MHz (VIC 22) 640x480 59.940 Hz 4:3 31.469 kHz 25.175 MHz (VIC 1) Audio Data Block Linear PCM, max channels 2 Supported sample rates (kHz): 48 44.1 32 Supported sample sizes (bits): 24 20 16 Vendor-Specific Data Block, OUI 0x000c03 (HDMI) Source physical address 1.0.0.0 Speaker Allocation Data Block Speaker map: FL/FR - Front Left/Right Detailed mode: Clock 148.500 MHz, 519 mm x 324 mm 1920 2008 2052 2200 ( 88 44 148) 1080 1084 1089 1125 ( 4 5 36) +hsync +vsync VertFreq: 60.000 Hz, HorFreq: 67.500 kHz Detailed mode: Clock 74.250 MHz, 519 mm x 324 mm 1920 2008 2052 2200 ( 88 44 148) 540 542 547 562 ( 2 5 15) +hsync +vsync VertFreq: 60.000i Hz, HorFreq: 33.750 kHz Detailed mode: Clock 74.250 MHz, 519 mm x 324 mm 1280 1390 1430 1650 (110 40 220) 720 725 730 750 ( 5 5 20) +hsync +vsync VertFreq: 60.000 Hz, HorFreq: 45.000 kHz Detailed mode: Clock 27.000 MHz, 519 mm x 324 mm 720 736 798 858 ( 16 62 60) 480 489 495 525 ( 9 6 30) -hsync -vsync VertFreq: 59.940 Hz, HorFreq: 31.469 kHz Checksum: 0x47 It sounds correct, but I could be wrong. Instead if i try to read the edid of card0-Composite-1 i got: EDID extract of '/sys/class/drm/card0-Composite-1/edid' failed In the previous posts i have reported the "modetest" result and it says that the composite connector have 2 resolution modes, 720x576i and 720x480i, that i think they are wrong. The HDMI connector instead report a lot of resolutions, including as first 1280x800 that is the native resolution of the monitor. I think that drm programs crash because they select the first connector they get from the drm resources enumeration (so the "corrupted" one). There is any way to blacklist that connector? Also, for curiosity, there are any other people that have the same problem (if not, probably has something to do with my strange monitor). To check i think is sufficient to be able to run weston or kmscube successfully. Thanks for the attention and the dedicated effort, Have a nice day 1
lanefu Posted February 28, 2020 Posted February 28, 2020 2 hours ago, UniformBuffer said: There is any way to blacklist that connector? There may be better ways to approach... but you could disable the connector by creating a device tree overlayhttps://github.com/torvalds/linux/blob/v5.4/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts#L27
UniformBuffer Posted March 5, 2020 Author Posted March 5, 2020 Hi, i have studied how to apply your propose, but i'm not sure how to do it. I have to do it using the armbian build tool or by downloading the amlogic mainline dts, build them and replace the old ones on the /boot folder? Also, to disable the composite have i to delete that part from the dts? Or i have to add the 'status = "disabled"', so that it will become: Spoiler cvbs-connector { compatible = "composite-video-connector"; status = "disabled"; port { cvbs_connector_in: endpoint { remote-endpoint = <&cvbs_vdac_out>; }; }; }; I never put my hands on the kernel and its components before, so i'm a bit scared to make some mess and to have an unbootable system. Thanks for the support and the patience.
UniformBuffer Posted March 23, 2020 Author Posted March 23, 2020 Hi, I found a solution thanks to the help of the armbian community, but since it is something different from the thread topic, I thought it would have been more appropriate to open a dedicated thread: In short, to disable the drm connector is needed to add to armbianEnv.txt the parameter "extraargs=video=Composite-1:d". Thanks again for the attention and the dedicated time. Have a good day
UniformBuffer Posted March 25, 2020 Author Posted March 25, 2020 Hi, after disabling the bugged connector, some of the drm programs now works, for example the kmscube program. Other programs instead still not work, even if the error i get is now changed. For example when i run weston using "wenston-launch" command, i got Spoiler ../libweston/renderer-gl/egl-glue.c:533: gl_renderer_setup_egl_extensions: Assertion 'gt->set_damage_region' failed Also when disabling the fbdev driver on xorg.conf (causing the server to use the lima driver), the monitor start blink and at some point hang. Probably they are caused by the same issue. I read a lot of posts on the forum regarding hardware acceleration and lima driver on aml-s905, but i have not understood yet if they are working or still in testing. Some posts says that works and some other not. I'm only trying to understand if there is something wrong in my configuration or it is still experimental. Thanks for the dedicated time and effort, have a nice day
Recommended Posts