Black Screen on boot after Nvidia Driver Installation

this is prior i3 starts at all, you could try another dm or startx without a dm.
cp /etc/X11/xinit/xinitrc ~/.xinitrc
and change the end of it like that:

#twm &
#xclock -geometry 50x50-1+1 &
#xterm -geometry 80x50+494+51 &
#xterm -geometry 80x20+494-0 &
exec i3

this will make you able to use startx from cli without using a DM

How do I check? Post on the specs here

Iā€™m using optimus-switcher using the directions laid out here . Havenā€™t been able to confirm that it was installed properly.

Iā€™ll poke around and see what I find.

I removed that when I installed the Optimus Switch, and it was remade by the Optimus Switcher install. Shall I re-do that step?

Iā€™ll try your step with running i3 directly from .xinitrc

Did you try first removing the

/etc/X11/xorg.conf.d/20-nvidia.conf

Also trust me the drivers are installed correctly. I donā€™t know about the optimus-manager as it is only a switch to go back and forth between the intel and nvidia. But you need to solve the black screen issue first.

As @joekamprad said also you can check your UEFI settings and see if you can enable only Nvidia or Intel to run and or enable disable GPU management at all. This is something you can also check and try.

I removed this file, reboot makes no difference.

/etc/X11/xorg.conf.d/20-nvidia.conf

Making this modification made no difference for me either.

Iā€™m going to poke around in the BIOS and see if I can find what youā€™re talking about

Iā€™m sorry i canā€™t be of more help. I have never had any Hybrid Intel/Nvidia and i donā€™t use laptops but it seems to me they are always difficult. i3 is also not my forte so it also makes it more challenging. I think if i ever get a laptop it will be non hybrid if i can get it. But as i say the drivers are installed now properly. The black screen issue is a configuration issue. You just have to figure it out by research and help. There are others that use i3 and maybe have the same hardware.

Iā€™m struggling to find anything related to the graphics cards in the BIOS menu.

It seems light a failure of lightdm, Iā€™m searching around for information on lightdm issues that look like this. It seems like optimus switcher had overwritten the lightdm configurations, so idk how much I should be messing with that. If needed I can re-install EOS and try from the beginning

it looks like there must be a setting inside BIOS/FIRMWARE controlling the GPU.
do you disable DM before rebooting and try startx option?
sudo systemctl disable lightdm
then reboot and login to cli by username and password then type startx

I made this modification in the ~/.xinitrc file, ran sudo systemctl disable lightdm, then got the following after reboot and running startx

[    10.804] (WW) Failed to open protocol names file lib/xorg/protocol.txt
[    10.805] 
X.Org X Server 1.20.9
X Protocol Version 11, Revision 0
[    10.805] Build Operating System: Linux Arch Linux
[    10.805] Current Operating System: Linux skyedev 5.9.1-arch1-1 #1 SMP PREEMPT Sat, 17 Oct 2020 13:30:37 +0000 x86_64
[    10.805] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-linux root=UUID=d23990b1-6eb1-4936-95ef-4ef36fa3f55f rw quiet loglevel=3 nowatchdog
[    10.805] Build Date: 02 September 2020  06:17:44AM
[    10.805]  
[    10.805] Current version of pixman: 0.40.0
[    10.805] 	Before reporting problems, check http://wiki.x.org
	to make sure that you have the latest version.
[    10.805] Markers: (--) probed, (**) from config file, (==) default setting,
	(++) from command line, (!!) notice, (II) informational,
	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[    10.805] (==) Log file: "/home/skyes/.local/share/xorg/Xorg.0.log", Time: Tue Oct 27 09:59:28 2020
