Booting to black screen due to broken drivers

Preface
I apologise if this is a simple issue which could have been solved with just one command. I don’t have the greatest expertise in Linux in general. I do hope that I can at least provide a sufficiently detailed description of the problem that those of you who do know what you’re doing can educate me.


A recent update started creating problems along the lines of

nvidia-450xx-utils and nvidia-440xx-utils are in conflict

I now know that there is a solution to this problem at the announcements page for the update. Unfortunately, this page was not the first thing I found when I google’d the problem and I ended up trying to piece together a solution from various other forum posts. Then, the next time I rebooted, I could only get a black screen (after selecting Manjaro in the bootloader - I dual boot Win10 on the same machine). So it would seem that in trying to solve the problem I broke things further.
Note
I honestly do not remember the exact sequence of steps which I took to get it this messed up. I will refrain from giving an incomplete and probably wrong recollection, because that would just be confusing.
chroot
Following some troubleshooting guides online, I have tried to solve the problem by chrooting into Manjaro from a live Manjaro flash drive (the same one I used to install it). I was able to successfully use manjaro-chroot to access the affected system, at which point I tried to apply basically the steps given in the announcement post. This has been unsuccessful. I will give some command outputs to show the current state of the system.

[manjaro-gnome /]# mhwd-kernel -li
Currently running: 5.6.15-1-MANJARO (linux56)
The following kernels are installed in your system:
   * linux57
   * linux58

Note that the active kernel is actually the kernel in use by the true root (the live flash drive), not the chroot. I don’t know if this is a consequence of my not chrooting properly - the only command I used was manjaro-chroot -a.

[manjaro-gnome /]# mhwd -li
> Installed PCI configs:
--------------------------------------------------------------------------------
                  NAME               VERSION          FREEDRIVER           TYPE
--------------------------------------------------------------------------------
video-hybrid-amd-nvidia-450xx-prime            2019.10.25               false            PCI
           video-linux            2018.05.04                true            PCI
         network-r8168            2016.04.20                true            PCI


Warning: No installed USB configs!

I didn’t particularly choose any of these; they were automatically installed by mhwd -a pci nonfree 0300. I have tried other drivers such as video-nvidia-450xx with no more success. Note that I have also attempted to use the 440xx versions of both of these as well, yet nothing seems to work.

[manjaro-gnome /]# pamac list -i | grep nvidia
lib32-nvidia-450xx-utils                 450.66-1                              multilib   106.1 MB
linux57-nvidia-450xx                     450.66-6                              extra      13.6 MB
linux58-nvidia-450xx                     450.66-9                              extra      13.6 MB
mhwd-nvidia-340xx                        340.108-1                             core       2.5 kB
mhwd-nvidia-390xx                        390.132-1                             core       1.9 kB
mhwd-nvidia-418xx                        418.113-1                             core       1.6 kB
mhwd-nvidia-430xx                        430.64-1.0                            core       1.3 kB
mhwd-nvidia-435xx                        435.21-1.0                            core       1.3 kB
mhwd-nvidia-440xx                        440.100-1                             core       1.5 kB
mhwd-nvidia-450xx                        450.66-1                              core       1.5 kB
nvidia-450xx-utils                       450.66-1                              extra      266.0 MB
nvidia-prime                             1.0-4                                 extra      112 bytes
opencl-nvidia-440xx                      440.100-1                             extra      29.3 MB

I don’t know if this is helpful, but I figured I’d include it. It seems to me that there isn’t really any residue of the prior version still installed, aside from opencl (not sure why) and mhwd-nvidia-___ which I think is important.

[manjaro-gnome /]# inxi -Fz --tty
System:    Kernel: 5.6.15-1-MANJARO x86_64 bits: 64 Console: N/A Distro: Manjaro Linux 
Machine:   Type: Desktop Mobo: Gigabyte model: F2A78M-HD2 v: x.x serial: N/A 
           BIOS: American Megatrends v: FC date: 01/19/2016 
