You are not logged in.
Hello good people.
I just installed Arch a few days ago and was very happy thus far. After using mostly Fedora (and recently Manjaro) for years, I learned a lot when installing Arch and really like the simplicity and that I can understand more of my system.
One other big plus was how easy it was not only to install Nvidia drivers but how easy GPU offloading was to get working. All is needed are 3 pacman packages, beautiful! This great experience continued with the installation of CUDA (two packages, thats it).
However, my mood about Arch dimmed a lot when I checked for updates and saw that the nvidia version 450 package was available.
And, I mean I understand it makes total sense for a rolling release distro to only have one package and this was also why it was so simple for me to install it.
However, in the case of Nvidia, I prefer to not switch to new releases quickly as this has caused problems in the past. And especially because I rely on the CUDA sdk which is tied to the nvidia driver version. And my machine learning libraries are not quickly jumping on to new CUDA versions.
So I wondered if there is even a proper way to hold back on these updates? To just stay with the old version of the nvidia and cuda packages [1].
Or better: What is the Arch way of dealing with this? Is this a scenario that is just not possible with Arch? I know I could ignore packages in the pacman.conf and in this case it is just 4 or 5 packages, but I wonder if that is the idiomatic way to do this in Arch?
I read the wiki about system maintenance and all relevant nvidia pages. I googled about this but could not find any advice. If I have overlooked something, please excuse me.
[1]: nvidia, nvidia-settings, nvidia-prime, opencl-nvidia, cuda
Last edited by Fireminster (2020-07-13 10:04:44)
Offline
In pacman.conf there is the option HoldPkg, you should be able to add the nvidia packages there. I haven't been using Arch that long myself, I know that partial upgrades aren't supported, but you would be listing the nvidia drivers/packages which aren't part of the base install and also just proprietary video drivers not part of the OS itself. So I don't think it would be a problem to hold those packages back, but to be sure just wait till someone agrees with me or not.
Offline
https://wiki.archlinux.org/index.php/Pa … g_upgraded
You'll also have to ignore kernel updates (this is techinally a partial update, but in the special case of kernel and kernel packages usually™ safe unless there's major glibc change)
If you want to update the kernel but stay the driver version, you'll have to use an older version of the nvidia-dkms package (one to fit your locked nvidia-utils version)
Edit: @f33dm3bits, that's not what HoldPkg does.
HoldPkg = package ...
If a user tries to --remove a package that’s listed in HoldPkg, pacman will ask for confirmation before proceeding. Shell-style glob patterns
are allowed.
Last edited by seth (2020-07-12 07:53:46)
Offline
@seth
You are right, I wasn't paying attention, I meant:
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg =
#IgnoreGroup =
Last edited by f33dm3bits (2020-07-12 07:57:55)
Offline
To just stay with the old version of the nvidia and cuda packages [1].
Another idea is to use linux-lts and nvidia-lts packages,
LTS==Long-term support (LTS) Linux kernel and modules.
Offline
That has no impact on the driver version, nvidia-lts is at 450.57 as well: https://www.archlinux.org/packages/extr … vidia-lts/
(They have to align w/ nvidiautils so nvidia and nvidia-lts will, for now, always be the same driver version)
Offline
Thank you guys. So putting the nvidia packages in the ignore packages is the way to go.
https://wiki.archlinux.org/index.php/Pa … g_upgraded
You'll also have to ignore kernel updates (this is techinally a partial update, but in the special case of kernel and kernel packages usually™ safe unless there's major glibc change)
[...]
Ah because the nvidia packages are build for the specific kernel. But does that mean I should stay with the current major kernel version and not update to 5.8 or are you saying that the exact version (5.7.7) is what I should stay at if I keep the nvidia stuff at 440?
I am using a brand new notebook (Precision 5750) and kinda need new kernel versions although I could stay with the current one for a bit longer until I know I can use the newer nvidia stuff.
Did I make a mistake choosing Arch? Am I abusing the distro for my use-case? It seems like this more and more to me.
Offline
The module is installed into /usr/lib/modules/5.7.7-arch1-1/extramodules/ so it won't be found by a 5.7.8-arch1-1 kernel.
You could copy it around but it's most likely tagged and while it's possbile to ignore that, that's essentially asking for trouble.
If you want to update the kernel but stay the driver version, you need to use the nvidia-dkms package which will work with every kernel.
Offline
The module is installed into /usr/lib/modules/5.7.7-arch1-1/extramodules/ so it won't be found by a 5.7.8-arch1-1 kernel.
You could copy it around but it's most likely tagged and while it's possbile to ignore that, that's essentially asking for trouble.If you want to update the kernel but stay the driver version, you need to use the nvidia-dkms package which will work with every kernel.
Hey Seth thank you for your help, I really appreciate the hand holding!
Ok so I could install the nvidia-dkms to be independent of the kernel. But there is this problems:
Currently even the nvidia-dkms module is already 450, how would I get an old version? The AUR also does not contain anything with nvidia-440.
Also it does not seem that nvivida-settings exists in a dkms module, but maybe that is nor kernel-dependent (I also don't see a nividia-settings in the extramodules).
Offline
nvidia-settings/utils are kernel independent. You can just put them in the ignore list.
(Disclaimer: nvidia-settings depends on gtk3. gtk3 is not known for API/ABI stability. Expect trouble on this vector - sooner or later)
About older versions:
https://wiki.archlinux.org/index.php/Do … g_packages
https://wiki.archlinux.org/index.php/Arch_Linux_Archive
https://archive.archlinux.org/packages/n/nvidia-dkms/
Offline
nvidia-settings/utils are kernel independent. You can just put them in the ignore list.
(Disclaimer: nvidia-settings depends on gtk3. gtk3 is not known for API/ABI stability. Expect trouble on this vector - sooner or later)About older versions:
https://wiki.archlinux.org/index.php/Do … g_packages
https://wiki.archlinux.org/index.php/Arch_Linux_Archive
https://archive.archlinux.org/packages/n/nvidia-dkms/
Thank you!
Offline
You could hold the nvidia-dkms package to stay on older dkms modules -- this rule applies generally to any kernel module. The problem is that the kernel module needs to be in sync with nvidia-utils and nvidia-settings.
The best option really is to fork all the packages you want to hold back and keep their versions back a bit. Rename them to e.g. nvidia440-{dkms,utils,settings}. Build them yourself, and if you think they're likely to be useful to like-minded people too, you could submit them to the AUR as well.
The utils more or less don't really depend on anything except glibc, libGL, and the X11 client libraries, all of which are pretty stable, but for nvidia-settings you'll *definitely* need to rebuild it on updates to the jansson package as well as misc gtk3 stuff.
Last edited by eschwartz (2020-07-12 16:20:08)
Managing AUR repos The Right Way -- aurpublish (now a standalone tool)
Offline
You could hold the nvidia-dkms package to stay on older dkms modules -- this rule applies generally to any kernel module. The problem is that the kernel module needs to be in sync with nvidia-utils and nvidia-settings.
The best option really is to fork all the packages you want to hold back and keep their versions back a bit. Rename them to e.g. nvidia440-{dkms,utils,settings}. Build them yourself, and if you think they're likely to be useful to like-minded people too, you could submit them to the AUR as well.
The utils more or less don't really depend on anything except glibc, libGL, and the X11 client libraries, all of which are pretty stable, but for nvidia-settings you'll *definitely* need to rebuild it on updates to the jansson package as well as misc gtk3 stuff.
Thank you! I think it comes down to what is more effort: doing all that and still being able to maintain a stable system or just re-installing manjaro and manage from there. At this point, I am afraid I will choose the latter as soon as I have some time to spent.
Offline
It's trivial to maintain a custom package (the most strenuous part of this is "cd /path/to/pkgbuild/ && makepkg -Csirf any time the binary fails to start because of a jansson/other update"), and you need to do that anyway since Manjaro just delays package updates by a couple of weeks and calls that "stable". I'm not really sure what the problem is.
Is it a general dislike of AUR or other non-official packages?
Managing AUR repos The Right Way -- aurpublish (now a standalone tool)
Offline
Hey thanks for not giving up.
It's trivial to maintain a custom package (the most strenuous part of this is "cd /path/to/pkgbuild/ && makepkg -Csirf any time the binary fails to start because of a jansson/other update"), and you need to do that anyway since Manjaro just delays package updates by a couple of weeks and calls that "stable". I'm not really sure what the problem is.
I don't know, I am not in general put off by this. Its just that I am scared by Nvidia drivers from the past and remember with horror the times I could not log in and had to mess around with X11 configs. So its just very nice that in some other distros like Mint or Fedora* you can manage driver versions and don't have to jump when a new driver was released. I assume that is what Manjaro's mhwd is doing (although I have been using Manjaro for a year, I did so without a Nvidia card).
The simplicity of Arch's `nvidia` package gives a false sense of ease-of-use IMHO. I cannot imagine any developer who uses nvidia who could switch to 450 for example. Some ML frameworks like pytorch do not even work with it (and CUDA 11) yet, let alone some frameworks.
Is it a general dislike of AUR or other non-official packages?
No that is fine, but I just wonder about system stability. The wiki is full of warnings of keeping out-of-date packages and doing partial upgrades. It just looks like this could cause problems in the future and by branching off now I am entering a world of pain that I was hoping was behind me when I saw the nvidia package in the Arch wiki.
* not Fedora itself of course, but RPMfusion
Offline
When the linux package is updated to 5.8 you will need a patch for nvidia 440. There will probably more Nvidia updates than usual in the next few months due to the 3000 series release.
Offline
I don't know, I am not in general put off by this. Its just that I am scared by Nvidia drivers from the past and remember with horror the times I could not log in and had to mess around with X11 configs. So its just very nice that in some other distros like Mint or Fedora* you can manage driver versions and don't have to jump when a new driver was released. I assume that is what Manjaro's mhwd is doing (although I have been using Manjaro for a year, I did so without a Nvidia card).
The simplicity of Arch's `nvidia` package gives a false sense of ease-of-use IMHO. I cannot imagine any developer who uses nvidia who could switch to 450 for example. Some ML frameworks like pytorch do not even work with it (and CUDA 11) yet, let alone some frameworks.
I don't know what "mhwd" is or does. I suppose it's possible they already do what I suggested, and have nvidia-440-{dkms,utils,settings} packages. I believe they provide old kernel versions the same way. This should not be significantly different from doing so yourself, except that you don't have to spend time building it in a background terminal process.
And also, well, it's fine if you ignore updates. But then if the packages stop working, official advice would be "stop ignoring updates, if you need old versions then fork the package and rebuild it". So you could just as easily do that from the start.
No that is fine, but I just wonder about system stability. The wiki is full of warnings of keeping out-of-date packages and doing partial upgrades. It just looks like this could cause problems in the future and by branching off now I am entering a world of pain that I was hoping was behind me when I saw the nvidia package in the Arch wiki.
The consequence of keeping out of date packages and doing partial updates is that those packages, and anything that depends on them, might be broken.
So, doing partial updates for nvidia-{utils,settings} might cause nvidia-{utils,settings} to break. No more, no less. But that is only as painful as those specific packages -- this is not like libcurl.so, where partial updates means large parts of the OS depend on partially updated and now broken packages. Again: you could cause the nvidia-settings program to stop working, that's about the greatest danger I foresee, and the solution is literally "if it breaks, rerun makepkg on it"
* not Fedora itself of course, but RPMfusion
So, basically the AUR?
Managing AUR repos The Right Way -- aurpublish (now a standalone tool)
Offline
First of all I wanna thank all of you for being so patient and respectful here. I was expecting a little to get shit on and told to RTFM. From the forums and reddit, the Arch user often seem very intimidating. And I really appreciate the time you guys spent!
And also, well, it's fine if you ignore updates. But then if the packages stop working, official advice would be "stop ignoring updates, if you need old versions then fork the package and rebuild it". So you could just as easily do that from the start.
So let me run through this real quick:
What I would do is remove the packages nvidia, nvidia-prime, nvidia-settings, opencl-nvidia and cuda.
And then try to find the pkginfos for the 440 versions of:
nvidia-dkms, nvidia-prime, nvidia-settings, opencl-nvidia and cuda.
And then just build these. And remake them everytime there is a kernel update. Would that be it?
Offline
You do not need to rebuild nvidia-prime provided you add nvidia-utils to the provides entry of nvidia-440xx-utils.
Yes to the rest.
Edit:
See https://aur.archlinux.org/packages/nvidia-410xx-utils/ as an example of the changes you would make to 440xx.
Also https://aur.archlinux.org/packages/nvidia-390xx-dkms/
Last edited by loqs (2020-07-12 20:22:28)
Offline
You do not need to rebuild nvidia-prime provided you add nvidia-utils to the provides entry of nvidia-440xx-utils.
Yes to the rest.
Edit:
See https://aur.archlinux.org/packages/nvidia-410xx-utils/ as an example of the changes you would make to 440xx.
Also https://aur.archlinux.org/packages/nvidia-390xx-dkms/
Thank you!
I will attempt this (prob. on the weekend) and hope everything goes well. Thanks again to everyone participating!
//Edit: After looking at these PKGBUILD files, I am now absolutely sure that it takes less time to just install Manjaro and ditch Arch than trying to make this work. Sorry if this seemed like a waste of time.
Last edited by Fireminster (2020-07-13 13:37:51)
Offline