2012-10-21 14:43:12

by Mark Hounschell

[permalink] [raw]
Subject: drm_kms_helper problems

I have a TV that appears to not provide proper EDID info to the HDMI or DVI
ports of my Intel DH77DF motherboard. I received some pointers from this
list that pointed me in the direction of creating my own EDID file and I
now have a binary blob that matches what the service manual says is the
proper EDID info.

But I am unable to get the drm_kms_helper module to load and use this file.
My relevant kernel config options are.

CONFIG_DRM_KMS_HELPER=m
CONFIG_DRM_LOAD_EDID_FIRMWARE=y

my relevant kernel command line contains:

video=card0-HDMI-A-1:e
drm_kms_helper.edid_firmware=card0-HDMI-A-1:edid/lg42lb9df_hdmi1.edid

The edid file:
# ls -al /lib/firmware/edid/lg42lb9df_hdmi1.edid
-rw-r--r-- 1 root root 256 Oct 16 05:46 /lib/firmware/edid/lg42lb9df_hdmi1.edid

connector info from /sys/class/drm/

card0 card0-DP-1 card0-DP-2 card0-DP-3 card0-HDMI-A-1 card0-HDMI-A-2
card0-HDMI-A-3 card0-VGA-1 controlD64 version

And I don't really understand why I have 3 entries for the one hdmi port?
Nor do I really understand _exactly_ how to define the connector in my
kernel command line or which of the 3 connectors from /sys I should be
using. I've tried different variants. Ie. card0-HDMI-A-1and HDMI-A-1.

The results in the kernel log file remain:

[ 1.879654] drm_kms_helper: Unknown parameter `edid'

I assume I am doing something wrong but I have put some debug printks in
kernel/params.c that shows me every call made to it and it's params. It is
entered many times and I see a sequence to in the log file. As an example,
the last one to call with params before drm_kms_helper is "late" and here
are my debug prints for it:

[ 0.840206] parse_args: Entered for late
[ 0.840207] parse_args: doing = late
[ 0.840208] parse_args: args =
root=/dev/disk/by-id/ata-INTEL_SSDSC2CW060A3_CVCV205106EB060AGN-part4
video=1024x768
resume=/dev/disk/by-id/ata-INTEL_SSDSC2CW060A3_CVCV205106EB060AGN-part3
splash=silent quiet vga=0x37e irqpoll video=card0-HDMI-A-1:e
drm_kms_helper.edid_firmware=card0-HDMI-A-1:edid/lg42lb9df_hdmi1.edid
[ 0.840209] parse_args: params =
[ 0.840210] parse_args: num = 174
[ 0.840210] parse_args: min_level = 7
[ 0.840211] parse_args: max_level = 7

Now when it gets to drm_kms_helper this is what I get and this is certainly
screwed up, I just don't know why.

[ 1.879648] parse_args: Entered for drm_kms_helper
[ 1.879648] parse_args: doing = drm_kms_helper
[ 1.879649] parse_args: args = edid
\xffffff86\xffffffe2\xfffffff8h\xffffff89\xffffff86\xffffffc0\xffffff80\xffffffff\xffffffffԒ\xffffffe2\xfffffff8T\xffffff86\xffffffe2\xfffffff88\xffffff89\xffffff86\xffffffc0\xffffffa4\xffffffff\xffffffffd\xffffff86\xffffffe2\xfffffff8
[ 1.879650] parse_args: num = 2
[ 1.879651] parse_args: min_level = -32768
[ 1.879651] parse_args: max_level = 32767
[ 1.879653]
\xffffff86\xffffffe2\xfffffff8h\xffffff89\xffffff86\xffffffc0\xffffff80\xffffffff\xffffffffԒ\xffffffe2\xfffffff8T\xffffff86\xffffffe2\xfffffff88\xffffff89\xffffff86\xffffffc0\xffffffa4\xffffffff\xffffffffd\xffffff86\xffffffe2\xfffffff8,
num=2, min_level=-32768, max_level=32767

Then finally:

[ 1.879654] drm_kms_helper: Unknown parameter `edid'

The additional printks I inserted into kernel/params.c:

if (*args)
pr_debug("doing %s, parsing ARGS: '%s'\n", doing, args);

+ if (*args) {
+ printk("\nparse_args: Entered for %s\n", doing);
+ printk("parse_args: doing = %s\n", doing);
+ printk("parse_args: args = %s\n", args);
+ printk("parse_args: params = %s\n", params);
+ printk("parse_args: num = %d\n", num);
+ printk("parse_args: min_level = %d\n",min_level);
+ printk("parse_args: max_level = %d\n", max_level);
+ }

