LinuxQuestions.org
Share your knowledge at the LQ Wiki.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 07-15-2018, 01:11 PM   #1
LuckyCyborg
Senior Member
 
Registered: Mar 2010
Posts: 3,630

Rep: Reputation: 3515Reputation: 3515Reputation: 3515Reputation: 3515Reputation: 3515Reputation: 3515Reputation: 3515Reputation: 3515Reputation: 3515Reputation: 3515Reputation: 3515
In Slackware64 current, the custom EDID on DRM works with kernel 4.14.x but not with 4.17.x


I have a computer which manifests something apparently beyond my current knowledge.

Several years ago, while a tempest and a lightning, that box was hit, and the attached monitor died, dragging with it some chip on motherboard which handle the EDID.

I do not know other details, because in that time the box was owned by a friend, who given it recently to me as gift.

It has a motherboard AM2+ M3A78-CM with Radeon HD3100 on-board, a processor Phenom x4 9350e at 2GHz, 4GB DDR800 made from 4 pieces and a hard drive SATA of 160GB.

Apparently, everything works, excluding that the box is unable to read the EDID from an attached monitor.

In this gifted box I installed Slackware64 current, using the method "full install" everything excluding KDEI.

Like I was aware from beginning, this computer was unable to read the EDID from my monitor, a LCD model BenQ G2020HDA, with native resolution of 1600x900.

I read its EDID using another box and get-edid, and I configured the following kernel parameters:
Code:
drm_kms_helper.edid_firmware=VGA-1:edid/BENQ-G2020HDA.bin
This works perfectly with the kernels 4.14.x shipped by Slackware64, and I got the 1600x900 resolution as my monitor expects for optimal performances, but because I heard of better performances for radeon on newer kernels, I installed also a 4.17.6 from there: https://dusk.idlemoor.tk/linux-4.17/x86_64/

However, this setup does not work with this kernel, so I got the fail-safe 1024x768 resolution, and in kernel messages I noticed a warning which instructed me to modify the command line, then I changed it to:
Code:
drm.edid_firmware=VGA-1:edid/BENQ-G2020HDA.bin
But even after this change, apparently my custom EDID is still not loaded and I am stuck in the fail-safe resolution.

Did someone know how to properly load a custom EDID with the newer kernels?

I do not think that the author of these kernel packages done something wrong, but rather there is a fine difference in their behavior compared with the LTS from current.

Difference which apparently I miss right now.

Any help is appreciated.

Last edited by LuckyCyborg; 07-15-2018 at 01:51 PM.
 
Old 07-15-2018, 04:37 PM   #2
ZhaoLin1457
Senior Member
 
Registered: Jan 2018
Posts: 1,071

Rep: Reputation: 1305Reputation: 1305Reputation: 1305Reputation: 1305Reputation: 1305Reputation: 1305Reputation: 1305Reputation: 1305Reputation: 1305Reputation: 1305
I have a box which is pretty similar with yours as motherboard and memory, but with an Athlon x2 7850 BE and a hard drive of 750GB.

Also, I run on it the Slackware64 and DUSK kernel 4.17.6, with Plasma 5.13.2.

The monitor attached to it has the ability to disable the DDC bus, which transports the EDID data to computer.

So, I disabled it, then I used kernel parameters setup similar to yours. It works fine with a custom EDID and DDC disabled.

After these experiments, I think that the damage produced in the past by that lightning to your box is a bit bigger, and it cannot detect even the presence of the monitor.

Somehow, maybe the 4.14 kernels have an workaround for this, or maybe the newer ones are more picky, I am not sure about what happens for real.

But I think you need to try to force enabling (and disabling) the video outputs according with your setup, like
Code:
video=VGA-1:e video=DVI-D-1:d video=DP-1:d drm.edid_firmware=VGA-1:edid/BENQ-G2020HDA.bin
The first parameter force enabling of VGA output and the next two forces disabling the DVI-D and DisplayPort outputs.

