When running Arch, it’s just apart of life that an update that you do will break your system. With the Linux 6.7 drivers and the Nvidia 545 drivers, it seems to have quite a lot of issues.
I’ve seen weird postings on Reddit, the Nvidia forums, and the Arch forums. Sigh.
What did it do for me? It showed a screen a little like this on boot:
Broken text and vertical bars. Not great.
What did other people say?
Some posts suggested turning both the modeset and the fbdev on via kernel parameters.
That means adding: modeset=1
and fbdev=1
to your kernel parameters. That didn’t work for me.
What fixed it?
What was the issue? It seems to have some kind of issue with my setup and the frame buffer.
Finding the issue
My version of Linux at the time was 6.7.x, and the Nvidia driver was Nvidia 545.29.06-16.
Through bisecting, I found out that downgrading the kernel to 6.6.10 and using Nvidia driver 545.29.06-9 was the solution.
Well how do you do that without having a GUI?
When booting editing your kernel params. (I’m using systemd-boot) Press ‘e’ to edit the entry. Add rescue nomodeset
to the end of the boot settings and press enter.
You should have a root console now.
But I don’t have wifi and it’s not in my package cache
The longer you wait to fix this and the more versions change, the more you’re in trouble here.
As long as you have IWD installed, you can connect to your wifi through the following commands: (It’s helpful to have tmux already installed and be familar with it)
systemctl start iwd
iwctl
Under the iwctl shell:
#finds your device name (for me it was wlan0)
[iwd]# device list
[iwd]# station wlan0 scan
[iwd]# station wlan0 get-networks
# Find your network
[iwd]# station device wlan0 connect [network name]
# You may be prompted for a passphrase
To get an IP address:
dhcpcd wlan0
Now you’ll be good to go to access the internet from bash. To test this use ping google.com
and you’ll see a few pings.
Ok, now we can downgrade.
To downgrade, it’s going to be helpful to have the downgrade
utility. Bring that down with either pacman
or yay
.
Run downgrade for the following packages linux
, nvidia
, nvidia-utils
.
For Linux, I choose the version 6.6.10. For Nvidia I chose nvidia-545.29.06-9-x86_64.pkg.tar.zst
.
All of these will refuse to install, but that’s ok. What you needed here is to fill your package cache with the right version to downgrade.
Yep that’s right you’re not done yet, it refuses to install because nvidia
is tied to nvidia-utils
and Linux won’t install beccause it’s missing the NVidia drivers.
Well how do we install?
You’ll have to tell pacman to force it to install the drivers it’s self.
[root]# cd /var/cache/pacman/pkg/
[root]# pacman -U nvidia-545.29.06-9-x86_64.pkg.tar.zst linux-6.6.10.arch1-1-x86_64.pkg.tar.zst
Reboot and you should be back to normal. Who knows when this will be fixed, but I hope it’s soon because this blocks me from staying up to date. It also comes back everytime that Nvidia and the new kernel is upgraded.