We have moved to a new Sailfish OS Forum. Please start new discussions there.
29

Update kernel

asked 2015-06-30 07:03:16 +0200

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

updated 2015-06-30 07:03:16 +0200

V10lator gravatar image

I know this has been brought up in the past but it fragments over multiple threads without having a official answer from Jolla. So hopefully this time we'll get one.

This is a request to update the kernel of the Jolla Smartphone. Can't do that cause of binary blobs from Qualcomm? Replace them with the (better) open-source drivers. That means:

So if you free up the kernel from binary blobs you

  1. Still have support from Qualcomm.
  2. Have support from the kernel devs (finally cat /proc/sys/kernel/tainted returning 0).
  3. Get more from the hardware (OpenGL, monitoring mode, ...).

With all that being said: Please update the kernel or tell us what's stopping you from doing so.

edit retag flag offensive close delete

Comments

I don't think the problem is GPU or WLAN, rather it might be the telecom drivers...

juiceme ( 2015-06-30 09:31:41 +0200 )edit

So modem drivers? I can't find any infos but chances are high the phone uses either Nokia Phonet/ISI, Qualcomm Gobi or both. These are supported by oFono (which, surprise, surprise, you already find in SailfishOS).

If my guessing is wrong and anyone has better informations about the modem chip(s) I'll do my best to find FOSS drivers for them. :)

V10lator ( 2015-06-30 10:36:41 +0200 )edit

2 Answers

Sort by » oldest newest most voted
16

answered 2015-06-30 10:20:45 +0200

Philippe De Swert gravatar image

Oh we answered this many times already, you must have missed the answer... Sad truth is we don't have the manpower, time or specs to do so.

Also using some random drivers that might or might not work is not a surefire thing. You will often need matching firmwares and that will also not be so easy. Also those drivers aren't necessarly going to give more performance as you state (often actually less, due to manufacturers leaving stuff out, due to patent fear, trade secrets, ...). Nor are WLAN and GPU the only problematic areas. As mentioned there are still the telephony bits. And at a time we gave the open Prima driver a go, but it did not work well, code quality was (and maybe still is) bad. Not to mention the licensing in the code was very murky and problematic. It is not because some code is out in the open that you can use it..

  1. And support from Qualcomm? They made a codedrop, that is not support... Actually you have to pay them huge amounts of money to have the privilege to ask them a question (without garuantee they will even look at it).
  2. Support from kernel devs, well the driver for the adreno seems to have made it upstream, but that does not mean kernel developers will be helping you with your own issues on your own hardware. If you're lucky yes. Otherwise well hope for the best.
  3. Get more from the hardware? That is debatable. As stated higher you might actually get less performance. Although you might gain some freedom indeed.

Moreover the kernel source is out there, it is not so hard to build it and flash it to your device, so if it is so important you can go ahead and start hacking. Or pay/bribe/feed pizza to some kernel devs do it for you. I am sure we will put in some of our free time to help out with that if it something like that happens.

We have mostly synced up the kernel with the current 3.4 stable so it is not like we are not doing any maintenance, but a complete device port is not something we have resources for, we have a tablet to make too. And then the next product and so on. It is not because something is possible it is realistic to do it. I am sure you could do this if you wanted, but how much time and effort is it going to take you? Will it be worth it?

edit flag offensive delete publish link more

Comments

4

"And then the next product and so on" Yaay new Jolla Phone!

r0kk3rz ( 2015-06-30 11:02:43 +0200 )edit
2

@Philippe De Swert You're from Jolla? Glad to get a reply from you. :) Yes, must have missed previous replies covering what you told now, anyway...

I didn't talk about more performance but features; Does the blob GPU driver support full OpenGL or just OpenGL ES ? ;) For telephony bits you must be kidding. I looked a bit into the boot logs and they told the modem is "pil". pil has open source drivers _only_ https://android.googlesource.com/kernel/msm/+/android-msm-mako-3.4-jb-mr1/arch/arm/mach-msm/pil-modem.c

What exactly are the license problems? Every single file is copyrighted by the Linux Foundation? The files even contain infos:

  • This file was originally distributed by Qualcomm Atheros, Inc.
  • under proprietary terms before Copyright ownership was assigned
  • to the Linux Foundation.
  1. Well, support at least won't get worse, will it?
  2. So what's bugzilla.kernel.org for? Till now (>10 years Linux experience) I didn't had a single issue where I was "not lucky".
  3. OpenGL ES is a subset of OpenGL. So getting OpenGL equals to "more from the hardware". Think about OGL games ported with the flip of a finger.

