Jump to content

HOLY $H!T - Fedora 27 to package and distribute proprietary driver?

Fedora_logo.png

http://fedoraproject.org

"This site is not affiliated with or endorsed by the Fedora Project"

 

Sources:

Phoronix coverage: http://www.phoronix.com/scan.php?page=news_item&px=Fedora-NV-GNOME-Soft-HDR

Original blog post: https://blogs.gnome.org/uraeus/2017/07/13/fedora-workstation-26-is-out/

Fedora "Forbidden Items" Nvidia Driver Permalink: https://fedoraproject.org/wiki/Forbidden_items?rd=ForbiddenItems#NVIDIA

Negativo17 Nvidia Driver Repo: https://negativo17.org/nvidia-driver/

 

(Heads up, all references to free below are to do with software freedom, not to having a cost.)

 

Broken up into a general overview from phoronix, more detail from Schaller's original blog post, Schaller's comments on Phoronix addressing the concerns over why this isn't being done for AMD Catalyst, and similar drivers, and then finally my comments. 

 

General Overview

In an extremely odd move, it looks like RedHat and the community board for Fedora are looking to package and distribute the nvidia proprietary driver for the Fedora 27 release this October/November. As Michael outlines in his article

Quote

Fedora 26 jives very well with the NVIDIA proprietary driver thanks to GLVND, the easy access to the Negativo17 repository, etc, but Christian says they are still working to make it even easier. He wrote, "We do plan on listing the NVidia driver in GNOME Software soon without having to manually setup the repository, so soon we will have a very smooth experience where the Nvidia driver is just a click in the Software store away for our users." Of course, by default, they will continue to use the Nouveau driver but it will be drop dead easy to switchover. 

So it looks like Fedora 27 will ship out of the box with nouveau but the Nvidia driver will be packaged *and* distributed by Fedora. If you're wondering who Christian Schaller/Uraeus2 is, he's a RedHat Senior Software Engineering Manager who's been working on GNOME and gstreamer, among other projects, for over 17 years, so he's more than qualified to be speaking about the future plans of the Fedora Distro.

 

This is a bit of an add move since Fedora has an explicit rule forbidding their maintainers from distributing *ANY* nonfree products with their distro. Until a free codec for MP3 came out last year they didn't even distribute a way to listen to MP3s in their distro. In fact, this has been such a big deal in the past that they have a forbidden items list explaining why a lot of popular nonfree software isn't available in their Distro, which explicitly lists the Nvidia driver reading:

Quote

The NVIDIA graphics drivers are proprietary, and many kernel developers consider this driver to violate the GPL license of the kernel. Fedora does not include proprietary software.

 

More Detail

In his blog post, Schaller goes into more detail, discussing what package they plan on using. The build will work a la Negativo17's build. This means they're going through and doing a proper packaging setup for the nvidia driver for the first time ever in any distribution. This includes work they've done with nvidia to remove all the messy file conflicts with mesa, and ensure that it functions properly alongside a mesa driver. This means it will work the same way it does with Negativo's build, just withoug having to add his repository.

Quote

If [in Fedora 26] you set up the repository from  Negativo17  you should be able to go install the Nvidia driver either using dnf on the command line or by searching for NVidia in GNOME Software, and just install it without any further work thanks to all the effort we and NVidia have been putting into things like glvnd. If you have a workstation with an NVidia card I would say that you have a fully functional system at this point without any hacks or file conflicts with Mesa.

 

Quote

We do plan on listing the NVidia driver in GNOME Software soon without having to manually setup the repository, so soon we will have a very smooth experience where the Nvidia driver is just a click in the Software store away for our users.

If looking for more details on how this is different from say the RPMFusion package, please see the Negativo17 package page. It talks about a lot of the work that was done to clean up all the different packages to make sure they function cleanly, and it covers not just Fedora but CentOS and RHEL changes too.

 

Comments from Schaller in the Phoronix Forums

In the comments post for the Phoronix Article, Schaller popped in and addressed some of the questions and concerns they had there. I'm going to quote him directly here because I don't want to misword things:

Quote

