I’ve been playing with uvesafb with the intent of having a reliable framebuffer for the console while using the Nvidia blob on Arch linux. With the standard framebuffer the system will randomly crash when either switching to the console or when shuting down.
Not always but too often. (Once is too often)
The thing is that even with uvesafb I was still getting red screens occasionally in the console. Not a hard hang. All the consoles would be red but I could Ctrl Alt F7 back to X and if the Xserver was stopped or restarted the red screens would go back to normal.
Through trial and error I discovered that if I changed the uvesafb bpp to 16 the problem went away.
Previously I had
options uvesafb mode_option=1920x1080-32 scroll=ywrap |
In /etc/modprobe.d/uvesafb.conf. I changed this to
options uvesafb mode_option=1920x1080-16 scroll=ywrap |
and the issue went away.
So if you are have a similar issue give some other bpp’s and maybe resolutions a try.
The red screen (of death) happens when the nvidia PowerMizer changes power level, usually around 30 seconds after you switch to a TTY. If you set the power level to Maximum Performance the problem goes away, but the card uses more power needlessly. Also, if you have some GL-using programs running the power level will not drop and hence no ROD. I will try the 16bpp fb though, thanks for the tip.
Changing to 16bpp really did solve the problem, thanks a million!