Slashdot Mirror


Open-Source Qualcomm GPU Driver Published

An anonymous reader writes "Not being content with the state of open source graphics drivers for Linux, a developer working for Texas Instruments has reverse-engineered his competitor's (Qualcomm) driver and written an open-source Snapdragon driver. With being tainted by legal documents at Texas Instruments, the developer, who is also involved with Linaro, had no other choice but to work on an open source graphics driver for his competitor in his free time. The open source Qualcomm Snapdragon/Adreno driver is called Freedreno."

23 of 79 comments (clear)

  1. a clarification by Anonymous Coward · · Score: 5, Informative

    fyi, this was done on my own time.. this is not sponsored/endorsed by TI.. please ready my blog post for my motivation:
    http://bloggingthemonkey.blogspot.com/2012/04/fighting-back-against-binary-blobs.html

    BR,
    -R

    1. Re:a clarification by kurthr · · Score: 5, Interesting

      Since Slashdot previously reported that Qualcom has promised to "Kill all proprietary drivers for good", this seems like the right start :)
      http://developers.slashdot.org/story/12/03/29/1650208/qualcomm-calls-to-kill-all-proprietary-drivers-for-good

    2. Re:a clarification by Anonymous Coward · · Score: 4, Informative

      Alas, that was Qualcomm atheros. I suspect the main baseband and app processor group wouldn't be as enthusiastic about open sourcing their drivers. Which is unfortunate as their drivers are pretty bad compared to their competition in terms of ALU utilization and therefore, performance.

    3. Re:a clarification by shibashaba · · Score: 2

      The first useful first post!

      --
      ---------- Open Source is capitalism applied to IP.
    4. Re:a clarification by unixisc · · Score: 3, Insightful

      Now put it under GPL3, so that nobody would be able to incorporate it and withold any enhancements from others, particularly since it doesn't belong to the hardware owners. This is one of those rare cases where GPL3 is the right solution

    5. Re:a clarification by unixisc · · Score: 4, Insightful

      I'm not an open source zealot, but I don't see anything unethical in what he did.

      Anyone (w/ the expertise) could have taken the documentation on Qualcomm's snapdragon from their datasheets, and written a driver based on that to simulate its functionality. How is that cheating? It would only be cheating if he had somehow gotten hold of Qualcomm's original code and splashed it all over the internet. But what he did was something that anybody could have done - it ain't cheating if you figure out how on your own. Qualcomm's only case against him is if they have patents that he (accidentally) violated while writing those drivers. Otherwise, what he did was an independent piece of work, which he can release under any license.

      Okay, he's written open source drivers for his competitor, but is TI's own driver open source, or would someone outside TI have to do the same thing to them?

    6. Re:a clarification by Anonymous Coward · · Score: 3, Insightful

      Is this the first time you have come across reverse engineering? It does not involve copying the work of others, like the Chinese are being accused of. Reverse engineering is not an illegal, or even immoral, practice.

    7. Re:a clarification by TheRaven64 · · Score: 3, Informative

      This is more or less the same technique used by the open source nVidia drivers. The important thing is that he is treating the blob as a black box. He feeds it certain inputs and looks at what it outputs. This lets him work out roughly what the blob is doing, but not how it is doing it. His implementation should do roughly the same thing as the blob, but may do it in a very different way.

      --
      I am TheRaven on Soylent News
    8. Re:a clarification by SilentMobius · · Score: 2

      Digging in the _kernel_ I.E. in existing open-source code to figure out the interface, and using a shim to intercept system calls This is using the binary blob as a black box, in no way has the driver been decompiled nor abused in any way.

      This is the correct way to implement an open-source driver. I think you have a broken understanding of what's going on here.

      --
      Loop, twist and loop again.
  2. correction: by Anonymous Coward · · Score: 3, Funny

    former TI Developer.

    1. Re:correction: by Anonymous Coward · · Score: 3, Informative

      I think my company is going to hire if he is fired or decides to leave. He is exactly the kind of individual we are after being a very open company.

    2. Re:correction: by Anonymous Coward · · Score: 5, Informative

      note: I did not break any NDA's.. or violate any licenses that I agreed to, etc. This is the reason that I cannot work on an open source driver for the IMG GPU in OMAP devices (which I'd love to do, but am prevented by NDA). Trust me, I'd love nothing more than to be working on an open source graphics driver for OMAP.. but if I did, *that* would be a story.

      BR,
      -R

    3. Re:correction: by unixisc · · Score: 3, Insightful

      How would he have violated any NDA's?

      TI and Qualcomm are competitors here. He (probably) took a Qualcomm datasheet - freely available online on their website - and using that and his own knowledge of drivers (since he presumably wrote them for TI), he wrote drivers totally independently of Qualcomm. He then presumably released it under an FOSS license. All of which is not just perfectly legal (barring any patent violations) but also completely ethical. TI and Qualcomm don't need to have anything to do w/ each other. Only if he used proprietary QCOM information obtained by TI under an NDA to prepare this driver would he be opening TI up to lawsuits. But from the description of what's been done, it's not obvious that he did.

      If he did this on his own time and at home, not using any TI resources, I don't see how he's exposed TI to any lawsuits.

  3. Re:Raspberry Pi by Microlith · · Score: 2

    Maybe if the SoC on the Raspberry Pi was from Qualcomm and not Broadcom.

  4. Re:Raspberry Pi by Narishma · · Score: 3, Informative

    Raspberry Pi has a Broadcom GPU, not Qualcomm.

    --
    Mada mada dane.
  5. Re:Raspberry Pi by neokushan · · Score: 5, Funny

    I don't think it's possible to get RMS's stamp of approval on anything. You still have to buy a Raspberry Pi from someone, which means you have to use a web browser, probably with cookies enabled and enter in all sorts of personal information - like a shipping address.

    RMS wouldn't have it.

    --
    +1 IDisagreeSoHeMustBeATrollOrAnAstroturferOrAShill
  6. Re:Raspberry Pi by gQuigs · · Score: 4, Informative

    That's bull.

    RMS wouldn't approve the Rasperry Pi because it needs the binary blob to boot. (I think regardless of this particular reverse engineering). Yes, RMS pushs for the most free computer he can get.

    Here are what the FSF actually uses (they install coreboot themselves when needed, btw), and they do actually exist:
    https://www.fsf.org/resources/hw/systems

  7. Re:Quantum computing....unfortunately not by user32.ExitWindowsEx · · Score: 2

    ...maybe the open-source hardware folks could write quantum drivers.

    Is this a Schrodinger's cat type thing?

    --
    "Evil will always triumph because good is dumb." -- Dark Helmet
  8. TouchPad Ubuntu! by CalcProgrammer1 · · Score: 2

    Awesome! I really need to find time to work on TouchPad Ubuntu again! If this works, it will make Ubuntu a ton more useful!

  9. Why don't you agree? by dutchwhizzman · · Score: 5, Interesting

    Why don't you agree with it? First of all, he did nothing illegal. This is how binary software gets reversed. There is a copyright on the code, but not on the ideas inside of it (you can't patent an idea). There is no copyright on the hardware he's violating in any way. He merely copied it's function, not the actual code itself. Second of all, Qualcomm will not sell a single piece of hardware less than what they were already selling. If anything, they'll be selling more because there's a better driver for it now. Third of all, Qualcomm will now have an opportunity to save money because they only have to help support the freeware driver and they can bin their own.

    The only spicy thing about this whole deal is that he is not just a guy that does this for a hobby, but he does the exact same thing for a Qualcomm competitor when he's on the clock. Maybe his employer will think he benefited a competitor in his free time, but firing him for it will mean that they are admitting that open source drivers are better and they will admit to their own failure by not providing their own. They are in a catch 22 on this. Fire him and admit they are doing business wrong, which the shareholders and investors won't like, or just leave him be and decide on their own if they want to put code for their GPU drivers in open source. I think he's safe, or will at least have a good career at some other company that is willing to hire him for his skills.

    --
    I was promised a flying car. Where is my flying car?
    1. Re:Why don't you agree? by olau · · Score: 2

      Plus he now has more experience doing this kind of stuff, and has shown he can be motivated without getting paid lots of money. Sounds like an employee you want to keep.

    2. Re:Why don't you agree? by codemonkeyrob · · Score: 2

      two quick notes:

      Since qualcomm doesn't really support anything other than android on their devices, this is mainly useful for the hobbiest linux community who wants to put debian / ubuntu / some other gnu/linux distro on their phone/tablet.

      TI is actually very good about releasing open source drivers and userspace for their devices. This is why I love TI and OMAP. In the area of GPU, it is actually IMGtech (who TI buys the GPU IP from) that blocks an open source driver.

      BR,
      -R

  10. Re:ATI by _DangerousDwarf · · Score: 2

    The GPU has very little (if anything) to do with the Bitboys tech (oh, to be in 1999 again).

    The 2D core, is somewhat related to the Bitboy tech if I remember correctly.