|
|
Subscribe / Log in / New account

Greybus

By Jonathan Corbet
June 17, 2015
LinuxCon Japan
A little while back, Greg Kroah-Hartman was given an opportunity to work on an interesting problem. Project Ara is developing a phone handset that can be assembled (and customized) from a range of components; these components include speakers, displays, cameras, interesting sensors, and more. Making this work requires an internal bus that can handle devices that may come and go at any time — something that cellphones have not needed up to this point. Greg's job was to help to bring that bus into being; the result was "Greybus," which was the subject of Greg's LinuxCon Japan talk.

Project Ara imposes some interesting requirements on its internal bus. Beyond being dynamic, the bus must be routable and secure; in other words, any two components on the bus must be able to communicate directly with each other, without any other component being able to listen in. As a result, standard buses like USB and PCIe are not suitable. After some searching, Greg and company came across the UniPro bus, which seems to fit the bill.

UniPro has its origins in Nokia, which wanted a way to be able to easily integrate cameras from any vendor. Google then picked it up and made it routable. At this point, Greg said, it is fast and mature. It promises low latency, has low-power modes and quality-of-service features, and [Greg Kroah-Hartman] promises in-order message delivery. The standards have been out there for a while; they are driven by the MIPI Alliance.

Everything on UniPro happens by way of bidirectional connections that pass directly from one component to another; data does not pass through the processor. A connection is represented by a "CPort," which looks a lot like a network socket. There is a switch on the bus that sets up the actual routes. Messages can pass at a rate of around 10Gb/s; the bus also has message prioritization, error handling, and notification of delivery problems. What UniPro does not do is streams or multicast delivery; Greg suggested the latter was a good non-feature, since it prevents modules from sniffing unrelated traffic.

UniPro adheres to the OSI network model, except that it has no application layer defined. So the Project Ara developers made their own, which they called Greybus. (The name evidently comes from the gray color of the original prototype device; nobody has since come up with a better one). Greybus adds device discovery; all modules on the bus are self-describing. There are, it seems, advantages when the people who have to make the software side work get a say in how the hardware is designed.

Greybus also adds a network routing layer internally and a set of class protocols for specific device types. This is something that USB and PCI got right, Greg said. When they adhere to the class protocols, devices like keyboards or WiFi adapters just work with no additional software development needed. This is important for Project Ara; it would like to see a lively market in third-party modules, and that is much more likely to happen if new modules simply work in existing systems.

Each device on the bus offers a description to the rest of the system; it includes vendor and product IDs, a serial number, the protocols used, etc. Each module (a physical thing plugged into the phone) offers one or more "interfaces," each of which is a physical connection. CPort 0 on each interface controls the interface as a whole; other CPorts offer the actual functionality and will be what the kernel normally talks to. Those CPorts support "operations," which are a way of getting a module to do something using an interface that resembles a remote procedure call API.

Currently a number of protocol classes have been implemented; these include the battery, vibrator, and near-field communications classes. Others, including audio, input, sensors, and cameras, are in progress. There are a few that have been left for later, including WiFi, Bluetooth, cellular modems, GPS receivers, lights, and the display — which, Greg suggested, will be a fair amount of work.

Also built into Greybus is the ability to bridge other protocols. So, for example, devices speaking protocols like USB, I2C, I2S, or SPI can be driven directly over the bus. There is also support for tunneling protocols like CSI (for cameras) or DSI (for displays).

Greg concluded by noting that the code is all available in the Greybus GitHub repository. It represents a piece of the Project Ara puzzle, but not the whole solution. In particular, making this device successful will require turning Android into a much more dynamic system; it is the same challenge that Linux distributors dealt with ten or fifteen years ago. It's a big job, but developers at Google are working on it. Once they are done (and the hardware is available), we will have stepped into a world where phone handsets are far more dynamic and configurable than they have been in the past.

Greg let people look at his prototype handset after the talk. It consisted of a chassis into which a number of postage-stamp-sized modules could be plugged. It was a nice-looking device, though the chassis seems like it will always force the device to be a bit fatter and heavier than less configurable devices. Suffice to say your editor wants one.

[Your editor would like to thank the Linux Foundation for supporting his travel to LinuxCon Japan.]

Index entries for this article
KernelGreybus
ConferenceLinuxCon Japan/2015


to post comments

Greybus FLOSS relationship?

