a cli to wrriten in c++ to manage nvidia installations, extending and forked from gridhead/nvidia-auto-installer-for-fedora-linux
A CLI tool which lets you install proprietary NVIDIA drivers and much more easily on Fedora Linux (32 or above and Rawhide)
- Active internet connection
- Fedora Linux (32 or above and Rawhide)
- Device with a discrete NVIDIA GPU
If you use Fedora Linux (32 or above and Rawhide) - you can install NVIDIA Auto Installer for Fedora by enabling my COPR repository. Simply execute the following commands in succession to install the tool.
# dnf install dnf-plugins-core -y
# dnf copr enable t0xic0der/nvidia-auto-installer-for-fedora -y
# dnf install nvautoinstall -y
dnf5
is being the defaul package manager,
So we explicity need to use dnf4
$ gh repo clone gridhead/nvidia-auto-installer-for-fedora-linux
$ cd nvidia-auto-installer-for-fedora-linux
You can Also
poetry install
poetry build
poetry run nvautoinstall --version
Or you can build the rpm and install it locally
$ gh repo clone gridhead/nvidia-auto-installer-for-fedora-linux
$ cd nvidia-auto-installer-for-fedora-linux
# You can use poetry to update all the python dependencies before
# $ poetry update
# you can do your custom changes before to build
#
$ ./build_rpm.sh
$ cd
~ cd rpmbuild
~/rpmbuild ls
BUILD RPMS SOURCES SRPMS
~/rpmbuild tree
.
├── BUILD
├── RPMS
│ └── noarch
│ └── nvautoinstall-0.4.2-1.fc41.noarch.rpm
├── SOURCES
│ └── nvautoinstall-0.4.2.tar.gz
└── SRPMS
└── nvautoinstall-0.4.2-1.fc41.src.rpm
6 directories, 3 files
~/rpmbuild builtin cd -- /home/adapa/rpmbuild/RPMS/noarch
~/rp/R/noarch sudo dnf5 install ./nvautoinstall-0.4.2-1.fc41.noarch.rpm
[sudo] password for adapa:
Updating and loading repositories:
Repositories loaded.
Package Arch Version Repository Size
Installing:
nvautoinstall noarch 0.4.2-1.fc41 @commandline 234.2 KiB
Transaction Summary:
Installing: 1 packages
Total size of inbound packages is 53 KiB. Need to download 0 B.
After this operation 234 KiB will be used (install 234 KiB, remove 0 B).
Is this ok [y/N]: y
Running transaction
[1/3] Verify package files 100% | 333.0 B/s | 1.0 B | 00m00s
[2/3] Prepare transaction 100% | 5.0 B/s | 1.0 B | 00m00s
[3/3] Installing nvautoinstall-0:0.4.2-1.fc41.n 100% | 6.5 MiB/s | 253.8 KiB | -00m00s
>>> Running trigger-install scriptlet: glibc-common-0:2.39.9000-30.fc41.x86_64warning: po
ull() are deprecated, use rpm.execute() instead
warning: posix.wait(): .fork(), .exec(), .wait() and .redirect2null() are deprecated, use
warning: posix.exec(): .fork(), .exec(), .wait() and .redirect2null() are deprecated, us[
719.0 KiB/s | 253.8 KiB | 00m00s
>>> Running trigger-install scriptlet: glibc-common-0:2.39.9000-30.fc41.x86_64
>>> Stop trigger-install scriptlet: glibc-common-0:2.39.9000-30.fc41.x86_64
Warning: skipped PGP checks for 1 package from repository: @commandline
Complete!
- Make sure you have a working internet connection
- Install the tool from COPR with the above instructions
- Execute
nvautoinstall
to check installation modes - Run the installation modes according to your needs
- Give stars to the repository if you found this helpful
Active internet connection and superuser privilege is required to execute the following installation modes.
sudo nvautoinstall rpmadd
This mode enables the RPM Fusion NVIDIA drivers repository.sudo nvautoinstall driver
This mode simply installs the NVIDIA drivers. Enabling the RPM Fusion NVIDIA drivers repository is mandatory before doing this.sudo nvautoinstall nvrepo
This mode enables the official NVIDIA repository for CUDA software.sudo nvautoinstall plcuda
This mode installs only the CUDA support softwares. Enabling the RPM Fusion NVIDIA drivers and NVIDIA official repository, and installing the basic drivers are mandatory before doing this.sudo nvautoinstall ffmpeg
This mode installs only the FFMPEG acceleration. Enabling the RPM Fusion NVIDIA drivers repository and installing the basic drivers are mandatory before doing this.sudo nvautoinstall vulkan
This mode installs only the Vulkan renderer. Enabling the RPM Fusion NVIDIA drivers repository and installing the basic drivers are mandatory before doing this.sudo nvautoinstall vidacc
This mode installs only the VDPAU/VAAPI acceleration. Enabling the RPM Fusion NVIDIA drivers repository and installing the basic drivers are mandatory before doing this.sudo nvautoinstall getall
This mode installs all the above packages. (Not been implemented yet)sudo nvautoinstall cheksu
This mode allows you to check the current user privilege level. You can use this tool effectively only when you have logged in as a root or sudo user.sudo nvautoinstall compat
This mode allows you to check your hardware and host compatibility. The tool would check your hardware and host and tell if your device is supported by the tool or not.sudo nvautoinstall primec
This mode allows you to toggle the PRIME offloading to render all display elements using the discrete card. This has only been tested on Workstation variant of Fedora Linux.sudo nvautoinstall --version
This mode shows the tool version and exits out.sudo nvautoinstall --help
This mode shows the help message and exits out.
- Active internet connection is required to download drivers.
- Requires secure boot to be turned off in UEFI systems.
- Requires superuser access for repo addition and driver setup.
- The drivers are fetched from the RPM Fusion repository.
- Use discretion while using this on other spins.
- Only tested on 9XX/10XX/20XX/30XX series discrete NVIDIA cards.
- Use discretion while installing with older discrete NVIDIA cards.
- No additional configuration is required for Optimus setups.
- Native support for PRIME configuration on Optimus.
- CLI "Launch using Dedicated Graphics Card" option.
- Intuitive mode switching for hybrid graphics.
- Distinct mode for using integrated or discrete GPU.
- Experimental support for RHEL 8 and CentOS 8.
- Support for older cards by active querying at NVIDIA.
This tool has been tried and tested multiple times and is expected to work flawlessly in Fedora Linux (32 or above, and Rawhide). It has not been tested on any of the spins yet so you are requested to proceed with caution. While the chances of things going wrong is pretty slim, you would still want to make backups, should things do not go as expected. As always, you are choosing to use this tool at your will and you cannot hold me responsible for any mishap that may occur due to the misuse of this tool.
$ nvautoinstall
Usage: nvautoinstall [OPTIONS] COMMAND [ARGS]...
Options:
--version Show the version and exit.
--help Show this message and exit.
Commands:
cheksu Check the user privilege level.
compat Check your system compatibility.
driver Install the NVIDIA driver.
ffmpeg Install only the FFMPEG support software.
getall Install all the above packages.
nvrepo Enable the official NVIDIA repository for CUDA.
plcuda Install only the CUDA support software.
primec Setup PRIME support.
rpmadd Enable the RPM Fusion NVIDIA drivers repository.
vidacc Install only the VDPAU/VAAPI acceleration.
vulkan Install only the Vulkan support software.
$ sudo nvautoinstall cheksu
[ # ] NVIDIA AUTOINSTALLER FOR FEDORA LINUX
[ ★ ] CHECKING SUPERUSER PERMISSIONS...
[ ✓ ] Superuser permission is available
This tool is expected to work correctly here
[ ✗ ] Leaving installer
$ sudo nvautoinstall compat
[ # ] NVIDIA AUTOINSTALLER FOR FEDORA LINUX
[ ★ ] CHECKING FOR GPU COMPATIBILITY...
[ ! ] Compatibility infomation was obtained
[ ✓ ] One or more active NVIDIA GPUs were detected
01:00.0 VGA compatible controller: NVIDIA Corporation TU117M [GeForce GTX 1650 Mobile / Max-Q] (rev a1)
04:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Picasso/Raven 2 [Radeon Vega Series / Radeon Vega Mobile Series] (rev c2)
[ ✓ ] An Optimus Dual GPU setup was detected
[ ★ ] GATHERING CURRENT HOST INFORMATION...
[ ! ] Host information was gathered
System: Linux v5.15.6-100.fc34.x86_64
Hostname: 038e97fb8ac6
Version: #1 SMP Wed Dec 1 13:41:51 UTC 2021
Distribution: Fedora Linux x86_64
[ ★ ] CHECKING FOR HOST COMPATIBILITY...
[ ✓ ] Supported OS detected
This tool is expected to work correctly here
[ ✗ ] Leaving installer
$ sudo nvautoinstall driver
[ # ] NVIDIA AUTOINSTALLER FOR FEDORA LINUX
[ ★ ] CHECKING SUPERUSER PERMISSIONS...
[ ✓ ] Superuser privilege acquired
[ ★ ] CHECKING AVAILABILITY OF RPM FUSION NVIDIA REPOSITORY...
[ ! ] RPM Fusion repository for Proprietary NVIDIA Driver was detected
[ ★ ] ATTEMPTING CONNECTION TO RPM FUSION SERVERS...
[ ✓ ] Connection to RPM Fusion servers was established
[ ★ ] LOOKING FOR EXISTING DRIVER PACKAGES...
[ ! ] No existing NVIDIA driver packages were detected
[ ★ ] INSTALLING PROPRIETARY DRIVERS...
.....
.....
.....
[ ✓ ] Driver package installation completed
[ ✗ ] Leaving installer
$ sudo nvautoinstall ffmpeg
[ # ] NVIDIA AUTOINSTALLER FOR FEDORA LINUX
[ ★ ] CHECKING SUPERUSER PERMISSIONS...
[ ✓ ] Superuser privilege acquired
[ ★ ] CHECKING AVAILABILITY OF RPM FUSION NVIDIA REPOSITORY...
[ ! ] RPM Fusion repository for Proprietary NVIDIA Driver was detected
[ ★ ] ATTEMPTING CONNECTION TO RPM FUSION SERVERS...
[ ✓ ] Connection to RPM Fusion servers was established
[ ★ ] LOOKING FOR EXISTING DRIVER PACKAGES...
xorg-x11-drv-nvidia-kmodsrc-495.44-4.fc35.x86_64
xorg-x11-drv-nvidia-libs-495.44-4.fc35.x86_64
akmod-nvidia-495.44-1.fc35.x86_64
xorg-x11-drv-nvidia-495.44-4.fc35.x86_64
nvidia-settings-495.44-1.fc35.x86_64
[ ! ] A total of 5 driver packages were detected
[ ★ ] INSTALLING NVENC/NVDEC FOR FFMPEG ACCELERATION...
.....
.....
.....
[ ✓ ] NVENC/NVDEC for FFMPEG acceleration were successfully installed
[ ✗ ] Leaving installer
$ sudo nvautoinstall getall
[ # ] NVIDIA AUTOINSTALLER FOR FEDORA LINUX
[ ★ ] CHECKING SUPERUSER PERMISSIONS...
[ ✓ ] Superuser privilege acquired
[ ★ ] FULL FLEDGED INSTALLATION BEGINNING...
This mode is yet to be implemented
[ ✗ ] Leaving installer
$ sudo nvautoinstall nvrepo
[ # ] NVIDIA AUTOINSTALLER FOR FEDORA LINUX
[ ★ ] CHECKING SUPERUSER PERMISSIONS...
[ ✓ ] Superuser privilege acquired
[ ★ ] CHECKING AVAILABILITY OF OFFICIAL CUDA REPOSITORY...
[ ! ] Official CUDA repository was not detected
[ ! ] Repository enabling is required
[ ★ ] ATTEMPTING CONNECTION TO NVIDIA SERVERS...
[ ✓ ] Connection to NVIDIA servers was established
[ ★ ] INSTALLING OFFICIAL CUDA REPOSITORY...
[ ✓ ] Official CUDA repository was enabled
[ ★ ] REFRESHING REPOSITORY LIST...
.....
[ ✓ ] Repositories have been refreshed
[ ★ ] DISABLING NVIDIA DRIVER MODULE...
.....
.....
.....
[ ✓ ] NVIDIA DRIVER module has been disabled
[ ✗ ] Leaving installer
$ sudo nvautoinstall plcuda
[ # ] NVIDIA AUTOINSTALLER FOR FEDORA LINUX
[ ★ ] CHECKING SUPERUSER PERMISSIONS...
[ ✓ ] Superuser privilege acquired
[ ★ ] CHECKING AVAILABILITY OF RPM FUSION NVIDIA REPOSITORY...
[ ! ] RPM Fusion repository for Proprietary NVIDIA Driver was detected
[ ★ ] ATTEMPTING CONNECTION TO RPM FUSION SERVERS...
[ ✓ ] Connection to RPM Fusion servers was established
[ ★ ] LOOKING FOR EXISTING DRIVER PACKAGES...
xorg-x11-drv-nvidia-kmodsrc-495.44-4.fc35.x86_64
xorg-x11-drv-nvidia-libs-495.44-4.fc35.x86_64
akmod-nvidia-495.44-1.fc35.x86_64
xorg-x11-drv-nvidia-495.44-4.fc35.x86_64
nvidia-settings-495.44-1.fc35.x86_64
xorg-x11-drv-nvidia-cuda-libs-495.44-4.fc35.x86_64
[ ! ] A total of 6 driver packages were detected
[ ★ ] CHECKING AVAILABILITY OF OFFICIAL CUDA REPOSITORY...
[ ! ] Official CUDA repository was detected
[ ★ ] ATTEMPTING CONNECTION TO NVIDIA SERVERS...
[ ✓ ] Connection to NVIDIA servers was established
[ ★ ] INSTALLING RPM FUSION METAPACKAGE FOR CUDA...
.....
.....
.....
[ ✓ ] RPM Fusion CUDA metapackage was successfully installed
[ ★ ] INSTALLING NVIDIA CUDA CORE PACKAGES...
.....
.....
.....
[ ✓ ] NVIDIA CUDA core packages were successfully installed
[ ✗ ] Leaving installer
$ sudo nvautoinstall primec
[ # ] NVIDIA AUTOINSTALLER FOR FEDORA LINUX
[ ★ ] CHECKING SUPERUSER PERMISSIONS...
[ ✓ ] Superuser privilege acquired
[ ★ ] CHECKING AVAILABILITY OF RPM FUSION NVIDIA REPOSITORY...
[ ! ] RPM Fusion repository for Proprietary NVIDIA Driver was detected
[ ★ ] ATTEMPTING CONNECTION TO RPM FUSION SERVERS...
[ ✓ ] Connection to RPM Fusion servers was established
[ ★ ] LOOKING FOR EXISTING DRIVER PACKAGES...
xorg-x11-drv-nvidia-kmodsrc-495.44-4.fc35.x86_64
xorg-x11-drv-nvidia-libs-495.44-4.fc35.x86_64
akmod-nvidia-495.44-1.fc35.x86_64
xorg-x11-drv-nvidia-495.44-4.fc35.x86_64
nvidia-settings-495.44-1.fc35.x86_64
xorg-x11-drv-nvidia-cuda-libs-495.44-4.fc35.x86_64
[ ! ] A total of 6 driver packages were detected
[ ★ ] SETTING UP PRIME SUPPORT...
[ ! ] Intervention required
< Y > to enable PRIME support
< N > to disable PRIME support
< * > anything else to leave
[Y/N] Y
[ ★ ] ENABLING PRIME SUPPORT...
[ ✓ ] PRIME Support was successfully enabled
[ ✗ ] Leaving installer
$ sudo nvautoinstall rpmadd
[ # ] NVIDIA AUTOINSTALLER FOR FEDORA LINUX
[ ★ ] CHECKING SUPERUSER PERMISSIONS...
[ ✓ ] Superuser privilege acquired
[ ★ ] CHECKING AVAILABILITY OF RPM FUSION NVIDIA REPOSITORY...
[ ! ] RPM Fusion repository for Proprietary NVIDIA Driver was not detected
[ ! ] Repository enabling is required
[ ★ ] ATTEMPTING CONNECTION TO RPM FUSION SERVERS...
[ ✓ ] Connection to RPM Fusion servers was established
[ ★ ] INSTALLING RPM FUSION NVIDIA REPOSITORY...
.....
.....
.....
[ ✓ ] RPM Fusion NVIDIA repository was enabled
[ ✗ ] Leaving installer
$ sudo nvautoinstall vidacc
[ # ] NVIDIA AUTOINSTALLER FOR FEDORA LINUX
[ ★ ] CHECKING SUPERUSER PERMISSIONS...
[ ✓ ] Superuser privilege acquired
[ ★ ] CHECKING AVAILABILITY OF RPM FUSION NVIDIA REPOSITORY...
[ ! ] RPM Fusion repository for Proprietary NVIDIA Driver was detected
[ ★ ] ATTEMPTING CONNECTION TO RPM FUSION SERVERS...
[ ✓ ] Connection to RPM Fusion servers was established
[ ★ ] LOOKING FOR EXISTING DRIVER PACKAGES...
xorg-x11-drv-nvidia-kmodsrc-495.44-4.fc35.x86_64
xorg-x11-drv-nvidia-libs-495.44-4.fc35.x86_64
akmod-nvidia-495.44-1.fc35.x86_64
xorg-x11-drv-nvidia-495.44-4.fc35.x86_64
nvidia-settings-495.44-1.fc35.x86_64
xorg-x11-drv-nvidia-cuda-libs-495.44-4.fc35.x86_64
nvidia-persistenced-495.44-1.fc35.x86_64
xorg-x11-drv-nvidia-cuda-495.44-4.fc35.x86_64
[ ! ] A total of 8 driver packages were detected
[ ★ ] INSTALLING VIDEO ACCELERATION SUPPORT...
.....
.....
.....
[ ✓ ] Video acceleration were successfully installed
[ ✗ ] Leaving installer
$ sudo nvautoinstall vulkan
[ # ] NVIDIA AUTOINSTALLER FOR FEDORA LINUX
[ ★ ] CHECKING SUPERUSER PERMISSIONS...
[ ✓ ] Superuser privilege acquired
[ ★ ] CHECKING AVAILABILITY OF RPM FUSION NVIDIA REPOSITORY...
[ ! ] RPM Fusion repository for Proprietary NVIDIA Driver was detected
[ ★ ] ATTEMPTING CONNECTION TO RPM FUSION SERVERS...
[ ✓ ] Connection to RPM Fusion servers was established
[ ★ ] LOOKING FOR EXISTING DRIVER PACKAGES...
xorg-x11-drv-nvidia-kmodsrc-495.44-4.fc35.x86_64
xorg-x11-drv-nvidia-libs-495.44-4.fc35.x86_64
akmod-nvidia-495.44-1.fc35.x86_64
xorg-x11-drv-nvidia-495.44-4.fc35.x86_64
nvidia-settings-495.44-1.fc35.x86_64
xorg-x11-drv-nvidia-cuda-libs-495.44-4.fc35.x86_64
nvidia-persistenced-495.44-1.fc35.x86_64
xorg-x11-drv-nvidia-cuda-495.44-4.fc35.x86_64
[ ! ] A total of 8 driver packages were detected
[ ★ ] INSTALLING VULKAN RENDERER SUPPORT...
.....
.....
.....
[ ✓ ] Vulkan renderer support were successfully installed
[ ✗ ] Leaving installer