CPU:       Topology: Quad Core model: AMD A8-7650K Radeon R7 10 Compute Cores 4C+6G bits: 64 
           type: MCP L2 cache: 2048 KiB 
           Speed: 1919 MHz min/max: 1900/3300 MHz Core speeds (MHz): 1: 1964 2: 2351 3: 1896 
           4: 1896 
Graphics:  Device-1: AMD Kaveri [Radeon R7 Graphics] driver: radeon v: kernel 
           Device-2: NVIDIA GP107 [GeForce GTX 1050 Ti] driver: nouveau v: kernel 
           Display: server: X.org 1.20.8 driver: nouveau note: display driver n/a 
           Message: Advanced graphics data unavailable for root. 
Audio:     Device-1: AMD Kaveri HDMI/DP Audio driver: snd_hda_intel 
           Device-2: AMD FCH Azalia driver: snd_hda_intel 
           Device-3: NVIDIA GP107GL High Definition Audio driver: snd_hda_intel 
           Sound Server: ALSA v: k5.6.15-1-MANJARO 
Network:   Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet driver: r8169 
           IF: enp2s0 state: down mac: <filter> 
           Device-2: TP-Link TL-WN823N v2/v3 [Realtek RTL8192EU] type: USB driver: rtl8xxxu 
           IF: wlp0s18f2u4 state: down mac: <filter> 
           IF-ID-1: enp0s18f2u3 state: unknown speed: N/A duplex: N/A mac: <filter> 
Drives:    Local Storage: total: 938.79 GiB used: 783.16 GiB (83.4%) 
           ID-1: /dev/sda vendor: Western Digital model: WD10EZEX-08WN4A0 size: 931.51 GiB 
           ID-2: /dev/sdb type: USB vendor: Patriot model: N/A size: 7.28 GiB 
Partition: ID-1: / size: 143.19 GiB used: 92.19 GiB (64.4%) fs: ext4 dev: /dev/sda4 
Swap:      Alert: No Swap data was found. 
Sensors:   System Temperatures: cpu: 10.0 C mobo: N/A 
           Fan Speeds (RPM): N/A 
           GPU: device: radeon temp: 11 C device: nouveau temp: 34 C 
Info:      Processes: 219 Uptime: 38m Memory: 6.74 GiB used: 1.93 GiB (28.6%) 
           Shell: Unknown Client: systemd inxi: 3.1.05 

I do find it interesting that the driver for my graphics card is listed as nouveau - isn’t that the open-source nvidia driver, whereas I only see nvidia’s proprietary cards in the pamac list.

[manjaro-gnome /]# mhwd-gpu --status
:: status
  xorg configuration file: '/etc/X11/mhwd.d/nvidia.conf'
[manjaro-gnome /]# cat /etc/X11/mhwd.d/nvidia.conf
##
## Generated by mhwd - Manjaro Hardware Detection
##
 
 

That isn’t a cut-off output, that’s all it says. I don’t know if something is supposed to be here, but I’d rather not break things further editing it. I think that manjaro-settings-manager might be helpful in this respect, but it seems to be a rather complicated process to use a GUI application from inside chroot, so I haven’t really been able to try it.


If you read all of that, then thank you! I recognise that it was quite the information dump, but I’m at my wit’s end at this point and I just want to use my favourite operating system rather than being stuck on Windows 10. Thanks in advance for any feedback. I will try to respond quickly to requests for more information.

First thing to do is to boot into kernel 5.7 or 5.8 and then to remove kernel 5.6 as this is no longer supported. Don’t update before you have removed 5.6!

Like I said, the kernel 5.6 is the kernel in use by the live flash drive which I’m using to chroot

Whoops, accidental enter key. Anyway, it doesn’t show up in the list itself because it isn’t really installed on the system in question.

Also, I seem to be unable to delete or install kernels while in a chroot. I haven’t been able to find a way to do so, even if I did need to.

When you still can chroot, enter inxi command while in chroot to post real system data here.

Do you remeber what bad advice you followed? Package conflicts are usually not extremely difficult to fix.

