Jolla Ports Wayland To Android GPU Drivers 90
An anonymous reader writes "A Jolla Sailfish OS engineer has ported Wayland to run on Android GPU drivers. The implementation uses libhybis with the Android driver so that the rest of the operating system can be a conventional glibc-based Linux operating system, such as Mer / Sailfish OS. The code is to be LGPL licensed. The reported reasoning for making Wayland support Android GPU drivers was difficulty in ODM vendors not wishing to offer driver support for platforms aside from Android."
Profitz (Score:2)
The reported reasoning for making Wayland support Android GPU drivers was difficulty in ODM vendors not wishing to offer driver support for platforms aside from Android."
Why support yesterday's phone when you can just tell your users to buy tomorrow's? This kind of progressive thinking hurts profits. Profits are people. Therefore, you should be arrested. :/
Re: (Score:2)
Re:Eh? (Score:5, Informative)
Jolla is a bunch of x-Nokia engineers continuing the work Nokia was doing on MeeGo. The name of their version of MeeGo is Sailfish. Wayland is a next generation display manager similar to Aqua on Mac that is currently looking to replace some of X11's functionality. Jolla ported the Android drivers over to Wayland so that Sailfish can run on GPUs designed for Android. This allows Jolla to buy off the shelf (cheap) GPUs and run Sailfish on it i.e. keep hardware parts costs down.
The use of inexpensive hardware means that Jolla is not going to be only at higher price points. They are producing a mainstream phone and there had been debate about that. This is important because we now for sure that Sailfish is going with Wayland unlike MeeGo which used a more primitive direct system.
In short
a) Wayland is cool
b) Sailfish is cool
c) Jolla is cool
So all around a classic /. news for nerds story.
Sailfish (Score:3)
Sailfish runs Android apps and has a better interface. I could see Jolla being bought by Motorola or HTC or Sony as a way to get back into the game against Samsung. I could also see Samsung buying them if Tizen doesn't work out for Samsung.
If I had to guess 25% Sailfish is picked up by a mainstream brand by 2018.
Re: (Score:1)
Sailfish doesn't run Android apps. It runs Qt-based apps (KDE apps). It now can run them on Android hardware.
Re:Sailfish (Score:5, Informative)
Re: (Score:2)
As preflex pointed out, yes Sailfish does run Android as well as several forms of Qt apps.
Re: (Score:2)
Sailfish runs Android apps and has a better interface. I could see Jolla being bought by Motorola or HTC or Sony as a way to get back into the game against Samsung.
Why would Google (Motorola) buy them? I think someone has missed an important development.
Re: (Score:2)
Why would Google (Motorola) buy them? I think someone has missed an important development.
Good point, that's a different situation. I wasn't think about Google issue.
Re: (Score:1)
Thank you my man. Yes, I could have googled that information (actually I did after posting), but I wanted to make the point about how incomprehensible the summary was as posted. I'm pretty sure I'm not the only one who thinks Jolla, Sailfish and Wayland aren't exactly household names.
Re: (Score:2)
I agree. If you aren't following both phones and LInux that summary had undefined vocab. And even if someone understood what the works meant it wasn't clear why the port mattered.
Re: (Score:2)
Wayland is pretty heavily represented here, but Jolla and sailfish I remember only seeing once, and it was a while ago, and I didn't remember.
but, I personally like this site because I don't need to wade through parenthetocals while reading summaries of tech stories, I would of benefited from context here, but It's the price I pay for all the countless times I benefit from lack of such.
Re:Eh? (Score:5, Interesting)
And
d) They just made Mir even more redundant.
The only thing Mir had going to it was that it was Wayland with Android drivers.
Mir (Score:3)
Agreed. Jolla is way ahead of Canonical. And their people know a lot more about the phone business. I'd need really good odds to put money on Mir in that fight.
Re:Eh? (Score:4, Funny)
a) Wayland is cool /. news for nerds story.
b) Sailfish is cool
c) Jolla is cool
So all around a classic
I really only have one question... why are all these open source projects named after ex-girlfriends?
Re:Eh? (Score:5, Funny)
While the last two clearly sound like stripper/porno names, like "candi", .....
Seriously, you had an ex girlfriend named... Wayland?
Did "she" have stubble too?
Re:Eh? (Score:5, Informative)
Seriously, you had an ex girlfriend named... Wayland? Did "she" have stubble too?
Google for "Susan Wayland" sometime, when you're not at work. When you're done wanking, come back and tell me about that 'stubble' she has.
Re: (Score:3)
Sadly, as an asexual I don't wank off to anything..
My first reaction? "Wow, she could take an eye out with those." Followed by "actually, it looks like she has a butt on her chest."
Overall, she does pull off the skin tight latex fettish look quite nicely though.
Still, in regards to "Wayland", the other names are all first names, while in this case, it's a last name. As a first name "Wayland" is usually used for males. Hence the reference.
(Also, unlikely that anyone here that isn't really a CEO posting as A
Re: (Score:2)
You misunderstand,
I said "sadly", because wanking off is what is considered to be normal, thus my lack of impulse to do so is intrinsically "abnormal".
It isn't that I hold regret about this, merely that being of a sexuality type that is often considered to be abnormal has certain undesirable social consequences, which is what I find sad.
I simply have no sexual reaction to such imagery. This can lead to akward social situations. That is what is meant by "sadly."
Re: (Score:3)
While the last two clearly sound like stripper/porno names, like "candi", .....
Wait what? Sailfish is now a stripper/porno name? I've clearly been out of the loop for too long. Out of interest does she work with Marlin?
Re:Eh? (Score:4, Funny)
Ummm... OK.
Re: (Score:3)
(Groucho marx voice)
"Ain't nuttin wrong with that tuna, I'l say!"
[Too easy. Sorry.]
Re: (Score:1)
Medusa is cool too. Don't be a bitch and forget about Medusa.
Correction (Score:2)
Correction:
They ported (wrote a new backend for) Wayland to sit atop Android drivers (which will sit atop Android hardware).
Your conclusions are right: Linux apps (on toolkits with Wayland ports) can now run on this.
This has nothing to do with running Android apps. Though getting a great display manager on Android hardware is a good first step if that's where you're going. You'd still need the whole Android subsystem with adapters (AudioFlinger APIs in Alsa or whatever sound subsystem they use, SurfaceFling
Re: (Score:2)
I agree this is about Android hardware.
To the best of my knowledge Sailfish already has the Android runtime subsystem same as BB10, I think it just runs them full screen only. But these are independent projects.
Re: (Score:3)
I think the graphics were handled by the Qt framebuffer driver. Obviously it could run X11, the way you can on an Mac, but that's different than saying X11 was the primary display system.
Re: (Score:1)
Re: (Score:2)
Do you have a link for that?
Re: (Score:2)
~ $ ps -A | grep Xorg
553 root 244:41
17005 user 0:00 grep Xorg
~ $ dpkg -l | grep xserver-xorg
ii xserver-xorg-core 2:1.9.5-meego2121+0m8
Re: (Score:2)
You see the xserver-xorg-video-fbdev. That's the X11 framebuffer device. Typically it used to emulate X11 onto a device that doesn't support it. This is how for example X11 works on Aqua.
I'm not an expert on X11 and this is going to go over my head rather quickly but I think your listing is proving the opposite of what you think it is proving.
Re: (Score:2)
Re: (Score:3)
Exactly you are running X11 against a framebuffer. Which means X11 is writing to memory and someone else is handling putting that on the screen.
Re:Eh? (Score:5, Informative)
Wayland is an alternative windowing system for *nix OSes; a counterpart to Xorg, Xfree86, X11, and pals. While the others are all based on the original X windowing system, Wayland is simply different in that respect.
The story is about successfully porting the Wayland windowing system to be able to work with android flavored GPU drivers, presumably because many SoC makers only target Android as a platform.
Why?
Suppose you want to build a custom *nix flavored tablet distro to run on these smexxy new atom and arm cpus hitting the market, and the SoC solutions look attractive. "Oh noez!" You shout in exasperation "they won't gives me duh sourcez codez! I cannuh compile native kernal driverz an shitz!"
With this hybrid mashup, this port of Wayland can use the vendor created android drivers out of the box, making the tight fisted "no, our precious can't be shared! Bad Linuxesss.. Bad!" Behavior coming from nVidia and Broadcom in respect to this issue, much less of a showstopper, and more of just a petty annoyance.
Re: (Score:2, Insightful)
Well, just from the summary it says they ported Wayland to run on Android GPU drivers, so I assume that the point is not to run Wayland on Android but to use Android's GPU drivers for Sailfish OS. That would make sense because trying to persuade hardware vendors to make a whole new driver branch for a yet-unproven OS is not something most developers would look forward to. At least that's just my impression - I'm off now to go read the fine article.
Re: (Score:3)
To run a C++ (native) app on Android hardware (because that hardware is cheap to buy) supported by only closed drivers:
- Using Android's SurfaceFlinger API means your apps use Dalvik, fail.
- SurfaceFlinger is a bit basic to extend.
- X11 isn't getting ported, Difficult?
- Wayland shows more promise, (and sends fewer network packets with FreeRDP than X forwarding).
- Ubuntu Mir is trying something similar.
Then write an X11 server in Java (Score:2)
Using Android's SurfaceFlinger API means your apps use Dalvik [...] X11 isn't getting ported
Unless your X11 server uses Dalvik. This exists [google.com].
Re: (Score:2)
X11 couldn't possibly run this GUI: http://www.youtube.com/watch?v=a-lVkBCUrAY [youtube.com]
X11 does not support touch. X11 does not support theme based icon recoloring.
X11 does not support 1/4 sizing screens
etc..
Re: (Score:3)
X11 supports touch [x.org], as does Wayland of course.
The amazing GUI you saw in that video is built on Qt, and can be run on any platform supported by it with some minimal effort.
"theme based icon recoloring" is implemented in the GUI toolkits.
"1/4 sizing screens" is a job for the compositor, in either system.
The biggest user-visible difference between Wayland and X11 will be tear-free display in all circumstances, provided the application's developer has half a clue.
The biggest differences for developers will be
Come on - we are not stupid (Score:2)
Re: (Score:2)
I haven't looked at the first link (it's a bit rude for people to make points with videos which could be a link to something NSFW for all I know)
The link is youtube it is censored.
As for Enlightenment once Tizen which uses X11 gets those features working then it is fair to say Enlightenment supports them. Supporting them on a desktop ain't the same thing, desktops don't have to use hardware which is power efficient.
As for the Enlightenment pager that's new to me. Whose pager are you talking about?
Re: (Score:2)
Just like the last effort where you tried to fool people with a pointless block diagram and just
Re: (Score:2)
I think it is a pretty easy question. Whose pager. Who made this supposed pager?
And the arguments over Wayland have always been over future directions. As for X11 sucking. If X11 was good there wouldn't be a Wayland project in the first place. There is nothing childish about it. X11 failed at delivering a system for Linux comparable to what exists on Windows and Mac. X11 failed at delivering a system for phones. At the thing everyone claims X11 is designed to do really well, remote applications it al
Re: (Score:2)
As I tried to point out above, Raster's pager in the Enlightenment window manager version 0.16 (or earlier) in 1995-96. You should be familiar with Raster if you know anything at all about Wayland since he's done a major widget set for it.
I've got it on my Nokia N900, it's on Kindles - there may be better for such situations but it has certainly delivered so that's yet another example
Re: (Score:2)
As I tried to point out above, Raster's pager in the Enlightenment window manager version 0.16 (or earlier) in 1995-96
Oh I see you aren't talking about an actual GUI pager but something for Englightenment. Well I don't know much about Enlightenment but what I do know is they have tied themselves to Tizen continuing the Framebuffer approach of MeeGo. It has gotten Enlightenment specific but Enlightenment in general isn't running against raw X11 but rather against Evas which handles many of the primitives
Re: (Score:2)
Re: (Score:2)
I don't know what the hell you are talking about. What I do know is that you came into this thread making pretty strong claims about Enlightenment and X11 that the Enlightenment developers completely disagree with. Your name calling doesn't change anything.
Re: (Score:2)
That is my entire point - you started out with some assertions that were incorrect but you don't know enough about the subject matter to be aware of that and refuse to listen or find out for yourself.
Re: (Score:1)
X11 couldn't possibly run this GUI: http://www.youtube.com/watch?v=a-lVkBCUrAY [youtube.com]
Of course it can. Have you never seen a Nokia N9?
X11 does not support touch.
Huh? Now you're claiming that neither the N9 nor event the N900 exists.
X11 does not support 1/4 sizing screens
etc.
Once again - never seen a Nokia Maemo or Meego phone?
Re: (Score:2)
Of course it can. Have you never seen a Nokia N9?
Yes I have and the N9 didn't use X11. It used the Qt framebuffer driver.
Re: (Score:1)
Of course it can. Have you never seen a Nokia N9?
Yes I have and the N9 didn't use X11. It used the Qt framebuffer driver.
Ok, my bad. Didn't realise the rot had set in so soon :)
Re: (Score:2)
and
Re: (Score:1)
Yes, that's what I thought, but I don't have my N9 any more and jbolden (176878) sounded like he knew what he was talking about.
Correction - not *nix - linux only (Score:2)
It's linux only due to some design choices that rely on other things that are only found in linux. I think the idea was that by not having the portability, configurability or extendibility of X they could get things done more quickly.
I thought SVGAlib was cool too so best of luck to the Wayland people - but there's not much point comparing it to X just now, especially since they don't have much to demonstrate actually running yet.
I've been whooshed! (Score:2)
Re: (Score:3)
You could read the article.
I'm not gonna. Just sayin.
Re: (Score:2)
Why should I? (Score:2)
The guy has a point. Unless I already know everything about what's written here (and I probably already read the news elsewhere) I wouldn't be triggered to read the full article. It just doesn't appeal to me at all since none of the words used trigger my curiousness. By putting in just a bit more information in the summary, or even just the title, the editor/submitter would have gotten many more people interested. This is bad editing slashdots' part.
How about "Intermediate driver for X ported to Android ha
Re: (Score:2)
I actually did go ahead and read the article, and I got the idea, so maybe I'm slashdot's (editors') target audience more than you.
I think your proposed headline states too much. What's not clear to me from reading is, does the driver running in an Android system get usurped to make a Wayland display happen, or does the Wayland display take over as part of init such that Android is no longer the running system (other than the driver needed to bootstrap Wayland on this crappy hardware)
I don't think that "on
Re:I've been whooshed! (Score:5, Funny)
Been away from Slashdot for a while? Wayland has Benn in the Linux news a fair bit recently. And Jolla has been mentioned quite a few times.
But if you really don't want to read the article then I can fill you in. Wayland is the planet where the emperor hid his cloning cylinders and other artifacts he accumulated during his reign.
Re: (Score:2)
I did this in a post above yours.
http://tech.slashdot.org/comments.pl?sid=3639581&cid=43427825 [slashdot.org]
Re: (Score:2)
In brief:
Jolla = A company formed by ex-Nokia employees to carry on their Linux development after the switch to Windows Phone.
Sailfish OS = Their Linux distro for phones and tablets derived from Nokia's Meego, via a community project called Mer.
Wayland = A potential replacement for the venerable X11.
Android = Linux-based mobile OS which is very popular.
ODM = Original Design Manufacturer. A company which designs and makes a product based off of another company's reference material and branding- so Samsung is
It's even simpler than that (Score:5, Insightful)
The reported reasoning for making Wayland support Android GPU drivers was difficulty in ODM vendors not wishing to offer driver support for platforms aside from Android.
ODMs don't know how to write software, so you're better off not asking them to; the result would just be garbage anyway. All the GPU drivers are actually written by the GPU IP vendors (Qualcomm, Imagination, ARM, etc.) and they only provide Android drivers. You could try to pay them to write KMS/DRM drivers, but they'd probably quote you a price in the millions which minority platform wannabes like Jolla could not afford anyway.
This is seriously cool (Score:2)
The most interesting thing is left out (Score:5, Interesting)
Earlier this year however, I discovered that a well-known company had taken the code - disappeared underground with it for several months, improved upon it, utilized the capability in their advertisements and demos and in the end posted the code utilizing their own source control system, detached from any state of that of the upstream project's. Even to the extent some posters around the web thought libhybris was done by that company itself.
That kind of behavior ruined the initial reason I open sourced libhybris in the first place and I was shocked to the point that I contemplated to by default not open source my hobby projects any more. It's not cool for companies to do things like this, no matter your commercial reasons. It ruins it for all of us who want to strengthen the open source ecosystem. We could have really used your improvements and patches earlier on instead of struggling with some of these issues.
http://mer-project.blogspot.fi/2013/04/wayland-utilizing-android-gpu-drivers.html [blogspot.fi]
Canonical being Canonical
Re: (Score:3, Informative)
"But, I will say that their behavior has improved - they are now participating in the project, discussing, upstreaming patches that are useful. And I forgive them because they've changed their ways and are participating sanely now."
You left out that bit of the blog post.
Re: (Score:3)
It doesn't sound like they actually did anything wrong. Most licenses in the wild today do not require source releases without distribution. If the developer wanted to prevent people from disappearing underground with his code, he should have put in an open repo clause. Then no one would use his software, and the problem would be solved.
Let's try to explain the technology (Score:5, Informative)
Phoronix article is quite low on information, and even the original post at http://mer-project.blogspot.fi/2013/04/wayland-utilizing-android-gpu-drivers.html assumes some technical knowledge of graphics stack. The basic idea is actually pretty simple. I'll try to break it down.
GPU drivers form a combination of EGL and GLESv2 libraries, each GPU vendor providing their own
This is where libhybris comes into play. The GPU driver libraries don't work without Bionic libc - so libhybris, while running on top of regular linux (and thus [e]glibc), keeps a private Bionic libc open for the GPU drivers' use, and redirects all the EGL/GLESv2 calls to the GPU driver libraries. These libraries run in their own Bionic universe, and tell the actual display hardware what to do.
The new part about Wayland support is just a logical extension of the same behaviour. Wayland already depends on EGL for buffer management, so "all" it really needs is a native display handler. Now as it happens, the native Android display structure can be mapped to the Wayland-EGL display structure. It's not trivial, but it's certainly doable. Thanks to libhybris, the Wayland libraries see a correct native display type and operate on that, while the Android GPU libraries see their respective native display type and thus can drive the hardware as ever before. After all, it's still the SAME hardware regardless of what operating system we may be running. Registers are registers and memory is still memory. From the GPU drivers' point of view nothing has changed.
So what has happened? In addition to just redirecting graphics stack calls to Android drivers, we are now also translating the display subsystem between two somewhat different systems.
If all of the above sounds eerily familiar, you are correct. In networking this kind of design is called a proxy, or if we're talking about link layer, it would be a multi-protocol label switch. Logically there's not much difference.
Re: (Score:2)
So what performance impact does all this have?
Re: (Score:2)
That is a good question.
My answer hovers between two choices, "not a lot" and "no idea". The reason for this is that the translation code should be generally rather straightforward. There is a bigger cost for buffer allocation and destruction, and a smaller cost with frame update.
Each time a buffer is created or destroyed, libhybris will need to do some internal bookkeeping to match the Wayland buffers with Android buffers. Some of the under-the-hood memory allocations may be more expensive than others, so
Re: (Score:1)
I looked over the libc API calls used by graphics drivers once and it wasn't anything special. Maybe less than 25 symbols.
The point of this claim is that there is probably no need for a bionic reimplementation (bugs and all) all that needs to happen it struct layout conversion across the APIs calls. I would guess only 5 or less API calls are affected the rest follow same or similar ABI constructs for both bionic and glibc.
The overhead, if there are no bugs/quirks to manages then next to nothing, you are c