1

Wondering why ARM based devices like Raspberry Pi, Android phones, Routers etc. are not shipped with latest Linux kernel ? Is it simply due to lack of proprietary device driver support ? Like lack of opensource drivers for GPU,DSP etc ? Or they have some limitation to run latest kernel version ?

1 Answer 1

3

The Raspberry Pi does not really ship with any kernel at all; it does not include software, although you can buy it from some third party retailers with a pre-formatted SD card (and you can buy such a card separately). There are a number of binary GNU/Linux distributions specifically for the A/B/+ pi (since the Pi 2 is ARMv7, it does not require this and generic ARM distros can be used); they are mostly based on existing mainstream distributions and use the same versions of software except for the kernel, which is not vanilla and does include some proprietary bits. The latest version of that is 4.1, which is the same as the latest vanilla kernel at the time of this writing.

However, the pi kernel, like the official kernel, is independent of any distro and pi-centric distros do not necessarily use the latest available kernel just like normal distros do not necessarily use the latest available kernel.

With regard to Android, those kernels presumably contain even more proprietary stuff, and the base kernel itself is still not, I think, the same as the vanilla kernel -- I do not know what version the latest one is, but it would not be surprising if it is a little bit behind since there is more to double check in this case than with with the pi.

Actual Android manufacturers I'm familiar with do not update the kernel all that often, and they stop after a certain point because they have not promised to keep your device updateable into infinity. The reason they do not update it very often in the first place is presumably because "If it ain't broke, don't fix it" -- it is riskier to do this than to just leave it as it is.

This is a sane attitude; what would be totally crazy would be for consumer device manufacturers to try and keep up with kernel.org. That is not the point. Linux is open source and its development is public; you can access the same channels of communication and git repos as the kernel developers. It is not this way because they think everyone should upgrade as soon as they release something. It is that way because the development is public and open source. I can promise you that proprietary OS's are not kept updated to the absolute latest kernel from the outfit that produces them -- they are probably months and years behind -- but because you are not privy to the state of things there, you will not notice this.

In relation to that, it is also worth noting that Linux kernel development is independent of any distro. They are not working together, strictly speaking, so the purpose of a new kernel is not specifically to be deployed on Android or ARM or Debian. Those are independent entities that make their own decisions about what and what not to use. There is no reason for them to wake up in the morning and go, "Well, Mr. Torvalds released 4.2 -- better get on that".

One concrete illustration of the advantage of this relationship is that if kernel 4.2 turns out to have some bugs in it, distro X will not immediately suffer from those unless it blindly updates its kernel as soon as it is released. Instead, distro X can wait until 4.2 is reasonably field tested; if there are problems, it can be skipped and they can wait for the next one.

It is also probably not desirable for most end users to have their operating system kernel updated weekly. Distros don't release a 3.17.1, then a 3.17.2, then a 3.17.3. They may release a 3.17.2 then 3.18.5. The difference between these versions may not in fact be all that meaningful to most users -- so in addition to being irritating, it would be pointless.

The same logic applies to routers as to Android devices.

9
  • Thanks for such a great clarified answer, but but my actual question was could they run as soon as latest version released like x86 based devices or not. The question is due to purely my curiosity.
    – Arnab
    Jun 20, 2015 at 15:09
  • @Arnab yes they can. You'll have to compile and patch the kernel yourself though. I have an rpi2 happily running 4.1
    – Outurnate
    Jun 20, 2015 at 15:48
  • Ditto -- although if they have proprietary bits they need to include, you have to wait for the maintainers of (e.g.) the rpi kernel to catch up (which currently they have). The official vanilla official kernel isn't x86 specific and can be compiled for a variety of ARM platforms, just not all of them.
    – goldilocks
    Jun 20, 2015 at 15:55
  • Awesome, exactly what I was searching for.
    – Arnab
    Jun 20, 2015 at 15:59
  • There are distros shipping latest kernel from kernel.org. One of them is archlinux.
    – solsTiCe
    Jun 21, 2015 at 8:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.