All of the commands included in the post were run while within manjaro-chroot. It’s just that the mhwd-kernel command seems to produce incorrect results, giving the active kernel of the real root, while correctly listing the installed kernels of the chroot. The system in question only has (I’m pretty sure) kernels 5.7 and 5.8, which showed up in the list. The flash drive has only 5.6, since it’s an old Manjaro install; I figured that didn’t matter.

I can’t find the specific posts which I followed. I don’t think I did much more than mess around with mhwd -i and mhwd -r. What’s weird is that I seem to have all of the right packages installed (per the command outputs) and yet I still can’t boot properly.

Probably you have removed or borked your graphic drivers…

can you returns

sudo manjaro-chroot -a ( type 1 if only line 0 appears )
mhwd -li
mhwd-kernel -li
pacman Qs -lastest
exit

Sure, but I don’t think that last command is right, and the others were all included in my original post.

~ >>> manjaro-chroot -a                                                                                   [127]
==> Detected systems:
 --> 0) Windows
 --> 1) ManjaroLinux
==> Select system to mount [0-1] : 
1
==> Mounting (ManjaroLinux) [/dev/sda4]
 --> mount: [/mnt]
 --> mount: [/mnt/mnt]
[manjaro-gnome /]# mhwd -li
> Installed PCI configs:
--------------------------------------------------------------------------------
                  NAME               VERSION          FREEDRIVER           TYPE
--------------------------------------------------------------------------------
video-hybrid-amd-nvidia-450xx-prime            2019.10.25               false            PCI
           video-linux            2018.05.04                true            PCI
         network-r8168            2016.04.20                true            PCI


Warning: No installed USB configs!
[manjaro-gnome /]# mhwd-kernel -li
Currently running: 5.6.15-1-MANJARO (linux56)
The following kernels are installed in your system:
   * linux57
   * linux58
[manjaro-gnome /]# pacman Qs -lastest
pacman: invalid option -- 'a'

Also, if what you mean is pacman -Qs lastest then that returns nothing. If you mean pacman -Qs latest then that gives

[manjaro-gnome /]# pacman -Qs latest 
local/libmspub 0.1.4-7
    Microsoft Publisher file format parser library (latest snapshot)
local/linux-latest 5.8-1
    The latest kernel and modules (metapackage)
local/linux-latest-headers 5.8-1
    Header files and scripts for building modules for the latest kernel (metapackage)
local/linux-latest-r8168 5.8-1 (linux-latest-extramodules)
    A kernel module for Realtek 8168 network cards (metapackage)

ok by chroot
boot on USB iso manjaro ( live )
open a terminal

sudo manjaro-chroot -a ( type 1 if only one line 0 appears )
pacman -Syy
pacman -R linux-latest
pacman -R linux-latest-headers
pacman -S linux58-headers 
mhwd -r pci video-hybrid-amd-nvidia-450xx-prime
mhwd -r pci video-linux
mhwd -i pci video-nvidia-450xx
mhwd-kernel -i linux54
exit ( end chroot )

press Esc to see Grub , select in advanced
version kernel , try with 5.4 also 5.8 ( 5.7 to remove )

file Xorg nvidia will be created after reboot

I tried your advice exactly, but the last step did not work. As I said earlier, it doesn’t seem possible to install or remove kernels from a machine while manjaro-chrooting into it. The precise error message is

