Open-Source Qualcomm GPU Driver Published 79
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."
a clarification (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
Re:a clarification (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 [slashdot.org]
Re:a clarification (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.
Re: (Score:1)
Fascinating. Posts like that are why I read slashdot.
Re: (Score:1)
His fucked what?
Apart from that, you sound like you have no clue what you're talking about.
Re: (Score:3)
Maybe if the SoC on the Raspberry Pi was from Qualcomm and not Broadcom.
Re:Raspberry Pi (Score:4, Informative)
Raspberry Pi has a Broadcom GPU, not Qualcomm.
Re:Raspberry Pi (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.
Re:Raspberry Pi (Score:5, 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 [fsf.org]
Re: (Score:2)
(joke flies over head, smashed into wall, leaves giant grease spot in paint)
Re: (Score:2)
Re: (Score:3)
The first useful first post!
Re:a clarification (Score:5, 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?
Re: (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.
Re: (Score:2)
Reverse engineering is illegal in several countries. Law has little to do with morals.
Re: (Score:1)
While in other countries it's specifically allowed to do for compatibility, even if your licence forbids to (basically the point in license is illegal and ineffective).
Why don't you agree? (Score:5, Interesting)
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.
Re: (Score:3)
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.
Re: (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
Re: (Score:2)
well, the risk to qualcomm is that he might bump into something that's claimed to be done in hw but is faked in sw in the drivers..
Re: (Score:2)
If so, they richly deserve to be outed. It would be really hard to argue in court that someone should pay you because they exposed your fraud to the world.
Fortunately, that doesn't seem to be the case here.
Re:a clarification (Score:4, Informative)
Re: (Score:3)
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.
Re:a clarification (Score:4, Insightful)
Re: (Score:1)
Or he could be a nice guy and BSDL it so everyone can use it. Freedom is not freedom. Deal with it.
Re: (Score:1)
Screw you and the GPLv3 horse you rode in on; those of us on other operating systems or in use cases where GPL is verboten would like our BSD driver now thank you very much.
Re: (Score:2)
Thank you. Actually, I don't happen to be a GPL fanatic. I normally agree that other licenses are more suitable, and laud companies that use those.
In this case, however, you have an employee of TI working to create an open source driver for a competitor's product - Qualcomm. In no way does that benefit TI, even though he's working on his own time. Now, in the event that Qualcomm takes that driver that he wrote and made it a part of their firmwhere - be it modified or not - they essentially would have
Re: (Score:2)
Thank You (Score:2)
Thank you for this bro. Now I am one step closer to having linux working on my HTC Sensation. Android is such garbage....
Re: (Score:2)
Don't start in with that bullshit. You know what I meant. Android is NOT a traditional UNIX-workalike Linux distro.
Re: (Score:2)
Your work is honestly quite inspiring; I would never have imagined that a single person could reverse engineer the graphics driver like that. Thank you so much for your contribution to the FOSS community. :)
correction: (Score:3, Funny)
Re: (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.
Re:correction: (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
Re: (Score:1)
I like to post as Anonymous Coward as much as the next guy (probably more so), but if you're going to post about your project and reply to questions in the thread, could you create an ID (if only for this discussion)? It would make it much, much easier to track what you are saying (and separate it from people who might try to impersonate you).
Anyway, thanks for the work on the graphics driver. This is an area that sorely needs developers. Every little bit helps. I hope your employer understands the diff
Re: (Score:1)
Re: (Score:2)
I figured it out :-) What I find hilarious is that my original post was actually modded down, probably due to the strong reaction of the AC.
Re: (Score:2)
Perhaps someone over at Qualcomm could be talked into reverse engineering it?
But seriously, for your work on this GPU driver, thank you.
Re:correction: (Score:4, 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.
Re: (Score:2)
which will be unfortunate, but i also predict this. But im sure he will find a place to land, now that he is well known.
Re: (Score:2)
Phoronix exists since 2004 and has been posted on /. dozens of times at least since 2008.
Quantum computing....unfortunately not (Score:1)
I misread the headline as "Open-Source Quantum CPU Driver Published", and got very excited - quantum computing is here! - and then very confused as to how drivers could be written for hardware that doesn't exist yet.
I guess if Ada Lovelace could write a program for Babbage's Difference Engine without the hardware, maybe the open-source hardware folks could write quantum drivers.
Re: (Score:3)
...maybe the open-source hardware folks could write quantum drivers.
Is this a Schrodinger's cat type thing?
Re: (Score:2)
Well, we certainly can't disprove that the putative drivers are or are not drivers until AFTER the quantum computer exists. Therefore, any old bag of bits _could_ be functional quantum computer drivers, and we won't know until we try to use said bits as drivers. I guess one interpretation of that is that all possible bit sequences simultaneously are and are not drivers for this hypothetical hardware, and they don't become definitely-drivers or definitely-not-drivers until we "open the box" and try to use
Re: (Score:2)
TouchPad Ubuntu! (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!
Re: (Score:1)
Looks promising, I managed to compile the userspace driver and attempt loading it, it fails to load DRM though. Found out that DRM wasn't enabled in my kernel, so hopefully I can recompile my kernel to work correctly.
ATI (Score:2)
Just wondering, since the Adreno was originally developed by ATI might there be any architectural simularities to the Radeon?
If so, any chance of sharing code with the Radeon driver?
Re: (Score:1)
Re: (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.
2D only? (Score:1)
Sounds like this is a 2D only driver. Is the driver actually hitting the 3D GPU, or is it just hitting the 2D core? The 2D core will be much simpler then te 3D core.