[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

A major problem solved



Here's one for your cheat sheet.

If you're reading this, I'm succressfully back up on my e-mail after a very serious -- and unexpected -- Fedora 30 failure on my laptop on August 26. When one makes a change to the video display settings, Fedora shouldn't blow up. But that's exactly what it did.

I have a 4K display on my ThinkPad P72 driven by an Nvidia Quadro P5000 mobile graphics card. It defaults to a 60 fps refresh rate with the MATE desktop, but there's a 120 fps option in Monitor Preferences. I thought changing that might be an interesting test, but as soon as I hit the Apply button my video vanished completely. I rebooted thinking it would recover. Nope. Fedora would not boot to anything other than single user mode. Nothing I tried could bring it back to life. Steve suggested trying xrandr, but that won't run in text mode.

After days of hunting for a fix, I gave up and bought a new 4T notebook drive and an external SATA "toaster" adapter. I used ddrescue to make forensic backups of the four F30 partitions to the external SSD. I re-installed a F30 Workstation image and ran "yum update" to get a generic system.

Fortunately a while back (with Steve's help) I'd created the following utility script in /usr/local/bin:

# cat rpmlist-stripper.sh
#! /bin/sh

# This one-liner will generate an alphabized list of RPM packages for use
# by a for loop to install the exact same packages on another instance.

rpm -qa --qf "%{n}.%{arch}\n" | sort > $1

# end-of-file

Using this file in a yum 'for' loop, I was able to restore all of the rpms that had been in the crashed system. There were a couple of dozen other little things that needed to be done, but by this evening I decided to look for an easier way if this ever happens again. And I found it:


Sure enough, I found /etc/mate-settings-daemon/xrandr/monitors.xml in the backup of the root filesystem. In it I found the smoking gun:

# cat monitors.xml 
<monitors version="1">
  <configuration>
      <clone>no</clone>
      <output name="eDP-1">
          <vendor>AUO</vendor>
          <product>0x109b</product>
          <serial>0x00000000</serial>
          <width>3840</width>
          <height>2160</height>
          <rate>120</rate>
          <x>0</x>
          <y>0</y>
          <rotation>normal</rotation>
          <reflect_x>no</reflect_x>
          <reflect_y>no</reflect_y>
          <primary>yes</primary>
      </output>
      <output name="HDMI-1">
      </output>
      <output name="DP-1">
      </output>
      <output name="DP-2">
      </output>
      <output name="DP-3">
      </output>
  </configuration>
</monitors>

Had I known where it was two weeks ago, I could have edited that <rate> line back to 60 in single user mode. The thread suggests all that's needed is to delete that file and reboot. Without it, GNOME will start using its defaults.

--Doc

P.S. That 4T SSD is now installed in my laptop as bulk storage.