Posted Jun 18, 2015 3:32 UTC (Thu) by bokr (subscriber, #58369) [Link] (11 responses)

The standards link in the article leads to

http://mipi.org/specifications/unipro-specifications

where it says

"Specifications are available to MIPI members only. For more information on joining MIPI, please go to Join MIPI."

Joining is not just a logwall -- looks like a paywall which if you have to ask how high, you can't afford it.

Such policy does not seem very compatible with FLOSS ;-/

(Personally, I think there ought to be a law saying nothing can
call itself a "standard" without having free complete documentation
in a FLOSS format available on the internet).

So what's happening?

Greybus FLOSS relationship?

Posted Jun 18, 2015 4:29 UTC (Thu) by ay (subscriber, #79347) [Link] (6 responses)

There's nothing about this project as far as I can tell that says they require a "FLOSS standard", it seems like they did research and picked the best standard to work off of rather than reinventing a wheel.

You may think what you think and that's nice but that's not at all how the industry works and standards don't have to be FLOSS to work (or even work effectively).

What continues to amaze me is how much engineering effort seems to be going into this project, it seems like a lot of time and money spent on a problem in search of a solution or something that no one asked for. I suspect that most people want phones that are tightly integrated and deliver the features they need, not some bulky thing with swapable components (that they'd never swap) but maybe that's just me.

"Tightly integrated"?

Posted Jun 18, 2015 5:54 UTC (Thu) by smurf (subscriber, #17840) [Link] (1 responses)

The point about this bus idea is that you can tightly integrate whatever actually is in the phone.

Also, "tightly integrated" basically means "whenever a single part breaks, you get to throw away the whole thing and get a new phone" instead of swapping out just the broken piece.

Same thing for s/breaks/is inadequate/ because, you know, requirements change. Get a new job? may need a dual-SIM module. Start playing geocaching or Ingress? need a better GPS. Start vblogging? need a µSD slot and maybe a video-optimized camera instead of the megapixel monster.

"Tightly integrated"?

Posted Jun 20, 2015 7:39 UTC (Sat) by fredrik (subscriber, #232) [Link]

Agree. Apart from the repair aspect, and giving more hardware options to the general population, there is another angle too. Ara devices allow special purpose sensors to be plugged into a otherwise mostly ordinary and notably network approved cellular communications device.

As an example, you can imagine plugging in an infrared barcode scanner for logistics work. You avoid the clutter of a separate scanner that use unreliable nearfield communication to communicate with your logistics app and requires that the user handles two hand held devices instead of one. And you don't have to standardise on today's rare and rather expensive cellular devices with pre-integrated IR-scanners.

Ara allows small ISV:s to compete on such markets where producing special purpose hardware with integrated cellular communication today is prohibitively expensive. Now, worst case you have to develop your own Ara module. And if you're lucky, you can find a suitable extensible Ara module that fits your purpose off the shelve.

Greybus FLOSS relationship?

Posted Jun 18, 2015 9:16 UTC (Thu) by gb (subscriber, #58328) [Link]

> I suspect that most people want phones that are tightly integrated and deliver the features they need, not some bulky thing with swapable components (that they'd never swap) but maybe that's just me.

This makes sense, but there is a limit - beyond which there is no point to reduce size of the device. It can't be smaller than a screen, thinner that a battery + screen. So, I think mobile devices already reached some point there would be no more progress in format and that makes opportunities to improvement.

Greybus FLOSS relationship?

Posted Jun 19, 2015 19:58 UTC (Fri) by cry_regarder (subscriber, #50545) [Link]

Make it ruggedized and I could see many applications for this type of tek.

Greybus FLOSS relationship?

Posted Jun 19, 2015 22:56 UTC (Fri) by flussence (guest, #85566) [Link]

It sounds less crazy if you'll note this is the direction PCs evolved. Everything speaks ATA, USB and PCI, components for those are cheap commodity parts, there's healthy competition in the market; those weren't the norm 20-25 years ago.

The closed bus standard doesn't bother me, but the fact it comes from Nokia (now a patent troll) may.

Greybus FLOSS relationship?

Posted Dec 16, 2016 1:14 UTC (Fri) by marcH (subscriber, #57642) [Link]

> I suspect that most people want phones that are tightly integrated and deliver the features they need, not some bulky thing with swapable components (that they'd never swap) but maybe that's just me.

Yeah and I suspect many consumers would rather see their pocket space being used for more battery than for additional connectors.

Now there's something that wasn't clear for me from just the article: could UniPro help tightly integrated phones too? Even for integrated systems without any removable piece this could help re-use, faster development and competition, no?

Also: are there other embedded and slightly less space-constrained markets where UniPro could help?

If the answer is no every time then I wouldn't bet on its future.

Greybus FLOSS relationship?

Posted Jun 18, 2015 15:50 UTC (Thu) by gregkh (subscriber, #8) [Link] (2 responses)

> So what's happening?

Same as almost all other specifications, take for example PCI, the rules for access to that spec is the same as this one.

Sure, some working groups are getting much better at this (like UEFI and ACPI), and others are getting worse (USB kicked the Linux developers out of the working groups), but overall, all that matters in the end is if the code gets implemented with the correct license for your operating system for your hardware.

Greybus FLOSS relationship?

Posted Jun 19, 2015 21:15 UTC (Fri) by mtaht (subscriber, #11087) [Link] (1 responses)

I would really love greybus to play with for non-phones - like home routers. 10GigE is nicely greater than 802.11ad.

On other fronts, am I the only one that wants to have a high speed, low latency multi-channel audio interface that plugs right into the internet?

Greybus FLOSS relationship?

Posted Jun 19, 2015 21:26 UTC (Fri) by dlang (guest, #313) [Link]

that 10GE is the speed that the components of the phone can talk to each over over the few inches between them on the wired backplane.

it's not a wireless communications like 802.11*

Greybus FLOSS relationship?

Posted Jun 19, 2015 22:24 UTC (Fri) by k8to (guest, #15413) [Link]

There's a generally accepted level of accessibility which is known as RAND or resonable and non-discriminatory which tech-industries wide is expected for certain types of documentation/specification. Historically "reasonable" was understood to mean that corporate entities could reasonably afford it, and the pricing would be at values like 10 or 50 thousand dollars US.

These values are clearly not "reasonable" for individual contributors. And moreover in the modern era it is very questionable what that high fee is for, since the costs for information dissemination are so low.

As a result, there has been some beginning of adjustment for what is a reasonable pricing to fit into the RAND style labelling. It's happening slowly, but it does seem to be occurring.

Greybus

Posted Jun 19, 2015 13:09 UTC (Fri) by jezuch (subscriber, #52988) [Link]

> (The name evidently comes from the gray color of the original prototype device; nobody has since come up with a better one).

Well, "Gregbus", obviously :) (Keeping with the spirit of Linus^WLinux!)


Copyright © 2015, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds