Black Screen on boot after Nvidia Driver Installation

Hi all, New to EOS.

Installing EOS had no issues until I started installing the Nvidia drivers. I following the instructions laid out here: https://endeavouros.com/docs/hardware-and-network/graphic-cards-gpu-driver-and-setup/nvidia/nvidia-installer/. After reboot, All I got was a black screen with a blinking cursor in the top left of my monitor. There is no shell prompt, or anything of the like, no way for me to get diagnostics.

I’m posting a question about it because all the other forum posts I have seen, the users still have a login shell to use. I don’t seem to have access to that shell.

These were my steps to the best of my recollection (Sorry, I don’t have captures of the text):

  1. Run nvidia-installer-check. My graphics card is supported by nvidia-dkms.
  2. Run nvidia-installer-dkms. After some time, everything finishes successfully.
  3. Run sudo pacman -S linux-lts-headers. There was a message about failing to locate lts-headers for nvidia for my current kernel version.
  4. Run nvidia-installer-dkms. My logic is that maybe running this will fix some of the version miss-match.
  5. Run sudo pacman -S linux-lts. This was one of my mistakes, it should have been linux-lts-headers. But, it installed some stuff nvidia related, so I thought this could have been the ticket. Only error was grub related, so I thought it was fine.

Then, after reboot, I get the black screen with no clear way to input information. I tried to press Ctrl+Alt+F2 on boot up to try and get to the login shell before XOrg takes over, and no luck.

So, Any ideas? I feel lost to try things without a shell.

this will lead you to not have the nvidia module for lts kernel builded so simple reinstall that package, rebuild kernel images and grub.cfg:

sudo pacman -S nvidia-dkms
sudo mkinitcpio -P
sudo grub-mkconfig -o /boot/grub/grub.cfg

this should bring X back after reboot, could be also hybrid GPU issue if this is an notebook with optimus …

If you can’t boot, try booting with the USB installer and then arch-chroot: https://endeavouros.com/docs/system-rescue/rescue-non-booting-system-with-arch-chroot/

Then you can run commands that can fix the problem.

Why would I not have the module? Isn’t that what nvidia-dkms does?
And right now the black screen doesn’t give me access to the terminal. How can I get a shell on bootup?

I’ll try that with the commands that @joekamprad just commented with. Thanks!

as you do not have lts kernel itself installed on installing the driver, and installing linux-lts will make system boot on lts kernel instead of main one…

It could be that starting x failed caused by something else too but as long you do not show exact output of the commands we do not know exactly what went wrong.

so not able to login to CLI ? or mot able to startx from there?
if no login possible you will need to do what @manuel says or boot without x from editing boot entries from grub menu.

This worked for me to run commands and get diagnostics, but still isn’t working :frowning:

I’m using the linux-lts kernel and nvidia. When I run the following command:

 pacman -Qq | grep nvidia

I get the following output:

lib32-nvidia-utils
nvidia-installer-db
nvidia-installer-dkms
nvidia-lts
nvidia-settings
nvidia-utils
opencl-nvidia

I believe the important part is to install nvidia-lts instead of nvidia. This matches the lts kernel.

(I initially had the black screen problem with nvidia and linux-lts. Using nvidia-lts fixed it for me.)

This is important, and you did not mention this. Is this a laptop or a desktop? The troubleshooting steps are different for each. Especially if you have, like myself and I wish I had not bought it, a laptop where you can “switch” between the nVidia card and the GPU built into the CPU.

1 Like

Please show us diagnostics! :sweat_smile:
For example:

  sudo pacman -S --needed inxi
  inxi -Gxxc0

And, I was missing nvidia-lts! This got me somewhere, now on boot I get [FAILED] Failed to start Light Display Manager I’m using lightdm. Thats something at least.

It is a hybrid GPU. The graphics card is Nvidia GeForce MX150, and also has Intel UHD 620 Graphics. I don’t see anything about optimus in the laptop specification documentation.

@GeekTea Hybrid and Optimus is the same thing. Optimus could be considered the “brand name” for hybrid graphics. I use the Optimus-Switch method for handling my graphics cards. You can find a step by step tutorial on how to install it here:

https://forum.endeavouros.com/t/optimus-switch-another-solution-for-optimus-laptops/7593

Just chroot into your system and follow the directions for LightDM.

1 Like

This gave me the following output (minus text fluff between items)

> sudo pacman -S nvidia-dkms
Good news! Module 455.28 for nvidia.ko.xz
exactly matches what is already found in kernel 5.4.72-1-lts
DKMS will not replace this module
==> dkms install --no-depmod -m nvidia -v 455.28 -k 5.9.1-arch1-1
==> depmod 5.9.1-arch1-1
==> depmod 5.4.72-1-lts

Then the following. Note, … replace text indicating successes

> sudo mkinitcpio -P
...
==> WARNING: Possibly missing firmware for module: wd719x
==> WARNING: Possibly missing firmware for module: aic94xx
==> WARNING: Possibly missing firmware for module: xhci_pci
...

And last

> sudo grub-mkconfig -o /boot/grub/grub.cfg
...
grub-probe: error: cannot find a GRUB drive for /dev/sda1. Check your device.map.

Then reboot, and nothing. Same back screen.

edit: So, apparently my system is an Optimus system and requires some extra special love that @linesma pointed out. I’m going to give that tutorial a shot and see where it takes me.

I see. I’ll go give it a shot, thanks!

Sometimes simply switching DM from lightdm to sddm helps.

How mandatory is the Optimus switch logic? I don’t need to use the Intel graphics anymore, I just want to use Nvidia graphics.

Nada. Still got a black screen and blinking cursor

I am sorry that did not work for you. It was a shot in the dark. Another shot in the dark. You might try adding a kernel parameter. Do the following.

  1. On the grub screen hit the e key. This will bring up another screen.

  2. Look for the word quiet

  3. Replace the word quiet with the following acpi_osci='Windows 2017'

Notice!!! Windows 2017 is surrounded by a single tick. We call it an apostrophe in the US. If you use quotation marks, it will not work.

  1. Hit the F10 to boot the system.

If this works, then you need to add the kernel parameter to grub permanently by doing the following.

Open a terminal, and type the following:

  1. sudo nano /etc/default/grub
  2. Add the kernel argument to the following line: GRUB_CMDLINE_LINUX_DEFAULT .

Example

GRUB_CMDLINE_LINUX_DEFAULT="acpi_osi='Windows 2018' rd.udev.log-priority=3 nvme_core.default_ps_max_latency_us=5500"
  1. ctrl+x to exit and “Y” to save.
  2. sudo update-grub or if you do not have update-grub installed from the AUR, run sudo grub-mkconfig -o /boot/grub/grub.cfg

I can’t help you any further. Why? You refuse to share complete logs, system specs, and desktop environment. Just like a doctor can’t diagnose an illness without examining the body’s “error logs”, people who are trying to help you here can’t lead you to the solution without that kind of info. We can not physically sit at your computer, so we have to rely on YOU to provide them.

Good Luck.

Why don’t you post the hardware.

inxi -Fxxxa --no-host

1 Like