Question: This has been done before.
Answer: There has been a lot of workarounds and hacks implemented over the years to deal with the binary NVidia driver. We are spending significant resources on doing this is a clean and fully supportable way. Doing it right is a lot of work and requires people with a lot of expertise, nobody has before this bother to spend the resources to do it right. I expect all other distros to drop their current setups and start using this going forward as it is the proper solution. 

 

Quote

Question: Why not do this also for AMD?
Answer: There is nothing NVidia specific about what we have done, but for us to be able to do this with the non-free AMD driver then AMD needs to support the new glvnd stuff like NVidia is. Also the need on the AMD side is a lot smaller as the free driver is as good and often even better than the non-free driver, so why use the non-free one?

 

Quote

Question: What about Nouveou?
Answer: Red Hat has Ben Skeggs working fulltim eon Nouveou. We are the only company who is employing someone to work fulltime on Nouveou. The challenge here is that we don't have access to re-clocking the NVidia cards which means we have a performance challenge with that driver that currently can not be overcome. Our expectation however is that NVidia will eventually move to a model similar to AMD where the reclocking functionality moves into firmware, and at that point will allow us to re-clock the cards by talking with their firmware. When that happens we expect Nouveou to be competitive with the binary driver.

 

Quote

Question: Why help people install a non-free driver
Answer: The Nvidia binary driver is a requirement for a lot of people in order to be able to properly use their system. While we keep investing in a free driver (see above) we recognize that people want to be able to take full advantage of their hardware and if Fedora does not let them they will go elsewhere.

 

My comments

This is a big deal. It's a huge move for the Fedora community since it goes against some of the basic principles they've followed since the community distribution started. That being said it's an even bigger move for Fedora users who use Nvidia hardware. Having a distribution that, after install it's 1 click to get your graphics card working, instead of having to fight and hack with nvidia's installer, or search online for repositories with your driver prehacked and then fight with it if you ever need to not use it, is a big plus for nvidia users.

 

I am concerned with the idea of packaging nonfree stuff with an OS all about freedom, they're also about bleeding edge performance and you just won't get that without the proprietary driver.

 

This is also a *MASSIVE* deal for any gamers on Linux. This means it's going to be possible to get Fedora up and running using nvidia's proprietary driver even more easily than it is currently with Ubuntu and it's spinoffs. While Ubuntu includes a nonfree nvidia package for their Distro, it's still using all the mesa hackwork that the normal nvidia installer uses which can cause other issues. This work is also not specific to *just* Fedora, or RHEL, or CentOS, meaning we could see these reworked drivers make their way over to Ubuntu as well, improving quality of life with these drivers across the board.

 

With all of the work on supporting Wayland on Nvidia cards, improvements to DRM for Nvidia cards, and the improved packaging and isolation of the Nvidia drivers, in the next year or two we could be seeing an Nvidia user experience on Linux that's actually on par with the AMD experience and the experience Nvidia has on Windows.

Link to comment
Share on other sites

Link to post
Share on other sites

What's so holy shit about this?

Or am i missing something and this is a big deal? lol

PC - CPU Ryzen 5 1600 - GPU Power Color Radeon 5700XT- Motherboard Gigabyte GA-AB350 Gaming - RAM 16GB Corsair Vengeance RGB - Storage 525GB Crucial MX300 SSD + 120GB Kingston SSD   PSU Corsair CX750M - Cooling Stock - Case White NZXT S340

 

Peripherals - Mouse Logitech G502 Wireless - Keyboard Logitech G915 TKL  Headset Razer Kraken Pro V2's - Displays 2x Acer 24" GF246(1080p, 75hz, Freesync) Steering Wheel & Pedals Logitech G29 & Shifter

 

         

Link to comment
Share on other sites

Link to post
Share on other sites

10 minutes ago, RKRiley said:

What's so holy shit about this?

Or am i missing something and this is a big deal? lol

A) a distribution that shuns and curses nonfree software, refusing to package and distribute any nonfree software, is doing just this.

 

B) this lays the groundwork for you to be able to use both an nvidia GPU and AMD or Intel GPU at the same time on Linux. Yes. Until this point you couldn't mix Nvidia's GPUs with anyone else's because it screwed up stuff with DRM and mesa unless you did some serious hackwork. (Edit: specifically with the Nvidia proprietary driver. Nouveau works fine alongside AMD or Intel cards.)

 

