I have the HDMI-to-VGA adapter with the bad EDID. The monitor says "unsupported mode" on the mode that should be supported. The 1600x900 mode don't work, only the 1280x720. The virtual console is broken.

Using the EDID override, I was able to set 1440x900 mode in both X and console. That however prevented ALSA from working. Even with the original EDID dump.

There's no visible difference in the system. Pulseaudio have the same playback device. Aplay works the same. The only difference is no sound.

By the way, the system is Allwinner H3.

Add: I used Deltacast E-EDID for patching. Just took default edid/1440x900.bin and added a CEA extension block.

  • Which CEA block? Audio? With the same information as in the original EDID? What are the drivers for the video hardware, and the audio HDMI? Does the correct ELD part of the EDID show up in /proc/asound/card*/eld\#*, with and/or without your overwrite? IIRC the cooperation between the video drivers supplying the EDID and the audio driver extracting the ELD is a bit sketchy, so it may well not work with a user-supplied EDID ... in doubt, read kernel code.
    – dirkt
    Dec 22 '17 at 10:27
  • Audio and channel. With the same. Driver for the sound is allwinner-hdmi. There's no eld either with or without override. To read kernel code? Okay, I'll try.
    – user267120
    Dec 22 '17 at 10:41
  • The system says it's okay, but it's not.
    – user267120
    Dec 22 '17 at 10:44
  • Had time to look into the source code. It seems that something important is in file github.com/linux-sunxi/linux-sunxi/blob/sunxi-next/sound/soc/… at line 787. I think there. Then look to vars backwards until I'll find it.
    – user267120
    Dec 25 '17 at 9:36
  • Also, allwinner-hdmi is just name, the module is snd_soc_hdmi_codec.
    – user267120
    Dec 25 '17 at 9:37

I think the exact solution is too hard for me to find. So I did this instead.

I wrote

extraargs=drm_kms_helper.drm_fbdev_overalloc=200 video=1024x768

in /boot/armbianEnv.txt and

Section "Monitor"
   Identifier    "HDMI-1"

Section "Device"
    Identifier     "Allwinner sun4i DRM driver"
    Driver         "armsoc"
    Option         "DRI2"   "true"
        Option         "ConnectedMonitor" "HDMI-1"
        Option         "CustomEDID" "HDMI-1:/lib/firmware/edid/1280x1024.bin"
        Option         "IgnoreEDID" "false"
        Option         "UseEDID" "true"

Section "ServerFlags"
Option  "AIGLX" "off"

Section "Screen"
   Identifier    "Screen0"
   Device        "Allwinner sun4i DRM driver"
   Monitor       "HDMI-1"

in /etc/X11/xorg.conf.d/80-armsoc-sun4i.conf .

I don't know if it's correct, but it works for me. Also note - I used another monitor. This monitor worked too but with different settings.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy