Hello,
I saw the first Ubuntu Phone is now available: http://www.bq.com/gb/ubuntu.html
I am interested in how free & open it is. Does somebody here have more information?
Questions that I have: Is the bootloader open source? How well is the device seperated from the modem? Are non-free programms or drivers needed? Which non-free firmware is loaded?
Maybe somebody mad a review?
With regards, Paul van der Vlis.
Dear Paul,
I got a lot of useful info via a recent Linux Unplugged podcast [1] mainly covering the release of the phone. The problem with phone-hardware in general, is the fact that a build is needed for a specific phone since auto-discovery of peripherals like on a regular computer is missing. Add to that the fact that electronics are developed more rapidly than foss-drivers an be developed (please read my blogpost relating to this issue [2]). So unless you have a say in the electronics, it is very hard and especially time-consuming to develop this lowest layer as foss. For example the Fairphone has had to stop offering system-upgrades to their phones because of these issues [3], and that is also why project like Neo900 and GTA04 exist. [1] http://www.jupiterbroadcasting.com/77087/ubuntu-calling-lup-79/ [2] http://nicorikken.eu/blog/why-eoma68-will-advance-both-free-software-and-fre... [3] https://blogs.fsfe.org/pboddie/?p=802
So considering that a shipped product is better than a dreamed up one, Ubuntu had to use the proprietary board-support-package with drivers in order to get a kernel running. What is nice of the Ubuntu Phone in particular, is that they've added an additional layer in respect to the Android ecosystem by separating the firmware in a device-specific part and an Ubuntu-part. In this way they can keep updating the Ubuntu-part indefinitely indefinitely and add the lowest layer to create an image per phone. So rather than devices being stuck with old firmware like on Android, you can keep your phone up to date.
I hope that you'd be able to replace the middle Ubuntu-layer and the top Userland layer to run other systems, although I lack insight in that. Then again somebody has been able to reverse engineer the lower layer for the Nexus 5 and therefore there now exists a version for the Nexus 5 as well (although somewhat buggy still). So in this regard anyone can add support for specific hardware and stack the top layers on it.
The Bq phone is based on a phone being shipped with Android, so to answer you questions (please correct me if I'm wrong): - No open bootloader (although it is probably not locked) - No modem separation as they mostly come intergrated (please look into the GTA04 effort [4] for this) - Non-free drivers are needed in the lowest layer - The Ubuntu-store (yet to be officially launched) for the phone would allow non-free programs to be installed, but I guess that is up to the user. * I'm not able to answer whether or not non-free code is shipped apart from the board-support-package. Considering Ubuntu's practice in general, I would assume they favour free, but would eventually choose based on usability or performance. [4] http://projects.goldelico.com/p/gta04-main/
Either way, I nearly bought one but I just missed out by the flash-sale. I'd definitely be ordering one, because I believe this stack is much more freedom-respecting than Android. More frustrating my perfectly fine phone is still on Android 2.2 with a lack of application support and a whole load of known bugs. I haven't looked deep enough into Jolla or Tizen to judge them. Maybe others can elaborate more on this.
Thanks for asking the question and initiating me to write an overview, which is likely to be reformatted as a blogpost for reference.
Kind regards, Nico Rikken
Dear all,
And so I've created a blogpost: http://nicorikken.eu/blog/ubuntu-calling-for-freedom/
Kind regards, Nico Rikken
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Thanks, Nico, for the comprehensive write-up. Although I work for Canonical (full disclosure - my comments are my own), I work on the server side, so unfortunately I'm not that familiar with the specifics of the device. What you've written mostly looks right to me, but I could forward Paul's questions on to someone who works more closely with the hardware if that would be of interest.
On 13/02/15 07:20, Nico Rikken wrote:
The Bq phone is based on a phone being shipped with Android, so to answer you questions (please correct me if I'm wrong): - No open bootloader (although it is probably not locked) - No modem separation as they mostly come intergrated (please look into the GTA04 effort [4] for this) - Non-free drivers are needed in the lowest layer
This all looks right to me. My understanding is that the device boots into Ubuntu, and then starts a minimal AOSP environment in an LXC [0] to get the device support, and the two communicate over a UNIX socket - - at least for the Nexus 4 reference device. Of course, this means that much of the core OS on the device is exactly what you'd have on your Ubuntu desktop, though there are obviously storage constraints on a mobile device, so it has been slimmed down.
- The Ubuntu-store (yet to be officially launched) for the phone
would allow non-free programs to be installed, but I guess that is up to the user.
There *is* an official store on the device itself, accessible via the Store Scope. There isn't an official web store yet, but there is an unofficial one [1] that has been put together by an interested hacker - - click the About link for the Github repo - based on the API documentation [2] and feedback requests; there is also a snippet [3] put together a while ago by another hacker before we added CORS support; and the WebDM web-based package manager for Ubuntu Core also uses the same store (Snappy packages live alongside Click packages in the store).
Touch apps are packaged as Click Packages and, yes, we do allow non-free packages into the store. All packages must specify their license when they are uploaded, so it is possible to search for packages released under a specific license (e.g. enter the search string `license:"GNU GPL v3"` in the Store Search bar).
- I'm not able to answer whether or not non-free code is shipped
apart from the board-support-package. Considering Ubuntu's practice in general, I would assume they favour free, but would eventually choose based on usability or performance.
To my knowledge, there are some vendor-specific parts shipped with the device that aren't (currently) free software - I think these are limited to two or three scopes and integration with HERE maps. The Store Scope is GPLv3 [4], so you could point your device at your own Store (similar to FDroid, but without the need for a separate client). And Stéphane Graber has written up details [5] of setting up your own system image server, to provide OTA updates.
So we're still not yet shipping a totally free phone, but I think we're closer than Android.
HTH,
JT
[0] https://www.stgraber.org/2013/12/23/lxc-1-0-some-more-advanced-container-usa... [1] https://appstore.bhdouglass.com/ [2] https://wiki.ubuntu.com/AppStore/Interfaces/ClickPackageIndex [3] https://gist.github.com/rschroll/8952015 [4] https://launchpad.net/unity-scope-click [5] https://www.stgraber.org/2014/02/11/your-own-ubuntu-touch-image-server/ - -- - ---------------------------------------+-------------------------------- James Tait, BSc | xmpp:jayteeuk@wyrddreams.org Programmer and Free Software advocate | Tel: +44 (0)870 490 2407 - ---------------------------------------+--------------------------------
Hi all,
Am 16.02.2015 um 15:06 schrieb James Tait:
This all looks right to me. My understanding is that the device boots into Ubuntu, and then starts a minimal AOSP environment in an LXC [0] to get the device support, and the two communicate over a UNIX socket
- at least for the Nexus 4 reference device. Of course, this means
that much of the core OS on the device is exactly what you'd have on your Ubuntu desktop, though there are obviously storage constraints on a mobile device, so it has been slimmed down.
So, there is also a (though minimal) android on there?
Touch apps are packaged as Click Packages and, yes, we do allow non-free packages into the store. All packages must specify their license when they are uploaded, so it is possible to search for packages released under a specific license (e.g. enter the search string `license:"GNU GPL v3"` in the Store Search bar).
This is already a very good step, I think!
Thanks for the infos!
Michael
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 17/02/15 19:46, Michael Kesper wrote:
Am 16.02.2015 um 15:06 schrieb James Tait:
This all looks right to me. My understanding is that the device boots into Ubuntu, and then starts a minimal AOSP environment in an LXC [0] to get the device support, and the two communicate over a UNIX socket - - at least for the Nexus 4 reference device. Of course, this means that much of the core OS on the device is exactly what you'd have on your Ubuntu desktop, though there are obviously storage constraints on a mobile device, so it has been slimmed down.
So, there is also a (though minimal) android on there?
Correct (also for the BQ device, I've confirmed). All the Dalvik stuff is stripped out and it's just the core services and drivers. It's similar to the approach taken by Jolla. There's a pretty decent talk by Ricardo Salveti at ELC 2014 [0] that describes in depth the container and the interface. Quick bookmarks:
18:20 description of libhybris 27:04 description of the LXC and minimal Android 31:25 diagram of the overall system 32:39 Android telephony (which uses the UNIX socket and rild) 34:50 Ubuntu telephony (which uses the same UNIX socket) 39:46 Ubuntu telephony overview diagram 41:20 Ubuntu multimedia, using gstreamer and libhybris 46:50 Ubuntu multimedia overview diagram 48:32 Android camera service 49:23 Ubuntu camera service, using libhybris
It's also worth mentioning that the bootloader is closed source, but not locked, so you're free to flash another OS. It's pretty much the same as any Nexus device.
Touch apps are packaged as Click Packages and, yes, we do allow non-free packages into the store. All packages must specify their license when they are uploaded, so it is possible to search for packages released under a specific license (e.g. enter the search string `license:"GNU GPL v3"` in the Store Search bar).
This is already a very good step, I think!
There are very high-level plans for more fields to be made accessible in the UI - I'm hoping that license filtering will be one of them!
Thanks for the infos!
No problem! It's an interesting learning experience for me as well. I've been using Ubuntu on my Nexus 4 since some time in 2013, but apart from referring to the Store Scope code, the emphasis has been very much on *using* it. I'll be happy to answer questions wherever I can.
JT
[0] https://www.youtube.com/watch?v=O2qEAbuk_i8 - -- - ---------------------------------------+-------------------------------- James Tait, BSc | xmpp:jayteeuk@wyrddreams.org Programmer and Free Software advocate | Tel: +44 (0)870 490 2407 - ---------------------------------------+--------------------------------
Op 13-02-15 om 08:20 schreef Nico Rikken:
Thanks for asking the question and initiating me to write an overview, which is likely to be reformatted as a blogpost for reference.
Thank you for answering my questions!
With regards, Paul van der Vlis.