The kernel source is out? FINALLY? Let me check... Yes, big thanks for that! :)

I'll have a look into using FOSS drivers and will report back.

V10lator ( 2015-06-30 11:38:05 +0200 )edit
2

@V10lator, kernel sources have been around for some time, but sometimes have been hosted elsewhere thanks to community members such as @tbr. But as according with the licence, sources have always been available on request.

r0kk3rz ( 2015-06-30 11:40:58 +0200 )edit
2

@r0kk3rz for the new product! youhou!!! lol party!

cemoi71 ( 2015-06-30 11:41:54 +0200 )edit
2

Jolla always respected the GPL license and sources were available to those who inquired. To make matters easier for the community, I used to request the sources from Jolla (e.g. by SAE) and then upload them at http://images.formeego.org/jolla/sources/ . Sometimes they were not that fast to answer, but I always got them.

After they finally managed to sort out their own infrastructure they started hosting them officially at http://releases.sailfishos.org/sources/

Please note that due to GPLv2, e.g. kernel, pretty much the only "compliant" way to exchange sources is to transfer physical media. Downloadable tarballs are welcome and nice, but technically not "compliant". That's why Jolla lists a snail mail address.

tbr ( 2015-07-01 13:41:02 +0200 )edit
9

answered 2015-06-30 10:25:24 +0200

DrYak gravatar image

Alternatively if the Linux kernel won't be upgraded soon, would it be possible to backport ZSwap ?

Currently the 3.4.x line of kernels only support Zram, and Zswap would have been a great reason to upgrade the kernel or at least backport it.

ZSwap works by creating a cache in memory where the pages are first compressed. Then once the cache fills up, the pages are moved from the RAM cache to actual swap space devices based on a Least Recently Used (LRU) principle.

Zram works slightly differently, it creates a RAM drive which is compressed. It is possible to use it as swap space with mkswap and swapon (Jolla phone does it, as do countless embed linux devices accross the world, like routers, etc). But for the kernel swap strategy, Zram is just that a swap device like any other. Once a Zram buffer is full there are no special behaviours, the kernel will simply move to the next available swap device (e.g.: a swap partition on a media) which will work like any other normal uncompressed device. Because of this Zram ends up working a bit like Most Recently Used (MRU) strategies - newer pages are written to the extra slower space device, while older pages sit idle on the faster ram disk.

Zram is a very good solution for device which don't have storage to spare (e.g.: embed device that have only ROM, or Jolla phone which probably wants to avoid wearing its internal flash to fast) and are limited in RAM.

Zswap is a very good solution for devices which do have storage and rely on it for swap.

  • part of the pages are kept in RAM buffer, so effectively Zswap can also work as a ram compressor like Zram
  • pages are written to swap from the buffer, so effective strategies like LRU can be used, instead of ending up with a MRU situation like Zram
  • as compressed pages are written to device, this can help with slower devices (using an LZ4 compressor is certainly faster than lots of devices, including flash media)
  • compressed pages also means less space used on the swap device: thus more potentially available memory or in case of flash media: less wear

Thus Zswap would be usefull on the Jolla when either using swap on an SD card (wear is less a problem as it is possible to buy a newer SD card and swap it) or to protect the small internal flash space (LRU and compressed, instead of MRU and raw).

edit flag offensive delete publish link more

Comments

4

I second this suggestion! From my experience with zswap (on my workstation & on one of our visualization servers) it works very well. :)

Also there is one more benefit of zswap over zram - much easier configuration. You don't need to setup separate swap devices per CPU, set them as swap, set their priority, etc. - just enable it in kernel boot options and optionally set the maximum memory percentage (the default is 20%) and compressor. And that's it - everything else (including parallel compression) is done automatically.

MartinK ( 2015-06-30 11:26:56 +0200 )edit

There are another thread specifially requesting zswap Replacing zram with zswap. Please, support that also to push message to Jolla devs.

pata ( 2015-09-20 15:40:17 +0200 )edit
Login/Signup to Answer

Question tools

Follow
9 followers

Stats

Asked: 2015-06-30 07:03:16 +0200

Seen: 1,021 times

Last updated: Jun 30 '15