You are not logged in.

#1 2021-10-14 11:18:02

elvin
Member
Registered: 2021-10-05
Posts: 5

[SOLVED]Setting refresh rate to 30Hz(nvidia470,EDID doesnt report it)?

nvidia gtx 1650, using nvidia-470
lenovo legion 5 15imh05
screen-1920x1080 @120Hz
all packages up-to-date

ill mention it before proceeding: i am not very familiar with software and hardware, just a disclaimer of sorts

i wanted to reduce the refresh rate of the monitor to 30Hz to save battery when unplugged. this does not seem to be an archlinux-specific problem, but I am completely unable to change the refresh rate. i have tried everything in the wiki, and on forum threads online(including here).
**the monitor/EDID reports only a single resolution and framerate(fhd@120)**

on windows i could go to the nvidia control panel, create a new fhd@30 resolution and apply it immediately, and it definitely worked. i do not have windows installed on this laptop right now so i cannot confirm that the monitor adapted and refreshed at 30hz, not just the monitor "blinking" at 120hz while the gpu o/p@30hz. even if it does the latter, i would not mind switching to the integrated intel graphics and running screen@120 while gpu changing framebuffer@30. i cannot seem to be able to set framerate to 30 with the intel drivers either, and either way the laptop heats up when using integrated graphics.

i couldnt find any guides to reduce framerate to out-of-specification ones, all archived threads online are of people with EDPI issues, dual+ monitor, and increasing framerate to monitor factory-specification

i have not tried doing it with the noveau drivers, because on ubuntu, these caused complete crashes(killing all "child" processes with important work)when using many x clients/opengl programs concurrently.

is it possible as of now to do this on linux?  not including logs or xorg file because its trivial

Last edited by elvin (2021-10-15 07:59:58)

Offline

#2 2021-10-14 12:38:28

kokoko3k
Member
Registered: 2008-11-14
Posts: 2,448

Re: [SOLVED]Setting refresh rate to 30Hz(nvidia470,EDID doesnt report it)?

Try this:

#!/bin/bash

if [ ! $# = 3 ] ; then
	echo "Usage: $(basename $0) <WxH> <Refresh> <Output name or ALL>"
	echo Example: $(basename $0) 1280x1024 75 ALL
	echo Example: $(basename $0) 1280x1024 75 DVI-D-0
	exit
fi

hz=$2
output=$3

w=$(cut -d "x" -f 1 <<< "$1")
h=$(cut -d "x" -f 2 <<< "$1")

#Generate modeline
	GTF_OUT=$(gtf $w $h $hz|grep Modeline)
	#GTF_OUT=$(cvt12 $w $h $hz|grep Modeline)
	MODE_NAME=koko_"$w"x"$h"_"$hz"
	TIMINGS=$(echo $GTF_OUT|grep Modeline|cut -d \" -f 3)
	MODELINE="$MODE_NAME $TIMINGS"

echo $MODELINE
#add it to the pool:
	xrandr --newmode $MODELINE

#Set custom mode to output(s)
	if [ $output = "ALL" ] ; then
		MONITORS=$(xrandr|grep " conne"|cut -d " " -f 1|tr \\n " ") 
			else
		MONITORS=$output
	fi

	for MONITOR in $MONITORS ; do
		xrandr --addmode $MONITOR $MODE_NAME
		xrandr --output $MONITOR --mode $MODE_NAME
	done

	sleep 1
	echo "Press a key in 5 seconds to keep settings"
	read -n 1 -t 5
	if [ ! $? == 0 ]; then
		#Cleanup:
		for MONITOR in $MONITORS ; do
			xrandr --output $MONITOR --preferred
			xrandr --delmode $MONITOR $MODE_NAME
			xrandr --rmmode $MODE_NAME
		done
	fi

Last edited by kokoko3k (2021-10-15 17:06:07)


Help me to improve ssh-rdp !
Retroarch User? Try my koko-aio shader !

Offline

#3 2021-10-14 13:03:43

elvin
Member
Registered: 2021-10-05
Posts: 5

Re: [SOLVED]Setting refresh rate to 30Hz(nvidia470,EDID doesnt report it)?

[username@Arch Downloads]$ bash script.sh 1920x1080 30 ALL
koko_1920x1080_30 80.18 1920 1984 2176 2432 1080 1081 1084 1099 -HSync +Vsync
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  18 (RRAddOutputMode)
  Serial number of failed request:  35
  Current serial number in output stream:  36
xrandr: cannot find mode koko_1920x1080_30
warning: output DVI-D-0 not found; ignoring
Press a key in 5 seconds to keep settings
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  19 (RRDeleteOutputMode)
  Serial number of failed request:  35
  Current serial number in output stream:  36
[username@Arch Downloads]$ 

ah thanks for the help, but i tried setting it w/xrandr before too,and got BadMatch, after reading the archwiki on BadMatch, it mentioned using the noveau drivers, which is a no-go for me because of the incessant crashing i used to experience. ill try installing it, it could be different now because i used to use kde before
i tried forcing mode w/kernel parameters but it didnt do a thing
will update on trying noveau drivers

Last edited by elvin (2021-10-16 05:15:53)

Offline

#4 2021-10-14 14:13:49

kokoko3k
Member
Registered: 2008-11-14
Posts: 2,448

Re: [SOLVED]Setting refresh rate to 30Hz(nvidia470,EDID doesnt report it)?

Yeah, nvidia needs some of the following into a xorg.conf  snippet:

Section "Device"
  Driver "nvidia"
  Option "ModeValidation" "AllowNonEdidModes,AllowNon60HzDFPModes,NoMaxPClkCheck,NoEdidMaxPClkCheck,AllowInterlacedModes,NoMaxSizeCheck,NoHorizSyncCheck,NoVertRefreshCheck"
EndSection

https://wiki.archlinux.org/title/NVIDIA … r_BadMatch


Help me to improve ssh-rdp !
Retroarch User? Try my koko-aio shader !

Offline

#5 2021-10-15 07:58:37

elvin
Member
Registered: 2021-10-05
Posts: 5

Re: [SOLVED]Setting refresh rate to 30Hz(nvidia470,EDID doesnt report it)?

WTF! how in the world? thanks a ton @kokoko3k, its working now

for anyone in the future seeing this-
steps:
1) copy the Option line in post above mine to the relevant section of xorg.conf
2) reboot
3)follow https://wiki.archlinux.org/title/Xrandr … esolutions to add the resolution-framerate
OR
if you already know the process of adding the modeline to the config file directly, go ahead and do that
4)reboot
note:rebooting felt safer for me, having limited experience, you can probably just restart X, but the nvidia drivers might jank out
note:this might have been a bug with the driver too, i hadnt used many of the options in kokokos post before, but today i received an update for the nvidia-470 driver(now 470.74)