Last edited by ZhaoLin1457; 07-15-2018 at 04:41 PM.
 
3 members found this post helpful.
Old 07-15-2018, 04:47 PM   #3
LuckyCyborg
Senior Member
 
Registered: Mar 2010
Posts: 3,630

Original Poster
Rep: Reputation: 3515Reputation: 3515Reputation: 3515Reputation: 3515Reputation: 3515Reputation: 3515Reputation: 3515Reputation: 3515Reputation: 3515Reputation: 3515Reputation: 3515
Quote:
Originally Posted by ZhaoLin1457 View Post
I have a box which is pretty similar with yours as motherboard and memory, but with an Athlon x2 7850 BE and a hard drive of 750GB.

Also, I run on it the Slackware64 and DUSK kernel 4.17.6, with Plasma 5.13.2.

The monitor attached to it has the ability to disable the DDC bus, which transports the EDID data to computer.

So, I disabled it, then I used kernel parameters setup similar to yours. It works fine with a custom EDID and DDC disabled.

After these experiments, I think that the damage produced in the past by that lightning to your box is a bit bigger, and it cannot detect even the presence of the monitor.

Somehow, maybe the 4.14 kernels have an workaround for this, or maybe the newer ones are more picky, I am not sure about what happens for real.

But I think you need to try to force enabling (and disabling) the video outputs according with your setup, like
Code:
video=VGA-1:e video=DVI-D-1:d video=DP-1:d drm.edid_firmware=VGA-1:edid/BENQ-G2020HDA.bin
The first parameter force enabling of VGA output and the next two forces disabling the DVI-D and DisplayPort outputs.
Thank you, with the kernel parameters suggested by you the custom EDID is loaded and works perfectly. I will mark the thread as solved.

Good to know, apparently this box is unable also to detect an attached monitor.

Last edited by LuckyCyborg; 07-15-2018 at 04:48 PM.
 
Old 07-15-2018, 04:55 PM   #4
akimmet
Member
 
Registered: Jul 2018
Location: NW Ohio, USA
Distribution: Slackware64 -current
Posts: 62

Rep: Reputation: 62
The newer kernel variable may not like the VGA-1.
If you are only using one monitor, try this instead.

Code:
drm.edid_firmware=edid/BENQ-G2020HDA.bin
 
1 members found this post helpful.
Old 07-15-2018, 04:56 PM   #5
ZhaoLin1457
Senior Member
 
Registered: Jan 2018
Posts: 1,071

Rep: Reputation: 1305Reputation: 1305Reputation: 1305Reputation: 1305Reputation: 1305Reputation: 1305Reputation: 1305Reputation: 1305Reputation: 1305Reputation: 1305
Quote:
Originally Posted by LuckyCyborg View Post
Thank you, with the kernel parameters suggested by you the custom EDID is loaded and works perfectly. I will mark the thread as solved.

Good to know, apparently this box is unable also to detect an attached monitor.
No problem. I am glad to be of help.

And a hint. The RS780 chipsets has no DisplayPort output, then I think ASUS added it on this M3A78-CM motherboard using a converter connected via PCI-express, and because this chip is standalone, I think is very possible that this DisplayPort output is not damaged.

There are DisplayPort to VGA adapters, and you may try one. Could be possible to obtain a fully functional box, with no need of kernel tricks.
 
2 members found this post helpful.
Old 07-15-2018, 04:59 PM   #6
LuckyCyborg
Senior Member
 
Registered: Mar 2010
Posts: 3,630

Original Poster
Rep: Reputation: 3515Reputation: 3515Reputation: 3515Reputation: 3515Reputation: 3515Reputation: 3515Reputation: 3515Reputation: 3515Reputation: 3515Reputation: 3515Reputation: 3515
Quote:
Originally Posted by akimmet View Post
The newer kernel variable may not like the VGA-1.
If you are only using one monitor, try this instead.

