You are not logged in.

#1 2022-08-28 10:43:58

sents
Member
Registered: 2017-06-12
Posts: 1

Forcing edid for specific connector on NVIDA card

Hello,
one of my displays is kind of broken and doesn't send edid information anymore so I can't get the right resolution.  The display is connected via a VGA-to-DP converter.

I have found a working edid.bin from https://github.com/linuxhw/EDID and want to force using it for the DP connector.
The wiki talks about forcing edid by two methods:

- debugfs:

cat aocf22_edid.bin > /sys/kernel/debug/dri/0/DP-1/edid_override

This works after unplugging and replugging my monitor. But I'd rather not have to replug my monitor on every boot. But at least I know that my edid.bin is working correctly.

- Linux kernel parameter:

drm.edid_firmware=edid/aocf22_edid.bin

This should work without replugging my monitor, however it doesn't work for me for some reason.
My edid is located in /usr/lib/firmware/edid/aocf22_edid.bin and my kernel command line is:

loglevel=3 quiet systemd.unified_cgroup_hierarchy=false nvidia-drm.modeset=1 drm.edid_firmware=DP-1:edid/aocf22_edid.bin video=DP-1:e drm.debug=0x10

I've tried this with and without early KMS. With early KMS I've included the following in my mkinitcpio.conf and rebuild the initramfs:

MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
FILES=(/usr/lib/firmware/edid/aocf22_edid.bin)

In the dmesg kernel log I can see that kernel mode setting is successful and that my edid setting is  in the used kernel command line,
but the log never mentions even loading the edid or failing to do so:

# dmesg | grep -e "drm" -e "nvidia" -e "edid"
[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-linux root=UUID=16786925-7121-4638-85f8-cdefc25f5b4f rw loglevel=3 quiet systemd.unified_cgroup_hierarchy=false nvidia-drm.modeset=1 drm.edid_firmware=DP-1:edid/aocf22_edid.bin video=DP-1:e drm.debug=0x10
[    0.066131] Kernel command line: BOOT_IMAGE=/vmlinuz-linux root=UUID=16786925-7121-4638-85f8-cdefc25f5b4f rw loglevel=3 quiet systemd.unified_cgroup_hierarchy=false nvidia-drm.modeset=1 drm.edid_firmware=DP-1:edid/aocf22_edid.bin video=DP-1:e drm.debug=0x10
[    0.707123] ACPI: bus type drm_connector registered
[    1.555712] nvidia: loading out-of-tree module taints kernel.
[    1.555731] nvidia: module license 'NVIDIA' taints kernel.
[    1.573562] nvidia: module verification failed: signature and/or required key missing - tainting kernel
[    2.066603] nvidia-nvlink: Nvlink Core is being initialized, major device number 239
[    2.067975] nvidia 0000:03:00.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=io+mem
[    2.209086] nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms  515.65.01  Wed Jul 20 13:43:59 UTC 2022
[    2.212248] nvidia_uvm: module uses symbols nvUvmInterfaceDisableAccessCntr from proprietary module nvidia, inheriting taint.
[    2.354930] nvidia-uvm: Loaded the UVM driver, major device number 237.
[    2.357950] [drm] [nvidia-drm] [GPU ID 0x00000300] Loading driver
[    3.256801] [drm] forcing DP-1 connector on
[    3.378051] [drm] Initialized nvidia-drm 0.0.0 20160202 for 0000:03:00.0 on minor 0
[    6.842034] systemd[1]: Starting Load Kernel Module drm...
[    6.865489] systemd[1]: modprobe@drm.service: Deactivated successfully.
[    6.865824] systemd[1]: Finished Load Kernel Module drm.
[    8.759997] nvidia 0000:03:00.0: [drm:drm_atomic_state_init] Allocated atomic state 00000000fad9424c
[    8.760017] nvidia 0000:03:00.0: [drm:drm_atomic_get_crtc_state] Added [CRTC:39:crtc-0] 00000000ebd964c7 state to 00000000fad9424c
[    8.760026] nvidia 0000:03:00.0: [drm:drm_atomic_add_affected_planes] Adding all current planes for [CRTC:39:crtc-0] to 00000000fad9424c
[    8.760033] nvidia 0000:03:00.0: [drm:drm_atomic_add_affected_connectors] Adding all current connectors for [CRTC:39:crtc-0] to 00000000fad9424c
[    8.760041] nvidia 0000:03:00.0: [drm:drm_atomic_get_crtc_state] Added [CRTC:49:crtc-1] 0000000025f98964 state to 00000000fad9424c
[    8.760048] nvidia 0000:03:00.0: [drm:drm_atomic_add_affected_planes] Adding all current planes for [CRTC:49:crtc-1] to 00000000fad9424c
[    8.760055] nvidia 0000:03:00.0: [drm:drm_atomic_add_affected_connectors] Adding all current connectors for [CRTC:49:crtc-1] to 00000000fad9424c
[    8.760063] nvidia 0000:03:00.0: [drm:drm_atomic_get_crtc_state] Added [CRTC:59:crtc-2] 000000007599781a state to 00000000fad9424c
[    8.760071] nvidia 0000:03:00.0: [drm:drm_atomic_add_affected_planes] Adding all current planes for [CRTC:59:crtc-2] to 00000000fad9424c
[    8.760075] nvidia 0000:03:00.0: [drm:drm_atomic_add_affected_connectors] Adding all current connectors for [CRTC:59:crtc-2] to 00000000fad9424c
[    8.760080] nvidia 0000:03:00.0: [drm:drm_atomic_get_crtc_state] Added [CRTC:69:crtc-3] 00000000cf71e9e7 state to 00000000fad9424c
[    8.760084] nvidia 0000:03:00.0: [drm:drm_atomic_add_affected_planes] Adding all current planes for [CRTC:69:crtc-3] to 00000000fad9424c
[    8.760088] nvidia 0000:03:00.0: [drm:drm_atomic_add_affected_connectors] Adding all current connectors for [CRTC:69:crtc-3] to 00000000fad9424c
[    8.760092] nvidia 0000:03:00.0: [drm:drm_atomic_check_only] checking 00000000fad9424c
[    8.760121] nvidia 0000:03:00.0: [drm:drm_atomic_commit] committing 00000000fad9424c
[    8.760139] nvidia 0000:03:00.0: [drm:drm_atomic_state_default_clear] Clearing atomic state 00000000fad9424c
[    8.760145] nvidia 0000:03:00.0: [drm:__drm_atomic_state_free] Freeing atomic state 00000000fad9424c
[    8.921211] nvidia 0000:03:00.0: [drm:drm_atomic_state_init] Allocated atomic state 0000000081273417
[    8.921225] nvidia 0000:03:00.0: [drm:drm_atomic_get_crtc_state] Added [CRTC:39:crtc-0] 00000000c5809382 state to 0000000081273417
[    8.921230] nvidia 0000:03:00.0: [drm:drm_atomic_add_affected_planes] Adding all current planes for [CRTC:39:crtc-0] to 0000000081273417
[    8.921234] nvidia 0000:03:00.0: [drm:drm_atomic_add_affected_connectors] Adding all current connectors for [CRTC:39:crtc-0] to 0000000081273417
[    8.921239] nvidia 0000:03:00.0: [drm:drm_atomic_get_crtc_state] Added [CRTC:49:crtc-1] 00000000b7669495 state to 0000000081273417
[    8.921244] nvidia 0000:03:00.0: [drm:drm_atomic_add_affected_planes] Adding all current planes for [CRTC:49:crtc-1] to 0000000081273417
[    8.921247] nvidia 0000:03:00.0: [drm:drm_atomic_add_affected_connectors] Adding all current connectors for [CRTC:49:crtc-1] to 0000000081273417
[    8.921252] nvidia 0000:03:00.0: [drm:drm_atomic_get_crtc_state] Added [CRTC:59:crtc-2] 00000000bc4d651c state to 0000000081273417
[    8.921256] nvidia 0000:03:00.0: [drm:drm_atomic_add_affected_planes] Adding all current planes for [CRTC:59:crtc-2] to 0000000081273417
[    8.921259] nvidia 0000:03:00.0: [drm:drm_atomic_add_affected_connectors] Adding all current connectors for [CRTC:59:crtc-2] to 0000000081273417
[    8.921264] nvidia 0000:03:00.0: [drm:drm_atomic_get_crtc_state] Added [CRTC:69:crtc-3] 0000000085c37ea6 state to 0000000081273417
[    8.921268] nvidia 0000:03:00.0: [drm:drm_atomic_add_affected_planes] Adding all current planes for [CRTC:69:crtc-3] to 0000000081273417
[    8.921272] nvidia 0000:03:00.0: [drm:drm_atomic_add_affected_connectors] Adding all current connectors for [CRTC:69:crtc-3] to 0000000081273417
[    8.921276] nvidia 0000:03:00.0: [drm:drm_atomic_check_only] checking 0000000081273417
[    8.921308] nvidia 0000:03:00.0: [drm:drm_atomic_commit] committing 0000000081273417
[    8.921323] nvidia 0000:03:00.0: [drm:drm_atomic_state_default_clear] Clearing atomic state 0000000081273417
[    8.921328] nvidia 0000:03:00.0: [drm:__drm_atomic_state_free] Freeing atomic state 0000000081273417

The one I am unsure with is specifying the connector in the kernel command line. The kernel docs
just call it connector but do not specify what form it actually takes. I wanted to check /sys/class/drm/, and the only DP connectors I see there is card0-DP-1.
However all connectors show as disabled. This seems to be a known bug related to the nvidia driver.

Does anyone have an idea what might cause the edid to not get loaded?

Offline

Board footer

Powered by FluxBB