[HowTo] get legacy 340xx NVIDIA drivers back

@philm is the right person to tell you those.

Please, how do I uninstall these drivers to go back to nouveau?

Same as always - remove the package.

Just removing the package will not break kernel (headers)?

Removing the package will remove the driver. You need another driver installed for graphics to work if the nvidia card is your only graphics adapter or else you’ll probably fall back to text mode (where you could reinstall the removed package from cache).

1 Like

A post was split to a new topic: Problems with installing nvidia 340xx

I think this should be updated to add the ignoreABI trick in a config file to bypass the xorg incompatibility.

Section "ServerFlags"
  Option "IgnoreABI" "1"
EndSection

@codesardine

Also the AUR package nvidia-340xx-dkms has many patches for many kernels.

Just a suggestion to make this guide working for current state of packages (especially because of xorg update breaking compatibility).

@codesardine your post is not wiki editable so please have a look at this KDE plasma freezes all the time - #9 by omano and please add the needed missing parts:

  • the config file for the xorg ABI issue

But you will also need to manually add a configuration file to bypass incompatibility with the current xorg in Manjaro, following these instruction, before rebooting:

Create the file /etc/X11/xorg.conf.d/30-nvidia-ignoreabi.conf from terminal

sudo nano /etc/X11/xorg.conf.d/30-nvidia-ignoreabi.conf

Copy and paste the following to this file

Section "Files"
  ModulePath   "/usr/lib64/nvidia/xorg"
  ModulePath   "/usr/lib64/xorg/modules"
EndSection

Section "Device"
  Identifier "Nvidia Card"
  Driver "nvidia"
  VendorName "NVIDIA Corporation"
EndSection

Section "ServerFlags"
  Option "IgnoreABI" "1"
EndSection

Save the file and exit nano text editor by pressing CTRL+X then Y (you can follow at the bottom what it does). It should bring you back to the terminal.

  • the ignorepackage addition because of the AUR trying to install/update/replace the installed packages and failing (adding all Nvidia packages to ignore list), resulting in being unable to install/update any package from Pamac when AUR is enabled.

  • the blacklisting of nouveau in modprobe even if not required this may be good to do it

1 Like

I have made it wiki editable.

1 Like

Thanks. I assume I’ll have to add it then, that’s OK.

A post was split to a new topic: Nvidia dkms module fail after recent update

After some fiddling, I’ve managed to use the standard AUR for Arch Linux for legacy NVidia 340xx drivers, which is still maintained, with this commands:

sudo pacman -S git base-devel
sudo pacman -S $(mhwd-kernel -li | grep '*' | cut -d ' ' -f5 | awk '{print $0,"-headers"}' | sed s'/ //'g)
git clone https://aur.archlinux.org/nvidia-340xx-utils.git
cd nvidia-340xx-utils && makepkg -si && cd ..
git clone https://aur.archlinux.org/nvidia-340xx.git
cd nvidia-340xx && NVIDIA_340XX_DKMS_ONLY=1 makepkg -si && cd ..
sudo cp /usr/share/nvidia-340xx/20-nvidia.conf /etc/X11/xorg.cond.d/.

For reference, I have a Macbook Pro mid-2009 with Manjaro Linux XFCE with kernel 5.15 LTS

That is right: Even if Manjaro officially dropped it, you will still make use of your hardware investment!

I have it working on [Kernel-6.1.1-1-Manjaro], thanks to the tip from jlourenco27, for the steps I did after following the excellent instructions above – thank you codesardine!

  1. Install kernel-6.1 (or 6.0 for that matter), and follow every step that codesardine has outlined above, with one exception. Get the source [nvidia-340xx.git] from AUR instead of Manjaro. Since the above instruction entailed cloning as shown below, there will be a conflict in the directory location. You can clone to a new director in your local drive and then copy the file over to the originally cloned Manjaro file or simply delete the Manjaro nvidia-340xx-utils directory as I have shown with the rm command (trying type out basics for someone who is new to all of this)
git clone https://gitlab.manjaro.org/packages/extra/nvidia-340xx-utils.git

However you can simply delete the directory named [nvidia-340xx-utils].

rm -Rf nvidia-340xx-utils

and do this instead:

git clone https://aur.archlinux.org/nvidia-340xx-utils.git
sudo nano /etc/default/grub

In [/etc/default/grub] file you opened above, locate the line GRUB_CMDLINE_LINUX_DEFAULT= and insert ibt=off. If you have other items on this line make sure you insert ibt=off before end quote mark"

sudo update-grub
sudo grub-mkconfig

Moderator edit: Fixed formatting.

It’s the bactick `. See [HowTo] Post command output and file content as formatted text

Does not compute. If the original Arch package / current AUR package worked on Manjaro, there never would have been a separate nvidia-340xx-utils package. Remember, Manjaro supports mulitiple kernel versions while Arch only supports the latest stable and LTS kernels.

Your theory is applicable here. I am able to use the nvidia driver against linux510, linux515, and linux61. Linux6.1 is the latest and the 5.10, 5.15 are indeed LTS, hence proving your assertion!

You completely missed the point. No theories are involved, it’s just the way things are. If the AUR package worked for you, it was by mere happenstance and will not always work.

Arch only has linux (latest stable) and linux-lts (latest LTS).

Manjaro currently has linux61 (stable), linux60 (stable), linux515 (LTS), linux510 (LTS) linux54 (LTS), linux419 (LTS), linux60-rt (stable RT) and linux515-rt (LTS RT).

FYI, 6.1 is still the latest stable kernel. It should be the next LTS kernel, but it will not be marked as such until 6.2 is stable and 6.0 is EOL.

1 Like

I concur, AUR worked for me by happenstance, because the Kernels I had happened to be LTS and the latest… On the contrary, If I had Kernel 6.0, AUR git source wouldn’t have worked for me.

I think you missed the important one here :point_up_2:

Has anyone managed to get the NVIDIA 340xx proprietary driver working with RT Kernels?

I know NVIDIA disallows this combination with the installer preventing module build against “realtime” kernels. Not sure if it is due to a technical reason or just EOL support issue. I have a hunch it is a non-technical issue, because I had nouveau driver work with the same graphics card and RT kernels. I understand Kernel-rt is probably a niche and supporting it is not worth the effort from a business point of view. If it is strictly a support logistics issue, are there any workarounds to build proprietary DKMS driver modules against Kernel-RT supported by Manjaro?