Code:
drm.edid_firmware=edid/BENQ-G2020HDA.bin
It works fine with this command line
Code:
video=VGA-1:e video=DVI-D-1:d video=DP-1:d drm.edid_firmware=VGA-1:edid/BENQ-G2020HDA.bin
But yes, I use a single monitor, connected to the VGA output, so I will test also your suggestion. Thank you!

Last edited by LuckyCyborg; 07-15-2018 at 05:06 PM.
 
Old 07-15-2018, 05:03 PM   #7
LuckyCyborg
Senior Member
 
Registered: Mar 2010
Posts: 3,630

Original Poster
Rep: Reputation: 3515Reputation: 3515Reputation: 3515Reputation: 3515Reputation: 3515Reputation: 3515Reputation: 3515Reputation: 3515Reputation: 3515Reputation: 3515Reputation: 3515
Quote:
Originally Posted by ZhaoLin1457 View Post
No problem. I am glad to be of help.

And a hint. The RS780 chipsets has no DisplayPort output, then I think ASUS added it on this M3A78-CM motherboard using a converter connected via PCI-express, and because this chip is standalone, I think is very possible that this DisplayPort output is not damaged.

There are DisplayPort to VGA adapters, and you may try one. Could be possible to obtain a fully functional box, with no need of kernel tricks.
I will consider this idea too, thanks!

I remember that one of my friends has an adapter from DisplayPort to VGA, DVI and HDMI, then I have the posibility to borrow it and to do a preliminary test to confirm if this works on my motherboard.
 
Old 05-01-2023, 10:48 AM   #8
slacktroll
Member
 
Registered: May 2011
Distribution: Slackware64/current
Posts: 175

Rep: Reputation: 45
Going to wake this thread from the dead. I had similar errors. I use a 24" 144hz AOC G-Sync monitor.

However, for me, the monitor wouldn't give any signal at all with the nouveau driver. I refuse to use the nvidia driver, where it actual works.
I got this error in logs:

Code:
nouveau 0000:01:00.0: [drm] Cannot find any crtc or sizes
And the monitor would go black

I had no idea which output was used so i debugged with the code bellow (blacklisted the nouveau driver first)
Code:
echo 0x19F | sudo tee /sys/module/drm/parameters/debug
dmesg -C
dmesg -w >nouveau.log &
modprobe nouveau
sleep 10s;
reboot
Now there is more interesting out error in the nouveau.log

Code:
nouveau 0000:01:00.0: DRM: DDC responded, but no EDID for DP-3
I scratched my head and wonder what i should do, i later found out about edid-generator at https://github.com/akatrevorjay/edid-generator
However, i had no modeline to use, so i had to start the computer with the nvidia-driver, i extracted the modeline with this command

X :0 -logverbose 6 > modelines

To generate at working modeline from that output i had this output

Code:
[   651.210] (II) NVIDIA(GPU-0):     1920 x 1080 @ 120 Hz
[   651.210] (II) NVIDIA(GPU-0):       Pixel Clock      : 285.50 MHz
[   651.210] (II) NVIDIA(GPU-0):       HRes, HSyncStart : 1920, 1968
[   651.210] (II) NVIDIA(GPU-0):       HSyncEnd, HTotal : 2000, 2080
[   651.210] (II) NVIDIA(GPU-0):       VRes, VSyncStart : 1080, 1083
[   651.210] (II) NVIDIA(GPU-0):       VSyncEnd, VTotal : 1088, 1144
[   651.210] (II) NVIDIA(GPU-0):       Sync Polarity    : +H -V 
[   651.210] (II) NVIDIA(GPU-0):     Viewport                 1920x1080+0+0
[   651.210] (II) NVIDIA(GPU-0):       Horizontal Taps        1
[   651.210] (II) NVIDIA(GPU-0):       Vertical Taps          1
[   651.210] (II) NVIDIA(GPU-0):     Mode "1920x1080_120" is valid.
[   651.210] (II) NVIDIA(GPU-0):   Validating Mode "1920x1080_144":
[   651.210] (II) NVIDIA(GPU-0):     Mode Source: EDID
[   651.210] (II) NVIDIA(GPU-0):     1920 x 1080 @ 144 Hz
[   651.210] (II) NVIDIA(GPU-0):       Pixel Clock      : 325.08 MHz
[   651.210] (II) NVIDIA(GPU-0):       HRes, HSyncStart : 1920, 1944
[   651.210] (II) NVIDIA(GPU-0):       HSyncEnd, HTotal : 1976, 2056
[   651.210] (II) NVIDIA(GPU-0):       VRes, VSyncStart : 1080, 1083
[   651.210] (II) NVIDIA(GPU-0):       VSyncEnd, VTotal : 1088, 1098
[   651.210] (II) NVIDIA(GPU-0):       Sync Polarity    : +H +V 
[   651.210] (II) NVIDIA(GPU-0):     Viewport                 1920x1080+0+0
[   651.210] (II) NVIDIA(GPU-0):       Horizontal Taps        1
[   651.210] (II) NVIDIA(GPU-0):       Vertical Taps          1
[   651.210] (II) NVIDIA(GPU-0):     Mode "1920x1080_144" is valid.
I converted the modelines from that output to

