Background: My motherboard died, but my CPU (an AMD Phenom quad core) was fine, so I bought a new socket AM2 motherboard to accommodate it. These are “obsolete” now. For some reason, the motherboard won’t see the nvidia 210 graphics card I had installed (wrong PCI express bus specification? That’s a topic for another day), so I have to use the (non-Linux-friendly) onboard nvidia 7025 chipset for now.
OpenSUSE is one of several distros I have installed on my computer.
It has nvidia 340.xx drivers installed for the nvidia 210 card. The driver is incompatible with the 7025 chipset. Now that the system’s using the 7025 chipset, it won’t boot to a console using regular mode. It won’t boot to a console using recovery mode.
I’ve tried moving “50-nvidia.conf” out of /etc/modprobe.d, as well as the file that blacklisted the nouveau driver. I’ve tried using “modprobe.blacklist=nvidia” in GRUB’s command line. None of that worked. It appears it’s loading the nvidia 340.xx drivers from initrd.
Any suggestions would be welcome, because I can’t boot to a console to uninstall the 340.xx drivers. Would a chroot into the system allow me to use YaST and remove the existing nvidia drivers?
Boot using nomodeset at boot to use fall back drivers then you should be able to straighten out the driver mess.
At boot screen press e find line starting linux or linuxefi go to full end of line (it wraps) and add a space and nomodeset press F10 to continue boot
Of course you can’t use a NVIDIA driver for an AMD GPU
This won’t prevent loading the nvidia driver though, as nvidia does not use/support KMS.
Of course you can’t use a NVIDIA driver for an AMD GPU
An “onboard nvidia 7025 chipset” actually is an nvidia GPU…
But it’s not supported by the 340.xx (G03) drivers, you’d need 304.xx (G02) for that.
Regarding the problem:
What does “can’t boot to console” mean exactly?
You should be able to boot to text mode by adding ‘3’ to the boot options. Or press Ctrl+Alt+F1 to get to a text mode console after the graphical system fails to start.
Login to text mode and uninstall the nvidia packages (with YaST e.g., that can be used in text mode too), and your system should hopefully boot.
And/or try to remove /etc/X11/xorg.conf if it exists, Xorg should start then even if loading nvidia fails.
Though if you use SDDM as login screen, it will just crash, as OpenGL support will be broken as long as the nvidia driver is installed.
What does “can’t boot to console” mean exactly?
You should be able to boot to text mode by adding ‘3’ to the boot options. Or press Ctrl+Alt+F1 to get to a text mode console after the graphical system fails to start.
Login to text mode and uninstall the nvidia packages (with YaST e.g., that can be used in text mode too), and your system should hopefully boot.
When I choose recovery mode, the message
NVRM: The NVIDIA GeForce 7025/nforce 630a GPU installed in this system is
NVRM: supported through the NVIDIA 304.xx legacy drivers. Please
NVRM: visit http://www.nvidia.com/object/unix.html for more information.
NVRM: The 340.98 NVIDIA driver will ignore this GPU.
NVRM: Continuing probe...
NVRM: No NVIDIA graphics adapter found!
NVRM: NVIDIA init module failed
repeats over and over and over again. If I leave it alone for a long time, it’ll eventually fail after telling me it can’t find the root device by UUID, although it’s definitely there, and tell me to put “rd.debug rd.shell” at the end of the “linux” line in GRUB to get to a recovery shell (which I’ve seen; it’s pretty spartan).
If I boot using the regular GRUB entry, I get a blank screen, unless I press Alt+Shift+SysRq+R, which (apparently) brings up the raw output, which is the same message as above, repeating over and over and over.
Putting “3” (some people also recommended “text”) at the end of the “linux” line in GRUB has absolutely no effect. (I’m guessing that the initrd is trying to load the nvidia driver and failing before it even gets that far…?)
I’ve already renamed “xorg.conf” to “xorg.conf.bak”. (I have other distros installed and have access to the openSUSE partition.)
Ah right. There was a bug in the nvidia driver packages that causes this if a supported card is not found.
I thought this was fixed already though (but I’m not sure if there has been an update to the repo yet).
Putting “3” (some people also recommended “text”) at the end of the “linux” line in GRUB has absolutely no effect. (I’m guessing that the initrd is trying to load the nvidia driver and failing before it even gets that far…?)
Well, booting to text mode won’t help with the above problem that the kernel module is being loaded again and again if it fails.
Hm.
Try to remove the file /etc/modprobe.d/50-nvidia.conf, IIRC that is what causes that endless trying to load the nvidia module.
Though this file might be in the initrd as well, I’m not sure…
(I’d already nuked /etc/modprobe.d/50-nvidia.conf after reading other forum posts, with no better results.)
So, rather than going the “chroot” route, I tried this: There are some openSUSE live CDs (read: DVDs, they’re all over 1GB nowadays) out there; for example, openSUSE-Edu Li-f-e. I ran that and, using YaST in the live environment, installed a kernel version that I had on my system. It created an initrd image. I then renamed the corresponding initrd on my suse partition and copied over the one from the live CD. Upon reboot, I put a “3” into the GRUB “linux” line and got to a login prompt.
I deleted the openSUSE nvidia drivers and edited /etc/default/grub and had it create a new grub.cfg file and…long story short, I’m back in KDE.
There’s got to be an easier way. Oh well, it worked.
I should mention that, if you have a series 6 or 7 nvidia card and get screen corruption (and often a hang) when you run a compositing window environment with the nouveau driver, you can create a file named “50-device.conf” containing:
and save it to /usr/share/X11/xorg.conf.d - and set KDE to use the Xrender system, and you won’t have the screen corruption issue. The downside is that it puts a drag on the CPU, but at least you have a usable system.