[    10.806] (==) Using config file: "/etc/X11/xorg.conf"
[    10.806] (==) Using config directory: "/etc/X11/xorg.conf.d"
[    10.806] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[    10.807] (==) ServerLayout "Layout0"
[    10.807] (**) |-->Screen "Screen0" (0)
[    10.807] (**) |   |-->Monitor "Monitor0"
[    10.807] (**) |   |-->Device "Device0"
[    10.807] (**) |   |-->GPUDevice "Device0"
[    10.807] (**) |-->Input Device "Keyboard0"
[    10.807] (**) |-->Input Device "Mouse0"
[    10.807] (==) Automatically adding devices
[    10.807] (==) Automatically enabling devices
[    10.807] (==) Automatically adding GPU devices
[    10.807] (==) Automatically binding GPU devices
[    10.807] (==) Max clients allowed: 256, resource mask: 0x1fffff
[    10.808] (WW) The directory "/usr/share/fonts/misc" does not exist.
[    10.808] 	Entry deleted from font path.
[    10.808] (WW) `fonts.dir' not found (or not valid) in "/usr/share/fonts/TTF".
[    10.808] 	Entry deleted from font path.
[    10.808] 	(Run 'mkfontdir' on "/usr/share/fonts/TTF").
[    10.809] (WW) `fonts.dir' not found (or not valid) in "/usr/share/fonts/OTF".
[    10.809] 	Entry deleted from font path.
[    10.809] 	(Run 'mkfontdir' on "/usr/share/fonts/OTF").
[    10.809] (WW) The directory "/usr/share/fonts/Type1" does not exist.
[    10.809] 	Entry deleted from font path.
[    10.809] (WW) The directory "/usr/share/fonts/100dpi" does not exist.
[    10.809] 	Entry deleted from font path.
[    10.809] (WW) The directory "/usr/share/fonts/75dpi" does not exist.
[    10.809] 	Entry deleted from font path.
[    10.809] (==) FontPath set to:
	
[    10.809] (==) ModulePath set to "/usr/lib/xorg/modules"
[    10.809] (**) Extension "Composite" is enabled
[    10.809] (WW) Hotplugging is on, devices using drivers 'kbd', 'mouse' or 'vmmouse' will be disabled.
[    10.809] (WW) Disabling Keyboard0
[    10.809] (WW) Disabling Mouse0
[    10.809] (II) Module ABI versions:
[    10.809] 	X.Org ANSI C Emulation: 0.4
[    10.809] 	X.Org Video Driver: 24.1
[    10.809] 	X.Org XInput driver : 24.1
[    10.809] 	X.Org Server Extension : 10.0
[    10.810] (++) using VT number 1

