Hack Removes Firmware Crippling From NVIDIA Graphics Card

If hardware manufacturers want to keep their firmware crippling a secret, perhaps they shouldn’t mess with Linux users? We figure if you’re using Linux you’re quite a bit more likely than the average Windows user to crack something open and see what’s hidden inside. And so we get to the story of how [Gnif] figured out that the NVIDIA GTX690 can be hacked to perform like the Quadro K5000. The thing is, the latter costs nearly $800 more than the former!

[Gnif] wanted the card for gaming and to support multiple monitors. It has no problem driving up to three screens under Windows. But the Linux drivers only allow this on the professional counterpart to the GTX690, the Quadro K5000. It turns out that the card responds to a device ID as assigned by a series of analog values. These can be tweaked by swapping, yanking, or adding resistors in just the right places. As with that Agilent multimeter unlock of his which we saw a few days ago, he somehow managed to figure out the secret sauce that unlocks the power hidden in this card.

135 thoughts on “Hack Removes Firmware Crippling From NVIDIA Graphics Card

  1. When a person buys a high-end video card, it is expected that you get something more than when you buy a low end card.

    Unless by “more” they mean “bend over and grab your ankles.”

    I don’t mind a company making a profit, as long as they aren’t being asshole ripoff artists. A few minor resistor changes parks them right in the forefront of asshole rippoff artist territory.

    1. its common practice ALLOT of companies do its the whole “if you need the extra features you can afford to pay alittle more”
      nvidia puts an ASS LOAD (industry term) of money in to R&D and taking a chunk out of that by charging mostly large corporations more is fine in my book …

      1. That is not how market differentiation works. Just because you’re fine with somebody arbitrarily charging you more money just because you WILL pay more doesn’t mean everybody else is.

        1. This lets them have a low end that is lower priced than the lowest end would be if they couldn’t differentiate.

          The people who pay more for the higher end card are subsidizing the people who pay less for the low end card.

          If they just had one model (because it “costs the same” to make any of the various current models), they would have to charge more (than the current low end price) to make their desired profit on the R&D they put into the product.

          Sure, this higher price would result in more features, or more performance, but there are people who just don’t have that money to spend. They have a budget, and if there were only one price, it might not fit.

      2. “A little more”? What a joke. If that is a little you don’t mind, give it to me instead or other people who need help. “Common practice” does not mean right practice or reasonable. It doesn’t help for most people.

    2. When a person buys a gaming video card, he pay for the hardware. If the $50 game crashes now and then or the graphics glitches he might be disappointed.

      When a solo consultant buys a workstation video card, he pay for the drivers. If the $10000 CAD program crashes now and then he might waste several hours of work and time. Loosing maybe $500 per hour or failing a deadline.

      When a company buys a high-end workstation card, they pay for the stability of both drivers and hardware. If the $300000 CAE program on a rented several hundred million dollar supercomputer, crashes after a weeks simulation with a $10000 electrical bill – heads will roll and companies sued.

      Anyone who buys a workstation video card are either too rich to know better or does it to make money in a business. If you can’t afford a low-end workstation card for $200 which are enough for 90% of all applications, you probably doesn’t pay for the software either.

      1. I use Maya everyday. Currently, I use Quadro 4800s, which was a super expensive card in its day. I have to say, it’s not always stable. It often is the cause of crashing in Maya, Nuke, and After Effects which results in excessive cursing.

        I understand that NVIDIA is charging to support and stability, but I can’t say that I’ve had the best experience with my two 4800 cards over the years.

      2. There are MANY MANY people that would like to just have a play around with some of this high end hardware just because they are intrested in it, or would like to learn about it, but NVidia do not open things up to those of us that dont care for the high end support, and would never put it into a cluster worth millions, but the high price tag on these cards (GRID K2) makes it unrealistic to buy this to just to have a play with the device.

        You sir are a pathetic joke, do not attack the poorer community stating that they stole the software because they can not afford the hardware.

  2. It’s common practice to design one piece of hardware then sell it at multiple price points. This is good for the manufacturer, and it’s good for the consumer. “Firmware crippling” implies that it’s some sort of cheat – which is totally not the case.

    Firstly, from an engineering perspective, you get one part that you focus all your time and resources on. You are not realistically going to clone your team into three equally effective units to engineer three designs separately. You’re going to reuse something. Maybe the difference is an extra component on the board. Maybe it’s a firmware setting.

    Okay, let’s assume it’s a firmware setting. Why would you do that? It’s just lying to the customer to make more money – right?

    Um, no.

    The parts you’re using don’t come with ultra-precise tolerances. Maybe you want your top-end part to use a 4GHz clock, then 3GHz and 2GHz for the mid-tier and value parts. Okay, let’s assume you design for that. One problem – most of your parts are going to have a roughly Gaussian distribution about the “nominal” or labeled spec. Some of them will be able to go faster, some slower.

    Okay. So should we assume the worst and sell our product based on the worst-case result from all the tolerances for all the parts used? No, that would be stupid. Our competitors could build from an equivalent spec sheet and all consumers would see is that theirs is running at 4GHz and we’re only offering 2GHz. Should we sell it as a grab bag and consumers get whatever they get? No, the customers won’t like that either, and our competition will still use it to out-market us on the spec sheet.

    Fine, so let’s just add it to our internal testing process. We’ll figure out what a given part can actually stand up to, then we’ll label it accordingly. Great! Well, what are we doing, selling hamburger? Customers will just get confused if we label everything by that specific part’s result, it will complicate the heck out of our supply chain, testing process, marketing – ick.

    So how about we use a simplified (i.e. more realistic) testing process and sort the parts into a few bins – say, 4GHz, 3GHz, 2GHz, and those that are too far below spec to be worth selling. Yeah, that sort of works.

    Well, wait a minute. Some people are really price sensitive and others just want “the best” and don’t care as much about price. After we run the numbers, more people want the 2GHz model than the 4GHz model. It’s good enough, but we sell it for $x cheaper because the (profit * number of sales) work out better if we do. Only, not enough parts fell into that bin. Out of stock, right?

    Hey, as long as we’re setting the safe limit for each part in its firmware, why don’t we just change the settings on a few of the excess 3GHz and 4GHz parts and sell them as 2GHz parts? The extras were just collecting dust anyway, and we know they exceed the advertised spec for the 2GHz part. Bingo!

    And that’s how you end up with 2GHz parts which can be overclocked to 4GHz. Or features that can be enabled via firmware. Nobody is out to cheat you. If anything, you get a free bonus upgrade for being one of the few people able and willing to void the warranty by making after-market modifications in order to get a few extra features.

    1. You didn’t read this part did you?

      “It has no problem driving up to three screens under Windows. But the Linux drivers only allow this on the professional counterpart”

      1. That comes down to it not being worth much development time to support Linux. It’s just not a major sector of the market for high-end video cards. Again, nobody is out to cheat you.

        See Bob Flemming’s post on exactly what this hack is accomplishing. It effectively makes an unsupported device look like a supported device.

        If they’d already developed and tested Linux support for this device – why would they go around developing a trick to block you out of it? It isn’t supported or tested in the first place. Maybe you can still make it work, maybe it will work perfectly after an easy hack. But the manufacturer doesn’t know that and they aren’t standing behind it working with their support and warranty.

        Developing and testing a feature for market involves much more than a quick hack to make it work.

        1. “If they’d already developed and tested Linux support for this device – why would they go around developing a trick to block you out of it?”

          But this is exactly where the WTF lies. The driver for the business class card works fine, they clearly have the code working to allow three-display on this card. If all this hack accomplishes is telling the driver it’s a different card, why not include this feature in the consumer class driver? There’s no consumer-acceptable reason, it’s strictly business trying to get people to spend more to get the features they want.

          1. There’s a lot of people not reading this article and the link completely and defending Nvidia and repeating the usual spiel without reading WHY this guy ended up stumbling upon this hack.

            Three-monitor support on unmodified GTX690:
            Windows driver – OK; Linux driver – ¯\_(ツ)_/¯

            Clearly, they didn’t have enough time to test if the implementation of this feature in the Quadro’s driver would work reliably on the 690. The question is why they didn’t put such a feature higher on the priority list during the driver development, especially when it apparently works so well already. The best option would have been to release an experimental driver alongside the tested driver on their site, but I guess they didn’t even have time to simply re-badge the Quadro driver. Something tells me they might want to consider doing that now if the rest of the blogosphere catches wind of this. As unjust as it may be, people have filed class-action lawsuits over stuff like this and won. All this because of public ignorance and an unfulfilled Gantt chart.

    2. Firmware crippling is like selling two versions of the same car. The cheap version has a hidden emergency brake on all the time, causing poor performance and poor gas mileage. But, if you pay twice as much, you get the same car without the hidden emergency brake enabled. That’s not cool!

      I can see if they took the cheap card, and added extra chips to make it faster, and sold it for more $, but they are using the chips to slow down the fast cards and sell them cheap. (At least that is what I got from the article and other comments.)

      Why don’t public utilities do the same thing?

      Water? Pay full price, or pay half price, but we will come to your house and pee in it every day.

      Electricity? Pay full price and get a true 60MHz, or pay half price and we will add a device to your line to make your current only 58MHz and your electronics and motors all burn out on a regular basis.

      Cable TV? Pay full price and get all the channels we offer, or pay less and we will put a filter on your line and block out the really good channels. (Wait, they already do that! o.0)

      1. You have your reasoning backwards, your example about the car. You decide to develop a car capable of delivering 200 hp. After the planing and designing phase you come up with a model and develop 100 of these cars. Out of the 100, 30 of them actually preform better at 230 hp. So you sell them as 2 different models.

        Now here is where you would add your crippling firmware, you get an order for 100 of the 200 hp cars. You only have 70 at 200 hp and 30 at 230 hp. You realize that you are not selling any of the 230 hp so you modify it down to 200 hp and sell them as the 200 hp model.

        Your not trying to cheat the customer out of something, you are actually giving them a better product. The reason for the crippling firmware is so out of the box it preforms as advertised. If they just gave you the better version without the crippling firmware, the person who did not get the better model would demand the better version.

        1. Whats funny is that car companies do this to an extant. The after market has figured out that a lot of cars can be made faster by just changing a few things. Though this can lead to poor gas mileage and more chance to break stuff. Or everything is works better.

          1. You have a triangle of factors in a car engine: reliability, power, economy. If you increase one point, the other points must compensate. This is easily illustrated by different types of engines. Drag racing engines make ridiculous horsepower at the expense of economy and reliability. Circuit track engines make high horsepower and are moderately economical and have slightly better reliability. Passenger vehicles are designed to have better economy and reliability at the expense of horsepower.

        2. You could TELL the customer you only have 70 of the cheaper cars, but due to the expensive model not selling, will gladly sell you 30 of the faster cars at the same price, or you can try to negotiate a middle price for the 30 faster cars. If your faster cars aren’t selling, you have to lower the price to move that stock anyway!

          A smart salesman would try to make the customer feel they got a bargain, not make them feel like they got taken, (by selling the faster cars crippled.) In other words, treat your customers like they are smart, not treat them like they are stupid!

          In your example, if/when the end users of cars figures out that they can un-modify the cars to get the better performance, many of them will, and resent the hell out of the car manufacturer for crippling a fast car for no good reason. (Which is exactly the situation nVidia is in right now.)

          1. Or release a special 250HP and 270HP version and oh wow, the 220-230HP ones are only slightly more than a 200HP model but come with better (overpriced) radio or something. By the time they can reliably make the 2.5GHz parts, they’ll start to have 3GHz capable chips. Then when you can make tons of 2.8GHz chips, you’ll start to have some that can go to 3.5GHz. This is exactly what happened with Opteron 160-190 and Athlon X2 ~4000+ chips.

        1. Of course. The US loves standards. That is why we have our own for everything! (Actually, there are a few of us Yanks that actually are aware the rest of the world exists, but most do not.)

          1. This is actually a pretty pointless standard to argue over, quite frankly. Only very specific devices like computer monitors really cared. There are 440Hz generators for a (good) reason. The higher the frequency, the cheaper and lighter the inductors in ‘active’ devices. For light bulbs or electric motors, you’d hardly notice a difference. Most switching power supplies adjust quite well and linear power adapters never cared in the first place.

        1. you must work in sales. if i sold you something for a hundred bucks and you found out i sold the same thing to your buddy for ten would that change how you felt about our deal. why? you thought it was reasonable at the time? if you found out that your car could perform better but the manufacturer had put a part in it to make it run worse on purpose would you be fine with that and just leave it in there? these rationalizations are ridiculous, if this sort of thing is just cool please explain why manufacturers keep it a secret.

          1. That some one else got it for 10 doesn’t change that you meant it was worth 100 when you bough it, why else did you buy it?

            They keep it a “secret” because if they didn’t everyone would would change it and they would have to stop differentiating the price, so those who need less features would pay more and those who need all the features pay less

        2. Here’s why it matters. You have altered the market price. Whenever you buy something, there are three things going on. One is, do you need its utility. another is out of all the things that you can use, is this thing worth giving up something else (because your money is not infinite). The third thing is what trade off are you making Could you get it for less? Your point is valid for part one: do I need it.? if so then what someone else paid is immaterial. An example of that is: I am in the middle of the desert dying of dehydration. You change me everything I have (Let’s say $1000 dollars) for a bottle of water. I need that water. It doesn’t matter if someone else could get it for a less. If my need is less acute then It’s a question of what am I giving up to get it, and how much should I give up. By selling it to someone else cheaper, you have changed the market price. The guy you sold it to for $10 may be willing to sell it to me for $50 instead of $100 because his need is less than mine.

    3. @Tim

      Bla, bla, bla, bla. Long story short. The case is not the speed of the product but the functionality that works under one platform (Windows) but refuses to do the same under other (Linux).

      See how this is not related to your rant?

      1. I’m not sure it is that simple, maybe the number of windows users are big enough that it doesn’t make sense to differentiate, but on linux the number of users is low enough that it make sense to make those who who need the advanced features pay more to the development of the drivers

        1. It’s a unified driver, there is only one driver doing different things on different platforms. While nvidia is allowed to block it for most people, gnif is allowed to take his chance for himself and any other daring to solder their video card.

  3. This is a cool hack, but just to be clear – this hack tricks the drivers into thinking the card is actually a different card – that’s not to say it magically becomes the card that the driver expects – and this can be dangerous or have unexpected effects..

    For one, the clock rates that the GPU cores are told to run at could be a value that the physical card could not support (at all, or just for extended periods).
    Secondly, a 256-bit memory bus won’t magically become a 384-bit wide memory bus.
    Thirdly, ECC won’t suddenly appear if the tracks for the ninth bit aren’t present on the PCB.

    The ECC, thermal design, stability and memory bus width is the reason most people buy the workstation class cards.

    Still cool though :) Would probably be worth doing even if it only removed the artificial FP64 throttling.

    1. The GPUs ARE exactly the same, granted NVidia bin chips depending on their performance grades, but what people are not looking at, or missing. The GTX 690 is clocked FASTER then the K5000 as the K5000 is designed to be used in server enclosures where thermal dissipation can become an issue. Hacking a GTX 690 gives you a faster K5000 then the stock one, just missing the additional RAM and ECC.

  4. Firstly it seems that the main reason the author took to doing this is that the card supported features in Windows that it did not support under Linux – hence a clear sign saying “Linux has crippled firmware!”

    I would say ‘Shame on you’ to Nvidia for not equally supporting the different OS, and I guess there is a fair amount of scrambling going on right now to work out what to do about this information now being public.

    So if I understand the article properly the driver (ie. on the PC) is using the PCI-ID to identify the card and enable features…. the next question has to be is can the Linux kernel subsystems rewrite/modify the PCI-ID on the fly so that the driver thinks the card is a Quadro (without the need to break out the soldering iron).

    Or maybe the binary blob can be patched to swap the PCI-IDs over…

    1. A wrapper could be written. Pass everything along as stated except the ID. If it works with this card then the wrapper would likely work for any similar problem. It would not surprise in the slightest if there already was one lingering in the darker and very poorly documented depths of github.

    2. ‘drivers/pci/probe.c’ contains line 1013

      dev_printk(KERN_DEBUG, &dev->dev, “[%04x:%04x] type %02x class %#08x\n”,
      dev->vendor, dev->device, dev->hdr_type, dev->class);

      Want to find out where ‘dev->device’ gets set? :-)

      I presume that it would have to be re-written (to Quadro) when first read, but changed back (to GeForce) on every access to the card, so that that the card can respond OK.

    3. Not “Linux has crippled firmware”. It’s “nVidia only released drivers for a super expensive version of video cards using the exact same GPU as the cheaper consumer version.”

      So without doing this hack, if you want a video card with that GPU you’re forced to lay down some big coin to get that card to use with your free operating system, which likely won’t use it any better than Windows does the less expensive version.

      nVidia has been doing this at least as far back as the GeForce 2. All the hack does is make the card say “I’m a Quadro!” instead of “I’m a GeForce!”. Gaming performance in many cased *slowed down* because Quadros are set to never drop rendering of anything where a GeForce will selectively not render things when there’s too much data being processed.

      For a game it doesn’t matter, a texture here or there not rendered is past quickly. For rendering a multi-million dollar movie, frame by frame, the rendering must be 100% because any glitches will be seen by (the studio hopes) millions of people and nitpicked by a large chunk of the audience.

      nVidia not writing the Linux driver to work with both the GeForce and Quadro settings is basically saying “F-U, Linux users. No affordable graphics for you!”

    1. This has been done since at least the 80’s.

      When you start production you are going to have some problems so you may not get full frequency or you may have a few blocks of memory damaged. No problem, just sell that chip as a cheaper version with less memory and lower frequency.

      Ok, now your production is up to full speed and you have solved most problems, all of a sudden almost 100% of your chips are full spec but you still have a large demand for the cheap versions. No problem, just disable some memory blocks and sell the chips as the cheaper ones.

      You aren’t losing money since the development is already done and it would be vastly more expensive to produce several different chips. You would however lose money if you dropped the price on all the chips to the lowest price, and you would lose customers if you didn’t supply the cheaper version.

      The problem here is that a “grade B” chip *might* be a fully functional “grade A” chip, but it might also be an actual broken chip and will crash if you try to run it as a full function counterpart. You can’t know if a hack like this will work without testing, and in a worst case scenario you may completely break the chip when you try to run it over specs.

      1. I remember being hit by that, We were using the smallest version of a dsp that was available in several different memory sizes , in reality they was all the same part with different prices and a different part numbers

        Everything worked fine until we started using millions of parts and it made sense for the
        manufacturer to make a new version that only had the smaller memory that was spec’ed

        and then everything crashed, we had accidentally used few memory locations that was in the memory that wasn’t supposed to be there but was when the part were all the same

      2. The 80s? I think it’s been done since the 70s. I read (I think in a copy of “Computer Lib/Dream Machines”) that there was a mainframe computer which was sold in two models, one with twice the memory of the other. A single wire would change the half-memory model to the full-memory one.
        (If I remember correctly. You have been warned.)

  5. It doesn’t matter whether you call it “firmware crippling” or “smart buisiness”, the bottom line is that I can move a few resistors around and get the equivelant of an $800 upgrade. Everyone else pays for the R&D, and I reap the benefits for free. Works for me.

    1. But you aren’t getting an $800 upgrade. It’s the same damn card.

      The only problem is that the Linux drivers for the card suck donkey balls, which they frankly do for every kind of GPU because X.org sucks so much and there are so few users that it doesn’t make sense for nVidia to develop proper drivers for desktop Linux on their consumer grade cards.

      It has nothing to do with intentionally crippling the card. The Quadro driver exists and works with full features because there’s paying customers who pay real $$$ to use Quadro cards on Linux workstations.

          1. it takes loads of work to make a linux driver thats reliable and has been stress tested for hours and hours and hours to prevent someones multi million dollar super computer from crashing half way threw simulation or to work with someone’s $300,000 peace of software flawlessly
            someone has to pay for this … as normal people dont ever do this they made a version of the card that does to make them pay for the extra R&D
            if you want a linux driver for your GTX690 wait 2 months and someone will make one as they always have done and always will

      1. The only difference is the strapping and RAM installed. If you read up a little on how the nouveau driver handles the straps you will see that some of them are used to configure the RAM type/size and enable/disable ECC. The core GK104 is physically identical, and is not binned because it is slower/less capable as the GTX 690 runs at higher clocks then the K5000 factory. Changing the device ID does not change the clocks as these are programmed into the EEPROM.

  6. Some one should start a site for “optimizing” hardware and software features on devices that are capable of more than the user can access.

    This seams to me to be a blatant ripoff that could back fire in the manufactures face.

    someone with the skills could buy these cards cheep Optimise’s then sell them for more money. similar the the Over clocked CPU’s problem from a few years back when people were buying low end PC’s OCing them and making money. The problem was they were not disclosing that they were OCed and they got fined/sued I don’t remember. so basicly disclose and sell.

    1. Like others have said, there’s no guarantee that your hardware is actually a higher-tier device that’s been kneecapped to fill the cheap part’s demand. It could be perfectly fine running the higher end features, or it could fall flat on its face. (Remember the Athlon II X3s, which were X4s with one core disabled? If you ‘unlocked’ the fourth core and it worked, you got a free upgrade. If it didn’t, you still got what you paid for. The large firms that usually pay extra for high-end hardware don’t want “if”s. They want guarantees.)

      Besides, that isn’t even the point of the article. This hack just spoofs the device ID so the drivers written for a fringe platform will run on a hardware configuration that isn’t tested by the developer. The limitation is in the drivers, not the card itself.

      1. The core GK104 is physically identical, and is not binned because it is slower/less capable as the GTX 690 runs at higher clocks then the K5000 factory. Changing the device ID does not change the clocks as these are programmed into the EEPROM. This is not spoofing the Device ID as the core is identical and is designed to run at these performance levels for the gaming market.

  7. I hack things, not quite like some of you do, but I do.
    I don’t publish and here’s why: when I find something that is valuable, I don’t want to lose it. I don’t write to the manufacturer and tell them they have holes, because I don’t want to lose what I’ve found, and they may release a patch to close what I put time into finding. Seems pretty dumb. If I don’t tell, and you find the same flaw and you don’t tell, their secret is safe sort of “security by obscurity” and the hack we’ve found we continue to benefit from. To relate to this Nvidia example, a hardware designer releases software for windows and mac which has a locked-down on the system of sorts and alot of people use the product, so writing for those platforms pays off. But then the linux niche whines, and now also has to learn and write for linux, for not as many people and since it is open source, they tend to be hackers, and tend to tear your code apart. If the hardware is simple, they clone your design and TELL EVERYONE they don’t have to buy it from you, and here’s how to mod the driver to work on clones, and how poorly protected your security against clones was.
    Screw linux.
    And screw publishing my secrets because I see what you do with other’s hard work.
    I know this is anti-hack-a-day thinking, but sometimes you should just STFU when your tampering with someones lively hood and income, otherwise why invest in R&D and product support if your work is going to be stolen AND your going to be criticized too.
    Isn’t there such thing as ethical hacking, to poo-poo this.
    The creaters are hardware engineers too, like all of you.
    You are stealing from your own.
    Anyone of you could be working for Nvidia, and this could be your work being circumvented here, and perhaps the closure of your department, or just your paycheque, and so much for starting a family, can’t afford it, again. Maybe next year, or the next.

        1. I”m just going to stop you right there. I’m a bit late to the conversation, but you need to know some things. Some of us grew out of software licenses a long time ago. Some of us stopped playing with over-priced, vulnerable OS’s and we are proud to be users that are in control of our machines. If you aren’t running open source, you are not in control. This community thrives on sharing. It’s the only reason this site exists. You seem to be here only to take, and that’s a damn shame. GLHF.

          1. If you aren’t running open source, you aren’t in control? LOL. WTF are you smoking? Do you honestly think or believe in those fairy tales that the FBI or that the goverment is watching over you while you’re using Windows?

            I’m using Windows an I AM in control. I know what I am doing and have been for years.

            So what were you saying again?

          2. You know, the fact that you don’t really know who I am just goes to show that you’re nothing more than a clueless and a mindless moron.

            Have a nice day sir.

          3. One day you will use and learn how to use Linux and realise how little control you really have. This has nothing to do with being watched over, etc… it is to do with the crap commercial companies pull by offering development libraries such as DirectX to lock software developers into using Microsoft products only, when OpenGL already existed and still today is as capable, if not more capable then DirectX.

            To give some background, I was a professional Windows developer for over 10 years and made the transition to Linux as the web expanded and it was the only way to get a decent performing hosting/scripting environment (IIS was and still is crap). My eyes were opened and I have NEVER gone back, the few times I have been forced to work under windows since then I have wanted to scratch my eyeballs out due to how limited it is.

            You want to do some custom modifications to windows such as mod the kernel to report a false device id to the system for debugging/hacking/modding, etc… good luck. Want to boot into a minimal environment for hosting, without a GUI wasting resources on a headless server? Want to control the parallel port from software? HA! this has been a PITA for developers as MS wont allow direct access to it without some kind of signed driver. Who remembers the CreateRemoteThread (Allows you to start a rogue thread in a third party program) API that should have NEVER existed that AFAIK Microsoft still have not removed?

            Microsoft prevent you from doing anything that could hurt their profit margins, look at this signed boot crap they brought in to “protect people from viruses”, that motherboard manufacturers were forced to implement to get the ‘Windows 8’ compatibility logo. Think long and hard about how this affects other operating systems, how much time has been wasted trying to organise signed kernels by the various distributors. And then, they have to be signed by Microsoft! For goodness sake people, they are trying to lock down the x86 platform so you can not run anything but windows, and people like you are letting them do it.

            So you are in control of what Microsoft lets you be in control of.. nothing more.

          4. LOL. You’re a complete and utter moron and out of your fucking mind.

            You think I don’t realize all this DirectX etc. crap is MS’es own crap? I’m FORCED to use it you dumbass. I’m a competitive gamer and need to use Windows.

            You don’t understand anything or know what I use my machine for, or know who I am, so you have no right to go: “LOL ZE NOOB WINDOWZ SUCKZ LINUZ FTW”. DOH DOH DOH.

          5. I am also a competitive gamer and I am also forced to use windows for this, and that is my point! You are NOT in control, when it comes to workstations Windows is a terrible platform if you need flexibility.

            I do not claim to know what you use your machine for, but perhaps you should learn a little about the technology before you bash on it.

          6. I quite clearly linked the comment, perhaps you are not bashing on open source, but you are clearly having a go at those in the community who know how restricting windows actually is.

            My response was not an attack on you but supposed to help you and those who read it understand that those who are familiar with windows and know very little of the open source world for whatever reason have never seen what is possible when you are not constrained by Windows. Anyone that thinks they are in control when they use a Windows system has not learnt how much control they can actually have and what they are missing out on.

            Also, neither am I saying that Linux is the solution, there is plenty of things about Linux I do not like also, but as a programmer I have the option to fix them or change them to work as I want them to work. For some projects I have resorted to bare metal programming simply because the overhead of Linux is too much for the task at hand (real time programming), and at times even gone back to pure ASM bare metal programming where high performance and critical timing is required.

            Use the right tool for the right job and you will be much happier in life.

          7. I do “use the right tool for the right job”.

            All I do is to surf the net, record metal music and play games on my machine, so Windows is way more than sufficient for everything I need.

            It’s just that you’re so simple and direct minded, you can’t actually expect someone with the name, “johndoe” to be OVER you.

            Doherz baby. Owned again.

      1. What a sorry excuse for a person, thinking you are better then everyone else because you have been to university. I will have you know I considered the fact that NVidia may close this off in a later version and while there is a selfish desire to keep it closed and private for my own use, I would rather expose NVidia for what they are doing to the community who supported them in their early days in the open source area. I own my own house, and run my own business, hardware hacking just happens to be a hobby.

        If it was made clear that the GTX 690 cant provide > 2 monitor support under Linux with hardware acceleration I would have bought the K5000, but they did not and as such I did not want to loose my $1000 investment in this card because NVidia are tight asses.

        When are people like you going to realise that the majority of hosting solutions, super computers, server farms and cloud computing configurations came out of the Linux community? They came from people like me who are not happy with the closed and limited and inflexible commercial offerings available.

        Grow up and get off your high horse.

    1. usually when people use the phrase “security through obscurity” they’re talking about something that didn’t work. Anyway, hackers share because they’re stoked on hacking stuff. What good is it to pull off a great hack if you don’t tell anyone. sounds like a lonely life.

      1. Ya know what, it has been !!!
        I’ve been doing electronics since grade 4 elementary school in the 70’s.TONS of science fairs !!
        ONE other kid was interested, but never would talk about it, everyone else who were not were loser jerks about it. Our local library consisted of NOTHING on the topic except batteries, lights and switches.
        Junior High, ONE guy, different guy. He won’t talk about it either. Only plays alone.
        High school, electronics program, a whole class room full of people, but only there because they wanted an “easy” credit. Nobody experiments or builds stuff, nobody does “what if…”, nobody cares about the topic.
        College, different date, different people, same story. No one experiments, or thinks outside the class. Think up and build a working pay-tv decoder, oh yeah, then they all take interest so they can copy your work, and then… nothing. No improvements, don’t want to know the theory, just help me tweak mine and see ya.
        90’s arrive, still no internet, just tel-net. We have BBS’s but it doesn’t compare as there is no structure. Just random, dial-up hobbiest, into owning, not modifying.
        It took months to get a BBS guy to give up a copy of a 6510 complier/decompiler after finding it, and he wasn’t even using it, he just “had it” from being a BBS upload place.
        We had surplus parts stores, but so hard to make such a random connection unless you basically live there. No datasheets for surplus. Still no micro controllers within the hobbiest reach.
        Seriously, the software and hardware engineering grads I see posting on (not just) here from this last generation have had it all handed to you. Yeah you do amazing things in many languages, even multi-platforms, but your education STARTED at an exponetially higher level with infinite resources and support that was only a ethernet connection away, so you SHOULD be “up there”. That put an enormous amount of time on your side when you had idle-time for thinking up cool stuff.
        Hell, you can even directly contact chip manufacturers directly !! And shopping & buying directly from china, most of what you “geniuses” do now there is no way you could do let alone afford without that critical link.
        Ah to be in university with the existance of search engines, computers with real power, unlimited pirate warez for all the compilers (others have written) you could want. Dare to dream of micro controllers, and everybody knows FFT like it is nothing.
        So when I see the “give it all away” mentality, SOME of what I see is you never had to struggle to get it, so of course it has so little value. I do however greatly acknowledge that by sharing, our collective resources become infinitely& immediately stronger, and I am greatful for the creation of the HACK-A-DAY site, but as you can see sharing didn’t work out for me in my past despite my best efforts, it kinda got violently sucked from my nature.
        But there’s no need to crap on me for it.

      2. Although there are people in the game console hacking scene that wish people would only talk openly about the already public exploits. Even if it can’t be used (directly) to play ‘backups’, Sony killed the ‘Other OS’ AKA Linux option in PS3 simply because someone figured out how to access the other core. It could be used to find security holes in newer updates by being able to look closer at the way the firmware works (without being able to play ‘backups’), and thus had to go. Yeah, wonderful how well that worked for Sony, hahaha.

    2. Well, offer value for the dollar instead of whining when someone figures out your stupid scheme. It’s not theft since you agreed to sell the same hardware at the cheaper price. The buyer simply figured out how to maximize the value of his purchase, possibly at the expense of his warranty. I don’t see what this has to do with linux.

      As far as ‘warez’ go, when companies put themselves in between someone and the knowledge they wish to have, it’s hard for me to sympathize. When that 16yo downloads visual studio, he’s doing it for hobby/learning. When he shows up at work, his company will have paid for the license for him to use it for-profit.

      The trick is to avoid the lamers. That’s always been part of the culture too. The whole ‘are you l33t’ nonsense was the stereotyping of that process. The lamers are weeded out.

  8. The manufacturing scenario probably goes something like this: buy a batch of components, etch a run of circuit boards, build a bunch of cards. Test the cards at insane-high-speed. Those that work, get labeled Quadro, and get a certain set of ID encoding resistors installed. Test the failures at consumer-ok-speed. The cards that pass get labeled GeForce, and get a different set of restistors soldered on. The remaining failures get recycled or trashed outright. Under that scenario (which is a common one in high volume manufacturing), tweaking the ID resistors to identify as the big badass is pretty much setting yourself up for instability, as the card was most likely tested and found NOT to work reliably at higher speed. So doing this hardware hack to get around nVidia’s .50(derriere) driver development is just asking for trouble.

    1. What trouble?

      He’s running some hinky Linux system, so what’s the worse that could happen – GIMP crashing more then usual?

      Good reverse engineering, but unlikely to be all that useful for anyone but the author.

  9. I look at this the same way as I look at a $/€300K tape library. You pay the initial 300K for the tape library with 4 tape drives enabled and access to use 150 tapes in the library. You pay an additional license fee to access the other 8 tape drives and another license fee for access the other 300 tape slots. Does it suck, yes. But you get a basic system that meets your current needs and can upgrade it to access more capacity at a later date (if it does not become obsolete before then). For the manufacturer all of the R&D costs are recouped and a basic profit for the number of units that they will ship at this price point. All of the additional licensing fees (paid mostly by mid/high end customers) is gravy to keep the shareholders very happy.

    This practice has been around for a while in the mid-high end computer market. You can buy systems that ship with 64 physical CPU’s installed at the factory and pay a license fee to enable them so that the OS can see and use the hardware.

  10. OK OK
    unless someone runs a benchmark to prove that moving these 2 resistors makes it faster im going to conclude that this does nothing more than make the card report a different PCIE ID opening up nvidias Linux drivers
    and does so in the most risky and pain in the ass way possible

    1. The Quadro drivers have traditionally been worse for gaming than the regular GeForce drivers as they’re designed for accuracy over performance. You’re not going to care if a few triangles are slightly out of alignment when you’re playing your game but you will care if you’re trying to do actual work with it.

    2. This does NOT give a performance increase for gaming, it enables features in the card. Nor does it give a decrease as the Quadro drivers are THE SAME as the GeForce drivers, the only difference is the feature set that the driver allows and reports. Why would they develop a separate driver that is 99% the same as the generic driver when it costs less to just have the generic driver detect the card?

      Simple way to confirm this… Linux loads a single binary blob for EVERY card, Quadro, Tesla, and GeForce.

  11. And nobody asked why there is asymmetric support for Windows and Linux?
    Oh well, I’ll tell you anyway. The “professional” graphics card is part of the cost of the “professional design software” or “super workstation”.
    On Windows, it’s easy to make the software check with the driver if the “tax” has been paid in the form of the high-end card. But on Linux, you can’t do that; you can’t rely on what the system tells you, as the open-source code is easy to modify to lie to you. So, they made a workaround by making the “professional software” require three screens. If the machine has three screens, it’s a legitimate “super workstation”; crude DRM has won.
    And Linux-users are typically poor, right? So, they wouldn’t notice that they miss anything, because none of them can afford three screens anyway, right? …right? …Oopsie.

  12. Nothing new under the sun. Anyone remember the Intel 80486SX? An entry-level version of the 80486DX that was actually MORE expensive to manufacture: they used the exact same silicon, then burnt some of the FPU wiring away. The “upgrade chip” i487SX was then actually another full DX. Now that’s what I’d call a ripoff.

    So THANK YOU NVIDIA for not crippling the silicon and leaving the upgrade path open for those of us who feel like fiddling with hardware.

  13. To clear it up foot those who don’t understand, making one device identify as another doesn’t make them the same. We all remember the trick CF cards that came out of China, which had a low capacity but we’re identifying themselves as high capacity. Those cards didn’t behave the same because the hardware was different! Legatos another example would be industrial rated components, which function the same but the quality and tolerances are better, so you part for it.

    1. The cards use the same hardware. You pay for the ‘100 man development’ of the drivers for the pro range according to AMD agents. The driver/bios allow the pro ranges to be better optimised for various CAD programs and the like… hence why the normal ‘gaming’cards perform like shite compared to a quadro/firegl for these applications.

      1. The difference is the OpenGL and DirectX extensions that are enabled for use by the rendering applicaiton. Also DivX VDPAU support becomes available when doing this. The physical GPU does not care how it is used, it has all these features available, it is up to the driver to restrict what is possible.

        1. Ah, and this is why FPGA-like cards aren’t the way the drivers work. Locked-down binaries and probably soon-to-be e-fuses. If you could access the GPGPU’s the same way a FPGA card works, you’d not be able to sell el-cheapo cards. The way it seems to work now is that the driver provides a type of hardware-abstraction layer (HAL) and the application makes a request to run a job.

          They have a lot of purchased/self-made ‘IP’ in more modern equivalents to programmable logic devices also, so it makes sense that the binaries are closed on GPU’s. You also never know what patent someone could have on the most trivial things so I imagine it helps a bit in legal protection as well. If it wasn’t for stuff like the patent trolls, I imagine they’d just sell the cards with chips that have fuses blown internally for specific features or lack certain support chips such as a 9th-bit DRAM. Then again, do they even manufacture the chips themselves anymore?

  14. Crippling hardware and software works and allows companies to easily offset R&D costs. Without it, instead of $100 for a board with the most popular features and $900 for one with more specialized features, we wind up with a $400 board just because it has a few extra features that most individuals don’t even need or want.

    1. You could hack the driver, but then you are going down the path of reverse engineering and hacking software, which is much more dubious and could get you in trouble with NVidia’s lawyers. Also you would have to hack both the windows and linux drivers (in my case).. It took me an afternoon to find these straps, vs days/weeks of reverse engineering, you choose where the time is better spent?

  15. All you geniouses are completely forgetting the fact of how HARD and CAUTIOUS to pull this off using an iron.

    You need a soldering gun to do this while not shitting in your pants.

    This isn’t bread house bread.

      1. Yes, but it still doesn’t change the fact that there’s a HIGH chance of a fuck-up by doing something this small using an iron.

        The part that needs to be soldered is very small and needs precision. Also, the 590 used to have a 10-layer PCB, so I expect the 690 to be almost as much, which means, hard and hard to get through with an iron.

        On single or dual layer PCB’s, anybody can pull pretty much anything with an iron. But on something like a GPU and while messing with things as small as resistors, with many and multiple layers, I would NOT suggest Average Joe to do this.

          1. I know people are doing this kind of stuff for volt mods, but, it IS NOT an easy job period.

            It is what it is. It really isn’t as easy as some make it out to be.

            I know of people that fucked up their PSU’s with a soldering iron, Average Joe can really mess things up and this really isn’t a simple job for one.

          2. Well… you’re right. I was referring to the commenters and not you.

            And labs generally have soldering machines that drop off big solders anyway, they aren’t really suited for a job like this.

            Though, then again, this is too wide scaled of a subject to discuss on.

        1. Depends on you definition of average joe, it looks like 0201 resistors they are small but people solder them by hand all the time
          And for something like a small resistor 10 or 2 layers doesn’t make difference
          If you were talking something like a big capacitor connnected to multiple groundplanes with no thermal relief then it matters

          1. You’re talking about soldering a tiny resistor using an iron.

            You do at the very least need good skills/experience or power to easily pull this off.

            Or else this, as I said before and will say again, IS NOT that simple of a job.

            You’re talking about putting a card that’s worth hundreds of dollars on the stake of a single, tiny resistor.

            Even a single resistor broken off off a card can render it useless. I have more first hand experience with GPU’s than most do given I’ve easily spent 15-20 grand on PC hardware, and am completely talking from first hand experience.

          2. Using the same analogy, I have spent 30-40K on cars, have changed various things on/in them, but it does not mean I am a mechanic. This comes down to how much you are willing to loose if you screw it up. Even the most skilled engineer with XYZ qualifications could botch this up, and then some lucky un-trained monkey could come along and do a good enough job to make it work. Sure, the monkey’s soldering would be crap and he might have used his mums clothes iron to do the work, but at the end of the day, what does it matter?

            EE is a skill, changing a few small SMD resistors, with a decent quality iron (~$30 Hakko clone), some SMD tweezers and a steady hand, can be done by anyone. Just practice on some sacrificial devices (ie, old faulty or deprecated cards or motherboards) first to get the hang of it, and a feel for how much heat you will need to remove the part.

            Stop trying to make out that this requires a degree in soldering, just some practice and decent equipment is all that is required, this is how I learnt and how most good EEs learnt also.

          3. LOL you have got to be kidding me.

            What does it matter? What the hell are you smoking? You DO realize the 690 is a 1000 dollar card, right?

            I didn’t say in no line you need a soldering degree to pull this off.

            Whatever.

            I’m done here. You’re fucklng out of your mind. There absolutely is no reason to argue with someone that doesn’t see a fucking whole GRAND significant money. DOH AND DOH. RIGHT ON YOUR FACE.

          4. Wow, some people can not take some constructive criticism. I never said that $1000 was not much cash to me. Look at these idiots that spend 10K on a gaming rig just so they can have a faster computer even though nothing on the market can use the performance they have, these guys have cash to waste.

            For me it was about saving $1000 as I had invested that $1000 in a card that was not useful to me in my professional workstation due to misleading advertising. So I risked my card ($1000) and upgraded to a card worth around $1800-$2000. When my options are, put up with the 690 which cant do more then my old crappy two video cards could do before, or fix the problem, there was nothing to loose but my $1000 investment in the card if I did nothing.

          5. It’s spelled “lose”. You misspelled “lose” as “loose” for how many times now?

            Constructive criticism? Just put whatever the fuck you’re smoking down.

            I’m done here.

          6. So sorry that you feel that way, you got pointed out for your misspellings earlier and now that you have lost your self control have to resort to the same childish behaviour, how sad.

          7. Yeah, because I made a single mistake in a word, I don’t know how to spell right.

            Because I said that I rushed while making that comment, I don’t know how to spell, right?

            You need help. Go see a life coach or something.

          8. I think you need to settle down and re-read things from an objective point of view. It is sad that you have restored to insults and picking on misspellings rather then acting like an adult and debating this as a civilised person.

      1. Really?

        Hey Captain Stupid, didn’t know that! Thanks man! Thanks a lot for the help over there! You don’t seem to notice that I RUSHED while I was making that comment? Is it that I don’t know how to spell correctly, or that I didn’t give attention maybe? Or is it that I am so over you, I don’t even really have to try? Oh well.

        You can suck my 9 inch 690 all the way in as far as I am concerned, pal.

  16. Note: By tablet, I meant the kind that come in bottles. Although the electronic kinds do most of the things people use computers for. ;)

    I’d be shocked if he didn’t get banned for just plain hostility.

Leave a Reply to spacevsCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.