back to article Nvidia's GTX 900 cards lock out open-source Linux devs yet again

The Linux community's on-again, off-again relationship with Nvidia appears to have soured once more, amid reports that the GPU maker is back to its old tricks – and worse – when it comes to open source hardware drivers. Nvidia does release Linux drivers for its graphics cards, but they are proprietary and ship in binary-only …

Page:

  1. Proud Father

    Terminology issue?

    I thought the "firmware" was a permanent, but updatable by flashing, part of the GFX card.

    Why does the driver need to be doing this?

    1. Anonymous Coward
      Anonymous Coward

      Re: Terminology issue?

      Nope… lots of devices store their "firmware" in RAM on the device and require the host to upload it from a blob.

      Broadcom WIFI is another example. They are also an example of a company that deliberately goes out of its way to make life difficult for the open-source world.

      I don't have a problem with proprietary firmware per se, so long as the interface to the host computer is documented, open and royalty free. Your widget needs to execute some code from the host? Sure, give me the blob, tell me how to load it into the device, and I'll do it. So long as none of that blob executes on my host, I'm fine with that.

      If the terms of licensing for the blob are acceptable, they'll be included in all relevant Linux distributions and users won't even have to think about it. Their brand new widget will JustWork™.

      What I hope doesn't happen is that we wind up with NVidia following Broadcom's lead here, necessitating a gtx900-fwcutter project to extract their firmware out of the proprietary drivers like we've had to do for the Broadcom devices.

      That, is a royal pain, and was one of the reasons I deliberately avoid laptops with Broadcom WIFI devices.

      So far I've had no complaints with the Intel graphics on this Toughbook, but then again, I'm not a gamer. We have some laptops here at work with Intel graphics too and for some CAD work they do okay. ATI/AMD have been historically not bad either with the open-source driver.

      NVidia though, so long as they play their silly games, are another mob I'll avoid.

      1. Hans 1

        Re: Terminology issue?

        @Stuart

        I upvoted you for the first sentence, however, the rest is just plain wrong.

        >So long as none of that blob executes on my host, I'm fine with that.

        Firmware binary blobs are used for a number of chips, such as wifi and graphics, THEY EXECUTE ON YOUR COMPUTER, you have absolutely no way of knowing what they are doing and you cannot patch vulnerabilities in them yourself. You have to trust the authors ... Since drivers are loaded as admin/root, the code has admin/root privs on your system, with direct hardware access to your system ... think of it like a Java or flash plugin which runs as admin/root.

        Binary blobs are evil, no ifs, buts or maybes!

    2. diodesign (Written by Reg staff) Silver badge

      Re: Terminology issue?

      My understanding is that the firmware must be uploaded each time to the card when the driver starts. If this firmware isn't present or signed, it breaks.

      Grep this page for firmware: http://nouveau.freedesktop.org/wiki/InstallDRM/

      C.

      1. the spectacularly refined chap

        Re: Terminology issue?

        What I don't understand is why you need a modified firmware in the first place. Surely the firmware itself (for the GPU, as opposed to the driver running on the host) is a blob to be uploaded. Is the interface not documented or need something else doing to it? If so what and why? I'll admit I don't follow computer graphics in any detail, I find it tedious in the extreme, but there may be some point I'm missing here.

        The simple case is interoperability: getting the GPU to work under Linux which surely requires no firmware mods. You may not like binary blobs on principle but that is a side issue.

        If the actual goal is access to the firmware for tinkering's sake that is a slightly different point: if you want to alter want the card does beyond its original configuration that is going further than the manufacturer reasonably has any obligation to support: the internals may reveal trade secrets that are the result of expensive R&D and they are under no obligation to release that data. In these days of FPGAs the firmware often is the design of even the hardware in a very real sense.

        At least, that is the way I am seeing it here, I'm happy to be corrected if I have misinterpreted something. If this is an interoperability thing that is one thing but it is something else to demand details of the innards of the design itself out of a sense of idealism for the free software cause. You don't buy a copy of MS Office and then bitch you didn't get the source code, on the face of it it appears that is what is being demanded here.

        1. Grifter

          Re: Terminology issue?

          >>You may not like binary blobs on principle but that is a side issue.

          To you it's a side issue, to the noveau people it's the entirety of the issue.

          1. the spectacularly refined chap

            Re: Terminology issue?

            To you it's a side issue, to the noveau people it's the entirety of the issue.

            I can accept that, but if that is all it is about it is no longer concerning writing a driver for the card as claimed but wanting to go further than that. Would the objection still hold if it was on a flash chip on the circuit board? What is the substantive difference? The code is running on the GPU in either case. If that is the case then this strikes me as principle for the sake of it. If you want to hold a certain view that is your right, but Nvidia are under no obligation to pander to it, especially if doing so puts them at a disadvantage.

            1. Grifter

              Re: Terminology issue?

              >>The code is running on the GPU in either case. If that is the case then this strikes me as principle for the sake of it. If you want to hold a certain view that is your right, but Nvidia are under no obligation to pander to it

              I thought we covered this in the last post, you might not share their opinion, but they're going to have their opinion no matter what you feel about it (:

              The issue of this reg article was not that nvidia is refusing to pander to them, it's that they are actively trying to sabotage their efforts. You may wish to read up on the history of this (or not, you said you don't really care about graphics issues).

        2. Anonymous Coward
          Anonymous Coward

          Re: Terminology issue?

          What I don't understand is why you need a modified firmware in the first place. Surely the firmware itself (for the GPU, as opposed to the driver running on the host) is a blob to be uploaded.

          Likely it's not that it needs "modified" firmware… the requirement of the device to have firmware uploaded to it is likely for two reasons:

          1. The driver and firmware can remain in-sync, updating the driver will automatically update the firmware. Downdating the driver brings the firmware back to a version that driver understands.

          2. The actual firmware on the GPU can just be boot-strap firmware which needs little storage and likely rarely needs to change (if ever). Since the driver's provided firmware never gets flashed to anything, there are no permanent changes made making the GPU pretty much unbrickable.

          The firmware doesn't need modification, but we do need access to the blob so it can be loaded into the device. Some companies are good at doing this (AMD, Intel), some are horrendous at it (Broadcom). What we DO need to know though, is the interface that firmware presents. Being able to modify it means we can taylor it to suit the environment better → improve performance, but we can live with having it set in stone. We at least need the blob and to know how we talk to it.

          The jury is out as to whether NVidia will be in the good citizen camp or if they'll make our lives difficult.

    3. no-one in particular

      Re: Terminology issue?

      Yup, if it's in ROM/Flash/Patch-cables and survives power down, it's firmware. Otherwise it's software. Just because it is running on the processor over here instead of that one over there isn't a reason to change the terminology.

      1. CliveM

        Re: Terminology issue?

        Yup, if it's in ROM/Flash/Patch-cables and survives power down, it's firmware. Otherwise it's software. Just because it is running on the processor over here instead of that one over there isn't a reason to change the terminology.

        But what PRACTICAL difference does it make? In one case the code can't be altered. In the other the code can't be altered. The difference is?

        They're making a stand based on principle alone here. That is fine by me but claiming that this stops them writing a DRIVER when it does nothing of the sort is disingenuous.

        1. Grifter

          Re: Terminology issue?

          You're misunderstanding the issue, this isn't a principle issue, the driver will never work without firmware, and they can't make their own firmware, and nvidia has not provided firmware for them.

  2. JustNiz

    The headline of this article is VERY disingenuous and misleading.

    This almost certainly doesn't affect any other Linux developer or user in the slightest, since there is already a better and more optimal nvidia driver out there for free (nvidias own Linux driver). Yes it doesn't come with source code, but that is mostly if not completely a philosophical rather than practical limitation, since who in the real world ever has an actual need or even desire to dive in and modify video driver code?

    1. diodesign (Written by Reg staff) Silver badge

      Re: JustNiz

      Sigh, the article + headline are fine. If you don't care about software freedom, fine. But some people do.

      C.

      1. Yet Another Anonymous coward Silver badge

        Re: JustNiz

        It's not that Nvidia's driver source isn't available - it is that they require a signed driver.

        So even if you wanted to run your own driver wot you wrote on your own card wot you paid for - you can't.

        1. Eddy Ito

          Re: JustNiz

          I'm having a hard time figuring out how JustNiz finds the headline to be misleading. It quite clearly says that "open source Linux devs" are locked out not Linux users and the article correctly points out that there are proprietary drivers from Nvidia for those users.

          1. Anonymous Coward
            Anonymous Coward

            Re: JustNiz

            Indeed… Maybe if we wanted proprietary crap running in our kernels we'd use MacOS X or Windows for that?

            Life's too short. If I wanted to fuss around with having to go to third-party sites to download drivers I'd do so. Frankly, if it doesn't ship with the kernel or isn't a package in my chosen distribution, I'm not interested.

          2. JEDIDIAH
            Linux

            Re: JustNiz

            ...yes, and "open source Linux devs" could be anybody including gaming and multimedia developers.

      2. JustNiz

        Re: JustNiz

        > Sigh, the article + headline are fine.

        I said nothing about the article, just the headline. which is: Nvidia's GTX 900 cards lock out open-source Linux devs yet again

        I actually am a professional Linux dev and even have a GTX 980 in my PC. I can tell you I'm completely not affected by the lack of source code for my video driver, nor is any of the other Linux devs I work with or even know. I also can't get the source to the bios for my motherboard, the firmware in my monitor, or to the driver or firmware for my Broadcom Wifi chip, or to my toaster, microwave, car and stereo, but I don't see anyone making equivalent noises about those.

        1. diodesign (Written by Reg staff) Silver badge

          Re: JustNiz

          "I actually am a professional Linux dev"

          Brilliant – post the URL to your software's bug tracker so I can file some bugs that don't exist. It's only fair – you lied about our headline, I get to make stuff up about your project.

          C.

        2. Morten Bjoernsvik

          Re: JustNiz

          <quote>

          I actually am a professional Linux dev and even have a GTX 980 in my PC. I can tell you I'm completely not affected by the lack of source code for my video driver, nor is any of the other Linux devs I work with or even know. I also can't get the source to the bios for my motherboard, the firmware in my monitor, or to the driver or firmware for my Broadcom Wifi chip, or to my toaster, microwave, car and stereo, but I don't see anyone making equivalent noises about those.

          </quote>

          This has to do with licensing and having to download the driver from NVIDIA. It is a mess when patching the kernel unless somebody helps out creating and updating a native package with every release of the kernel.

        3. Trevor_Pott Gold badge

          Re: JustNiz

          @JustNiz, you're kind of a dick. I state this as a professional dick: someone who actually gets paid to troll the internet. As a professional dick, I recognize your amateur dickishness, and both the fact that you are an amateur dick (for free! for shame!) and so terrible at it offends me.

          Let me tell you a little something about the man you are disparaging.

          To start off with, he writes his own kernels. That's right, @diodesign there writes his own kernels. Not "recompiles a Linux kernel", but writes entire kernels from scratch. When he's bored, or depressed, he does things like "try to port compilers to new platforms or SoCs so that emerging languages like Rust can be made to work where they have never worked before.

          And then he writes a kernel in it.

          Our Mr. Williams here absolutely is someone who is directly affected by the lack of open source drivers directly from nVidia, and he does that stuff just for fun. He does, in fact, code that close to the metal. On every CPU architecture and size of system he can find.

          He won't wave this in your face, but I sure as hell will. Watching you try to wave about your own self-importance and the amazing depth of your critical experience in the face of what Chris actually knows and does is a bit like watching a "professional" social worker try to educate a medical journalist on the ins and outs of third world medicine, knowing that the medical journalist in question is an MD and spends half his year in Africa treating malaria.

          You are making a 100% grade A ass of yourself, and you do not even know it.

          What's more, I find the tripe you're waving around offensive. I am working with a number of startups here in Canada that are doing real, honest to god GPGPU work. Oilfield simulation. GIS rendering. Power distribution optimization. The lack of open source drivers really, honestly and truly does affect them, as there are regularly things they need to be able to change, and they have to fight tooth and nail to see them changed. It would make their lives a lot easier - and cheaper - if they could just code the drivers themselves. (And sometimes, they do fork the really, really crappy open source attempts at drivers, but they aren't nearly as feature complete, so it's a pain in the ASCII.)

          I'm glad that you get by just fine on the proprietary drivers. But you're one person. Take the time to internalize the lesson learned here today: your experience does not dictate the experience of others, or even the experience of the majority. And yes, when something like "the drivers are not open source" is a problem for other people, that actually matters. Even if it does not matter to you.

          Thank you, and have a great day.

          1. Anonymous Coward
            Anonymous Coward

            Re: JustNiz

            @Trevor_Pott

            >To start off with, he writes his own kernels.

            He seems to have written one kernel of limited complexity. I'm sure a "kernel" is something massively impressive to most people but a small scheduler only kernel isn't all that hard to implement once you understand how to do a context switch and how to switch tasks using a timer. There's a reason why there are lots of very simple hobby and RTOS kernels out there and not so many multi-million LOC proper operating system kernels like Linux.

            >someone who is directly affected by the lack of open source

            >drivers directly from nVidia, and he does that stuff just for fun

            I'm not sure how you go from "writing a hobby kernel" to "needs to have custom firmware for a graphics card". I can't even see where his kernel's nvidia graphics driver is.. it seems it has a serial console only. But anyhow, he's free to do what most toy kernels do and use the standard VESA stuff that is compatible with the millions of PCs out there.

            >He does, in fact, code that close to the metal.

            Not massively impressed really. I know lots of people that look at an instruction sequence and tell you how many clocks it will take and how to reduce the clock count by using some weird trick.

            >The lack of open source drivers really, honestly and truly does affect them,

            >as there are regularly things they need to be able to change, and they have

            >to fight tooth and nail to see them changed.

            If the stuff they are working on is so important they should have a contact an nvidia that can help with that. Surely they want someone that has access to the engineers that put the chip together opposed to stuff that is reverse engineered.

            What a lot of people don't realise is that even with proprietary hardware if you have enough cash and sign enough NDAs you can usually get access to all the information and code you would ever need. I have the complete source for the binary drivers for various ARM SoCs sitting on my harddrive.

            >I'm glad that you get by just fine on the proprietary drivers.

            The proprietary drivers have public specifications right? For your previous example that should be enough. If they find bugs in the proprietary drivers they should have a contact within nvidia that they can contact to get it fixed.

            >"the drivers are not open source" is a problem for other people, that actually matters.

            Having opensource drivers does matter but not for the reasons you gave.

            1. Trevor_Pott Gold badge

              Re: JustNiz

              "He seems to have written one kernel of limited complexity."

              Which still requires an understanding of programming that most people lack. As a hobby item, it may not be the most complex, but it is more than the overwhelming majority of self professed "professional Linux programmers" are capable of.

              What have you done that of the same complexity as a "multi-million LOC proper operating system kernel like Linux", thus giving you the bragging rights to look down your long nose at others, hmm?

              "I'm not sure how you go from "writing a hobby kernel" to "needs to have custom firmware for a graphics card"."

              Needs to? Maybe not. Wants to? Sure! In Chris' case, he'd love to explore it just for the sake of exploring. Learning for the sake of learning. I do know people who use other cards (notably the Xeon Phi) specifically because they get the kind of access to it that they don't with nVidia, even if nVidia's cards are more powerful.

              You are presuming that your own identification of needs outweighs everything and everyone else.

              " I can't even see where his kernel's nvidia graphics driver is.. it seems it has a serial console only. But anyhow, he's free to do what most toy kernels do and use the standard VESA stuff that is compatible with the millions of PCs out there.""

              Graphics cards aren't just for graphics. They are used for processing as well. And the last i heard he was working on integrating some GPU compute stuff, given he'd just gotten some nice embedded boards with some sexy GPUs on them. Maybe you might even stop to think that in his case, part of the frustration is that the lack of open sourced drivers makes doing that integration work harder...especially when he's working with non-x86 platforms.

              "Not massively impressed really. I know lots of people that look at an instruction sequence and tell you how many clocks it will take and how to reduce the clock count by using some weird trick."

              Congratulations. You know people! There are 7 billion+ of them on the planed. Not it's my turn to be completely unimpressed. OTOH, here's someone who isn't an electrical engineer or computer scientist by trade who spends his spare time learning this stuff. That is relatively rare. No matter how little it impresses you.

              "If the stuff they are working on is so important they should have a contact an nvidia that can help with that. Surely they want someone that has access to the engineers that put the chip together opposed to stuff that is reverse engineered.

              What a lot of people don't realise is that even with proprietary hardware if you have enough cash and sign enough NDAs you can usually get access to all the information and code you would ever need. I have the complete source for the binary drivers for various ARM SoCs sitting on my harddrive."

              Wow, you really are an arrogant little weasel man who lives in his own little universe, aren't you? "Get enough money together and you can have influence"? On behalf of every small business, every startup and ever hobbyist in the world: fuck you. In the face. With a 20MT vat of battery acid.

              The stuff these people are working on absolutely is important. In the case of at least one of these companies, the quicker they get their software together the better, because it quite literally saves lives. (Though at the moment they've got map rendering from last year's industry best of 3 days to 36 hours, the lack of proper access to the cards is prevent them from hitting "real time".)

              Sadly, they just don't have enough money to matter to arrogant types such as yourself. But that's okay. As long as your own inflated sense of self importance and the importance of proprietary drivers is in place, let other people die in the wilderness. You'd probably blame the victim anyways. I sense that about you. I really do.

              "The proprietary drivers have public specifications right? For your previous example that should be enough. If they find bugs in the proprietary drivers they should have a contact within nvidia that they can contact to get it fixed."

              Except that you have to be pretty goddamend important to have a contact within nVidia that can actually get anything done. Nor is nVidia particularly interested in actually fixing bugs, fixing them with any speed, or fixing bugs that only affect small, insignificant people without a lot of money.

              Your solutions of "well, just obtain power and influence" are asnine, and prove that you don't remotely understand why open source anything is important.

              Now, I happen to understand why nVidia doesn't do open source drivers. It has to do with military contracts. There's a whole lot of very long, condensed reasoning and I'd be happy to have a rational discussion with people about the whys and why nots.

              What I won't stand for is tearing down someone who is actually quite intelligent, capable and damned fine human being just for the sake of some self-important grandstanding. Especially when the rationale for the vitriol - that open source drivers are irrelevant - is complete and utter bullshit.

              Have a great time.

              1. Anonymous Coward
                Anonymous Coward

                Re: JustNiz

                @Trevor_Pott

                >What have you done that of the same complexity as a "multi-million LOC proper operating

                >system kernel like Linux", thus giving you the bragging rights to look down your long

                >nose at others, hmm?

                Where am I looking down at others exactly? You're the one trying to belittle the OP for mentioning he's some sort of developer by using someone else's apparent skills in an attempt to make him feel small. I have a feeling that the 2 or 3 lines I have in the mainline are more than the sum of *your* input to a serious kernel.

                >Graphics cards aren't just for graphics. They are used for processing as well.

                Which nvidia supply a public API for and doesn't require running third party firmware on the GPU. You're making out this is like some secure boot system that stops people running their own code on their CPU/GPU when it really isn't.

                >part of the frustration is that the lack of open sourced drivers makes doing that integration

                >work harder...especially when he's working with non-x86 platforms.

                On non-x86 platforms the vendor usually supplies a BSP (board support package). Depending on your agreements with the vendor you might have a bunch of binary blobs or complete access to their live internal git repo. Open source drivers usually make upgrading kernels etc easier but a lot of the time you have to stick with the crappy old kernel and drivers the vendor supply and maintain because of weird issues with the hardware that aren't handled in opensource drivers. It's a bad situation really. Vendors need to be working to get their stuff into the mainline so it doesn't bit rot but the management is usually very much "our precious" so however much developers tell them that they should try to get their stuff mainlined it's hard work to make it happen.

                > On behalf of every small business, every startup and ever hobbyist

                > in the world: fuck you. In the face.

                I work with small startups a lot bringing up Linux of their hardware. I can't think of a case where we haven't been able to get the complete source for all of the vendor's drivers.

                Hobbyists have a bit of a problem that they aren't very valuable to big semiconductor companies that need to ship hundreds of thousands of units to make a design profitable.

                You seem to be arguing along the lines of "I know more than you so shut up" and "Won't someone think of the children that for some inexplicable reason need to be able to upload their own firmware to GPUs". Neither is making much sense.

                1. Trevor_Pott Gold badge

                  Re: JustNiz

                  "Where am I looking down at others exactly? You're the one trying to belittle the OP for mentioning he's some sort of developer by using someone else's apparent skills in an attempt to make him feel small. I have a feeling that the 2 or 3 lines I have in the mainline are more than the sum of *your* input to a serious kernel."

                  You'd be right. I'm not a developer, nor do I claim to be. But I'm also not disparaging someone's development efforts as "unimpressive" here. I never said our "professional Linux developer" should feel small because he is a Linux developer. I said that being a Linux developer - professional or not - doesn't give him standing to diminish someone like Chris. There's a difference.

                  "Which nvidia supply a public API for and doesn't require running third party firmware on the GPU. You're making out this is like some secure boot system that stops people running their own code on their CPU/GPU when it really isn't."

                  CUDA and OpenCL support aren't there for all processor types, and are still somewhat bug-ridden for x86 Linux. What's more, there are still efficiencies to be eeked out that would be a lot easier if one didn't have to go through the nVidia bureaucratic gauntlet.

                  "Vendors need to be working to get their stuff into the mainline so it doesn't bit rot but the management is usually very much "our precious" so however much developers tell them that they should try to get their stuff mainlined it's hard work to make it happen."

                  No, vendors need to open source their frakking drivers so that the rest of the world isn't held up by their internal politics. There's a whole industry that needs to be able to move faster than they can.

                  "I work with small startups a lot bringing up Linux of their hardware. I can't think of a case where we haven't been able to get the complete source for all of the vendor's drivers."

                  So do I, and nVidia doesn't release that information with a simple NDA. It takes a hell of a lot of lobbying and a lot of money. Money that you don't tend to have as a startup unless you are already A (or usually B) round funded. Especially if you're not an American startup.

                  "Hobbyists have a bit of a problem that they aren't very valuable to big semiconductor companies that need to ship hundreds of thousands of units to make a design profitable.""

                  Yeah, but fuck 'em, eh? Awesome attitude.

                  "You seem to be arguing along the lines of "I know more than you so shut up""

                  Uh, no. That would be you. There are damned good reasons to want open source drivers, even if they don't apply to you, personally, or people you've worked with. But hey, because you don't personally see a need, you're entirely happy with denying everyone else. You sure you're not a bureaucrat?

                  "and "Won't someone think of the children that for some inexplicable reason need to be able to upload their own firmware to GPUs". Neither is making much sense."

                  There are lots of reasons. You just don't accept them as relevant. Poor support outside of x86. Inability to obtain source code unless you have gobs of money and influence. Bugs that never get fixed. Abandoning hardware after very limited periods of time. Reams of WONTFIX bugs and corporate history of simply ignoring bugs raised are all good reasons.

                  But you're also conflating two things here. 1) Inability to firmware update cards (nice to have in a lot of ways) with 2) lack of open source drivers that can be recompiled on other platforms (absolute must).

                  Now some of my clients have a desire to get into the firmware and tweak and tinker, because they need every erg of speed. But I think there's a much broader need for open source drivers that can be tweaked and recompiled for different architectures, and where bugs can be fixed that nVidia won't.

                  1. Anonymous Coward
                    Anonymous Coward

                    Re: JustNiz

                    @Trevor_Pott

                    >You'd be right. I'm not a developer, nor do I claim to be.

                    Ok so don't try to use someone else's wicked cool skill that you think are massively impressive to try to size up someone else because you have no idea what you're talking about.

                    >Linux developer - professional or not - doesn't give him

                    >standing to diminish someone like Chris. There's a difference.

                    You're taking offence to something that wasn't written. For most people that develop on Linux either at the kernel level, application or whatever are in no way affected by the revelation that nvidia has added signing to their GPUs. It affects a tiny minority of developers that are working on opensource drivers for nvidia GPUs and almost no one else. I think you're going to massive lengths to make this look like it deeply affects your friend's hobby project but I don't see how it does.

                    >No, vendors need to open source their frakking drivers so that the rest of the

                    >world isn't held up by their internal politics. There's a whole industry that needs

                    > to be able to move faster than they can.

                    In a perfect world yes. But this isn't a perfect world. There are lots of vendors that are trying to get all of their stuff mainlined. One example I can think of is Marvell that has been paying an external company to rewrite their drivers so they are acceptable as their previous binary blobs (that everyone who signed the NDA had the source code for) had no chance of getting included. Qualcomm has apparently been assisting the guys writing free drivers for their GPUs... If you look through the LKML though you'll see plenty of times where a vendor has offered their inhouse driver for mainline and it has been rejected because it's poorly written. There might be a few mails back and forth to try and correct the issues but a lot of the time the conversation dies and the driver doesn't go in. Bottom line is that open sourcing stuff that is wrapped around layers and layers of NDAs and licensed IP is not easy and once the open sourcing has happened it doesn't mean it's going in the mainline and it's going to be supported forever and ever. FYI: the kernel part of the nvidia drivers do have source available.

                    >So do I, and nVidia doesn't release that information with a simple NDA.

                    > It takes a hell of a lot of lobbying and a lot of money.

                    So don't use their stuff then.

                    "Hobbyists have a bit of a problem that they aren't very valuable to big semiconductor companies that need to ship hundreds of thousands of units to make a design profitable.""

                    >Yeah, but fuck 'em, eh? Awesome attitude

                    Where did I say that Trevor? You seem to run some sort of consultancy; If everyday a bunch of charity cases walk into your office and give you their sob story will you do work for free or for a rate that means you lose money? You might once or twice out of the goodness of you heart but you aren't going to do it everyday until you go bust are you? Hobbyists should stick to hobbyist friendly vendors that release proper documentation for their products and be hard on vendors that don't release documentation. What hobbyists really don't need is people flapping their gums about stuff they don't care about or need.

                    >Poor support outside of x86.

                    You keep going on about this horrible non-x86 thing but I don't think you have a clue what you're talking about.

                    >Reams of WONTFIX bugs and corporate history of simply ignoring bugs

                    >raised are all good reasons.

                    The intel GPU drivers have been opensource for a long time. They still crash the whole X server when people do certain actions in kicad with some models of GPU. The bug has been there for about 5 years. Open sourcing the drivers doesn't instantly fix hard to fix bugs.

                    >. 1) Inability to firmware update cards (nice to have in a lot of ways)

                    They haven't stopped anyone from updating firmware. They have locked out firmware that isn't signed with their key.

                    >2) lack of open source drivers that can be recompiled on other platforms (absolute must).

                    This is about that non-x86 thing again isn't it? Are you aware that nvidia have a bunch of SoCs with ARM cores and nvidia GPUs. By what I saw at Tokyo MakerFaire (I'm one of those hard done by electronics/computing hobbyists you are so concerned about BTW) it looks like they even have working CUDA on ARM. It was pretty funny really.. Nvidia had a stall with impressive CUDA and machine vision demos running on their SoCs and Intel was next door trying to flog their unimpressive buggy pentium class crap next door.. but that's another story.

                    >Now some of my clients have a desire to get into the firmware and tweak and tinker,

                    What exactly are they going to tweak/tinker? I can maybe understand that they might be able to find where values like the different core frequencies are held in the flash and overclock their cards but I very much doubt they are in IDA disassembling the stock firmware, documenting and re-implementing it on a daily basis. Take a read of this article by someone that has been reverse engineering GPU drivers, it might open your eyes a little bit: http://lwn.net/Articles/638908/

                    >because they need every erg of speed.

                    So, yeah, poking in a hex editor to tweak the settings of the cards which nvidia doesn't make available.

                    >But I think there's a much broader need for open source drivers that can be tweaked

                    What are you going to be tweaking exactly? I'm sure there are things to tweak but I'd like to hear a solid example.

                    >and recompiled for different architectures,

                    What architectures do you think could really do with nvidia GPUs but don't have binary drivers. Keep in mind that there are only 3 or 4 current architectures that have pci-e interfaces.

                    >and where bugs can be fixed that nVidia won't.

                    Unless the bugs are in the firmware that has no relation to the firmware being signed or closed source. Nvidia could have opensource drivers and closed firmware (like 99.9999999% of the stuff in your machine that has a mainlined driver but requires firmware).. would you still be demanding they remove the signing if that was the case?

                    1. Trevor_Pott Gold badge

                      Re: JustNiz

                      "Ok so don't try to use someone else's wicked cool skill that you think are massively impressive to try to size up someone else because you have no idea what you're talking about."

                      Not being a developer (by choice, I might add), doesn't mean I don't know quite a bit about the field. (Well, fields. Development is broad enough to have specialized a long time ago.)

                      "You're taking offence to something that wasn't written. For most people that develop on Linux either at the kernel level, application or whatever are in no way affected by the revelation that nvidia has added signing to their GPUs. It affects a tiny minority of developers that are working on opensource drivers for nvidia GPUs and almost no one else. I think you're going to massive lengths to make this look like it deeply affects your friend's hobby project but I don't see how it does."

                      You are...whom? And who elevated you to the final arbiter of knowledge and understanding? And for that matter, who gave you the right to judge how many people have to be affected by something before it's important enough for others to care about?

                      "So don't use their stuff then."

                      So you're an economic/social darwinist. See my previous post in this thread.

                      " If everyday a bunch of charity cases walk into your office and give you their sob story will you do work for free or for a rate that means you lose money? You might once or twice out of the goodness of you heart but you aren't going to do it everyday until you go bust are you?"

                      First of all, you're so full of shit your eyes are brown. nVidia is in exactly zero risk of "going bust" if they support startups and hobbyists. They risk only making a (very) slightly lower profit.

                      As for me, I actually do my best to support those with esoteric requirements. In fact, I get together with other consultants in both of my major fields of endeavor to work out standards and do the equivalent of "open sourcing" as much of our work as possible. This makes it easier to support a large number of "edge cases" with a minimal cost on our side. It spreads the load amongst the network and ultimately builds good will amongst those individual and companies that form the edge cases. Good will that means a lot when the odd one goes gold.

                      "Hobbyists should stick to hobbyist friendly vendors that release proper documentation for their products and be hard on vendors that don't release documentation. What hobbyists really don't need is people flapping their gums about stuff they don't care about or need."

                      More economic darwinism and some extra judgement based on an appeal to your own authority. Don't push for change or seek better of vendors, just accept whatever your betters give you, and tell you that you should need. Neat-o! (Double bonus if you ad homeinem anyone who stands up for the edge cases.)

                      "The intel GPU drivers have been opensource for a long time. They still crash the whole X server when people do certain actions in kicad with some models of GPU. The bug has been there for about 5 years. Open sourcing the drivers doesn't instantly fix hard to fix bugs."

                      And now you're way out in the middle of nowhere. I never said anything about open source automatically fixing hard to fix bugs. I said it gave those who care enough the ability to do so. Now you're just manufacturing arguments.

                      "What exactly are they going to tweak/tinker? I can maybe understand that they might be able to find where values like the different core frequencies are held in the flash and overclock their cards but I very much doubt they are in IDA disassembling the stock firmware, documenting and re-implementing it on a daily basis."

                      You doubts are irrelevant. You've proven your limited capacity for belief repeatedly. While I'm not goign to waste my time going into a huge amount of technical detail, one example of what one group has been up to with their driver recoding has been changing the way vector calculations are done by the GPUs so that they can get (way) better performance from their algorithms. They had great success with the Phi, and so far have had good luck with AMD, but nVidia makes the hardware that is optimal for this task...if they could just change some of the behavior.

                      "So, yeah, poking in a hex editor to tweak the settings of the cards which nvidia doesn't make available."

                      Uh, no. But great job inserting your own prejudices and biases.

                      "What architectures do you think could really do with nvidia GPUs but don't have binary drivers. Keep in mind that there are only 3 or 4 current architectures that have pci-e interfaces."

                      You do realize that ARM, for example, is not remotely cross compatible, eh? Binary for one ARM isn't always (rarely, IME) going to work on a chip from another vendor. Or even a different chip from the same vendor. That's before we start looking to Power or MIPS.

                      I know, for example, of one group working to build an embedded PIC32 unit with a GPU (the "sidecar", as it's lovingly named) that is being optimized for extreme environments for purposes I can't go into because of NDAs. Some of the stuff they're doing requires some really crazy calculations to be done in real time (or as close as possible) and they absolutely need to tinker at the metal.

                      But I guess all them folk are just posers, eh? Just wanting to overclock cards and such.

                      "Unless the bugs are in the firmware that has no relation to the firmware being signed or closed source. Nvidia could have opensource drivers and closed firmware (like 99.9999999% of the stuff in your machine that has a mainlined driver but requires firmware).. would you still be demanding they remove the signing if that was the case?"

                      Actually, yes. I do generally request of all vendors that they either put in place a program to make it reasonably easy to get custom firmware signed (and then inject it) or - better yet - do away with signing and open source their firmware. For everything I can get my hands on from BMCs to the radios in my phone.

                      Part of the reason is security. These firmwares are often abandoned by vendors, yet units stay in play for bloody ages. Signing can be part of a defense, but it can also prevent community sourced updated for abandoned hardware that ultimately leave us more insecure.

                      Smartphones are a great example of this issue: a year out, and you're not getting any love. Try to roll your own, but it's fighting an up hill battle because of all the devices with undocumented, closed firmware. A lot of which has known vulnerabilities. That's before we begin discussions about nation states occupying your firmwares...and they won't have trouble getting their malware signed! (I'd really like to have a nice maintenance program that re-flashed all my firmware with known good copies relatively regularly, letmetellyou.)

                      And for all that we're having this discussion about GPUs today, the economic ethics being hashed out over these issues will be the default for future products. I don't fancy an "internet of things" full of abandonware with closed, unupdatable firmware.

                      How much of your "smart house" do you want to have to replace with the latest, greatest before you sell it, hmm? Are you okay with rebuying your car every year or two?

                      if you think I'm being alarmist, remember that these are markets nVidia is targeting with a vengeance. I don't particularly care for the implications - on a personal level or at a societal level - of economic darwinism being applied to technology when it becomes as ubiquitous and as critical, in many ways to human life as it is promised to become in the next 10 years.

                      But hey, there's nothing wrong with locking everyone out. As long as nVidia makes money doing so...right?

                      1. Anonymous Coward
                        Anonymous Coward

                        Re: JustNiz

                        >You do realize that ARM, for example, is not remotely cross compatible,

                        >eh? Binary for one ARM isn't always (rarely, IME) going to work on a chip

                        >from another vendor.

                        Why Trev? Please come up with a good answer.

                        Hint: The main driver part of the nvidia solution runs in userland.

              2. Anonymous Coward
                Anonymous Coward

                Re: JustNiz

                @Trevor_Pott

                FYI Trev, from what I can tell the nouveau drivers don't support OpenCL yet (http://nouveau.freedesktop.org/wiki/FeatureMatrix/) and doesn't support CUDA so the use of an nvidia GPU with the nouveau drivers for GPGPU seems to be a nonstarter.

                1. Trevor_Pott Gold badge

                  @Daniel Palmer

                  At least one of the startups I'm working with is actually part of a project to bring both CUDA and OpenCL to the nouveau drivers. At the moment, he's been working on OpenCL. In fact, I just heard him log in to my testlab and spin up the GRID cluster, so I presume they've started working on the "GPU-enabled VMs" one more time.

          2. Handy Plough

            Re: JustNiz

            "@JustNiz, you're kind of a dick."

            Pot meet kettle Trevor. Wind your neck in. Your liberal application of logical fallacy is hilarious.

            1. Trevor_Pott Gold badge

              @Handy Plough

              But I'm a professional dick!

          3. Badvok

            WTF?

            " The lack of open source drivers really, honestly and truly does affect them, as there are regularly things they need to be able to change, and they have to fight tooth and nail to see them changed."

            This is the thing I really, really don't get. If it is so hard why the fu** are they buying NVidia cards and thus pouring more money into their hands?

            If these rather special 'Linux Devs' really can't abide using something for which they don't have absolutely all the source code down to the lowest level (microcode included?) why don't they just avoid those manufacturers who don't provide it - last I looked it was still a pretty free market.

            1. WolfFan Silver badge

              Re: WTF?

              That would be exactly my position. If it is true that Intel and AMD are easier to deal with than NVIDIA, then why deal with them at all? Don't buy their stuff. If enough people don't buy their stuff, then either they will change their ways and become more like the other two, or they'll go under will therefore cease to be a problem.

              I suspect that what will happen instead is that such a boycott will show just how small a niche this is, whereupon Intel and AMD may change their positions.

              1. James O'Shea

                Re: WTF?

                Interesting. I see numerous downvotes for suggesting that, perhaps, if Nvidia doesn't want to support Linux, it might, just might, be a good idea to stop buying their hardware. What, exactly, is the problem with simply not buying their devices? So far as this observer can see, that would solve the problem right there. Serious question. Why not simply refuse to buy Nvidia unless and until they allow the level of support you think you need? Why not just boycott them, and make your reasons for boycotting them plain to see?

                1. Trevor_Pott Gold badge

                  Re: WTF?

                  "Serious question. Why not simply refuse to buy Nvidia unless and until they allow the level of support you think you need? Why not just boycott them, and make your reasons for boycotting them plain to see?"

                  Because the implication behind that is that the only thing that matters is money. This is from the same school of thought (economic/social Darwinism) that gives us neglected tropical diseases. There are plenty of individuals and companies that aren't in the "fat money belt" and could ultimately prove to be very useful to society as a whole if only they could get the initial support out of the gate.

                  There aren't a lot of vendors in this space. If we make it acceptable to behave as an economic Darwinist when in a position of monopoly, near monopoly or functional duopoly then we are ultimately restricting our innovation as a society. You can only really innovate if you have enough money, but you can't get enough money without being able to innovate (or unless you know the right people.)

                  Maybe that's fine by you. But it isn't fine by me. I happen to think that those who aren't rich and powerful - or part of the blind majority - still have much to offer society. Be this discussion about technology or real world issues like education, health care or political representation.

                  It's the age old debate: those who view the dollar as almighty versus those who see value in everyone (or almost everyone).

                  1. James O'Shea

                    Re: WTF?

                    You're reading things that I have not stated. In particular, I simply can't see the connection between boycotting a video card vendor and neglecting tropical diseases.

                    What is evident is that you don't like the direction that Nvidia is going, and that they don't care about your opinion. And that you can't do anything about their not caring except boycotting them, but somehow doing that will cause mass death in 3rd world countries. No, they must be forced to do what you want... except that you have no power to force them to do anything.

                    it was a simple question: what's wrong with just boycotting them? Please try to answer _without_ dragging in tropical diseases.

                    1. Trevor_Pott Gold badge

                      Re: WTF?

                      "it was a simple question: what's wrong with just boycotting them? Please try to answer _without_ dragging in tropical diseases."

                      Boycotting nVidia is neither effective nor does it address the root issue of the imbalance between the power the vendor has and the power the customer has.

                      Only a small fraction of very wealthy customers have any real influence with nVidia. Like it or not, that is very similar to the issues wrought by economic darwinism on the pharmaceutical industry.

                      Perhaps more to the point: nVidia is more than just a vendor of GPUs, and they have aspirations to be even more. nVidia has the desire - and the capability - to be one of the major players in low power devices (see; internet of things) that will be (and are) making technology ubiquitous in all aspects of our lives. Including, increasingly, ones that involve life-or-death situations, medical equipment and everything from personal cars to mining equipment many times the size of your house.

                      Making processors, GPUs and the like is functionally an unregulated industry. Despite this, it is rapidly moving into becoming as important to life and limb as the pharmaceutical industry. Boycotting sure as hell doesn't work there!

                      It is ultimately a question of how much power we wish to allow the vendors versus how much power we, as the customer demand. That brings me right back to my previous comment: it's ultimately about social/economic darwinism. Either you support the "irrelevance" of the poor, the niche and those who bought a widget that is older than a single product cycle, or you believe that vendors need to be held to a higher standard.

                      I tend towards the latter.

                      1. James O'Shea

                        Re: WTF?

                        And you _still_ dragged in the tropical diseases. I have great difficulty taking your position seriously when you have to go so far out into the deep end. it is _seriously_ reaching to go from Nvidia's declining to give a few neckbeards the power the neckbeards think they should have to Nvidia's creating a vast medical complex oppressing all of humanity.

                        just don't buy from them. Problem done.

                  2. Anonymous Coward
                    Anonymous Coward

                    Re: WTF?

                    "You can only really innovate if you have enough money, but you can't get enough money without being able to innovate (or unless you know the right people.)"

                    Which leaves the real real innovators who can disrupt the market with the third option: usually by finding a way to break into the market for less or using their backing to leapfrog everyone else.

            2. Hans 1

              Re: WTF?

              @Badvok

              >If these rather special 'Linux Devs' really can't abide using something for which they don't have absolutely all the source code down to the lowest level (microcode included?) why don't they just avoid those manufacturers who don't provide it - last I looked it was still a pretty free market.

              We all benefit from their work and I am NOT going the route of having to check if the chipset X is FreeSoftwareCompliant before buying it, I get the best my money can buy and hope FreeBSD/GNU/Linux will cope with it. I, for one, am inconvenienced by nvidia's stupid ways - to say the least. The same can be said about broadcom, BTW.

    2. Oninoshiko

      "This almost certainly doesn't affect any other Linux developer or user in the slightest, since there is already a better and more optimal nvidia driver out there for free (nvidias own Linux driver). Yes it doesn't come with source code, but that is mostly if not completely a philosophical rather than practical limitation, since who in the real world ever has an actual need or even desire to dive in and modify video driver code?"

      That's not true. Because linux is a monolithic kernel, the nVidia driver potentially has access to the entire memory space. Because of this ANY bug you are experiencing with the kernel cannot be ruled out as a nVidia driver problem (potentially other software too, but usually it's trying to track down a kernel problem).

      This isn't just theoretical. nVidia has shipped buggy drivers, and it's much harder to get dev attention if you're running a tainted kernel for this reason.

      1. Anonymous Coward
        Anonymous Coward

        @Oninochinko

        >the nVidia driver potentially has access to the entire memory space.

        The kernel part of the nvidia drivers has source available so you can compile it against your running kernel. You're free to audit it and tell us about what you find.

        >Because of this ANY bug you are experiencing with the kernel

        >cannot be ruled out as a nVidia driver problem

        >(potentially other software too, but usually it's trying to track down a kernel problem).

        The kernel has the "tainted" stuff because of this. But the kernel part of the nvidia drivers have source available as I mentioned before so you don't have to resort to disassembling kernel modules to debug it you just won't get any help from the mainline kernel guys as it's not their code.

        >nVidia has shipped buggy drivers

        There are buggy drivers in the mainline kernel too. Using staging drivers also taints the kernel IIRC.

        >and it's much harder to get dev attention if you're running a tainted kernel for this reason.

        The reason for the kernel tainting stuff is so that you remove all of the external drivers etc you have loaded and reproduce your bug before reporting it otherwise you are potentially reporting a bug to the wrong place and wasting people's time. It's not about dissing people run code that isn't in the mainline. If that was the case why provide the infrastructure to build out of kernel modules in the first place?

      2. Anonymous Coward
        Anonymous Coward

        "That's not true. Because linux is a monolithic kernel, the nVidia driver potentially has access to the entire memory space. Because of this ANY bug you are experiencing with the kernel cannot be ruled out as a nVidia driver problem (potentially other software too, but usually it's trying to track down a kernel problem)."

        For the record, neither Linux nor Windows have been monolithic for a while now. Both of them are hybrid kernels: some stuff is kept in the kernel for performance or security reasons (like a monolithic kernel), others are farmed out to userland modules and libraries (like a microkernel).

  3. Henry Wertz 1 Gold badge

    firmware

    "The headline of this article is VERY disingenuous and misleading."

    No it's not, it sounds to me like the developers working on the open source nouveau driver are in fact locked out.

    I'm with Stuart Longland on this, BTW. Having the drivers AND firmware be open source would be nice. But, 1) It seems arbitrary that people will not mind if a device has firmware on a flash ROM or (god forbid) permanent ROM, but flip out if the exact same firmware is loaded at initialization time into some RAM on the device. 2) To be honest, I've seen multiple instances of devices with closed firmware but fully open specs, and the open firmware never seems to actually get completed.

    Why do I favour open source drivers? Simply because I'm less likely to run into the "kernel too new", "X.Org too new" or "card too old, the vendor is not shipping updated drivers any more" situations... not some strict purity standpoint. As for firmware, the one big argument for open source firmware to me is bug fixes -- see Intel iwl4965 802.11n wifi for what can go wrong.... the newest firmware is like 5 years old and buggy, the next-older one works for me but is very buggy for other users (I think depending on the radio envrionment, or perhaps which 802.11N options their AP is using). Intel never got the bugs worked out, just stopped work and went on to the next chip. If it were open source, perhaps someone would have gotten the bugs worked out. (The *driver* is open source, but it's one of those drivers where it just hands things over to the firmware, and the firmware fails.)

    1. Anonymous Coward
      Anonymous Coward

      Re: firmware

      >If it were open source, perhaps someone would have gotten the bugs worked out.

      In a perfect world yes. In the real world potentially there are hardware issues that can only be fully understood by looking at the designs for the chip or by lots and lots of guessing.

      I would say vendors opening documentation is a lot more important than them providing the source for their (usually horrendous) drivers.

      1. Anonymous Coward
        Anonymous Coward

        Re: firmware

        I would say vendors opening documentation is a lot more important than them providing the source for their (usually horrendous) drivers.

        Indeed, the ideal company for me would:

        - Publish design documentation for their hardware, sufficient for a driver developer to fully understand and control said hardware.

        - Publish a reference driver under an open-source license for an OS that allows distributors of that OS to include the driver and make it available for lay people to use.

        - Bonus points for the design documentation making customised firmware possible for the said device, and providing the source code for the firmware. Not strictly necessary, but it then means the user has a lot more freedom in how they use the product.

    2. Voland's right hand Silver badge

      Re: firmware

      card too old, the vendor is not shipping updated drivers any more Bingo - nailed it on the head.

      Nvidia has a policy to force obsolescence of older GPUs at driver level long before they need to be obsolete as hardware.

      There is nothing wrong with 620 series for example. I have a nice fanless PCIE Quadra and couple of nice fanless 620s which are still more than sufficient for nearly every use a non-hard core gamer will make of them. However, I can no longer use them with their drivers because they have set an "obsolete" mark for them. They are no longer supported. I cannot run them with noveau either because they run too hot (last time I tried) due to lack of dynamic frequency management.

      As a result they are sitting in the spare parts drawer and all desktop GPUs have now been replaced by AMD. For these, I still have to run the proprietary Catalyst driver for a couple of months on the newest parts, but I can switch to the free one shortly thereafter.

      1. Ceiling Cat

        Re: firmware

        Nvidia has a policy to force obsolescence of older GPUs at driver level long before they need to be obsolete as hardware.

        So do AMD. I can no longer use my laptop's AMD GPU with the proprietary Catalyst drivers because of the "xorg too new" scenario. Granted, it's not a great GPU to start with (4xxxHD I think), can't remember the exact specs of the laptop right now - it's an HP G-62, but there have been many differently spec'd machines under that badge. I wouldn't care much, but it's not actually dead yet, and I'd like to be able to make use of the chip's full capabilities, but no dice. THe open-source AMD driver (MESA, is it?) can't do anything, performance wise. It struggles to run RenPy-based games, let alone anything that really *needs* hardware acceleration.

        As a result they are sitting in the spare parts drawer and all desktop GPUs have now been replaced by AMD.

        Newer AMD parts, I hope. which they (hopefully) won't obsolete for a few years. Once I get the desktop that this laptop is replacing back in action again, I may well install Xubuntu on it and donate it to charity, or just leave it lying in the hallway of my apartment building.

Page:

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon

Other stories you might like