C) This has been a huge pain point for gaming on Linux for a long time. It was one of the (granted many) issues with the whole idea of shipping SteamOS, since the nvidia driver needed a ton of hackwork and the Nouveau driver's performance is shit.

 

It's an absolutely massive deal for gaming on Linux, but even more so for high end compute and deep learning on Linux.

Link to comment
Share on other sites

Link to post
Share on other sites

I suppose this is RedHat trying to make the first move towards improving the relationship Linux has with nvidia. To clarify, so far that relationship has been this:

1485510974338.gif

 

So while this goes against some of the core principles of Fedora, from a pragmatic standpoint it could be a good thing and a step in the right direction. It's simply RH recognizing that nVidia is not going to come to by itself and offering to help. Hopefully nvidia will gradually start dedicating some resources to linux driver development if RedHat is on board.

10 minutes ago, RKRiley said:

What's so holy shit about this?

Or am i missing something and this is a big deal? lol

It's unexpected, and if you were to propose this to, say, the Debian community you'd be lynched on the spot.

Don't ask to ask, just ask... please 🤨

sudo chmod -R 000 /*

Link to comment
Share on other sites

Link to post
Share on other sites

2 minutes ago, Sniperfox47 said:

B) this lays the groundwork for you to be able to use both an nvidia GPU and AMD or Intel GPU at the same time on Linux. Yes. Until this point you couldn't mix Nvidia's GPUs with anyone else's because it screwed up stuff with DRM and mesa unless you did some serious hackwork.

I remember using Bumblebee (Nvidia Optimus, so switchable nvidia GPU + intel iGPU) on Linux and it worked just fine. That was a year or so ago, I don't know if things changed that radically.

i5 4670k @ 4.2GHz (Coolermaster Hyper 212 Evo); ASrock Z87 EXTREME4; 8GB Kingston HyperX Beast DDR3 RAM @ 2133MHz; Asus DirectCU GTX 560; Super Flower Golden King 550 Platinum PSU;1TB Seagate Barracuda;Corsair 200r case. 

Link to comment
Share on other sites

Link to post
Share on other sites

8 minutes ago, Sniperfox47 said:

even more so for high end compute and deep learning on Linux.

I would assume this is what RH is interested in

Don't ask to ask, just ask... please 🤨

sudo chmod -R 000 /*

Link to comment
Share on other sites

Link to post
Share on other sites

5 minutes ago, Sniperfox47 said:

A) a distribution that shuns and curses nonfree software, refusing to package and distribute any nonfree software is doing just this.

 

B) this lays the groundwork for you to be able to use both an nvidia GPU and AMD or Intel GPU at the same time on Linux. Yes. Until this point you couldn't mix Nvidia's GPUs with anyone else's because it screwed up stuff with DRM and mesa unless you did some serious hackwork.

 

C) This has been a huge pain point for gaming on Linux for a long time. It was one of the (granted many) issues with the whole idea of shipping SteamOS, since the nvidia driver needed a ton of hackwork and the Nouveau driver's performance is shit.

 

It's an absolutely massive deal for gaming on Linux, but even more so for high end compute and deep learning on Linux.

But then the deal is that they are packaging it or that it works?

I mean, it's not like Windows come with Nvidia or AMD graphics drivers, it just comes with some generic driver that will generate some video output. The GPU advantage of Windows is not that GPU drivers are bundled with the OS, it's that you just go to Nvidia/AMD, download the drivers, and it works.

In fact, you can also just go to AMD's website and download Linux drivers directly from them. The big difference is that, last time i tried, installing the driver instantly killed the Linux installation to the point of a full reinstall being needed :P

 

So, other than the philosophical matter of whether Fedora ships with some software or leaves it for users to install later (which is not trivial, I agree), to me the main question is whether there will be drivers that actually work.

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, Sauron said:

I suppose this is a move from RedHat to try and make the first move towards improving the relationship Linux has with nvidia. To clarify, so far that relationship has been this:

1485510974338.gif

 

So while this goes against some of the core principles of Fedora, from a pragmatic standpoint it could be a good thing and a step in the right direction. It's simply RH recognizing that nVidia is not going to come to by itself and offering to help. Hopefully nvidia will gradually start dedicating some resources to linux driver development if RedHat is on board.

I would definitely agree with that. The relationship is slowly improving though. Nvidia's actually been pretty civil with the whole Wayland support thing. Their original idea with EGL streams works great as a temporary solution and once their engineers met the Wayland guys and realized it's not a long term solution they've actually been surprisingly cooperative in working towards a long term solution thats not hacky AF.

 

3 minutes ago, Nineshadow said:

I remember using Bumblebee (Nvidia Optimus, so switchable nvidia GPU + intel iGPU) on Linux and it worked just fine. That was a year or so ago, I don't know if things changed that radically.

Could you make use of the nvidia GPU and intel GPU at the same time? AFAIK bumblebee is just an optimus switch that unloads the intel driver, sets x up for nvidia and then loads nvidia, then when you turn it off, it unloads the nvidia driver, sets x up for a sane driver, and then loads your intel driver, also doing some other hackwork along the way to make sure you don't unload the shared framebuffer.

 

4 minutes ago, SpaceGhostC2C said:

So, other than the philosophical matter of whether Fedora ships with some software or leaves it for users to install later (which is not trivial, I agree), to me the main question is whether there will be drivers that actually work.

Oh absolutely. The RPMFusion package of the driver works pretty well if you're on grub as your bootloader but will refuse to boot if you use anything else and don't uninstall nouveau because it just modprobes nouveau in grub >.> so you need to go into your bootloader and tell it to modprobe nouveau...

 

All of the steps required to get nvidia drivers working on linux so far have been hit or miss. This is the first attempt to repackage the nvidia drivers in a way that they're seperate from everything else, they don't fuck everything else up when you install them, if they don't work they gracefully fall back to the nouveau foss drivers, and if you ever uninstall them they don't leave stuff messed up all over your system.

 

While it may not be "They finally work!" for everyone, it definitely is "They finally work right!"

 

Link to comment
Share on other sites

Link to post
Share on other sites

41 minutes ago, Sniperfox47 said:

 

 

Could you make use of the nvidia GPU and intel GPU at the same time? AFAIK bumblebee is just an optimus switch that unloads the intel driver, sets x up for nvidia and then loads nvidia, then when you turn it off, it unloads the nvidia driver, sets x up for a sane driver, and then loads your intel driver, also doing some other hackwork along the way to make sure you don't unload the shared framebuffer.

 

Ah, no, not at the same time. I assumed there had to be more to what you meant.

i5 4670k @ 4.2GHz (Coolermaster Hyper 212 Evo); ASrock Z87 EXTREME4; 8GB Kingston HyperX Beast DDR3 RAM @ 2133MHz; Asus DirectCU GTX 560; Super Flower Golden King 550 Platinum PSU;1TB Seagate Barracuda;Corsair 200r case. 

Link to comment
Share on other sites

Link to post
Share on other sites

24 minutes ago, Nineshadow said:

Ah, no, not at the same time. I assumed there had to be more to what you meant.

Yeah. Like say just as a tangible example you are a cryptominer and get given a setup with 2 1080tis on a mainstream z170 machine. What do you do if you want to take advantage of the integrated GPU to play CS:GO while you mine?

 

Well on Windows that's easy! Just install all your drivers and mine with your 1080tis, hook the monitor up to your motherboard and play on the iGPU! Boom done!

 

On Linux you have two shitty options. Either A) choose to use nouveau in which case it works pretty much as listed above except your mining will have crap performance because nouveau has crap performance, and will have even crappier performance because you'll have no CUDA support, or B) use the Nvidia proprietary drivers and not be able to. So you have to disable your whole mining setup and play CS:GO on the 1080tis and then restart mining when you're done.

Link to comment
Share on other sites

Link to post
Share on other sites

Probably in nvidias best interest to start getting a foothold in linux what with all their plabs for the autoindustry and deep learning. 

CPU: Amd 7800X3D | GPU: AMD 7900XTX

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×