Thanks for your hint.
The Nouveau drivers were already blacklisted (i've done in both blacklist.conf and nvidia.conf).
Trying to be even more aggressive i managed to remove them entirely from the system. The problem is still there, hence i will assume going forward that the blacklist action works. Anyway, no more signs of nouveau in the loaded module list:
Code:
[ 3013.148] (II) LoadModule: "glx"
[ 3013.148] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[ 3013.164] (II) Module glx: vendor="NVIDIA Corporation"
[ 3013.164] compiled for 4.0.2, module version = 1.0.0
[ 3013.164] Module class: X.Org Server Extension
[ 3013.164] (II) NVIDIA GLX Module 340.76 Thu Jan 22 11:24:42 PST 2015
[ 3013.164] Loading extension GLX
[ 3013.164] (II) LoadModule: "nvidia"
[ 3013.164] (II) Loading /usr/lib/xorg/modules/drivers/nvidia_drv.so
[ 3013.165] (II) Module nvidia: vendor="NVIDIA Corporation"
[ 3013.165] compiled for 4.0.2, module version = 1.0.0
[ 3013.165] Module class: X.Org Video Driver
[ 3013.165] (II) NVIDIA dlloader X Driver 340.76 Thu Jan 22 11:03:05 PST 2015
[ 3013.165] (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
[ 3013.165] (++) using VT number 7
Now some more meat cooked during the weekend.
For lack of clarity my desktop is an Acer Aspire Z5610. The video board has been changed recently because it went burnt. the one mounted now is a GeForce 240M (GT216)
Looking deeper into the Xorg log i found some complains about the EDID file. Here some more details from the log:
Code:
[ 236.866] (WW) NVIDIA(0): The EDID read for display device DFP-0 is invalid: the
[ 236.866] (WW) NVIDIA(0): checksum for EDID version 1 is invalid.
[ 236.866] (--) NVIDIA(0):
[ 236.866] (--) NVIDIA(0): Raw EDID bytes:
[ 236.866] (--) NVIDIA(0):
[ 236.866] (--) NVIDIA(0): 00 ff ff ff ff ff ff 00 04 72 d0 01 01 00 00 00
[ 236.866] (--) NVIDIA(0): 13 13 01 03 80 33 1d 78 0a ee 95 a3 54 4c 99 26
[ 236.866] (--) NVIDIA(0): 0f 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01
[ 236.866] (--) NVIDIA(0): 01 01 01 01 01 01 94 34 80 64 70 38 14 40 32 14
[ 236.866] (--) NVIDIA(0): 85 00 02 1f 21 00 00 18 00 00 00 fe 00 45 4c 38
[ 236.866] (--) NVIDIA(0): 0a 20 20 20 20 20 20 20 20 20 00 00 00 fe 00 41
[ 236.866] (--) NVIDIA(0): 63 65 72 0a 20 20 20 20 20 20 20 20 00 00 00 fe
[ 236.866] (--) NVIDIA(0): 00 4c 54 4d 32 33 30 48 54 30 31 0a 20 20 00 eb
[ 236.866] (--) NVIDIA(0):
.....
[ 236.867] (--) NVIDIA(0):
[ 236.867] (II) NVIDIA(GPU-0): Found DRM driver nvidia-drm (20150116)
[ 236.868] (II) NVIDIA(0): NVIDIA GPU GeForce GT 240M (GT216) at PCI:1:0:0 (GPU-0)
[ 236.868] (--) NVIDIA(0): Memory: 1048576 kBytes
[ 236.868] (--) NVIDIA(0): VideoBIOS: 70.16.19.00.00
[ 236.868] (II) NVIDIA(0): Detected PCI Express Link width: 16X
[ 236.870] (--) NVIDIA(0): Valid display device(s) on GeForce GT 240M at PCI:1:0:0
[ 236.870] (--) NVIDIA(0): DFP-0 (boot, connected)
[ 236.870] (--) NVIDIA(0): DFP-0: Internal LVDS
[ 236.870] (--) NVIDIA(GPU-0): DFP-0: 330.0 MHz maximum pixel clock
[ 236.870] (**) NVIDIA(0): Using HorizSync/VertRefresh ranges from the EDID for display
[ 236.870] (**) NVIDIA(0): device DFP-0 (Using EDID frequencies has been enabled on
[ 236.870] (**) NVIDIA(0): all display devices.)
[ 236.870] (==) NVIDIA(0):
[ 236.870] (==) NVIDIA(0): No modes were requested; the default mode "nvidia-auto-select"
[ 236.870] (==) NVIDIA(0): will be used as the requested mode.
[ 236.870] (==) NVIDIA(0):
[ 236.870] (II) NVIDIA(0): Validated MetaModes:
[ 236.870] (II) NVIDIA(0): "DFP-0:nvidia-auto-select"
[ 236.870] (II) NVIDIA(0): Virtual screen size determined to be 800 x 600
[ 237.917] (WW) NVIDIA(0): Unable to get display device DFP-0's EDID; cannot compute DPI
[ 237.917] (WW) NVIDIA(0): from DFP-0's EDID.
[ 237.917] (==) NVIDIA(0): DPI set to (75, 75); computed from built-in default
2 things here:
- The checksum char (128th char in the hexdump above) is indeed wrong. I recalculated it
- it seems like that also the "nvidia-auto-select" does not provides valid modes to fall back to
Using the hexdump above i generated a new edid.bin file, changing the checksum accordingly. Once done i tested with parse-edit and the result is this
Code:
Checksum Correct
Section "Monitor"
Identifier "�@"
ModelName "�@"
VendorName "ACR"
# Monitor Manufactured week 19 of 2009
# EDID version 1.3
# Digital Display
DisplaySize 510 290
Gamma 2.20
Option "DPMS" "false"
Modeline "Mode 0" 134.60 1920 1970 1990 2020 1080 1088 1093 1100 -hsync -vsync
EndSection
At that point, following this link
http://wiki.openelec.tv/index.php/Config_EDID_nvidia i generated an xorg.conf file using the new custom EDID file. Here is what the tools mentioned in the link before produced:
Code:
# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig: version 340.76 (buildmeister@swio-display-x86-rhel47-01) Thu Jan 22 12:12:24 PST 2015
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
EndSection
Section "Files"
EndSection
Section "InputDevice"
# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
# generated from default
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Unknown"
HorizSync 28.0 - 33.0
VertRefresh 43.0 - 72.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "CustomEDID" "/etc/X11/edid.bin"
SubSection "Display"
Depth 24
EndSubSection
EndSection
to be noticed the option "CustomEDID" "/etc/X11/edid.bin" pointing to the file i generated.
Regardles at the next start....:
Code:
[ 3013.175] (**) NVIDIA(0): Option "CustomEDID" "/etc/X11/edid.bin"
[ 3013.175] (**) NVIDIA(0): Enabling 2D acceleration
[ 3013.528] (WW) NVIDIA(GPU-0): Failed to enable display hotplug notification
[ 3013.529] (WW) NVIDIA(0): The EDID read for display device DFP-0 is invalid: the
[ 3013.529] (WW) NVIDIA(0): checksum for EDID version 1 is invalid.
[ 3013.529] (--) NVIDIA(0):
[ 3013.529] (--) NVIDIA(0): Raw EDID bytes:
[ 3013.529] (--) NVIDIA(0):
[ 3013.529] (--) NVIDIA(0): 00 ff ff ff ff ff ff 00 04 72 d0 01 01 00 00 00
[ 3013.529] (--) NVIDIA(0): 13 13 01 03 80 33 1d 78 0a ee 95 a3 54 4c 99 26
[ 3013.529] (--) NVIDIA(0): 0f 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01
[ 3013.529] (--) NVIDIA(0): 01 01 01 01 01 01 94 34 80 64 70 38 14 40 32 14
[ 3013.529] (--) NVIDIA(0): 85 00 02 1f 21 00 00 18 00 00 00 fe 00 45 4c 38
[ 3013.529] (--) NVIDIA(0): 0a 20 20 20 20 20 20 20 20 20 00 00 00 fe 00 41
[ 3013.529] (--) NVIDIA(0): 63 65 72 0a 20 20 20 20 20 20 20 20 00 00 00 fe
[ 3013.529] (--) NVIDIA(0): 00 4c 54 4d 32 33 30 48 54 30 31 0a 20 20 00 eb
... and X keep doing the same flashing from withe to gray to striped to black.....
To be noticed (see the red and blu parts) that:
- Starting up X find a reference to the correct EDID file (blu)
- it still complains about the invalid checksum which parse-edid confirmed to be correct in the custom edid.bin file (red)
- the last hex is still eb whilst in the edid.bin file is F2 (red)
Here is an hexdump of custom EDID file:
Code:
osvaldo@malbeca /tmp/XIssue $ od -x edid.bin
0000000 ff00 ffff ffff 00ff 7204 01d0 0001 0000
0000020 1313 0301 3380 781d ee0a a395 4c54 2699
0000040 500f 0054 0000 0101 0101 0101 0101 0101
0000060 0101 0101 0101 3494 6480 3870 4014 1432
0000100 0085 1f02 0021 1800 0000 fe00 4500 384c
0000120 200a 2020 2020 2020 2020 0000 fe00 4100
0000140 6563 0a72 2020 2020 2020 2020 0000 fe00
0000160 4c00 4d54 3332 4830 3054 0a31 2020 f200
Now i'm really lost.... Anyone ready to push through some idea to try? Why is X (
de-facto) ignoring my custom EDID file and considering one which is evidently wrong? Where is X getting this file from????