Reference: What to Do If Fedora 15 Locks Up on Login
2011 May 25
I just tried installing the just-released Fedora 15, which comes with the new GNOME 3 user interface. As expected, the new software has some rough edges … well, it freezes my computer as soon as I try to log in. (I’m not angry about this since F15+GNOME3 is bleeding-edge software, with lots of churn in the graphics code, which tends to be both hard-to-test and disaster- prone. I did this install on a noncritical machine of mine with the two-sigma expectation that it wouldn’t work.)
If GNOME 3 thinks your desktop doesn’t support 3D acceleration, it will use a “fallback mode” that avoids it. This sounded like what I needed, since Linux lockups on desktops are almost always associated with 3D graphics drivers. Unfortunately, the only documented way to turn on fallback mode is through the graphical interface, which I couldn’t get to.
The best method that I could discover to fix this is as follows:
-
Boot up the machine in single-user mode, by pressing keys during bootup, then editing the GRUB kernel arguments to add a “1” at the end of the kernel command line. (The “1” can be thought of as implying “single-user mode”.)
-
Run:
rpm --nodeps -e gnome-shell
-
Exit the root maintenance-mode shell.
-
Log in as your regular graphical user. You should be brought into fallback mode.
-
Force fallback mode permanently via the GUI: user menu → System Settings → System Info → Graphics → Force Fallback Mode: on.
Why the --nodeps
? Because the gnome-panel package, which is needed to use
the fallback mode, requires gnome-shell, the new GNOME 3 UI, “to band aid
upgrades”, according to the RPM changelog.
You might think that there would be a text-mode way to change the setting. And
it seems that there should be. The org.gnome.desktop.session.session-name
GSetting needs to be changed from
“gnome” to “gnome-fallback”. From my read of the docs, it should be possible
to do this by running the command:
gsettings set org.gnome.desktop.session session-name \'gnome-fallback\'
(The escaped single quotes are necessary.) When I tried this from a text
login, it didn’t give any indication of failure, but didn’t do anything.
This page suggests that the
command should be run with the environment variable GSETTINGS_BACKEND=dconf
,
but that didn’t change anything for me. My extrapolation was that the
following command should also have done the trick:
dconf write /org/gnome/desktop/session/session-name \'gnome-fallback\'
but this gave a DBus error involving the inability to connect to an X11 server. It would surprise me if DConf required an X11 connection, but perhaps it does.