TL;DR: That series of HWE kernels actually came out before the 14.04.2 point release.
The real question here is, why does uname -v
output #44~14.04.1-Ubuntu SMP Fri Mar 13 10:33:29 UTC 2015
on Ubuntu 14.04.2? That is, why does a 14.04.2 system receive HWE kernels whose build numbers are tagged 14.04.1?
Here's why your question boils down to that specific point:
lsb_release -a
and cat /etc/os-release | grep VERSION=
agree; they both say you have 14.04.2 (which you do). Therefore the only apparent discrepancy is between information given by uname
about your kernel and information in both /etc/lsb-release
and /etc/os-release
about your system as a whole.
- You ran
uname -a
, not uname -v
. But uname -a
prints all available information ever printed by uname
(it is equivalent to uname -snrvmpio
, when -i
and -o
are known). The output you're interested in is confined to the field confusingly called "the kernel version" in man uname
.
- Although it's sometimes called the "kernel version," it's really better to think of it as a build number--or build identifier, if you don't like calling non-numeric strings "numbers." The output of
uname -v
changes to enable users to distinguish kernels built as separate releases in a series, even if they are of the same underlying "kernel release" (uname -r
).
The first step in understanding why your "kernel version" contains 14.04.1 and not 14.04.2 is to note that most kernel version strings, including for downstream Ubuntu kernels, don't contain any version information about the operating system as a whole. For example, on my 15.04 system:
ek@Io:~$ uname -v
#12-Ubuntu SMP Fri Apr 3 04:03:26 UTC 2015
This is the more common situation. The first word (#12-Ubuntu
) indicates this is the twelfth downstream Ubuntu build of this particular kernel--or, in any case, that it is the twelfth in a series of builds, which may or may not consist entirely of kernels with the same uname -r
.
An HWE kernel in Ubuntu contains numbers indicating a particular release of Ubuntu because it is backported from a later Ubuntu release and should be readily distinguishable from that Ubuntu release's builds. To distinguish HWE builds of Linux 3.16 provided through linux-generic-lts-utopic
for Trusty from those provided through linux-generic
for Utopic, the Trusty builds contain 14.04.1 in the kernel version string.
Why not 14.04.2 instead of 14.04.1? (After all, the 14.04.2 release notes say "this point release contains an updated kernel and X stack..." The 14.04.1 release notes say no such thing.)
The reason is that linux-generic-lts-utopic
--and the first of the packages it pulled in as dependencies to actually install a 3.16 kernel--was released for and installable on Trusty between the 14.04.1 and 14.04.2 point releases.
To check this, you can visit Ubuntu on Launchpad and search for the linux-generic-lts-utopic
package, revealing linux-meta-lts-utopic
as the underlying source package. Then clicking on "View full publishing information" or "View full change log" reveals the history of the package.
In particular, in the publishing history, note:
- All entires list Trusty as the target, so this pertains to your system; we are not looking at packages for the wrong Ubuntu release.
- The first packages considered stable, i.e., rolled out to users in the updates or security pockets (rather than just the proposed pocket) begin with 3.16.0.25.19 on 2014-12-11 01:25:33 UTC.
That is, linux-meta-lts-utopic
came out for Trusty on December 11, 2014, which was ten weeks before the 14.04.2 point release on February 20, 2015. When these kernels came out, they were built for and tested on 14.04.1 systems, not 14.04.2 systems, so their builds were (and should thus probably remain, for consistency) numbered with the pattern #N~14.04.1-Ubuntu
.