modeline.conf
Code:
#Modeline "1920x1080" 325.08 1920 1944 1976 2056 1080 1083 1088 1098 +HSync +Vsync
Modeline "1920x1080" 285.50 1920 1968 2000 2080 1080 1083 1088 1144 +HSync -VSync
After that i used the command modeline2edid (it's in the edid-generator package)
Code:
./modeline2edid modeline.conf
Searching for modelines in 'xorg.conf'
-- Found modeline: Modeline "1920x1080" 285.50 1920 1968 2000 2080 1080 1083 1088 1144 +HSync -VSync
Computed ratio: 16:9Wrote 1920x1080.S
After that i ran make in the edid-generator tree. A big fat note: i ran make in a Debian environment because it wouldn't work in Slackware64-current (ended up with a broken edid file). there is probably different version of hexdump in Slackware and Debian.

I first tried the 1920x1080 144hz modeline on monitor but that resulted in a garbage output with nouveau, probably something nvidia-specific. The 120hz mode works fine.

The end of the story, make sure to add "video=DP-3:e drm.edid_firmware=DP-3:edid/file.bin" to the append line to lilo.conf.
In this context "edid/file.bin" actual means /lib/firmware/edid/file.bin

Best Regards,
slacktroll
 
Old 06-06-2024, 04:34 PM   #9
UrbanDesimator
Member
 
Registered: Feb 2022
Posts: 36

Rep: Reputation: 6
Thanks

Just to say a big thanks to ZhaoLin1457 and akimmet, the information you provided cured a different really annoying issue. I was getting tons of msg's a day in syslog saying nouveau 0000:01:00.0: DRM: DDC responded, but no EDID for DVI-D-1. Not causing the system any problems just cluttering up syslog and dmesg.
video=DP-1:d video=DVI-D-1:d video=DVI-I-1:d video=HDMI-A-1:e drm.edid_firmware=edid/toshiba_tv_0.bin
I tried a similar line before as bot parameter which didn't work looking at my files I had the enabled device first.
So thanks again UrbanMusic
 
  


Reply

Tags
custom edid, kernel 4.17.x, slackware64 current


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Incorrect resolution on external monitor w/ custom EDID (Fedora 13, GeForce GT 330M) ESC201 Linux - Software 0 08-03-2010 05:49 PM
Kernel panic after upgrading slackware64-current to 2.6.32.x kernel Lenard Spencer Slackware 4 01-22-2010 10:54 AM
[SOLVED] Custom kernel breaks Skype on Slackware64 multilib? Hangdog42 Slackware 2 10-17-2009 10:26 AM
slackware64 lvm/luks and mkinitrd for custom kernel chopp Slackware 19 08-25-2009 02:33 PM
slackware64 current custom et ready iso ponce Slackware 12 08-06-2009 07:48 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 03:54 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration