You are not logged in.
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
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
fiLast edited by kokoko3k (2021-10-15 17:06:07)
Help me to improve ssh-rdp !
Retroarch User? Try my koko-aio shader !
Offline
[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
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"
EndSectionHelp me to improve ssh-rdp !
Retroarch User? Try my koko-aio shader !
Offline
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
EndSectionMy 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
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