[    10.811] (II) systemd-logind: took control of session /org/freedesktop/login1/session/_31
[    10.812] (II) xfree86: Adding drm device (/dev/dri/card0)
[    10.812] (II) Platform probe for /sys/devices/pci0000:00/0000:00:02.0/drm/card0
[    10.812] (II) systemd-logind: got fd for /dev/dri/card0 226:0 fd 10 paused 0
[    10.812] (II) xfree86: Adding drm device (/dev/dri/card1)
[    10.812] (II) Platform probe for /sys/devices/pci0000:00/0000:00:1c.0/0000:01:00.0/drm/card1
[    10.813] (II) systemd-logind: got fd for /dev/dri/card1 226:1 fd 11 paused 0
[    10.813] (**) OutputClass "nvidia" ModulePath extended to "/usr/lib/nvidia/xorg,/usr/lib/xorg/modules,/usr/lib/xorg/modules"
[    10.814] (--) PCI:*(0@0:2:0) 8086:3ea0:1028:08a6 rev 0, Mem @ 0xa4000000/16777216, 0x80000000/268435456, I/O @ 0x00005000/64, BIOS @ 0x????????/131072
[    10.814] (--) PCI: (1@0:0:0) 10de:1d13:1028:08a6 rev 161, Mem @ 0xa2000000/16777216, 0x90000000/268435456, 0xa0000000/33554432, I/O @ 0x00004000/128, BIOS @ 0x????????/524288
[    10.814] (WW) Open ACPI failed (/var/run/acpid.socket) (No such file or directory)
[    10.814] (II) "glx" will be loaded by default.
[    10.814] (II) LoadModule: "modesetting"
[    10.817] (II) Loading /usr/lib/xorg/modules/drivers/modesetting_drv.so
[    10.819] (II) Module modesetting: vendor="X.Org Foundation"
[    10.819] 	compiled for 1.20.9, module version = 1.20.9
[    10.819] 	Module class: X.Org Video Driver
[    10.819] 	ABI class: X.Org Video Driver, version 24.1
[    10.819] (II) LoadModule: "glx"
[    10.819] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[    10.824] (II) Module glx: vendor="X.Org Foundation"
[    10.824] 	compiled for 1.20.9, module version = 1.0.0
[    10.824] 	ABI class: X.Org Server Extension, version 10.0
[    10.824] (II) LoadModule: "nvidia"
[    10.824] (II) Loading /usr/lib/xorg/modules/drivers/nvidia_drv.so
[    10.829] (II) Module nvidia: vendor="NVIDIA Corporation"
[    10.829] 	compiled for 1.6.99.901, module version = 1.0.0
[    10.829] 	Module class: X.Org Video Driver
[    10.830] (II) modesetting: Driver for Modesetting Kernel Drivers: kms
[    10.830] (II) NVIDIA dlloader X Driver  455.28  Wed Sep 30 01:04:06 UTC 2020
[    10.830] (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
[    10.831] xf86EnableIOPorts: failed to set IOPL for I/O (Operation not permitted)
[    10.831] (WW) Falling back to old probe method for modesetting
[    10.831] (WW) Falling back to old probe method for modesetting
[    10.831] (II) modeset(G0): using drv /dev/dri/card0
[    10.831] (II) modeset(G1): using drv /dev/dri/card1
[    10.831] (EE) No devices detected.
[    10.831] (EE) 
Fatal server error:
[    10.831] (EE) no screens found(EE) 
[    10.831] (EE) 
Please consult the The X.Org Foundation support 
	 at http://wiki.x.org
 for help. 
[    10.831] (EE) Please also check the log file at "/home/skyes/.local/share/xorg/Xorg.0.log" for additional information.
[    10.831] (EE) 
[    10.847] (EE) Server terminated with error (1). Closing log file.

Iā€™m going to go looking at the BIOS again, but I didnā€™t find anything referring to graphics cards (which surprises meā€¦)

Okay, this is weird.

So, first, my BIOS doesnā€™t have an option for switching GPUs. I thought this was weird, and thought that I might need to update my firmware.

Then, checkout the following posts from Dellā€™s forums.

https://www.dell.com/community/Laptops-General-Read-Only/Dell-Inspiron-Switchable-Graphics/td-p/4460142
https://www.dell.com/community/Inspiron/FULLY-disabling-integrated-graphics-card-Inspiron-15-7577/td-p/6115909

Theyā€™re saying that I shouldnā€™t be seeing the Nvidia graphics card, and it seems to suggest that theres a ā€œpass-throughā€ mechanic with the intel GPUs. Is this standard with the hybrid cards? Or do you think an update to my laptopā€™s firmware will suddenly give me the options to enable graphics switching that Iā€™m looking for? I think I need to step away from this issue and get some work down for now, but Iā€™ll look more into this. My ultimate goal here to be able to develop with CUDA anywayā€¦

I think this laptop runs in hybrid mode and only use Nvidia when called upon but again they are designed to work this way in Windows. Supposedly in the Nvidia settings panel it may be possible to set it to use Nvidia always. I think if it was me i would install Xfce first and get it working with the Nvidia drivers installed as we have done. Then install i3 to xfce later which you can select to boot into. Just an option to try if you do a reinstall.

I have seen this laptop run in ā€œNVidia Primeā€ mode under Linux. This means that the laptop only uses the NVidia card.

@GeekTea Did you try the ACPI kernel parameter I suggested? link Manufacturers do not always implement the ACPI tables to standard. So sometimes a kernel parameter maybe needed to have everything work properly on a hybrid graphics system.

1 Like

Maybe he means Hybrid graphics (which is same as Optimus, but older and have physical switch on laptop, see VAIO vgn-z11 for example). But technically apart from switch mechanism itā€™s just earlier form of same technology with crappy drivers :woozy_face:

Or BIOS switch, some laptops can do that (mostly with advanced BIOS) where you can use full Nvidia or full Intel drivers

P.S. But no, that DELL is optimus

Iā€™m sure it would be working already if it wasnā€™t i3. I donā€™t use i3 much or hybrid graphics on laptops. So i defer to others who have more experience with it. I have on many occasions installed and have got working nvidia and optimus-manager but not on i3. I just read that this laptop runs on Intel and uses Nvidia when required only. I donā€™t think it has switchable graphics at least in UEFI and in Windows although i also read it may be possible to set Nvidia only from the Nvidia panel in Windows. Donā€™t know because i donā€™t have the hardware. It may work with optimus-manager on Linux but this is MX250 so iā€™m not sure. @linesma says he has seen it work with optimus. The drivers are installed properly the problem is the black screen which is in the configuration somewhere with i3. :man_shrugging:

i do only see that x is not starting at all here

Long thread, hard to read everythingā€¦
But did you already try using sddm instead of lightdm?

  sudo systemctl disable lightdm
  sudo systemctl enable sddm
  reboot

@GeekTea
Just wondering if you tried @manuel suggestion to switch from lightdm to sddm?

Alright. From the top.

Yes, and no difference. Very similar failure messages from lightdm. I can post the log but I donā€™t think they provide much insight.

When modifying the grub config at boot up, I couldnā€™t find the keyword ā€˜quietā€™ anywhere. I instead with the second half of the instructions and went and modified /etc/default/grub. The following line

#GRUB_CMDLINE_LINUX_DEFAULT="quiet loglevel=3 nowatchdog"

becameā€¦

GRUB_CMDLINE_LINUX_DEFAULT="acpi_osi='Windows 2018' rd.udev.log-priority=3 nvme_core.default_ps_max_latency_us=5500"

Then ranā€¦

> sudo grub-mkconfig -o /boot/grub/grub.cfg
Generating grub configuration file ...
Found theme: /boot/grub/themes/EndeavourOS/theme.txt
Found linux image: /boot/vmlinuz-linux-lts
Found initrd image: /boot/intel-ucode.img /boot/initramfs-linux-lts.img
Found fallback initrd image(s) in /boot: initramfs-linux-lts-fallback.img
Found linux image: /boot/vmlinuz-linux
Found initrd image: /boot/intel-ucode.img /boot/initramfs-linux.img
Found fallback initrd image(s) in /boot: initramfs-linux-fallback.img
grub-probe: error: cannot find a GRUB drive for /dev/sda1.  Check your device.map.
done

After reboot there was definitely a difference. I saw a long string of modules successfully initializing, followed by my cursor stopping in place and nothing happening. lightdm and sddm both still fail to start.

But, that makes me optimistic, this is the most Iā€™ve seen my laptop do on bootup. Can you ELI5 what did I just do to my grub config? And how can I get a log of the boot up procedure so I can post it here?

Also /dev/sda1 is one of the partitions for a EOS usb image I used to flash my laptop.

edit: when I mention the ā€œ. I saw a long string of modules successfully initializing, followed by my cursor stopping in place and nothing happening.ā€ above, I think this is the start-up sequence by systemd. Now, it yields a lot of ā€˜okā€™ messages, which fit the following format.

[ OK ] Started Authorization Manager.

I donā€™t know where I can get this log. Naturally, the last 4 messages areā€¦

[ OK ] Stopped Light Display Manager.
       Starting Light Display Manager.
[ OK ] Finished TLP system startup/shutdown.
[ OK ] Started Light Display Manager.

Then it stops with a blinking cursor. I donā€™t think this is terribly surprising at this point.

> sudo systemctl status lightdm
ā— lightdm.service - Light Display Manager
     Loaded: loaded (/usr/lib/systemd/system/lightdm.service; enabled; vendor preset: disabled)
     Active: failed (Result: exit-code) since Wed 2020-10-28 08:46:55 PDT; 20min ago
       Docs: man:lightdm(1)
    Process: 928 ExecStart=/usr/bin/lightdm (code=exited, status=1/FAILURE)
   Main PID: 928 (code=exited, status=1/FAILURE)

Oct 28 08:46:55 skyedev systemd[1]: lightdm.service: Scheduled restart job, restart counter is at 5.
Oct 28 08:46:55 skyedev systemd[1]: Stopped Light Display Manager.
Oct 28 08:46:55 skyedev systemd[1]: lightdm.service: Start request repeated too quickly.
Oct 28 08:46:55 skyedev systemd[1]: lightdm.service: Failed with result 'exit-code'.
Oct 28 08:46:55 skyedev systemd[1]: Failed to start Light Display Manager.

I noticed that before grub looking for /dev/sda1.

Edit: I have i3 installed but i donā€™t have a hybrid laptop setup. Iā€™m running desktops. One has Nvidia the others have AMD.

That works also. Now it is in your grub.

Get rid of this parameter. Unless you are having problems with an NVME SSD it is not needed.

Progress! Even if it is a little.

I think you mean explain. I go into more detail about ACPI parameters here. link

TLDR: You told the Linux kernel to ā€œmimicā€ Windows 10 ACPI calls. This way all your hardware is powered properly.

If you can get to them, the logs for lightdm are located here. /var/log/lightdm

Can you post what they say?

Something to try.

Temporarily disable TLP. TLP can sometimes cause issues with Optimus Laptops. If doing this does not help, you can re-enable it.

sudo systemctl disable tlp.service

to re-enable TLP.

sudo systemctl enable tlp.service

When you have a blinking curser, can you go to a TTY by ctrl+alt+F3? If you said that you canā€™t previously, I am sorry. I must have missed it.

1 Like