r/archlinux • u/activedusk • 1d ago
SHARE [Request/Guide] Installing proprietary Nvidia drivers 580 for 1000 series or older
Hello,
I noticed a fairly broad use but lacking documentation, especially for average users, on how to deal with legacy nvidia drivers 580 or older from AUR, specifically the wiki article provides nothing but a generic link to Arch user repository package, with as far as I can tell not instructions on how to get them installed and sorted. This is not at the level "batteries not included, read the wiki" this is at the level "discontinued support, figure it out on your own" and chances are even people that have used mainstream Linux distros for years will be left wondering what to do exactly.
https://wiki.archlinux.org/title/NVIDIA
https://aur.archlinux.org/packages/nvidia-580xx-dkms
If that is your situation, this simple guide might prove useful however it is not complete/correct for all use cases.
__________
Part A - Guide
For nvidia graphics card users of 1000 series or older supported by nvidia proprietary driver 580 (though it can be adapted for older driver version hosted on the AUR for legacy nvidia cards), use the following steps and note it assumes LTS or latest Linux kernel (zen kernel require specifically linux-zen-headers for part 2) and the nouveau is used at the moment and ideally running an X11 based DE, the driver may have unresolved bugs or unsupported features for Wayland compositors (blame nvidia).
1 Modify the following config
sudo nano /etc/pacman.conf
[options]
...
IgnorePkg = nvidia nvidia-utils nvidia-dkms nvidia-open nvidia-open-dkms
..
[multilib]
Include = /etc/pacman.d/mirrorlist
Make sure the above are uncommented or exist, the first tells to ignore the nvidia-open drivers which do not work on 1000 series and older, if this is not mentioned here it will interfere with the drivers you install, if not immediately then during updates, do not confuse multilib with testing.
2 Install required packages with pacman
sudo pacman -S git base-devel dkms linux-headers
3 Install yay to handle AUR packages (alternatives exist)
git clone https://aur.archlinux.org/yay.git
Note this assumes the working directory is /home/user, the above command downloads to wherever you are cd into
cd yay
makepkg -si
After it finishes
cd /home/user
Note user is your account name, alternative cd a single space then tilde "cd \~" without the " ".
4 Use yay to install AUR packages
yay -S nvidia-580xx-dkms nvidia-580xx-utils nvidia-580xx-settings
Optional
yay -S opencl-nvidia-580xx lib32-nvidia-580xx-utils lib32-opencl-nvidia-580xx libxnvctrl-580xx
5 Edit /etc/mkinitcpio.conf
sudo nano /etc/mkinitcpio.conf
Add the following in the Modules section, follow text formatting and spacing, do not delete or add anything else.
MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
Ctrl and X, y, Enter
sudo mkinitcpio -P
Although the yay installation process should have already regenerated, it can sometimes fail and it's a good idea to check with manual command above.
If using GRUB after regenerating initramfs, otherwise modify for other bootloader or EFI stub or UKI to either update or regenerate
sudo grub-mkconfig -o /boot/grub/grub.cfg
Note it assumes grub.cfg is inside /boot and not /boot/efi/grub/grub.cfg, if so modify command.
Other considerations, hybrid graphics, meaning IF the system has an IGP, it might default to it, disable it inside UEFI for desktops. As for laptops, do not disable IGP as it is required for longer battery life and find instead a software solution to switch between them, follow wiki.
These were reconstructed with vague memory of the process and AI, anyone feel free to adjust or correct the steps, hardware configurations and settings could require additional intermediate commands, example using Secure Boot requires proprietary nvidia drivers to be signed, might also need to blacklist nouveau in the kernel default command line parameters.
____________
Part B - Documentation/tool request
Whomever thinks they are able to and so inclined, the community could use script/GUI tool to automate (example as provided by Linux Mint, select driver, click apply changes when it finishes, requests restart) the above process for 2 scenarios, Secure boot on and off and updating the Arch wiki with a page detailing the above process, expanded for more scenarios for PCs and laptops with hybrid graphics AMD IGP and nvidia dedicated, Intel IGP and nvidia dedicated legacy card.
Alternatively if it is a better way of downloading the driver and above dependencies or related packages from an official source, either nvidia or well known and approved maintainer, that could also work, though idk how automation would work when updating the system.
4
u/righN 1d ago
There's no need to add the modules, they're enabled by default since 560, which is mentioned in the documentation.
And I don't really see how is it lacking documentation when it's literally just - install the package from AUR. Regarding the AUR and helpers, there are other articles which the newcomers should read anyway.
-4
u/activedusk 1d ago edited 1d ago
>There's no need to add the modules, they're enabled by default since 560,
Enabled in what? Speak at length, afaik only nouveau and nvidia-open are on the Arch official repo while legacy drivers were moved to the AUR and yes there are alternatives to yay but they still require some way of adding AUR packages which afaik it's not pre configured with archinstall for example, same for multilib which Steam requires, neither are nvidia-open blacklisted by default/a way of doing so mentioned in the wiki installation guide afaik nor does it mention the other packages and libraries required for stuff like gaming required from AUR when installing legacy driver.
>And I don't really see how is it lacking documentation when it's literally just - install the package from AUR.
Pacman will force nvidia-open when updating afaik, AUR way of installing packages not preconfigured with a helper but sure there is a guide for those options but not specifically how to use for proprietary legacy nvidia drivers and related packages specifically.
→ More replies (14)
3
6
u/SereneCasey 1d ago
`IgnorePkg` like that is a nuclear option and will bite you later when a kernel update drops and the modules mismatch. just use the dkms variant and let the hook rebuild it for the new kernel, that's literally what it's for
also yay is fine but the guide should at least mention `sudo pacman -S --asdeps` for the makedepends so your system doesn't get cluttered with git and base-devel junk you only needed for the build
3
u/xd_Shiro 1d ago
I mean, the wiki might not say much about it but I think it clearly says you should get the 580.xx version of dkms and its dependencies on a Pascal, Volta or Maxwell series card. The setup might be a bit of a hustle but it involves many different concepts that are well documented (just not on this page). As for the script or GUI, I could see someone doing something like this but I don’t really get the point of it, since once you have it set up all you have to do is update it with yay if you want cutting edge kernel.
2
u/ang-p 1d ago
Lordy....
though idk how automation would work when updating the system.
After "guiding" people through a dkms install....
Re: part B
https://github.com/Nanmonk/nvidia-arch-setup/tree/main
YMMV, but I'd bet it was not based on some hazy
vague memory of the process
... although it certainly involved AI
5
u/Gozenka 1d ago edited 1d ago
It is not a good guide. You just need to install nvidia-580xx-dkms, which is clearly mentioned on the Archwiki Nvidia page's first section. That's it. The rest will be pulled as dependencies / configured automatically. (I have a GTX 1050 TI btw)
If a user is really new and completely clueless, your guidance on how to install AUR packages may be relevant. And the installation of the fitting
-headerspackage for their kernel, but that is also mentioned in the "Note" on the same section of the wiki. And all these would be things an Arch user should be learning as needed anyway. Since Arch has a Do-It-Yourself side to it, some essential reading of the Archwiki comes with it.The rest in your guide is actually unnecessary, and may even cause issues in the future if some things change. In any case, it is good to keep things simple and untouched if it is not needed.
Edit: The headers packages are even mentioned as optional dependencies for
dkms, which the user should be seeing when it gets installed. In case they are still unaware of this requirement.