My xorg.conf file:

...(contd)

Section "Monitor"
#    Option         "DPI" "92 x 92"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    Option         "DPMS"
   Modeline "1920x1080_30.00"   79.75  1920 1976 2168 2416  1080 1083 1088 1102 -hsync +vsync
    Option "PreferredMode" "1920x1080_30.00"
   VertRefresh 29.0-32.0
   HorizSync 30.0 - 81.0
EndSection

Section "Device"
#    Option "ModeValidation" "NoEdidModes, NoHorizSyncCheck, NoVertRefreshCheck"
#     Option "ModeValidation" "AllowNonEdidModes"
#    Option "IgnoreEDIDChecksum" "TV"
#    Option "IgnoreEDIDChecksum" "DFP"
#    Option "UseEDIDFreqs" "false"
#    Option "UseEDID" "false"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    Option "ModeValidation" "AllowNonEdidModes,AllowNon60HzDFPModes,NoMaxPClkCheck,NoEdidMaxPClkCheck,AllowInterlacedModes,NoMaxSizeCheck,NoHorizSyncCheck,NoVertRefreshCheck"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "RegistryDwords" "EnableBrightnessControl=1"
    SubSection     "Display"
        Modes "1920x1080_30.00"#set your modeline name here
        Depth       24#some people get it to work by removing this line, try at your own risk
    EndSubSection
EndSection

My System Specs: (neofetch output)

OS: Arch Linux x86_64 
Host: 82AU Lenovo Legion 5 15IMH05 
Kernel: 5.14.12-arch1-1 
Uptime: 10 mins 
Packages: 476 (pacman) 
Shell: bash 5.1.8 
Resolution: 1920x1080 
WM: i3 
Theme: Adwaita [GTK3] 
Icons: Adwaita [GTK3] 
Terminal: xterm 
CPU: Intel i5-10300H (8) @ 2.500GHz 
GPU: NVIDIA 01:00.0 NVIDIA Corporation TU117M 
Memory: 790MiB / 7858MiB 

massive thanks to kokoko, marking thread as SOLVED

Last edited by elvin (2021-10-16 05:18:19)

Offline

#6 2021-10-15 10:36:55

seth
Member
From: Don't DM me only for attention
Registered: 2012-09-03
Posts: 70,821

Re: [SOLVED]Setting refresh rate to 30Hz(nvidia470,EDID doesnt report it)?

Ftr, the xorg log has its head cut off (the posted segment is illegal) and you will not need the configured kbd/mouse inputs (they're cruft that will simply be ignored because the driver doesn't exist anymore - check your log)

Offline

Board footer

Powered by FluxBB