[manjaro-gnome /]# mhwd-kernel -i linux54
:: Synchronizing package databases...
 core                  169.2 KiB  1498 KiB/s 00:00 [######################] 100%
 extra                2013.0 KiB  4.83 MiB/s 00:00 [######################] 100%
 community               6.2 MiB  4.72 MiB/s 00:01 [######################] 100%
 multilib              194.3 KiB  6.32 MiB/s 00:00 [######################] 100%
error: no targets specified (use -h for help)

This is probably for the same reason that mhwd-kernel -li gives the real root’s active kernel, not the chroot's. Therefore, kernels 5.7 and 5.8 are my only options right now, and neither of them seem to work.

then try under chroot

sudo manjaro-chroot -a ( type 1 if only one line 0 appears )
pacman -Syy
pacman -S linux54 linux54-headers  linux54-r8168 linux54-nvidia-450xx
pacman -S linux58 linux58-headers  linux58-r8168
mkinitcpio -P
exit ( end-chroot )

I really thought that idea would work, but while I’m able to boot into linux 5.4 from grub it produces the same results as the other kernels. I don’t really understand what you meant by “try with 5.4 also 5.8 ( 5.7 to remove )” but it doesn’t seem to matter what kernel I use. I would think this were a hardware problem, except that I can boot perfectly fine into the Manjaro live flash drive and into Win10.

what is result ( by chroot ) from

mwd -li 
mhwd-kernel -li
mhwd-gpu --check 
mhwd-gpu --status 

Alright. I have also included the contents of the file indicated by mhwd-gpu --status.

[manjaro-gnome /]# mhwd -li
> Installed PCI configs:
--------------------------------------------------------------------------------
                  NAME               VERSION          FREEDRIVER           TYPE
--------------------------------------------------------------------------------
    video-nvidia-450xx            2019.10.25               false            PCI
         network-r8168            2016.04.20                true            PCI


Warning: No installed USB configs!
[manjaro-gnome /]# mhwd-kernel -li
Currently running: 5.6.15-1-MANJARO (linux56)
The following kernels are installed in your system:
   * linux54
   * linux57
   * linux58
[manjaro-gnome /]# mhwd-gpu --check
xorg configuration symlink valid...
[manjaro-gnome /]# mhwd-gpu --status
:: status
  xorg configuration file: '/etc/X11/mhwd.d/nvidia.conf'
[manjaro-gnome /]# sudo cat /etc/X11/mhwd.d/nvidia.conf
# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 450.66

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
EndSection

Section "Files"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
	Option "NoLogo" "1"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Extensions"
    Option         "COMPOSITE" "Enable"
EndSection

 
Section "InputClass"
    Identifier          "Keyboard Defaults"
    MatchIsKeyboard        "yes"
    Option              "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection

If the drivers are borked out, you should be able to log in to tty, chroot wouldn’t be needed in such case. Of course chroot can be also used but tty is more convenient if it’s accessible.

Usually, the fix the drivers is to remove them with mhwd commands and then run the automatic non-free install with mhwd. Avoid manual installs/uninstalls. However, if any of the commands that remove or install return errors, then they also show which packages causes conflict and those need to be uninstalled manually first (usually people install Cuda package that causes issues, or some nvidia utilities from AUR - those have to be removed first and then installed anew when everything is set again).

After all is cleared and mhwd installs drivers successfully, system should boot into graphical session normally.

From what I noticed, people overcomplicate things with drivers and fixes are simple, get rid of everything (meaning: all driver packages) and install them anew with mhwd. Be sure your system is up to date and use supported kernel.

I’m running Manjaro on various computers for almost 5 years and sporadically I got some issues with drivers but those were easy and quickly fixable from tty if one understands what commands show you and what you have to uninstall manually if that need arises. I also have two laptops with hybrid graphics so that adds to complications and yet this simple rules worked for them too.

I understand what you’re saying but I have now done what you say a good half dozen times, in both trying to solve the problem myself and following the advice of others in this thread.
As far as tty is concerned, I don’t see anything when pressing any combination of ctrl-alt-f2 or f3 or whatever on the black screen. I did notice that when it black screens, the numlock light on my keyboard and the rgb on my mouse both go out, so I’m not even sure if the system registers keypresses in that state.
As mentioned in my original post I have ran mhwd -a pci nonfree 0300 after removing all of the other drivers. It chose to download video-hybrid-amd-nvidia-450xx-prime, and this did not fix the problem.
Also, although I didn’t mention it, I did indeed get cuda-related errors when removing my previous drivers. I’ve simply uninstalled cuda for now, since I should be able to reinstall it when the system is actually working.

When you get black screen, the first thing to do is to either go to non-silent mode (Esc during boot should show boot screen, if that doesn’t work, go into grub settings and remove silent).

Then observer at which point boot stops.
If you know when a system stops booting, then you know it’s ready for tty and it’s clear if it works or not. It’s possible that drivers are not the only problem you have, and they were installed correctly but something else is causing the black screen.