One in a series of columns in which questions are asked of a kernel
developer and he tries to answer them. If you have unanswered questions
relating to technical or procedural things around Linux kernel
development, ask them in the comment section, or email them directly to
the author.
How do I figure out who to email about a problem I am having with the
kernel. I see a range of messages in the kernel log, how do I go from
that to the proper developers who can help me out?
For example, right now I am seeing the following error:
[ 658.831697] [drm:edid_is_valid] *ERROR* Raw EDID:
[ 658.831702] 48 48 48 48 50 50 50 50 20 20 20 20 4c 4c 4c 4c HHHHPPPP LLLL
[ 658.831705] 50 50 50 50 33 33 33 33 30 30 30 30 36 36 36 36 PPPP333300006666
[ 658.831709] 35 35 35 35 0a 0a 0a 0a 20 20 20 20 20 20 20 20 5555....
Where do I start with tracking this down?
The kernel log is telling you where the problem is, so the real trick is
going to be in tracking it down to who is responsible for the messages.
There are different ways to go about this. You could first try to just
grep the kernel source tree for the error string:
$ cd linux-2.6
$ git grep "\*ERROR\* Raw EDID"
Ok, that didn't work, let's try to narrow down the string some:
$ git grep "Raw EDID"
drivers/gpu/drm/drm_edid.c: DRM_ERROR("Raw EDID:\n");
Ok, now you have a file to look at. But who is responsible for this
file? As
mentioned previously
you can use the
get_maintainer.pl script by passing it the
filename you are curious about:
$ ./scripts/get_maintainer.pl -f drivers/gpu/drm/drm_edid.c
David Airlie <airlied@linux.ie>
Dave Airlie <airlied@redhat.com>
Adam Jackson <ajax@redhat.com>
Zhao Yakui <yakui.zhao@intel.com>
dri-devel@lists.freedesktop.org
linux-kernel@vger.kernel.org
This shows that the main DRM developer, David Airlie, is the best person
to ask, but other developers may also be able to help out. Sending
mail to David, and CCing the others listed (including the mailing lists)
will get it in front of those who are most likely to be able to assist.
Another way to find out what code is responsible for the problem is to
look at the name of the function that was writing out the error:
[ 658.831697] [drm:edid_is_valid] *ERROR* Raw EDID:
The function name is in the
[] characters, and we can look
for that to see what code is calling it:
$ git grep edid_is_valid
drivers/gpu/drm/drm_edid.c: * drm_edid_is_valid - sanity check EDID data
drivers/gpu/drm/drm_edid.c:bool drm_edid_is_valid(struct edid *edid)
drivers/gpu/drm/drm_edid.c:EXPORT_SYMBOL(drm_edid_is_valid);
drivers/gpu/drm/drm_edid.c: if (!drm_edid_is_valid(edid)) {
drivers/gpu/drm/radeon/radeon_combios.c: if (!drm_edid_is_valid(edid)) {
include/drm/drm_crtc.h:extern bool drm_edid_is_valid(struct edid *edid);
This points again at the
drivers/gpu/drm/drm_edid.c file as
being responsible for the error message.
In looking at the function drm_edid_is_valid there are a
number of other messages that could have been produced in the kernel log
right before this one:
if (csum) {
DRM_ERROR("EDID checksum is invalid, remainder is %d\n", csum);
goto bad;
}
if (edid->version != 1) {
DRM_ERROR("EDID has major version %d, instead of 1\n", edid->version);
goto bad;
}
So when you email the developers and mailing list found by the
get_maintainer.pl script, it is always important to provide
all of the kernel log, not just the few single last lines of the error,
because there might be more information a bit higher up that shows more
information that the developers can use to help debug the problem.
[ Thanks to Peter Favrholdt for sending in this question. ]
(
Log in to post comments)