while (*args) {

This is using a vanilla 3.6.2 kernel. Any help would be appreciated.

Regards
Mark


2012-10-21 14:59:10

by Bruno Prémont

[permalink] [raw]
Subject: Re: [Intel-gfx] drm_kms_helper problems

Hi mark,

On Sun, 21 October 2012 Mark Hounschell <[email protected]> wrote:
> I have a TV that appears to not provide proper EDID info to the HDMI or DVI
> ports of my Intel DH77DF motherboard. I received some pointers from this
> list that pointed me in the direction of creating my own EDID file and I
> now have a binary blob that matches what the service manual says is the
> proper EDID info.
>
> But I am unable to get the drm_kms_helper module to load and use this file.
> My relevant kernel config options are.
>
> CONFIG_DRM_KMS_HELPER=m
> CONFIG_DRM_LOAD_EDID_FIRMWARE=y
>
> my relevant kernel command line contains:
>
> video=card0-HDMI-A-1:e
> drm_kms_helper.edid_firmware=card0-HDMI-A-1:edid/lg42lb9df_hdmi1.edid

The variant without card0- should be the right one.

> The edid file:
> # ls -al /lib/firmware/edid/lg42lb9df_hdmi1.edid
> -rw-r--r-- 1 root root 256 Oct 16 05:46 /lib/firmware/edid/lg42lb9df_hdmi1.edid
>
> connector info from /sys/class/drm/
>
> card0 card0-DP-1 card0-DP-2 card0-DP-3 card0-HDMI-A-1 card0-HDMI-A-2
> card0-HDMI-A-3 card0-VGA-1 controlD64 version
>
> And I don't really understand why I have 3 entries for the one hdmi port?
> Nor do I really understand _exactly_ how to define the connector in my
> kernel command line or which of the 3 connectors from /sys I should be
> using. I've tried different variants. Ie. card0-HDMI-A-1and HDMI-A-1.
>
> The results in the kernel log file remain:
>
> [ 1.879654] drm_kms_helper: Unknown parameter `edid'

As your drm_kms_helper is built modular, did you try not putting that
parameter on kernel cmdline but rather put it in modprobe's configuration
for that module? (may doing the whole loading manually).

# modprobe drm_kms_helper edid_firmware=HDMI-A-1:edid/lg42lb9df_hdmi1.edid

I have no idea why it fails for you, here on the systems I have it works
fine (on one where everything is built into the kernel I did set the cmdline
arguments via CONFIG_CMDLINE="..." (having CONFIG_CMDLINE_BOOL=y).

> I assume I am doing something wrong but I have put some debug printks in
> kernel/params.c that shows me every call made to it and it's params. It is
> entered many times and I see a sequence to in the log file. As an example,
> the last one to call with params before drm_kms_helper is "late" and here
> are my debug prints for it:

Did you check that your bootloader get things right, e.g. if results are the
same no matter in which order you put the kernel parameters (and if there are
some non-ASCII values in there).
As you have quite some length of parameters there could be some buffer size
issue.
(take this as just wild guessing)

Bruno


> [ 0.840206] parse_args: Entered for late
> [ 0.840207] parse_args: doing = late
> [ 0.840208] parse_args: args =
> root=/dev/disk/by-id/ata-INTEL_SSDSC2CW060A3_CVCV205106EB060AGN-part4
> video=1024x768
> resume=/dev/disk/by-id/ata-INTEL_SSDSC2CW060A3_CVCV205106EB060AGN-part3
> splash=silent quiet vga=0x37e irqpoll video=card0-HDMI-A-1:e
> drm_kms_helper.edid_firmware=card0-HDMI-A-1:edid/lg42lb9df_hdmi1.edid
> [ 0.840209] parse_args: params =
> [ 0.840210] parse_args: num = 174
> [ 0.840210] parse_args: min_level = 7
> [ 0.840211] parse_args: max_level = 7
>
> Now when it gets to drm_kms_helper this is what I get and this is certainly
> screwed up, I just don't know why.
>
> [ 1.879648] parse_args: Entered for drm_kms_helper
> [ 1.879648] parse_args: doing = drm_kms_helper
> [ 1.879649] parse_args: args = edid
> \xffffff86\xffffffe2\xfffffff8h\xffffff89\xffffff86\xffffffc0\xffffff80\xffffffff\xffffffffԒ\xffffffe2\xfffffff8T\xffffff86\xffffffe2\xfffffff88\xffffff89\xffffff86\xffffffc0\xffffffa4\xffffffff\xffffffffd\xffffff86\xffffffe2\xfffffff8
> [ 1.879650] parse_args: num = 2
> [ 1.879651] parse_args: min_level = -32768
> [ 1.879651] parse_args: max_level = 32767
> [ 1.879653]
> \xffffff86\xffffffe2\xfffffff8h\xffffff89\xffffff86\xffffffc0\xffffff80\xffffffff\xffffffffԒ\xffffffe2\xfffffff8T\xffffff86\xffffffe2\xfffffff88\xffffff89\xffffff86\xffffffc0\xffffffa4\xffffffff\xffffffffd\xffffff86\xffffffe2\xfffffff8,
> num=2, min_level=-32768, max_level=32767
>
> Then finally:
>
> [ 1.879654] drm_kms_helper: Unknown parameter `edid'
>
> The additional printks I inserted into kernel/params.c:
>
> if (*args)
> pr_debug("doing %s, parsing ARGS: '%s'\n", doing, args);
>
> + if (*args) {
> + printk("\nparse_args: Entered for %s\n", doing);
> + printk("parse_args: doing = %s\n", doing);
> + printk("parse_args: args = %s\n", args);
> + printk("parse_args: params = %s\n", params);
> + printk("parse_args: num = %d\n", num);
> + printk("parse_args: min_level = %d\n",min_level);
> + printk("parse_args: max_level = %d\n", max_level);
> + }
>
> while (*args) {
>
> This is using a vanilla 3.6.2 kernel. Any help would be appreciated.
>
> Regards
> Mark

2012-10-21 18:18:47

by Mark Hounschell

[permalink] [raw]
Subject: Re: [Intel-gfx] drm_kms_helper problems

Hi Bruno,

On 10/21/2012 10:58 AM, Bruno Prémont wrote:
> Hi mark,
>
> On Sun, 21 October 2012 Mark Hounschell <[email protected]> wrote:
>> I have a TV that appears to not provide proper EDID info to the HDMI or DVI
>> ports of my Intel DH77DF motherboard. I received some pointers from this
>> list that pointed me in the direction of creating my own EDID file and I
>> now have a binary blob that matches what the service manual says is the
>> proper EDID info.
>>
>> But I am unable to get the drm_kms_helper module to load and use this file.
>> My relevant kernel config options are.
>>
>> CONFIG_DRM_KMS_HELPER=m
>> CONFIG_DRM_LOAD_EDID_FIRMWARE=y
>>
>> my relevant kernel command line contains:
>>
>> video=card0-HDMI-A-1:e
>> drm_kms_helper.edid_firmware=card0-HDMI-A-1:edid/lg42lb9df_hdmi1.edid
>
> The variant without card0- should be the right one.
>

OK. Changed it. What if I had more than one video card?

>> The edid file:
>> # ls -al /lib/firmware/edid/lg42lb9df_hdmi1.edid
>> -rw-r--r-- 1 root root 256 Oct 16 05:46 /lib/firmware/edid/lg42lb9df_hdmi1.edid
>>
>> connector info from /sys/class/drm/
>>
>> card0 card0-DP-1 card0-DP-2 card0-DP-3 card0-HDMI-A-1 card0-HDMI-A-2
>> card0-HDMI-A-3 card0-VGA-1 controlD64 version
>>

Which should I use? HDMI-A-1, HDMI-A-2, or HDMI-A-3? Why re there 3??

>> And I don't really understand why I have 3 entries for the one hdmi port?
>> Nor do I really understand _exactly_ how to define the connector in my
>> kernel command line or which of the 3 connectors from /sys I should be
>> using. I've tried different variants. Ie. card0-HDMI-A-1and HDMI-A-1.
>>
>> The results in the kernel log file remain:
>>
>> [ 1.879654] drm_kms_helper: Unknown parameter `edid'
>
> As your drm_kms_helper is built modular, did you try not putting that
> parameter on kernel cmdline but rather put it in modprobe's configuration
> for that module? (may doing the whole loading manually).
>

I've created a /etc/modprobe.d/20-drm_kms_helper.conf with:
options drm_kms_helper edid_firmware=HDMI-A-1:edid/lg42lb9df_hdmi1.edid
and now I'm getting something different. It looks like it's trying. In fact
I actually get a screen on the TV now. It's not 1920x1080 but 1024x768 at
60hz.

[ 1.883124] load_module: Calling parse_args for module = drm_kms_helper
args = edid_firmware=HDMI-A-1:edid/lg42lb9df_hdmi1.edid
[ 1.883126]
[ 1.883126] parse_args: (1) Entered for drm_kms_helper
[ 1.883127]
[ 1.883127] parse_args: (2) Entered for drm_kms_helper
[ 1.883127] parse_args: doing = drm_kms_helper
[ 1.883128] parse_args: args =
edid_firmware=HDMI-A-1:edid/lg42lb9df_hdmi1.edid
F\xffffffc9\xfffffff8h\xffffff89\xffffff86\xffffffc0\xffffff80\xffffffff\xffffffff\xffffffd4R\xffffffc9\xfffffff8TF\xffffffc9\xfffffff88\xffffff89\xffffff86\xffffffc0\xffffffa4\xffffffff\xffffffffdF\xffffffc9\xfffffff8
[ 1.883129] parse_args: num = 2
[ 1.883130] parse_args: min_level = -32768
[ 1.883131] parse_args: max_level = 32767
[ 1.883132]
F\xffffffc9\xfffffff8h\xffffff89\xffffff86\xffffffc0\xffffff80\xffffffff\xffffffff\xffffffd4R\xffffffc9\xfffffff8TF\xffffffc9\xfffffff88\xffffff89\xffffff86\xffffffc0\xffffffa4\xffffffff\xffffffffdF\xffffffc9\xfffffff8,
num=2, min_level=-32768, max_level=32767
[ 1.886855]
.
.
.
[ 2.132749] [drm] forcing HDMI-A-1 connector ON
[ 2.132752] [drm] forcing HDMI-A-2 connector ON
[ 2.132753] [drm] forcing HDMI-A-3 connector ON

[ 2.189769] [drm:edid_load] *ERROR* Requesting EDID firmware
"edid/lg42lb9df_hdmi1.edid" failed (err=-2)

I get a couple of the above messages.


[ 2.388623] [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid,
remainder is 130
[ 2.388631] Raw EDID:
[ 2.388635] 00 ff ff ff ff ff ff 00 ff ff ff ff ff ff ff ff


> # modprobe drm_kms_helper edid_firmware=HDMI-A-1:edid/lg42lb9df_hdmi1.edid
>

I can't seem to rm the modules already loaded to try this.

> I have no idea why it fails for you, here on the systems I have it works
> fine (on one where everything is built into the kernel I did set the cmdline
> arguments via CONFIG_CMDLINE="..." (having CONFIG_CMDLINE_BOOL=y).
>
>> I assume I am doing something wrong but I have put some debug printks in
>> kernel/params.c that shows me every call made to it and it's params. It is
>> entered many times and I see a sequence to in the log file. As an example,
>> the last one to call with params before drm_kms_helper is "late" and here
>> are my debug prints for it:
>
> Did you check that your bootloader get things right, e.g. if results are the
> same no matter in which order you put the kernel parameters (and if there are
> some non-ASCII values in there).
> As you have quite some length of parameters there could be some buffer size
> issue.
> (take this as just wild guessing)
>

The bootloader file is clean. Want me to send a complete dmesg again?

Mark

2012-10-21 19:19:22

by Bruno Prémont

[permalink] [raw]
Subject: Re: [Intel-gfx] drm_kms_helper problems

Hi Mark,

On Sun, 21 October 2012 Mark Hounschell <[email protected]> wrote:
> On 10/21/2012 10:58 AM, Bruno Prémont wrote:
> > On Sun, 21 October 2012 Mark Hounschell <[email protected]> wrote:
> >> I have a TV that appears to not provide proper EDID info to the HDMI or DVI
> >> ports of my Intel DH77DF motherboard. I received some pointers from this
> >> list that pointed me in the direction of creating my own EDID file and I
> >> now have a binary blob that matches what the service manual says is the
> >> proper EDID info.
> >>
> >> But I am unable to get the drm_kms_helper module to load and use this file.
> >> My relevant kernel config options are.
> >>
> >> CONFIG_DRM_KMS_HELPER=m
> >> CONFIG_DRM_LOAD_EDID_FIRMWARE=y
> >>
> >> my relevant kernel command line contains:
> >>
> >> video=card0-HDMI-A-1:e
> >> drm_kms_helper.edid_firmware=card0-HDMI-A-1:edid/lg42lb9df_hdmi1.edid
> >
> > The variant without card0- should be the right one.
> >
>
> OK. Changed it. What if I had more than one video card?

Two connectors from two distinct card should not get the same suffix number
even if they use same technology, so it should work. (unless something was
changed recently)

> >> The edid file:
> >> # ls -al /lib/firmware/edid/lg42lb9df_hdmi1.edid
> >> -rw-r--r-- 1 root root 256 Oct 16 05:46 /lib/firmware/edid/lg42lb9df_hdmi1.edid
> >>
> >> connector info from /sys/class/drm/
> >>
> >> card0 card0-DP-1 card0-DP-2 card0-DP-3 card0-HDMI-A-1 card0-HDMI-A-2
> >> card0-HDMI-A-3 card0-VGA-1 controlD64 version
> >>
>
> Which should I use? HDMI-A-1, HDMI-A-2, or HDMI-A-3? Why re there 3??
>
> >> And I don't really understand why I have 3 entries for the one hdmi port?
> >> Nor do I really understand _exactly_ how to define the connector in my
> >> kernel command line or which of the 3 connectors from /sys I should be
> >> using. I've tried different variants. Ie. card0-HDMI-A-1and HDMI-A-1.
> >>
> >> The results in the kernel log file remain:
> >>
> >> [ 1.879654] drm_kms_helper: Unknown parameter `edid'
> >
> > As your drm_kms_helper is built modular, did you try not putting that
> > parameter on kernel cmdline but rather put it in modprobe's configuration
> > for that module? (may doing the whole loading manually).
> >
>
> I've created a /etc/modprobe.d/20-drm_kms_helper.conf with:
> options drm_kms_helper edid_firmware=HDMI-A-1:edid/lg42lb9df_hdmi1.edid
> and now I'm getting something different. It looks like it's trying. In fact
> I actually get a screen on the TV now. It's not 1920x1080 but 1024x768 at
> 60hz.

As things get slightly better now, check what kernel detected:
- /sys/module/drm_kms_helper/parameters/edid_firmware
(should contain the path to firmware file)

Make sure both the firmware and modprobe config get included in your initrd
if you're using one.

> [ 1.883124] load_module: Calling parse_args for module = drm_kms_helper
> args = edid_firmware=HDMI-A-1:edid/lg42lb9df_hdmi1.edid
> [ 1.883126]
> [ 1.883126] parse_args: (1) Entered for drm_kms_helper
> [ 1.883127]
> [ 1.883127] parse_args: (2) Entered for drm_kms_helper
> [ 1.883127] parse_args: doing = drm_kms_helper
> [ 1.883128] parse_args: args =
> edid_firmware=HDMI-A-1:edid/lg42lb9df_hdmi1.edid
> F\xffffffc9\xfffffff8h\xffffff89\xffffff86\xffffffc0\xffffff80\xffffffff\xffffffff\xffffffd4R\xffffffc9\xfffffff8TF\xffffffc9\xfffffff88\xffffff89\xffffff86\xffffffc0\xffffffa4\xffffffff\xffffffffdF\xffffffc9\xfffffff8
> [ 1.883129] parse_args: num = 2
> [ 1.883130] parse_args: min_level = -32768
> [ 1.883131] parse_args: max_level = 32767
> [ 1.883132]
> F\xffffffc9\xfffffff8h\xffffff89\xffffff86\xffffffc0\xffffff80\xffffffff\xffffffff\xffffffd4R\xffffffc9\xfffffff8TF\xffffffc9\xfffffff88\xffffff89\xffffff86\xffffffc0\xffffffa4\xffffffff\xffffffffdF\xffffffc9\xfffffff8,
> num=2, min_level=-32768, max_level=32767
> [ 1.886855]
> .
> .
> .
> [ 2.132749] [drm] forcing HDMI-A-1 connector ON
> [ 2.132752] [drm] forcing HDMI-A-2 connector ON
> [ 2.132753] [drm] forcing HDMI-A-3 connector ON
>
> [ 2.189769] [drm:edid_load] *ERROR* Requesting EDID firmware
> "edid/lg42lb9df_hdmi1.edid" failed (err=-2)

Interesting, kernel/udev can't find the edid file but know what file
to look for... Is the edid file available at that time (initrd?)?

> I get a couple of the above messages.
>
>
> [ 2.388623] [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid,
> remainder is 130
> [ 2.388631] Raw EDID:
> [ 2.388635] 00 ff ff ff ff ff ff 00 ff ff ff ff ff ff ff ff

That's as ago with getting edid from hardware.

> > # modprobe drm_kms_helper edid_firmware=HDMI-A-1:edid/lg42lb9df_hdmi1.edid
> >
>
> I can't seem to rm the modules already loaded to try this.

There are multiple steps needed to be able to rmmod those modules:
- stop DRM users (e.g. X)
- disable fbcon
echo 1 > /sys/class/vtcon0/bind
echo 0 > /sys/class/vtcon1/bind
(assuming vtcon1 is fbcon, vtcon0 is VGA console)
- rmmod i915
- rmmod drm_kms_helper

Note that at time of modprobing i915 connectors will have different names!
(probably HDMI-A-4, HDMI-A-5, HDMI-A-6)

Alternatively you could blacklist all drm modules so they don't get loaded
automatically and you can load them manually one at a time when system has
booted.

> > I have no idea why it fails for you, here on the systems I have it works
> > fine (on one where everything is built into the kernel I did set the cmdline
> > arguments via CONFIG_CMDLINE="..." (having CONFIG_CMDLINE_BOOL=y).
> >
> >> I assume I am doing something wrong but I have put some debug printks in
> >> kernel/params.c that shows me every call made to it and it's params. It is
> >> entered many times and I see a sequence to in the log file. As an example,
> >> the last one to call with params before drm_kms_helper is "late" and here
> >> are my debug prints for it:
> >
> > Did you check that your bootloader get things right, e.g. if results are the
> > same no matter in which order you put the kernel parameters (and if there are
> > some non-ASCII values in there).
> > As you have quite some length of parameters there could be some buffer size
> > issue.
> > (take this as just wild guessing)
> >
>
> The bootloader file is clean. Want me to send a complete dmesg again?

Not needed for now.

Bruno

2012-10-22 11:42:32

by Mark Hounschell

[permalink] [raw]
Subject: Re: [Intel-gfx] drm_kms_helper problems

On 10/21/2012 03:18 PM, Bruno Prémont wrote:
> Hi Mark,
>
> On Sun, 21 October 2012 Mark Hounschell <[email protected]> wrote:
>> On 10/21/2012 10:58 AM, Bruno Prémont wrote:
>>> On Sun, 21 October 2012 Mark Hounschell <[email protected]> wrote:
>>>> I have a TV that appears to not provide proper EDID info to the HDMI or DVI
>>>> ports of my Intel DH77DF motherboard. I received some pointers from this
>>>> list that pointed me in the direction of creating my own EDID file and I
>>>> now have a binary blob that matches what the service manual says is the
>>>> proper EDID info.
>>>>
>>>> But I am unable to get the drm_kms_helper module to load and use this file.
>>>> My relevant kernel config options are.
>>>>
>>>> CONFIG_DRM_KMS_HELPER=m
>>>> CONFIG_DRM_LOAD_EDID_FIRMWARE=y
>>>>
>>>> my relevant kernel command line contains:
>>>>
>>>> video=card0-HDMI-A-1:e
>>>> drm_kms_helper.edid_firmware=card0-HDMI-A-1:edid/lg42lb9df_hdmi1.edid
>>>
>>> The variant without card0- should be the right one.
>>>
>>
>> OK. Changed it. What if I had more than one video card?
>
> Two connectors from two distinct card should not get the same suffix number
> even if they use same technology, so it should work. (unless something was
> changed recently)
>
>>>> The edid file:
>>>> # ls -al /lib/firmware/edid/lg42lb9df_hdmi1.edid
>>>> -rw-r--r-- 1 root root 256 Oct 16 05:46 /lib/firmware/edid/lg42lb9df_hdmi1.edid
>>>>
>>>> connector info from /sys/class/drm/
>>>>
>>>> card0 card0-DP-1 card0-DP-2 card0-DP-3 card0-HDMI-A-1 card0-HDMI-A-2
>>>> card0-HDMI-A-3 card0-VGA-1 controlD64 version
>>>>
>>
>> Which should I use? HDMI-A-1, HDMI-A-2, or HDMI-A-3? Why re there 3??
>>
>>>> And I don't really understand why I have 3 entries for the one hdmi port?
>>>> Nor do I really understand _exactly_ how to define the connector in my
>>>> kernel command line or which of the 3 connectors from /sys I should be
>>>> using. I've tried different variants. Ie. card0-HDMI-A-1and HDMI-A-1.
>>>>
>>>> The results in the kernel log file remain:
>>>>
>>>> [ 1.879654] drm_kms_helper: Unknown parameter `edid'
>>>
>>> As your drm_kms_helper is built modular, did you try not putting that
>>> parameter on kernel cmdline but rather put it in modprobe's configuration
>>> for that module? (may doing the whole loading manually).
>>>
>>
>> I've created a /etc/modprobe.d/20-drm_kms_helper.conf with:
>> options drm_kms_helper edid_firmware=HDMI-A-1:edid/lg42lb9df_hdmi1.edid
>> and now I'm getting something different. It looks like it's trying. In fact
>> I actually get a screen on the TV now. It's not 1920x1080 but 1024x768 at
>> 60hz.
>
> As things get slightly better now, check what kernel detected:
> - /sys/module/drm_kms_helper/parameters/edid_firmware
> (should contain the path to firmware file)
>
> Make sure both the firmware and modprobe config get included in your initrd
> if you're using one.
>
>> [ 1.883124] load_module: Calling parse_args for module = drm_kms_helper
>> args = edid_firmware=HDMI-A-1:edid/lg42lb9df_hdmi1.edid
>> [ 1.883126]
>> [ 1.883126] parse_args: (1) Entered for drm_kms_helper
>> [ 1.883127]
>> [ 1.883127] parse_args: (2) Entered for drm_kms_helper
>> [ 1.883127] parse_args: doing = drm_kms_helper
>> [ 1.883128] parse_args: args =
>> edid_firmware=HDMI-A-1:edid/lg42lb9df_hdmi1.edid
>> F\xffffffc9\xfffffff8h\xffffff89\xffffff86\xffffffc0\xffffff80\xffffffff\xffffffff\xffffffd4R\xffffffc9\xfffffff8TF\xffffffc9\xfffffff88\xffffff89\xffffff86\xffffffc0\xffffffa4\xffffffff\xffffffffdF\xffffffc9\xfffffff8
>> [ 1.883129] parse_args: num = 2
>> [ 1.883130] parse_args: min_level = -32768
>> [ 1.883131] parse_args: max_level = 32767
>> [ 1.883132]
>> F\xffffffc9\xfffffff8h\xffffff89\xffffff86\xffffffc0\xffffff80\xffffffff\xffffffff\xffffffd4R\xffffffc9\xfffffff8TF\xffffffc9\xfffffff88\xffffff89\xffffff86\xffffffc0\xffffffa4\xffffffff\xffffffffdF\xffffffc9\xfffffff8,
>> num=2, min_level=-32768, max_level=32767
>> [ 1.886855]
>> .
>> .
>> .
>> [ 2.132749] [drm] forcing HDMI-A-1 connector ON
>> [ 2.132752] [drm] forcing HDMI-A-2 connector ON
>> [ 2.132753] [drm] forcing HDMI-A-3 connector ON
>>
>> [ 2.189769] [drm:edid_load] *ERROR* Requesting EDID firmware
>> "edid/lg42lb9df_hdmi1.edid" failed (err=-2)
>
> Interesting, kernel/udev can't find the edid file but know what file
> to look for... Is the edid file available at that time (initrd?)?
>
>> I get a couple of the above messages.
>>
>>
>> [ 2.388623] [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid,
>> remainder is 130
>> [ 2.388631] Raw EDID:
>> [ 2.388635] 00 ff ff ff ff ff ff 00 ff ff ff ff ff ff ff ff
>
> That's as ago with getting edid from hardware.
>
>>> # modprobe drm_kms_helper edid_firmware=HDMI-A-1:edid/lg42lb9df_hdmi1.edid
>>>
>>
>> I can't seem to rm the modules already loaded to try this.
>
> There are multiple steps needed to be able to rmmod those modules:
> - stop DRM users (e.g. X)
> - disable fbcon
> echo 1 > /sys/class/vtcon0/bind
> echo 0 > /sys/class/vtcon1/bind
> (assuming vtcon1 is fbcon, vtcon0 is VGA console)
> - rmmod i915
> - rmmod drm_kms_helper
>
> Note that at time of modprobing i915 connectors will have different names!
> (probably HDMI-A-4, HDMI-A-5, HDMI-A-6)
>
> Alternatively you could blacklist all drm modules so they don't get loaded
> automatically and you can load them manually one at a time when system has
> booted.
>

It turns out the boot params "video=HDMI-A-1:e video=HDMI-A-2:e
video=HDMI-A-3:e" are what actually turned the tv "on". They seem to
default to "d". In any case I now have only that in my grub file except for
the "video=1024x768" and I'm not really sure what that actually does.

My /etc/modprobe.d/20-drm_kms_helper.conf contains:
options drm_kms_helper edid_firmware=HDMI-A-1:edid/lg42lb9df_hdmi1.edid

How can I add the other connector info to that file BTW?

It now looks like it is finding the edid file.
# cat /sys/module/drm_kms_helper/parameters/edid_firmware
HDMI-A-1:edid/lg42lb9df_hdmi1.edid

What I End up with is a 1024x768 on both the DVI and HDMI port outputs and
then every 5-10 seconds the below gets spewed to the log file and the
system is unresponsive while this occures. I don't understand why this
messes up the DVI port. With no 20-drm_kms_helper.conf file the DVI port
get 1600x1200

geexbox:/home/markh # tail -f /var/log/messages
Oct 22 03:25:12 geexbox kernel: [ 174.716622] 00 ff ff ff ff ff
ff 00 ff ff ff ff ff ff ff ff
Oct 22 03:25:12 geexbox kernel: [ 174.716623] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:12 geexbox kernel: [ 174.716625] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:12 geexbox kernel: [ 174.716626] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:12 geexbox kernel: [ 174.716628] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:12 geexbox kernel: [ 174.716629] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:12 geexbox kernel: [ 174.716639] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:12 geexbox kernel: [ 174.716640] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:12 geexbox kernel: [ 174.716642] i915 0000:00:02.0: HDMI-A-3:
EDID block 0 invalid.
Oct 22 03:25:13 geexbox su: (to root) markh on /dev/pts/0
Oct 22 03:25:21 geexbox kernel: [ 183.760787] [drm:drm_edid_block_valid]
*ERROR* EDID checksum is invalid, remainder is 130
Oct 22 03:25:21 geexbox kernel: [ 183.760791] Raw EDID:
Oct 22 03:25:21 geexbox kernel: [ 183.760794] 00 ff ff ff ff ff
ff 00 ff ff ff ff ff ff ff ff
Oct 22 03:25:21 geexbox kernel: [ 183.760795] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:21 geexbox kernel: [ 183.760797] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:21 geexbox kernel: [ 183.760798] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:21 geexbox kernel: [ 183.760800] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:21 geexbox kernel: [ 183.760801] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:21 geexbox kernel: [ 183.760802] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:21 geexbox kernel: [ 183.760804] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:21 geexbox kernel: [ 183.873788] [drm:drm_edid_block_valid]
*ERROR* EDID checksum is invalid, remainder is 130
Oct 22 03:25:21 geexbox kernel: [ 183.873791] Raw EDID:
Oct 22 03:25:21 geexbox kernel: [ 183.873793] 00 ff ff ff ff ff
ff 00 ff ff ff ff ff ff ff ff
Oct 22 03:25:21 geexbox kernel: [ 183.873795] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:21 geexbox kernel: [ 183.873796] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:21 geexbox kernel: [ 183.873798] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:21 geexbox kernel: [ 183.873799] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:21 geexbox kernel: [ 183.873800] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:21 geexbox kernel: [ 183.873802] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:21 geexbox kernel: [ 183.873803] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 183.986796] [drm:drm_edid_block_valid]
*ERROR* EDID checksum is invalid, remainder is 130
Oct 22 03:25:22 geexbox kernel: [ 183.986799] Raw EDID:
Oct 22 03:25:22 geexbox kernel: [ 183.986801] 00 ff ff ff ff ff
ff 00 ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 183.986802] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 183.986804] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 183.986805] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 183.986807] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 183.986808] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 183.986810] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 183.986811] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.099814] [drm:drm_edid_block_valid]
*ERROR* EDID checksum is invalid, remainder is 130
Oct 22 03:25:22 geexbox kernel: [ 184.099817] Raw EDID:
Oct 22 03:25:22 geexbox kernel: [ 184.099819] 00 ff ff ff ff ff
ff 00 ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.099821] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.099822] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.099824] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.099825] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.099826] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.099828] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.099829] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.099841] i915 0000:00:02.0: HDMI-A-3:
EDID block 0 invalid.
Oct 22 03:25:22 geexbox kernel: [ 184.331124] [drm] Got external EDID base
block and 1 extension from "edid/lg42lb9df_hdmi1.edid" for connector "HDMI-A-1"
Oct 22 03:25:22 geexbox kernel: [ 184.462110] [drm:drm_edid_block_valid]
*ERROR* EDID checksum is invalid, remainder is 130
Oct 22 03:25:22 geexbox kernel: [ 184.462113] Raw EDID:
Oct 22 03:25:22 geexbox kernel: [ 184.462115] 00 ff ff ff ff ff
ff 00 ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.462117] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.462118] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.462120] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.462121] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.462122] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.462124] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.462134] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.575122] [drm:drm_edid_block_valid]
*ERROR* EDID checksum is invalid, remainder is 130
Oct 22 03:25:22 geexbox kernel: [ 184.575125] Raw EDID:
Oct 22 03:25:22 geexbox kernel: [ 184.575127] 00 ff ff ff ff ff
ff 00 ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.575128] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.575130] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.575131] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.575133] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.575142] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.575143] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.575143] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.688133] [drm:drm_edid_block_valid]
*ERROR* EDID checksum is invalid, remainder is 130
Oct 22 03:25:22 geexbox kernel: [ 184.688136] Raw EDID:
Oct 22 03:25:22 geexbox kernel: [ 184.688138] 00 ff ff ff ff ff
ff 00 ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.688140] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.688141] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.688143] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.688144] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.688145] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.688147] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.688148] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.801139] [drm:drm_edid_block_valid]
*ERROR* EDID checksum is invalid, remainder is 130
Oct 22 03:25:22 geexbox kernel: [ 184.801142] Raw EDID:
Oct 22 03:25:22 geexbox kernel: [ 184.801144] 00 ff ff ff ff ff
ff 00 ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.801145] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.801147] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.801148] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.801150] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.801151] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.801152] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.801162] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:22 geexbox kernel: [ 184.801164] i915 0000:00:02.0: HDMI-A-3:
EDID block 0 invalid.
Oct 22 03:25:23 geexbox kernel: [ 185.017189] [drm:drm_edid_block_valid]
*ERROR* EDID checksum is invalid, remainder is 130
Oct 22 03:25:23 geexbox kernel: [ 185.017192] Raw EDID:
Oct 22 03:25:23 geexbox kernel: [ 185.017194] 00 ff ff ff ff ff
ff 00 ff ff ff ff ff ff ff ff
Oct 22 03:25:23 geexbox kernel: [ 185.017196] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:23 geexbox kernel: [ 185.017197] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:23 geexbox kernel: [ 185.017199] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:23 geexbox kernel: [ 185.017200] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:23 geexbox kernel: [ 185.017202] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:23 geexbox kernel: [ 185.017203] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:23 geexbox kernel: [ 185.017204] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:23 geexbox kernel: [ 185.130197] [drm:drm_edid_block_valid]
*ERROR* EDID checksum is invalid, remainder is 130
Oct 22 03:25:23 geexbox kernel: [ 185.130200] Raw EDID:
Oct 22 03:25:23 geexbox kernel: [ 185.130202] 00 ff ff ff ff ff
ff 00 ff ff ff ff ff ff ff ff
Oct 22 03:25:23 geexbox kernel: [ 185.130204] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:23 geexbox kernel: [ 185.130205] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:23 geexbox kernel: [ 185.130206] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:23 geexbox kernel: [ 185.130208] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:23 geexbox kernel: [ 185.130209] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:23 geexbox kernel: [ 185.130211] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:23 geexbox kernel: [ 185.130212] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:23 geexbox kernel: [ 185.243209] [drm:drm_edid_block_valid]
*ERROR* EDID checksum is invalid, remainder is 130
Oct 22 03:25:23 geexbox kernel: [ 185.243212] Raw EDID:
Oct 22 03:25:23 geexbox kernel: [ 185.243214] 00 ff ff ff ff ff
ff 00 ff ff ff ff ff ff ff ff
Oct 22 03:25:23 geexbox kernel: [ 185.243216] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:23 geexbox kernel: [ 185.243217] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:23 geexbox kernel: [ 185.243218] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:23 geexbox kernel: [ 185.243220] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:23 geexbox kernel: [ 185.243221] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:23 geexbox kernel: [ 185.243223] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:23 geexbox kernel: [ 185.243224] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:23 geexbox kernel: [ 185.356218] [drm:drm_edid_block_valid]
*ERROR* EDID checksum is invalid, remainder is 130
Oct 22 03:25:23 geexbox kernel: [ 185.356221] Raw EDID:
Oct 22 03:25:23 geexbox kernel: [ 185.356223] 00 ff ff ff ff ff
ff 00 ff ff ff ff ff ff ff ff
Oct 22 03:25:23 geexbox kernel: [ 185.356224] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:23 geexbox kernel: [ 185.356226] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:23 geexbox kernel: [ 185.356227] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:23 geexbox kernel: [ 185.356228] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:23 geexbox kernel: [ 185.356230] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:23 geexbox kernel: [ 185.356231] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:23 geexbox kernel: [ 185.356233] ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff
Oct 22 03:25:23 geexbox kernel: [ 185.356245] i915 0000:00:02.0: HDMI-A-3:
EDID block 0 invalid.

Should I maybe add the info for the other connectrs to the modprobe file?
If so what would be the syntax?

dmesg attached

Thanks
Mark


Attachments:
dmesg (191.70 kB)

2012-10-22 17:40:38

by Mark Hounschell

[permalink] [raw]
Subject: Re: [Intel-gfx] drm_kms_helper problems

On 10/22/2012 07:42 AM, Mark Hounschell wrote:
> On 10/21/2012 03:18 PM, Bruno Prémont wrote:
>> Hi Mark,
>>
>> On Sun, 21 October 2012 Mark Hounschell <[email protected]> wrote:
>>> On 10/21/2012 10:58 AM, Bruno Prémont wrote:
>>>> On Sun, 21 October 2012 Mark Hounschell <[email protected]> wrote:
>>>>> I have a TV that appears to not provide proper EDID info to the
>>>>> HDMI or DVI
>>>>> ports of my Intel DH77DF motherboard. I received some pointers
>>>>> from this
>>>>> list that pointed me in the direction of creating my own EDID file
>>>>> and I
>>>>> now have a binary blob that matches what the service manual says
>>>>> is the
>>>>> proper EDID info.
>>>>>
>>>>> But I am unable to get the drm_kms_helper module to load and use
>>>>> this file.
>>>>> My relevant kernel config options are.
>>>>>
>>>>> CONFIG_DRM_KMS_HELPER=m
>>>>> CONFIG_DRM_LOAD_EDID_FIRMWARE=y
>>>>>
>>>>> my relevant kernel command line contains:
>>>>>
>>>>> video=card0-HDMI-A-1:e
>>>>> drm_kms_helper.edid_firmware=card0-HDMI-A-1:edid/lg42lb9df_hdmi1.edid
>>>>
>>>> The variant without card0- should be the right one.
>>>>
>>>
>>> OK. Changed it. What if I had more than one video card?
>>
>> Two connectors from two distinct card should not get the same suffix
>> number
>> even if they use same technology, so it should work. (unless
>> something was
>> changed recently)
>>
>>>>> The edid file:
>>>>> # ls -al /lib/firmware/edid/lg42lb9df_hdmi1.edid
>>>>> -rw-r--r-- 1 root root 256 Oct 16 05:46
>>>>> /lib/firmware/edid/lg42lb9df_hdmi1.edid
>>>>>
>>>>> connector info from /sys/class/drm/
>>>>>
>>>>> card0 card0-DP-1 card0-DP-2 card0-DP-3 card0-HDMI-A-1
>>>>> card0-HDMI-A-2
>>>>> card0-HDMI-A-3 card0-VGA-1 controlD64 version
>>>>>
>>>
>>> Which should I use? HDMI-A-1, HDMI-A-2, or HDMI-A-3? Why re there 3??
>>>
>>>>> And I don't really understand why I have 3 entries for the one
>>>>> hdmi port?
>>>>> Nor do I really understand _exactly_ how to define the connector
>>>>> in my
>>>>> kernel command line or which of the 3 connectors from /sys I
>>>>> should be
>>>>> using. I've tried different variants. Ie. card0-HDMI-A-1and HDMI-A-1.
>>>>>
>>>>> The results in the kernel log file remain:
>>>>>
>>>>> [ 1.879654] drm_kms_helper: Unknown parameter `edid'
>>>>
>>>> As your drm_kms_helper is built modular, did you try not putting that
>>>> parameter on kernel cmdline but rather put it in modprobe's
>>>> configuration
>>>> for that module? (may doing the whole loading manually).
>>>>
>>>
>>> I've created a /etc/modprobe.d/20-drm_kms_helper.conf with:
>>> options drm_kms_helper edid_firmware=HDMI-A-1:edid/lg42lb9df_hdmi1.edid
>>> and now I'm getting something different. It looks like it's trying.
>>> In fact
>>> I actually get a screen on the TV now. It's not 1920x1080 but
>>> 1024x768 at
>>> 60hz.
>>
>> As things get slightly better now, check what kernel detected:
>> - /sys/module/drm_kms_helper/parameters/edid_firmware
>> (should contain the path to firmware file)
>>
>> Make sure both the firmware and modprobe config get included in your
>> initrd
>> if you're using one.
>>
>>> [ 1.883124] load_module: Calling parse_args for module =
>>> drm_kms_helper
>>> args = edid_firmware=HDMI-A-1:edid/lg42lb9df_hdmi1.edid
>>> [ 1.883126]
>>> [ 1.883126] parse_args: (1) Entered for drm_kms_helper
>>> [ 1.883127]
>>> [ 1.883127] parse_args: (2) Entered for drm_kms_helper
>>> [ 1.883127] parse_args: doing = drm_kms_helper
>>> [ 1.883128] parse_args: args =
>>> edid_firmware=HDMI-A-1:edid/lg42lb9df_hdmi1.edid
>>> F\xffffffc9\xfffffff8h\xffffff89\xffffff86\xffffffc0\xffffff80\xffffffff\xffffffff\xffffffd4R\xffffffc9\xfffffff8TF\xffffffc9\xfffffff88\xffffff89\xffffff86\xffffffc0\xffffffa4\xffffffff\xffffffffdF\xffffffc9\xfffffff8
>>>
>>> [ 1.883129] parse_args: num = 2
>>> [ 1.883130] parse_args: min_level = -32768
>>> [ 1.883131] parse_args: max_level = 32767
>>> [ 1.883132]
>>> F\xffffffc9\xfffffff8h\xffffff89\xffffff86\xffffffc0\xffffff80\xffffffff\xffffffff\xffffffd4R\xffffffc9\xfffffff8TF\xffffffc9\xfffffff88\xffffff89\xffffff86\xffffffc0\xffffffa4\xffffffff\xffffffffdF\xffffffc9\xfffffff8,
>>>
>>> num=2, min_level=-32768, max_level=32767
>>> [ 1.886855]
>>> .
>>> .
>>> .
>>> [ 2.132749] [drm] forcing HDMI-A-1 connector ON
>>> [ 2.132752] [drm] forcing HDMI-A-2 connector ON
>>> [ 2.132753] [drm] forcing HDMI-A-3 connector ON
>>>
>>> [ 2.189769] [drm:edid_load] *ERROR* Requesting EDID firmware
>>> "edid/lg42lb9df_hdmi1.edid" failed (err=-2)
>>
>> Interesting, kernel/udev can't find the edid file but know what file
>> to look for... Is the edid file available at that time (initrd?)?
>>
>>> I get a couple of the above messages.
>>>
>>>
>>> [ 2.388623] [drm:drm_edid_block_valid] *ERROR* EDID checksum is
>>> invalid,
>>> remainder is 130
>>> [ 2.388631] Raw EDID:
>>> [ 2.388635] 00 ff ff ff ff ff ff 00 ff ff ff ff ff ff ff ff
>>
>> That's as ago with getting edid from hardware.
>>
>>>> # modprobe drm_kms_helper
>>>> edid_firmware=HDMI-A-1:edid/lg42lb9df_hdmi1.edid
>>>>
>>>
>>> I can't seem to rm the modules already loaded to try this.
>>
>> There are multiple steps needed to be able to rmmod those modules:
>> - stop DRM users (e.g. X)
>> - disable fbcon
>> echo 1 > /sys/class/vtcon0/bind
>> echo 0 > /sys/class/vtcon1/bind
>> (assuming vtcon1 is fbcon, vtcon0 is VGA console)
>> - rmmod i915
>> - rmmod drm_kms_helper
>>
>> Note that at time of modprobing i915 connectors will have different
>> names!
>> (probably HDMI-A-4, HDMI-A-5, HDMI-A-6)
>>
>> Alternatively you could blacklist all drm modules so they don't get
>> loaded
>> automatically and you can load them manually one at a time when
>> system has
>> booted.
>>
>
> It turns out the boot params "video=HDMI-A-1:e video=HDMI-A-2:e
> video=HDMI-A-3:e" are what actually turned the tv "on". They seem to
> default to "d". In any case I now have only that in my grub file
> except for the "video=1024x768" and I'm not really sure what that
> actually does.
>
> My /etc/modprobe.d/20-drm_kms_helper.conf contains:
> options drm_kms_helper edid_firmware=HDMI-A-1:edid/lg42lb9df_hdmi1.edid
>
> How can I add the other connector info to that file BTW?
>
> It now looks like it is finding the edid file.
> # cat /sys/module/drm_kms_helper/parameters/edid_firmware
> HDMI-A-1:edid/lg42lb9df_hdmi1.edid
>
> What I End up with is a 1024x768 on both the DVI and HDMI port outputs
> and then every 5-10 seconds the below gets spewed to the log file and
> the system is unresponsive while this occures. I don't understand why
> this messes up the DVI port. With no 20-drm_kms_helper.conf file the
> DVI port get 1600x1200
>
> geexbox:/home/markh # tail -f /var/log/messages
> Oct 22 03:25:12 geexbox kernel: [ 174.716622] 00 ff ff ff ff
> ff ff 00 ff ff ff ff ff ff ff ff
> Oct 22 03:25:12 geexbox kernel: [ 174.716623] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:12 geexbox kernel: [ 174.716625] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:12 geexbox kernel: [ 174.716626] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:12 geexbox kernel: [ 174.716628] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:12 geexbox kernel: [ 174.716629] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:12 geexbox kernel: [ 174.716639] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:12 geexbox kernel: [ 174.716640] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:12 geexbox kernel: [ 174.716642] i915 0000:00:02.0:
> HDMI-A-3: EDID block 0 invalid.
> Oct 22 03:25:13 geexbox su: (to root) markh on /dev/pts/0
> Oct 22 03:25:21 geexbox kernel: [ 183.760787]
> [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder
> is 130
> Oct 22 03:25:21 geexbox kernel: [ 183.760791] Raw EDID:
> Oct 22 03:25:21 geexbox kernel: [ 183.760794] 00 ff ff ff ff
> ff ff 00 ff ff ff ff ff ff ff ff
> Oct 22 03:25:21 geexbox kernel: [ 183.760795] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:21 geexbox kernel: [ 183.760797] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:21 geexbox kernel: [ 183.760798] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:21 geexbox kernel: [ 183.760800] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:21 geexbox kernel: [ 183.760801] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:21 geexbox kernel: [ 183.760802] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:21 geexbox kernel: [ 183.760804] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:21 geexbox kernel: [ 183.873788]
> [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder
> is 130
> Oct 22 03:25:21 geexbox kernel: [ 183.873791] Raw EDID:
> Oct 22 03:25:21 geexbox kernel: [ 183.873793] 00 ff ff ff ff
> ff ff 00 ff ff ff ff ff ff ff ff
> Oct 22 03:25:21 geexbox kernel: [ 183.873795] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:21 geexbox kernel: [ 183.873796] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:21 geexbox kernel: [ 183.873798] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:21 geexbox kernel: [ 183.873799] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:21 geexbox kernel: [ 183.873800] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:21 geexbox kernel: [ 183.873802] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:21 geexbox kernel: [ 183.873803] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 183.986796]
> [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder
> is 130
> Oct 22 03:25:22 geexbox kernel: [ 183.986799] Raw EDID:
> Oct 22 03:25:22 geexbox kernel: [ 183.986801] 00 ff ff ff ff
> ff ff 00 ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 183.986802] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 183.986804] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 183.986805] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 183.986807] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 183.986808] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 183.986810] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 183.986811] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.099814]
> [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder
> is 130
> Oct 22 03:25:22 geexbox kernel: [ 184.099817] Raw EDID:
> Oct 22 03:25:22 geexbox kernel: [ 184.099819] 00 ff ff ff ff
> ff ff 00 ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.099821] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.099822] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.099824] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.099825] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.099826] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.099828] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.099829] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.099841] i915 0000:00:02.0:
> HDMI-A-3: EDID block 0 invalid.
> Oct 22 03:25:22 geexbox kernel: [ 184.331124] [drm] Got external EDID
> base block and 1 extension from "edid/lg42lb9df_hdmi1.edid" for
> connector "HDMI-A-1"
> Oct 22 03:25:22 geexbox kernel: [ 184.462110]
> [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder
> is 130
> Oct 22 03:25:22 geexbox kernel: [ 184.462113] Raw EDID:
> Oct 22 03:25:22 geexbox kernel: [ 184.462115] 00 ff ff ff ff
> ff ff 00 ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.462117] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.462118] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.462120] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.462121] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.462122] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.462124] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.462134] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.575122]
> [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder
> is 130
> Oct 22 03:25:22 geexbox kernel: [ 184.575125] Raw EDID:
> Oct 22 03:25:22 geexbox kernel: [ 184.575127] 00 ff ff ff ff
> ff ff 00 ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.575128] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.575130] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.575131] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.575133] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.575142] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.575143] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.575143] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.688133]
> [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder
> is 130
> Oct 22 03:25:22 geexbox kernel: [ 184.688136] Raw EDID:
> Oct 22 03:25:22 geexbox kernel: [ 184.688138] 00 ff ff ff ff
> ff ff 00 ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.688140] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.688141] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.688143] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.688144] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.688145] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.688147] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.688148] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.801139]
> [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder
> is 130
> Oct 22 03:25:22 geexbox kernel: [ 184.801142] Raw EDID:
> Oct 22 03:25:22 geexbox kernel: [ 184.801144] 00 ff ff ff ff
> ff ff 00 ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.801145] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.801147] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.801148] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.801150] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.801151] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.801152] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.801162] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:22 geexbox kernel: [ 184.801164] i915 0000:00:02.0:
> HDMI-A-3: EDID block 0 invalid.
> Oct 22 03:25:23 geexbox kernel: [ 185.017189]
> [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder
> is 130
> Oct 22 03:25:23 geexbox kernel: [ 185.017192] Raw EDID:
> Oct 22 03:25:23 geexbox kernel: [ 185.017194] 00 ff ff ff ff
> ff ff 00 ff ff ff ff ff ff ff ff
> Oct 22 03:25:23 geexbox kernel: [ 185.017196] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:23 geexbox kernel: [ 185.017197] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:23 geexbox kernel: [ 185.017199] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:23 geexbox kernel: [ 185.017200] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:23 geexbox kernel: [ 185.017202] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:23 geexbox kernel: [ 185.017203] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:23 geexbox kernel: [ 185.017204] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:23 geexbox kernel: [ 185.130197]
> [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder
> is 130
> Oct 22 03:25:23 geexbox kernel: [ 185.130200] Raw EDID:
> Oct 22 03:25:23 geexbox kernel: [ 185.130202] 00 ff ff ff ff
> ff ff 00 ff ff ff ff ff ff ff ff
> Oct 22 03:25:23 geexbox kernel: [ 185.130204] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:23 geexbox kernel: [ 185.130205] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:23 geexbox kernel: [ 185.130206] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:23 geexbox kernel: [ 185.130208] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:23 geexbox kernel: [ 185.130209] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:23 geexbox kernel: [ 185.130211] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:23 geexbox kernel: [ 185.130212] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:23 geexbox kernel: [ 185.243209]
> [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder
> is 130
> Oct 22 03:25:23 geexbox kernel: [ 185.243212] Raw EDID:
> Oct 22 03:25:23 geexbox kernel: [ 185.243214] 00 ff ff ff ff
> ff ff 00 ff ff ff ff ff ff ff ff
> Oct 22 03:25:23 geexbox kernel: [ 185.243216] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:23 geexbox kernel: [ 185.243217] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:23 geexbox kernel: [ 185.243218] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:23 geexbox kernel: [ 185.243220] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:23 geexbox kernel: [ 185.243221] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:23 geexbox kernel: [ 185.243223] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:23 geexbox kernel: [ 185.243224] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:23 geexbox kernel: [ 185.356218]
> [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder
> is 130
> Oct 22 03:25:23 geexbox kernel: [ 185.356221] Raw EDID:
> Oct 22 03:25:23 geexbox kernel: [ 185.356223] 00 ff ff ff ff
> ff ff 00 ff ff ff ff ff ff ff ff
> Oct 22 03:25:23 geexbox kernel: [ 185.356224] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:23 geexbox kernel: [ 185.356226] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:23 geexbox kernel: [ 185.356227] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:23 geexbox kernel: [ 185.356228] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:23 geexbox kernel: [ 185.356230] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:23 geexbox kernel: [ 185.356231] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:23 geexbox kernel: [ 185.356233] ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff ff
> Oct 22 03:25:23 geexbox kernel: [ 185.356245] i915 0000:00:02.0:
> HDMI-A-3: EDID block 0 invalid.
>
> Should I maybe add the info for the other connectrs to the modprobe
> file? If so what would be the syntax?
>
> dmesg attached

One thing I forgot to mention is that I do have the edid file built into
the kernel via:
CONFIG_EXTRA_FIRMWARE="edid/lg42lb9df_hdmi1.edid"

Mark

2012-10-22 21:54:30

by Mark Hounschell

[permalink] [raw]
Subject: Re: [Intel-gfx] drm_kms_helper problems

Hi Bruno,

On 10/22/2012 01:40 PM, Mark Hounschell wrote:
> On 10/22/2012 07:42 AM, Mark Hounschell wrote:
>> On 10/21/2012 03:18 PM, Bruno Prémont wrote:
>>> Hi Mark,
>>>
>>> On Sun, 21 October 2012 Mark Hounschell <[email protected]> wrote:
>>>> On 10/21/2012 10:58 AM, Bruno Prémont wrote:
>>>>> On Sun, 21 October 2012 Mark Hounschell <[email protected]> wrote:
>>>>>> I have a TV that appears to not provide proper EDID info to the HDMI
>>>>>> or DVI
>>>>>> ports of my Intel DH77DF motherboard. I received some pointers from this
>>>>>> list that pointed me in the direction of creating my own EDID file and I
>>>>>> now have a binary blob that matches what the service manual says is the
>>>>>> proper EDID info.
>>>>>>
>>>>>> But I am unable to get the drm_kms_helper module to load and use this
>>>>>> file.
>>>>>> My relevant kernel config options are.
>>>>>>
>>>>>> CONFIG_DRM_KMS_HELPER=m
>>>>>> CONFIG_DRM_LOAD_EDID_FIRMWARE=y
>>>>>>
>>>>>> my relevant kernel command line contains:
>>>>>>
>>>>>> video=card0-HDMI-A-1:e
>>>>>> drm_kms_helper.edid_firmware=card0-HDMI-A-1:edid/lg42lb9df_hdmi1.edid
>>>>>
>>>>> The variant without card0- should be the right one.
>>>>>
>>>>
>>>> OK. Changed it. What if I had more than one video card?
>>>
>>> Two connectors from two distinct card should not get the same suffix number
>>> even if they use same technology, so it should work. (unless something was
>>> changed recently)
>>>
>>>>>> The edid file:
>>>>>> # ls -al /lib/firmware/edid/lg42lb9df_hdmi1.edid
>>>>>> -rw-r--r-- 1 root root 256 Oct 16 05:46
>>>>>> /lib/firmware/edid/lg42lb9df_hdmi1.edid
>>>>>>
>>>>>> connector info from /sys/class/drm/
>>>>>>
>>>>>> card0 card0-DP-1 card0-DP-2 card0-DP-3 card0-HDMI-A-1 card0-HDMI-A-2
>>>>>> card0-HDMI-A-3 card0-VGA-1 controlD64 version
>>>>>>
>>>>
>>>> Which should I use? HDMI-A-1, HDMI-A-2, or HDMI-A-3? Why re there 3??
>>>>
>>>>>> And I don't really understand why I have 3 entries for the one hdmi
>>>>>> port?
>>>>>> Nor do I really understand _exactly_ how to define the connector in my
>>>>>> kernel command line or which of the 3 connectors from /sys I should be
>>>>>> using. I've tried different variants. Ie. card0-HDMI-A-1and HDMI-A-1.
>>>>>>
>>>>>> The results in the kernel log file remain:
>>>>>>
>>>>>> [ 1.879654] drm_kms_helper: Unknown parameter `edid'
>>>>>
>>>>> As your drm_kms_helper is built modular, did you try not putting that
>>>>> parameter on kernel cmdline but rather put it in modprobe's configuration
>>>>> for that module? (may doing the whole loading manually).
>>>>>
>>>>
>>>> I've created a /etc/modprobe.d/20-drm_kms_helper.conf with:
>>>> options drm_kms_helper edid_firmware=HDMI-A-1:edid/lg42lb9df_hdmi1.edid
>>>> and now I'm getting something different. It looks like it's trying. In
>>>> fact
>>>> I actually get a screen on the TV now. It's not 1920x1080 but 1024x768 at
>>>> 60hz.
>>>
>>> As things get slightly better now, check what kernel detected:
>>> - /sys/module/drm_kms_helper/parameters/edid_firmware
>>> (should contain the path to firmware file)
>>>
>>> Make sure both the firmware and modprobe config get included in your initrd
>>> if you're using one.
>>>
>>>> [ 1.883124] load_module: Calling parse_args for module = drm_kms_helper
>>>> args = edid_firmware=HDMI-A-1:edid/lg42lb9df_hdmi1.edid
>>>> [ 1.883126]
>>>> [ 1.883126] parse_args: (1) Entered for drm_kms_helper
>>>> [ 1.883127]
>>>> [ 1.883127] parse_args: (2) Entered for drm_kms_helper
>>>> [ 1.883127] parse_args: doing = drm_kms_helper
>>>> [ 1.883128] parse_args: args =
>>>> edid_firmware=HDMI-A-1:edid/lg42lb9df_hdmi1.edid
>>>> F\xffffffc9\xfffffff8h\xffffff89\xffffff86\xffffffc0\xffffff80\xffffffff\xffffffff\xffffffd4R\xffffffc9\xfffffff8TF\xffffffc9\xfffffff88\xffffff89\xffffff86\xffffffc0\xffffffa4\xffffffff\xffffffffdF\xffffffc9\xfffffff8
>>>>
>>>> [ 1.883129] parse_args: num = 2
>>>> [ 1.883130] parse_args: min_level = -32768
>>>> [ 1.883131] parse_args: max_level = 32767
>>>> [ 1.883132]
>>>> F\xffffffc9\xfffffff8h\xffffff89\xffffff86\xffffffc0\xffffff80\xffffffff\xffffffff\xffffffd4R\xffffffc9\xfffffff8TF\xffffffc9\xfffffff88\xffffff89\xffffff86\xffffffc0\xffffffa4\xffffffff\xffffffffdF\xffffffc9\xfffffff8,
>>>>
>>>> num=2, min_level=-32768, max_level=32767
>>>> [ 1.886855]
>>>> .
>>>> .
>>>> .
>>>> [ 2.132749] [drm] forcing HDMI-A-1 connector ON
>>>> [ 2.132752] [drm] forcing HDMI-A-2 connector ON
>>>> [ 2.132753] [drm] forcing HDMI-A-3 connector ON
>>>>
>>>> [ 2.189769] [drm:edid_load] *ERROR* Requesting EDID firmware
>>>> "edid/lg42lb9df_hdmi1.edid" failed (err=-2)
>>>
>>> Interesting, kernel/udev can't find the edid file but know what file
>>> to look for... Is the edid file available at that time (initrd?)?
>>>
>>>> I get a couple of the above messages.
>>>>
>>>>
>>>> [ 2.388623] [drm:drm_edid_block_valid] *ERROR* EDID checksum is
>>>> invalid,
>>>> remainder is 130
>>>> [ 2.388631] Raw EDID:
>>>> [ 2.388635] 00 ff ff ff ff ff ff 00 ff ff ff ff ff ff ff ff
>>>
>>> That's as ago with getting edid from hardware.
>>>
>>>>> # modprobe drm_kms_helper
>>>>> edid_firmware=HDMI-A-1:edid/lg42lb9df_hdmi1.edid
>>>>>
>>>>
>>>> I can't seem to rm the modules already loaded to try this.
>>>
>>> There are multiple steps needed to be able to rmmod those modules:
>>> - stop DRM users (e.g. X)
>>> - disable fbcon
>>> echo 1 > /sys/class/vtcon0/bind
>>> echo 0 > /sys/class/vtcon1/bind
>>> (assuming vtcon1 is fbcon, vtcon0 is VGA console)
>>> - rmmod i915
>>> - rmmod drm_kms_helper
>>>
>>> Note that at time of modprobing i915 connectors will have different names!
>>> (probably HDMI-A-4, HDMI-A-5, HDMI-A-6)
>>>
>>> Alternatively you could blacklist all drm modules so they don't get loaded
>>> automatically and you can load them manually one at a time when system has
>>> booted.
>>>
>>
>> It turns out the boot params "video=HDMI-A-1:e video=HDMI-A-2:e
>> video=HDMI-A-3:e" are what actually turned the tv "on". They seem to
>> default to "d". In any case I now have only that in my grub file except
>> for the "video=1024x768" and I'm not really sure what that actually does.
>>
>> My /etc/modprobe.d/20-drm_kms_helper.conf contains:
>> options drm_kms_helper edid_firmware=HDMI-A-1:edid/lg42lb9df_hdmi1.edid
>>
>> How can I add the other connector info to that file BTW?
>>
>> It now looks like it is finding the edid file.
>> # cat /sys/module/drm_kms_helper/parameters/edid_firmware
>> HDMI-A-1:edid/lg42lb9df_hdmi1.edid
>>
>> What I End up with is a 1024x768 on both the DVI and HDMI port outputs
>> and then every 5-10 seconds the below gets spewed to the log file and the
>> system is unresponsive while this occures. I don't understand why this
>> messes up the DVI port. With no 20-drm_kms_helper.conf file the DVI port
>> get 1600x1200
>>
>> geexbox:/home/markh # tail -f /var/log/messages
>> Oct 22 03:25:12 geexbox kernel: [ 174.716622] 00 ff ff ff ff ff
>> ff 00 ff ff ff ff ff ff ff ff
>> Oct 22 03:25:12 geexbox kernel: [ 174.716623] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:12 geexbox kernel: [ 174.716625] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:12 geexbox kernel: [ 174.716626] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:12 geexbox kernel: [ 174.716628] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:12 geexbox kernel: [ 174.716629] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:12 geexbox kernel: [ 174.716639] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:12 geexbox kernel: [ 174.716640] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:12 geexbox kernel: [ 174.716642] i915 0000:00:02.0:
>> HDMI-A-3: EDID block 0 invalid.
>> Oct 22 03:25:13 geexbox su: (to root) markh on /dev/pts/0
>> Oct 22 03:25:21 geexbox kernel: [ 183.760787] [drm:drm_edid_block_valid]
>> *ERROR* EDID checksum is invalid, remainder is 130
>> Oct 22 03:25:21 geexbox kernel: [ 183.760791] Raw EDID:
>> Oct 22 03:25:21 geexbox kernel: [ 183.760794] 00 ff ff ff ff ff
>> ff 00 ff ff ff ff ff ff ff ff
>> Oct 22 03:25:21 geexbox kernel: [ 183.760795] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:21 geexbox kernel: [ 183.760797] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:21 geexbox kernel: [ 183.760798] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:21 geexbox kernel: [ 183.760800] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:21 geexbox kernel: [ 183.760801] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:21 geexbox kernel: [ 183.760802] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:21 geexbox kernel: [ 183.760804] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:21 geexbox kernel: [ 183.873788] [drm:drm_edid_block_valid]
>> *ERROR* EDID checksum is invalid, remainder is 130
>> Oct 22 03:25:21 geexbox kernel: [ 183.873791] Raw EDID:
>> Oct 22 03:25:21 geexbox kernel: [ 183.873793] 00 ff ff ff ff ff
>> ff 00 ff ff ff ff ff ff ff ff
>> Oct 22 03:25:21 geexbox kernel: [ 183.873795] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:21 geexbox kernel: [ 183.873796] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:21 geexbox kernel: [ 183.873798] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:21 geexbox kernel: [ 183.873799] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:21 geexbox kernel: [ 183.873800] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:21 geexbox kernel: [ 183.873802] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:21 geexbox kernel: [ 183.873803] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 183.986796] [drm:drm_edid_block_valid]
>> *ERROR* EDID checksum is invalid, remainder is 130
>> Oct 22 03:25:22 geexbox kernel: [ 183.986799] Raw EDID:
>> Oct 22 03:25:22 geexbox kernel: [ 183.986801] 00 ff ff ff ff ff
>> ff 00 ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 183.986802] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 183.986804] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 183.986805] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 183.986807] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 183.986808] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 183.986810] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 183.986811] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.099814] [drm:drm_edid_block_valid]
>> *ERROR* EDID checksum is invalid, remainder is 130
>> Oct 22 03:25:22 geexbox kernel: [ 184.099817] Raw EDID:
>> Oct 22 03:25:22 geexbox kernel: [ 184.099819] 00 ff ff ff ff ff
>> ff 00 ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.099821] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.099822] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.099824] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.099825] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.099826] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.099828] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.099829] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.099841] i915 0000:00:02.0:
>> HDMI-A-3: EDID block 0 invalid.
>> Oct 22 03:25:22 geexbox kernel: [ 184.331124] [drm] Got external EDID
>> base block and 1 extension from "edid/lg42lb9df_hdmi1.edid" for connector
>> "HDMI-A-1"
>> Oct 22 03:25:22 geexbox kernel: [ 184.462110] [drm:drm_edid_block_valid]
>> *ERROR* EDID checksum is invalid, remainder is 130
>> Oct 22 03:25:22 geexbox kernel: [ 184.462113] Raw EDID:
>> Oct 22 03:25:22 geexbox kernel: [ 184.462115] 00 ff ff ff ff ff
>> ff 00 ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.462117] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.462118] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.462120] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.462121] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.462122] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.462124] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.462134] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.575122] [drm:drm_edid_block_valid]
>> *ERROR* EDID checksum is invalid, remainder is 130
>> Oct 22 03:25:22 geexbox kernel: [ 184.575125] Raw EDID:
>> Oct 22 03:25:22 geexbox kernel: [ 184.575127] 00 ff ff ff ff ff
>> ff 00 ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.575128] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.575130] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.575131] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.575133] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.575142] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.575143] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.575143] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.688133] [drm:drm_edid_block_valid]
>> *ERROR* EDID checksum is invalid, remainder is 130
>> Oct 22 03:25:22 geexbox kernel: [ 184.688136] Raw EDID:
>> Oct 22 03:25:22 geexbox kernel: [ 184.688138] 00 ff ff ff ff ff
>> ff 00 ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.688140] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.688141] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.688143] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.688144] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.688145] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.688147] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.688148] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.801139] [drm:drm_edid_block_valid]
>> *ERROR* EDID checksum is invalid, remainder is 130
>> Oct 22 03:25:22 geexbox kernel: [ 184.801142] Raw EDID:
>> Oct 22 03:25:22 geexbox kernel: [ 184.801144] 00 ff ff ff ff ff
>> ff 00 ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.801145] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.801147] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.801148] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.801150] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.801151] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.801152] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.801162] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:22 geexbox kernel: [ 184.801164] i915 0000:00:02.0:
>> HDMI-A-3: EDID block 0 invalid.
>> Oct 22 03:25:23 geexbox kernel: [ 185.017189] [drm:drm_edid_block_valid]
>> *ERROR* EDID checksum is invalid, remainder is 130
>> Oct 22 03:25:23 geexbox kernel: [ 185.017192] Raw EDID:
>> Oct 22 03:25:23 geexbox kernel: [ 185.017194] 00 ff ff ff ff ff
>> ff 00 ff ff ff ff ff ff ff ff
>> Oct 22 03:25:23 geexbox kernel: [ 185.017196] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:23 geexbox kernel: [ 185.017197] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:23 geexbox kernel: [ 185.017199] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:23 geexbox kernel: [ 185.017200] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:23 geexbox kernel: [ 185.017202] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:23 geexbox kernel: [ 185.017203] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:23 geexbox kernel: [ 185.017204] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:23 geexbox kernel: [ 185.130197] [drm:drm_edid_block_valid]
>> *ERROR* EDID checksum is invalid, remainder is 130
>> Oct 22 03:25:23 geexbox kernel: [ 185.130200] Raw EDID:
>> Oct 22 03:25:23 geexbox kernel: [ 185.130202] 00 ff ff ff ff ff
>> ff 00 ff ff ff ff ff ff ff ff
>> Oct 22 03:25:23 geexbox kernel: [ 185.130204] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:23 geexbox kernel: [ 185.130205] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:23 geexbox kernel: [ 185.130206] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:23 geexbox kernel: [ 185.130208] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:23 geexbox kernel: [ 185.130209] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:23 geexbox kernel: [ 185.130211] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:23 geexbox kernel: [ 185.130212] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:23 geexbox kernel: [ 185.243209] [drm:drm_edid_block_valid]
>> *ERROR* EDID checksum is invalid, remainder is 130
>> Oct 22 03:25:23 geexbox kernel: [ 185.243212] Raw EDID:
>> Oct 22 03:25:23 geexbox kernel: [ 185.243214] 00 ff ff ff ff ff
>> ff 00 ff ff ff ff ff ff ff ff
>> Oct 22 03:25:23 geexbox kernel: [ 185.243216] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:23 geexbox kernel: [ 185.243217] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:23 geexbox kernel: [ 185.243218] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:23 geexbox kernel: [ 185.243220] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:23 geexbox kernel: [ 185.243221] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:23 geexbox kernel: [ 185.243223] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:23 geexbox kernel: [ 185.243224] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:23 geexbox kernel: [ 185.356218] [drm:drm_edid_block_valid]
>> *ERROR* EDID checksum is invalid, remainder is 130
>> Oct 22 03:25:23 geexbox kernel: [ 185.356221] Raw EDID:
>> Oct 22 03:25:23 geexbox kernel: [ 185.356223] 00 ff ff ff ff ff
>> ff 00 ff ff ff ff ff ff ff ff
>> Oct 22 03:25:23 geexbox kernel: [ 185.356224] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:23 geexbox kernel: [ 185.356226] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:23 geexbox kernel: [ 185.356227] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:23 geexbox kernel: [ 185.356228] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:23 geexbox kernel: [ 185.356230] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:23 geexbox kernel: [ 185.356231] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:23 geexbox kernel: [ 185.356233] ff ff ff ff ff ff
>> ff ff ff ff ff ff ff ff ff ff
>> Oct 22 03:25:23 geexbox kernel: [ 185.356245] i915 0000:00:02.0:
>> HDMI-A-3: EDID block 0 invalid.
>>
>> Should I maybe add the info for the other connectrs to the modprobe file?
>> If so what would be the syntax?
>>
>> dmesg attached
>
> One thing I forgot to mention is that I do have the edid file built into
> the kernel via:
> CONFIG_EXTRA_FIRMWARE="edid/lg42lb9df_hdmi1.edid"

Another interesting thing. I changed the boot file to only
"video=HDMI-A-1:e" and the monitor on the DVI port complains about the
resolution being to high. I then put the hdmi cable onto my dvi/hdmi
adapter and plug it into the DVI port and wala, a 1920 x 1080 desktop. So I
reboot with it in that configuration and again comes up good connected to
the DVI connector.

# xrandr
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192
VGA1 disconnected (normal left inverted right x axis y axis)
HDMI1 connected 1920x1080+0+0 (normal left inverted right x axis y axis)
708mm x 398mm
1920x1080 60.0*+ 50.0 25.0 30.0 30.0 24.0
1680x1050 59.9
1680x945 60.0
1400x1050 59.9
1600x900 60.0
1280x1024 75.0 60.0
1440x900 59.9
1280x960 60.0
1366x768 60.0
1360x768 60.0
1280x800 74.9 59.9
1152x864 75.0
1280x768 74.9 60.0
1280x720 50.0 60.0
1024x768 75.1 70.1 60.0
1024x576 60.0
800x600 72.2 75.0 60.3 56.2
720x576 50.0
848x480 60.0
720x480 59.9
640x480 72.8 75.0 60.0 59.9 59.9
720x400 70.1
DP1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
HDMI3 disconnected (normal left inverted right x axis y axis)
DP2 disconnected (normal left inverted right x axis y axis)
DP3 disconnected (normal left inverted right x axis y axis)

I'm still getting the same messages spewed into the kernel log file. So
this looks to me like the kernel is confused. Again, I ask, why do I have 3
HDMIs and 3 DPs but just one VGA.

Something is just not right here. I'm beginning to think it's not me.

Mark

2012-10-23 06:36:27

by Bruno Prémont

[permalink] [raw]
Subject: Re: [Intel-gfx] drm_kms_helper problems

On Mon, 22 Oct 2012 17:54:26 Mark Hounschell wrote:
> Another interesting thing. I changed the boot file to only
> "video=HDMI-A-1:e" and the monitor on the DVI port complains about the
> resolution being to high. I then put the hdmi cable onto my dvi/hdmi
> adapter and plug it into the DVI port and wala, a 1920 x 1080 desktop. So I
> reboot with it in that configuration and again comes up good connected to
> the DVI connector.

So at least the EDID firmware now gets recognized and considered :)

> # xrandr
> Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192
> VGA1 disconnected (normal left inverted right x axis y axis)
> HDMI1 connected 1920x1080+0+0 (normal left inverted right x axis y axis)
> 708mm x 398mm
> 1920x1080 60.0*+ 50.0 25.0 30.0 30.0 24.0
> 1680x1050 59.9
> 1680x945 60.0
> 1400x1050 59.9
> 1600x900 60.0
> 1280x1024 75.0 60.0
> 1440x900 59.9
> 1280x960 60.0
> 1366x768 60.0
> 1360x768 60.0
> 1280x800 74.9 59.9
> 1152x864 75.0
> 1280x768 74.9 60.0
> 1280x720 50.0 60.0
> 1024x768 75.1 70.1 60.0
> 1024x576 60.0
> 800x600 72.2 75.0 60.3 56.2
> 720x576 50.0
> 848x480 60.0
> 720x480 59.9
> 640x480 72.8 75.0 60.0 59.9 59.9
> 720x400 70.1
> DP1 disconnected (normal left inverted right x axis y axis)
> HDMI2 disconnected (normal left inverted right x axis y axis)
> HDMI3 disconnected (normal left inverted right x axis y axis)
> DP2 disconnected (normal left inverted right x axis y axis)
> DP3 disconnected (normal left inverted right x axis y axis)
>
> I'm still getting the same messages spewed into the kernel log file. So
> this looks to me like the kernel is confused. Again, I ask, why do I have 3
> HDMIs and 3 DPs but just one VGA.

Maybe Daniel or Chris can comment on that high quantity of DP/HDMI
connectors seen by driver. Those are probably also the cause of the
persistent EDID complaints in kernel log.


You could maybe try to disable those outputs in xorg.conf in order to not
get your log filled with bad EDID complaints for "unused" connectors.
But as specifying the EDID as firmware it's just a work-around to the
issue.

Bruno

> Something is just not right here. I'm beginning to think it's not me.
>
> Mark

2012-10-23 09:59:59

by Mark Hounschell

[permalink] [raw]
Subject: Re: [Intel-gfx] drm_kms_helper problems

On 10/23/2012 02:36 AM, Bruno Pr?mont wrote:
> On Mon, 22 Oct 2012 17:54:26 Mark Hounschell wrote:
>> Another interesting thing. I changed the boot file to only
>> "video=HDMI-A-1:e" and the monitor on the DVI port complains about the
>> resolution being to high. I then put the hdmi cable onto my dvi/hdmi
>> adapter and plug it into the DVI port and wala, a 1920 x 1080 desktop. So I
>> reboot with it in that configuration and again comes up good connected to
>> the DVI connector.
>
> So at least the EDID firmware now gets recognized and considered :)
>
>> # xrandr
>> Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192
>> VGA1 disconnected (normal left inverted right x axis y axis)
>> HDMI1 connected 1920x1080+0+0 (normal left inverted right x axis y axis)
>> 708mm x 398mm
>> 1920x1080 60.0*+ 50.0 25.0 30.0 30.0 24.0
>> 1680x1050 59.9
>> 1680x945 60.0
>> 1400x1050 59.9
>> 1600x900 60.0
>> 1280x1024 75.0 60.0
>> 1440x900 59.9
>> 1280x960 60.0
>> 1366x768 60.0
>> 1360x768 60.0
>> 1280x800 74.9 59.9
>> 1152x864 75.0
>> 1280x768 74.9 60.0
>> 1280x720 50.0 60.0
>> 1024x768 75.1 70.1 60.0
>> 1024x576 60.0
>> 800x600 72.2 75.0 60.3 56.2
>> 720x576 50.0
>> 848x480 60.0
>> 720x480 59.9
>> 640x480 72.8 75.0 60.0 59.9 59.9
>> 720x400 70.1
>> DP1 disconnected (normal left inverted right x axis y axis)
>> HDMI2 disconnected (normal left inverted right x axis y axis)
>> HDMI3 disconnected (normal left inverted right x axis y axis)
>> DP2 disconnected (normal left inverted right x axis y axis)
>> DP3 disconnected (normal left inverted right x axis y axis)
>>
>> I'm still getting the same messages spewed into the kernel log file. So
>> this looks to me like the kernel is confused. Again, I ask, why do I have 3
>> HDMIs and 3 DPs but just one VGA.
>
> Maybe Daniel or Chris can comment on that high quantity of DP/HDMI
> connectors seen by driver. Those are probably also the cause of the
> persistent EDID complaints in kernel log.
>

What I see is that HDMI-1 is the DVI port, HDMI-3 is the HDMI port, so I
assume HDMI-2 is that "other" video port.

If I set video=HDMI-A-1:d nothing comes out the DVI port and if I set
HDMI-A-3:d nothing comes out the HDMI port. This is rather confusing. Is it
correct?

>
> You could maybe try to disable those outputs in xorg.conf in order to not
> get your log filled with bad EDID complaints for "unused" connectors.
> But as specifying the EDID as firmware it's just a work-around to the
> issue.
>

These messages get spewed even if X is not running. The machine is
unresponsive for 2-3 seconds when this happens.

Sure, specifying the EDID as firmware is a work around, but it's a work
around that isn't working as intended on this hardware, for whatever
reason. Seems like someone would be interested in fixing it? I've got a
machine I could provide some access to?

Mark