Quantcast
Channel: Raspberry Pi Forums
Viewing all articles
Browse latest Browse all 8015

Compute Module • Re: CM4 and correct selection of packages for current packages/drivers versions

$
0
0
Hi again!

It took me a quite a while to do my best to understand most of the topics involved, but here I am with updated results following your indications.

I should mention that the official guide Troubleshooting KMS HDMI output at https://pip.raspberrypi.com/categories/ ... -output.pd also proved to be very useful.

However I was not successful on running KMS instead of FKMS with the current Kernel 6.16 and firmware 2025-05-16.

I've noticed changes on the screen behaviour. The following are produced with the current Raspberry Pi OS (Please excuse the inclination on the photos, I tried to prevent reflections)

Here it is an image of the rainbow screen. It makes me think it is trying to cover a bigger screen area.

Image

Colors are also, not correct:

Image

And kmscube is still under 1 fps, however colours are "degraded" .

Image

This is what I have done so far:

1. Updated the firmware on the device. I used pieeprom-2025-05-16.bin

2. Using the "original" image 5.15 produced by the manufacturer running on the device, I extracted the edid using tvservice -d cs407.dat (I uploaded this file to this repo https://github.com/vidalastudillo/build ... /cs407.dat

3. If I rename that .dat file to end with .bin I'm able to open it with AW EDID Editor and inspect its content. Granted, I'm not versed on this, but I'm suspicious I was not able to find references to the 1024x600@60 Hz that is what I understand is the correct configuration for this LCD.

4. Per your suggestion I tried all this with the current Raspberry Pi OS 6.12.25+rpt-rpi-v8. I started with unmodified /boot/firmware/config.txt and /boot/firmware/cmdline.txt files, and from there I also tried various combinations of drm.edid_firmware=xyx and drm.edid_firmware=HDMI-A-1:xyz, display_auto_detect=1, hdmi_force_hotplug=1, video=HDMI-A-1:D, and several combinations of the hdmi_ "flags" from the original 5.15 config.txt.

5. The results using the Buildroot image are the same. When I run kmscube on it, I see warnings like these when consulting dmesg

Code:

[  130.997351] ------------[ cut here ]------------[  130.999010]  joydev mcp251x[  131.003619] WARNING: CPU: 3 PID: 54 at drivers/gpu/drm/vc4/vc4_kms.c:454 vc4_atomic_commit_tail+0x2c8/0x930 [vc4][  131.005533]  pinctrl_mcp23s08_i2c[  131.010139] Modules linked in:[  131.012922]  can_dev rtc_ds1307[  131.023172]  cfg80211[  131.026475]  pinctrl_mcp23s08 goodix_ts[  131.029519]  8021q[  131.032649]  spidev[  131.034911]  garp[  131.038735]  hci_uart[  131.040736]  stp[  131.042824]  regmap_i2c[  131.044738]  llc[  131.047000]  btbcm[  131.048827]  ipv6[  131.051262]  vc4[  131.053089]  joydev[  131.055089]  bluetooth[  131.057003]  mcp251x[  131.058831]  snd_soc_hdmi_codec[  131.060918]  pinctrl_mcp23s08_i2c[  131.063266]  v3d[  131.065441]  can_dev[  131.068571]  ecdh_generic[  131.071874]  rtc_ds1307[  131.073702]  cec[  131.075876]  pinctrl_mcp23s08[  131.078486]  bcm2835_codec(C)[  131.080920]  goodix_ts[  131.082748]  bcm2835_v4l2(C)[  131.085703]  spidev[  131.088659]  rpi_hevc_dec[  131.091007]  hci_uart[  131.093876]  bcm2835_isp(C)[  131.095964]  regmap_i2c[  131.098573]  drm_dma_helper[  131.100834]  btbcm[  131.103617]  ecc[  131.106052]  vc4[  131.108834]  raspberrypi_hwmon[  131.110835]  bluetooth[  131.112663]  gpu_sched[  131.114490]  snd_soc_hdmi_codec[  131.117533]  drm_display_helper[  131.119881]  v3d[  131.122229]  bcm2835_mmal_vchiq(C)[  131.125359]  ecdh_generic[  131.128488]  rfkill[  131.130315]  cec[  131.133705]  libaes[  131.136315]  bcm2835_codec(C)[  131.138403]  v4l2_mem2mem[  131.140229]  bcm2835_v4l2(C)[  131.142317]  drm_shmem_helper[  131.145273]  rpi_hevc_dec[  131.147882]  vc_sm_cma(C)[  131.150751]  bcm2835_isp(C)[  131.153707]  i2c_brcmstb[  131.156315]  drm_dma_helper[  131.158924]  videobuf2_dma_contig[  131.161706]  ecc[  131.164229]  videobuf2_vmalloc[  131.167010]  raspberrypi_hwmon[  131.170314]  drm_kms_helper[  131.172141]  gpu_sched[  131.175184]  videobuf2_memops[  131.178227]  drm_display_helper[  131.181010]  dwc2[  131.183358]  bcm2835_mmal_vchiq(C)[  131.186313]  videobuf2_v4l2[  131.189443]  rfkill[  131.191358]  videodev[  131.194747]  libaes[  131.197529]  drm[  131.199617]  v4l2_mem2mem[  131.201879]  snd_soc_core[  131.203967]  drm_shmem_helper[  131.205795]  pwm_bcm2835[  131.208402]  vc_sm_cma(C)[  131.211011]  i2c_bcm2835[  131.213967]  i2c_brcmstb[  131.216489]  snd_bcm2835(C)[  131.219097]  videobuf2_dma_contig[  131.221619]  spi_bcm2835[  131.224141]  videobuf2_vmalloc[  131.226923]  raspberrypi_gpiomem[  131.230227]  drm_kms_helper[  131.232749]  snd_compress[  131.235792]  videobuf2_memops[  131.239009]  videobuf2_common[  131.241791]  dwc2[  131.244400]  snd_pcm_dmaengine[  131.247355]  videobuf2_v4l2[  131.250311]  snd_pcm[  131.252226]  videodev[  131.255268]  drm_panel_orientation_quirks[  131.258050]  drm[  131.260225]  mc[  131.262486]  snd_soc_core[  131.266484]  snd_timer[  131.268312]  pwm_bcm2835[  131.270053]  snd[  131.272662]  i2c_bcm2835[  131.275010]  pwm_bl[  131.277531]  snd_bcm2835(C)[  131.279358]  backlight[  131.281880]  spi_bcm2835[  131.283968]  nvmem_rmem[  131.286750]  raspberrypi_gpiomem[  131.289099]  uio_pdrv_genirq[  131.291620]  snd_compress[  131.294055]  uio[  131.297272]  videobuf2_common[  131.302749]  snd_pcm_dmaengine[  131.304581] CPU: 1 UID: 0 PID: 41 Comm: kworker/u20:0 Tainted: G        WC         6.12.32-v8 #1[  131.307533]  snd_pcm drm_panel_orientation_quirks[  131.309015] Tainted: [W]=WARN, [C]=CRAP[  131.312056]  mc[  131.320830] Hardware name: Raspberry Pi Compute Module 4 Rev 1.1 (DT)[  131.325523]  snd_timer[  131.329349] Workqueue: events_unbound commit_work [drm_kms_helper][  131.331088]  snd pwm_bl[  131.339866]  backlight[  131.346035] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)[  131.348469]  nvmem_rmem[  131.349949] pc : vc4_atomic_commit_tail+0x878/0x930 [vc4][  131.352297]  uio_pdrv_genirq[  131.359247] lr : vc4_atomic_commit_tail+0x204/0x930 [vc4][  131.361682]  uio[  131.367070] sp : ffffffc080183d00[  131.369940] CPU: 3 UID: 0 PID: 54 Comm: kworker/u20:2 Tainted: G        WC         6.12.32-v8 #1[  131.375326] x29: ffffffc080183d00[  131.377155] Tainted: [W]=WARN, [C]=CRAP[  131.380457]  x28: 0000000000000000[  131.389230] Hardware name: Raspberry Pi Compute Module 4 Rev 1.1 (DT)[  131.392534]  x27: 0000000000000000[  131.396358] Workqueue: events_unbound commit_work [drm_kms_helper][  131.399750] x26: ffffff8044850080[  131.409567]  x25: ffffff8044bcb800[  131.415736] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)[  131.417215]  x24: 0000000000000006[  131.420519] pc : vc4_atomic_commit_tail+0x2c8/0x930 [vc4][  131.422001] x23: ffffff8044850080[  131.425389] lr : vc4_atomic_commit_tail+0x2c4/0x930 [vc4][  131.432339]  x22: ffffff8042bb4900[  131.435729] sp : ffffffc0807f3d00[  131.441116]  x21: ffffff8041fe6000[  131.442596] x29: ffffffc0807f3d00[  131.451286]  x28: 0000000000000000[  131.454675] x20: 0000000000000150[  131.457978]  x27: 0000000000000000[  131.461368]  x19: 0000000008339c00[  131.466151]  x18: 0000000000000000[  131.469541] x26: ffffff8042bb4970[  131.476234]  x25: ffffff8042bb4900[  131.479624] x17: 0000000000000000[  131.481104]  x24: ffffff8045f1d840[  131.484494]  x16: ffffffd6848369d0[  131.489277]  x15: 0000000000000000[  131.492666] x23: ffffff8044850080[  131.499359]  x22: ffffff8042bb4800[  131.502749] x14: 0000000000000000[  131.504229]  x21: ffffff8041fe6000[  131.507619]  x13: 000000000ee6b280[  131.512402]  x12: 0000000480000008[  131.515792] x20: 000000001dcd6500[  131.522485]  x19: ffffff8042bb4880[  131.525875] x11: ffffffc08002d000[  131.527354]  x18: 0000000000000000[  131.530744]  x10: 0000000000001a40[  131.535528]  x9 : ffffffd68482d594[  131.538917] x17: 0000000000000000[  131.545610]  x16: ffffffd6848369d0[  131.549000] x8 : 000000000000003e[  131.550480]  x15: ffffffc081fc3c30[  131.553870]  x7 : 000000000ee6b280[  131.558652]  x6 : 0ee6b28000000004[  131.562042] x14: ffffffc081fc3c40[  131.568735]  x13: 0000000000000000[  131.572125] x5 : 0000000000000001[  131.573605]  x12: 0000000000000000[  131.576995]  x4 : 0000000000000000[  131.581778]  x3 : 0000000000000000[  131.585168] x11: 0000000000000040[  131.591861]  x10: 0000000000001a40[  131.595250] x2 : ffffff804084a100[  131.596730]  x9 : ffffffd68482d594[  131.600120]  x1 : ffffff804084a100[  131.604903]  x0 : 00000000ffffffea[  131.608293] x8 : 0000000000000000[  131.614986]  x7 : 0000000000000000[  131.618377] Call trace:[  131.619856]  x6 : 0000000000000001[  131.623247]  vc4_atomic_commit_tail+0x878/0x930 [vc4][  131.628030]  commit_tail+0xac/0x1a0 [drm_kms_helper][  131.631419] x5 : 0000000000000000[  131.633855]  commit_work+0x1c/0x30 [drm_kms_helper][  131.637245]  x4 : 0000000000000000[  131.642285]  process_one_work+0x158/0x3d0[  131.643764]  x3 : 0000000000000000[  131.648718]  worker_thread+0x2d8/0x3e8[  131.652023] x2 : ffffff804101c200[  131.656887]  kthread+0x11c/0x128[  131.660277]  x1 : ffffff804101c200[  131.664275]  ret_from_fork+0x10/0x20[  131.667665]  x0 : 00000000ffffffea[  131.671402] ---[ end trace 0000000000000000 ]---[  131.672884] Call trace:[  131.698265]  vc4_atomic_commit_tail+0x2c8/0x930 [vc4][  131.703350]  commit_tail+0xac/0x1a0 [drm_kms_helper][  131.708355]  commit_work+0x1c/0x30 [drm_kms_helper][  131.713269]  process_one_work+0x158/0x3d0[  131.717276]  worker_thread+0x2d8/0x3e8[  131.721020]  kthread+0x11c/0x128[  131.724242]  ret_from_fork+0x10/0x20[  131.727813] ---[ end trace 0000000000000000 ]---
So far, I think my issue is making sure the edid file I got is correct. I don't understand why if I call video=HDMI-A-1:1024x600@60D on the cmdline.txt it does not affect the results.

Also I ventured in trying to produce a EDID file based on the one I retrieved. However I must say that sometimes I'm just guessing. This is what I have tried:

Removing all the CEA Blocks except one and based on the following:

Code:

hdmi_timings=1024 0 160 10 160 600 0 12 1 23 0 0 0 60 0 52000000 6
I determined these values:

Code:

<h_active_pixels> 1024<h_sync_polarity> 0<h_front_porch> 160 <h_sync_pulse> 10<h_back_porch> 160 <v_active_lines> 600 <v_sync_polarity> 0 <v_front_porch> 12 <v_sync_pulse> 1<v_back_porch> 23<v_sync_offset_a> 0<v_sync_offset_b> 0<pixel_rep> 0<frame_rate> 60 <interlaced> 0<pixel_freq> 52000000 <aspect_ratio> 6
Among my infinite doubts, for example, I assumed that Pixel Clock is 52,00 from the above <pixel_freq> 52000000

Here is an screenshot of that page from the editor.

Image

Sadly, it did not provide any noticeable change on the results.

If you can provide me any guidance, I would be very grateful.

Thank you!

Statistics: Posted by mrmauro — Sat Jun 21, 2025 2:52 am



Viewing all articles
Browse latest Browse all 8015

Trending Articles