Ubuntu14.04更新硬件实现堆栈(HWE)

来源: https://github.com/gatieme/AderXCoding/tree/master/system/tools/ubuntu_hwe

参考:https://wiki.ubuntu.com/Kernel/LTSEnablementStack

参考:https://wiki.ubuntu.com/Kernel/RollingLTSEnablementStack

CSDN GitHub
Ubuntu14.04.4升级硬件实现堆栈(HWE)到14.04.5(Xenial Kernel-v4.4) AderXCoding/system/tools/ubuntu_hwe_upgrade

之前使用的一直是Ubuntu14.04.4(Kernel 4.2), 现在Ubuntu16.04已经发布好几个月了, 但是为了稳定一直没更新, 前段时间看到Ubuntu 14.04.5发布了, 本次发布主要更新升级了硬件实现堆栈(HWE)

本次发布三大亮点:

  • 更多更好的硬件支持

  • 稳定更新,减少软件包的下载更新

  • 保持系统稳定

  • 详细的发布信息,可查看发布说明:

https://wiki.ubuntu.com/TrustyTahr/ReleaseNotes/ChangeSummary/14.04.5

下载地址:http://releases.ubuntu.com/trusty/

参照

参照 描述
1404_HWE_EOL 详细的讲解了Ubuntu 14.04 HWE的信息
LTSEnablementStack 详解的讲解了如何升级Ubuntu HWE
求助Ubuntu14.04.5 LTS软件源中提示hardware enablement stack升级的问题 如何升级14.04.4到14.04.5
Ubuntu 14.04.5 Released with Kernel 4.4 and 16.04 X Stack 升级Ubuntu 14.04到14.04.5

#1 背景

之前更新Ubuntu内核, 往往使用如下两个命令

更新 描述
apt-get upgrade 系统将现有的Package升级,如果有相依性的问题,而此相依性需要安装其它新的Package或影响到其它Package的相依性时,此Package就不会被升级,会保留下来
apt-get dist-upgrade 可以聪明的解决相依性的问题,如果有相依性问题,需要安装/移除新的Package,就会试着去安装/移除它. (所以通常这个会被认为是有点风险的升级)

upgrade 和 dist-upgrade 的区别

apt-get upgrade 和 apt-get dist-upgrade 本质上是没有什么不同的。

只不过, dist-upgrade会识别出当依赖关系改变的情形并作出处理, 而upgrade对此情形不处理.

例如软件包 a 原先依赖 b c d,但是在源里面可能已经升级了,现在是 a 依赖 b c e。这种情况下,dist-upgrade 会删除 d 安装 e,并把 a 软件包升级,而 upgrade 会认为依赖关系改变而拒绝升级 a 软件包

内核的升级

使用dist-upgrade可能会升级内核, 但是内核的主版本号不会变, 只是不断在修订和修复bug.

就比如我系统安装的时候, 安装的是Ubuntu14.04.4, 系统的内核使用的是Linux-4.2.0的内核, 那么我更新之后, 内核可能从4.2.0-36到4.2.0-44, 但是内核版本没有变动

如果我想升级系统的内核, 那么只有如下几种方法

  • 升级系统版本(比如14.04升级到16.04)

  • 自己下载并编译新的内核

  • 升级Ubuntu硬件实现栈

其中前两种方法不推荐, 自己新编译的内核,可能会导致某些开发库因为没有相应的适配所以无法正常使用, 同样Ubuntu跨版本升级, 往往导致很多兼容性问题, 请谨慎升级. 相比较来说, 升级硬件实现栈HWE则相对来说安全很多

#2 Ubuntu硬件实现栈HWE介绍

Ubuntu硬件实现栈(HWE)是一个功能旨在提供硬件支持, 实现了在Ubuntu的新版本提供了Ubuntu的LTS版本. 这些硬件实现栈纳入安装选择Ubuntu LTS(长期支持)媒体发布. 硬件实现栈本身是由更新内核和图形叠加.

我们知道Ubuntu每隔半年会发布一个新版本, 然后每隔两年会发布一个LTS长期支持版, 发布的版本号往往用"年份.月份"来命名

*   2004年发行第一个版本4.10

*   2005年4月发行第二个版本5.04

*   2005年10月发行第三个版本5.10

*   2006年6月发行第四个版本6.06 LTS  2

*   2006年10月发行第五个版本6.10

*   2007年4月发行第六个版本7.04

......

*   2016年四月发布16.04 LTS

每个LTS长期支持版的维护的周期都很长, 但是Ubuntu发布的周期又很快, 每个版本都重新维护很麻烦, 所以开发人员提供硬件实现栈HWE, 这样LTS可以使用主线版本的内核信息, 维护起来很方便

按惯例, Ubuntu 14.04 的第一个HWE 将使用Ubuntu 14.10内核, 版本更新为14.04.1, Ubuntu 16.04 的第一个 HWE 将使用 Ubuntu 16.10 内核, 版本为14.04.1, 正常来说如果第一个HWE版本被释放, 我们就可以认为此版本LTS已经趋于稳定了

参见

https://wiki.ubuntu.com/Kernel/LTSEnablementStack

下表将Ubuntu 14.04.x LTS的对应的硬件实现栈和EOL日期

Ubuntu 14.04.x LTS Point Release HWE Stack EOL Date
14.04.1 N/A N/A
14.04.2 Ubuntu 14.10 Utopic HWE Stack (v3.16 kernel) Aug 4, 2016
14.04.3 Ubuntu 15.04 Vivid HWE Stack (v3.19 kernel) Aug 4, 2016
14.04.4 Ubuntu 15.10 Wily HWE Stack (v4.2 kernel) Aug 4, 2016
14.04.5 Ubuntu 16.04 Xenial HWE Stack (v4.4. Kernel) April, 2019

我们可以看到14.04.4的支持和维护已经终止了(Aug 4, 2016 ), 但是14.04.5将采用16.04的新内核, 并最终维护到2019年, 所以还等什么呢, 速度升级吧.

你可以使用如下命令检查系统安装时的信息

cat /var/log/installer/media-info

#3 升级HWE

首先我们明确一点, 我们仅是升级Ubuntu14.04的HWE, 并不将14.04升级成16.04, 主要考虑的原因是16.04仍然不够稳定, 而且如果想要升级的话, 我们不如直接重新安装16.04系统, 使用更新管理器直接升级的话, 会有很多兼容性问题, 而且升级失败进不了系统的比比皆是, 相比较来说升级HWE则相对安全很多

##3.1 查看你的HWE的基本信息

hwe-support-status命令行实用程序可以用来查看我们系统支持的状况, 在更新管理器核心包在Ubuntu 14.04提供. 它包括由其他更新管理器使用的中央逻辑和更新通知提醒我们EOL通知用户.

查看你的HWE的EOL支持日期

hwe-support-status --verbose

如果您想查看你升级HWE的过程中那些包将会升级, 请使用如下命令 To determine which packages to upgrade use:

hwe-support-status --show-replacements

如果您想查看那么包将不再支持(这些包通常是旧的内核的包) To find out what packages are unsupported run:

hwe-support-status --show-all-unsupported

##3.2 升级HWE

DESKTOP桌面版, 请使用如下命令升级

sudo apt-get install --install-recommends linux-generic-lts-xenial xserver-xorg-core-lts-xenial xserver-xorg-lts-xenial xserver-xorg-video-all-lts-xenial xserver-xorg-input-all-lts-xenial libwayland-egl1-mesa-lts-xenial

MULTIARCH DESKTOP桌面版, 请使用如下命令升级(如果不出意外的话, 多数系统比如amd64等架构的桌面系统都应该使用此命令进行升级)

If you run a multiarch desktop (for example, i386 and amd64 on amd64, for gaming or Wine), you may find you need a slightly more involved command, like this:

sudo apt-get install --install-recommends linux-generic-lts-xenial xserver-xorg-core-lts-xenial xserver-xorg-lts-xenial xserver-xorg-video-all-lts-xenial xserver-xorg-input-all-lts-xenial libwayland-egl1-mesa-lts-xenial libgl1-mesa-glx-lts-xenial libgl1-mesa-glx-lts-xenial:i386 libglapi-mesa-lts-xenial:i386

SERVER服务器版, 请使用如下命令升级

Install the HWE kernel derived from 16.04 (xenial):

sudo apt-get install --install-recommends linux-generic-lts-xenial

当然您也可以运行更新管理器, 让系统检查并提示您升级

sudo rm /var/lib/update-notifier/disable-hwe-eol-messages
hwe-support-status
update-manager

然后一般会提示类似如下的对话框, 软件源提示"New important security and hardware support update."

注意

使用apt-get install命令与使用软件更新管理器update-manager没有任何实质的差别, 但是如果您担心自己命令输入错误而导致的一些不稳定因素, 可选择使用软件更新管理器update-manager由系统自行执行更新命令

Ubuntu14.04的主线支持信息和内核版本, 如下图所示

##3.3 验证EOL

最后使用查看自己的HWE的EOL信息

hwe-support-status --verbose

可以看到我们的支持日期是2019年

查看系统中的内核镜像信息

sudo dpkg -l | grep linux-generic-lts

可以看到系统中安装了linux-generic-lts-xenial-4.4.0.38.28的内核

##3.4 卸载旧的HWE

如果不确定新的HWE是否安装成功, 请慎用此命令

sudo apt-get remove $(hwe-support-status --show-all-unsupported)

##3.5 使用新的HWE并验证

一般来说安装好后重启, 系统会自己加载新的内核镜像, 如果没有加载可手动生成grub.cfg的信息, 参见Ubuntu下grub配置详解

如果grub没有被更新, 手动更新grub

sudo update-grub

如果grub.cfg没有被生成, 使用如下命令手动生成

grub-mkconfig -o /boot/grub/grub.cfg

然后reboot重新启动, 然后使用uname -r查看内核版本, 看到现在系统的内核是Linux-4.4

lsb_release -a查看系统的信息, 可以看到现在系统升级为14.04.5

================== End

Ubuntu14.04更新硬件实现堆栈(HWE)的更多相关文章

  1. Ubuntu14.04更新源

    Ubuntu14.04更新源 http://jingyan.baidu.com/article/7f41ecec1b7a2e593d095ce6.html Ubuntu源 http://wiki.ub ...

  2. Ubuntu14.04更新源、安装chrome/搜狗输入法

    目录: 1.更新源 2.安装chrome 3.安装搜狗输入法     1.更新源 三步: cp /etc/apt/sources.list /etc/apt/sources.list_backup   ...

  3. NV显卡Ubuntu14.04更新软件导致登录死循环,不过可以进入tty模式

    注意:此方法只适用于nv显卡的电脑! 在网上寻找各种方法无果的情况下,选择重新安装显卡驱动,成功登录进入图形界面. 一.首先需要在另外一台电脑(windows系统也可以)上下载NVIDIA相应显卡驱动 ...

  4. Ubuntu14.04 LTS更新源

    Ubuntu14.04 LTS更新源 不同的网络状况连接以下源的速度不同, 建议在添加前手动验证以下源的连接速度(ping下就行),选择最快的源可以节省大批下载时间. 首先备份源列表: sudo cp ...

  5. ubuntu14.04行更新软件包

    ubuntu14.04行更新软件包 headsen  chen   2017-10-12 16:01:34 apt-get update对应的就是第一步. apt-get upgrade 与apt-g ...

  6. Caffe初学者第一部:Ubuntu14.04上安装caffe(CPU)+Python的详细过程 (亲测成功, 20180524更新)

    前言: 最近在学习深度学习,最先要解决的当然是开源框架的环境安装了.之前一直在学习谷歌的Tensorflow开源框架,最近实验中需要跟别人的算法比较,下载的别人的代码很多都是Caffe的,所以想着搭建 ...

  7. ubuntu14.04 LTS 更新国内网易163源

    2015/10/7 更改ubuntu的默认源是linux学习中必须掌握的基础技能.在此记录,以作参考. 在ubuntu14.04 LTS默认使用的是国外源,由于网络的原因,使用apt-get安装包时异 ...

  8. ubuntu14.04+nvidia driver+cuda8+cudnn5+tensorflow0.12

    文章在简书里面编辑的,复制过来貌似不太好看,还是到简书的页面看吧: http://www.jianshu.com/p/c89b97d052b7 1.安装环境简介: 硬件: cpu:i7 6700k g ...

  9. 基于Ubuntu14.04系统的nvidia tesla K40驱动和cuda 7.5安装笔记

    基于Ubuntu14.04系统的nvidia tesla K40驱动和cuda 7.5安装笔记 飞翔的蜘蛛人 注1:本人新手,文章中不准确的地方,欢迎批评指正 注2:知识储备应达到Linux入门级水平 ...

随机推荐

  1. How to delete System Profiles for those registered with Red Hat Subscription Management (RHSM)?

    Environment Red Hat Customer Portal Certificate Based Subscription Red Hat Subscription Management ( ...

  2. Qt多线程应用--QRunnable

    http://blog.csdn.net/lefttime/article/details/5717349 作为Qt类中少有的基类, QRunnable提供了简洁有效的可运行对象的创建.  用QRun ...

  3. mysql表的模糊查询

    查询库下所有的表名 SELECT table_name FROM information_schema.tables WHERE table_schema='库名' 模糊表名查询 SELECT tab ...

  4. 数据结构之链表(Linked list)

    1, 无序链表(Unordered linked list) 链表是有若干个数据节点依次链接成的数据结构,如下图所示,每一个数据节点包括包括数据和一个指向下一节点的指针.(python中的list就是 ...

  5. java不用中间变量交换两个值

    public void changeVal(){ int a = 2; int b = 3; System.out.println("交换前 a:"+a+",b:&quo ...

  6. Golang 空指针nil的方法和数据成员

    golang中,有一个特殊的指针值nil. 如何使用nil没有方法和成员变量呢? 下面来看下具体例子. 程序中,定义结构体类型Plane, 将Plane类型的指针作为函数的参数,然后传入nil作为实参 ...

  7. Matlab获取文件夹下所有文件名并将数据按矩阵赋值给变量

    一.获取一个文件夹下所有文件名: fileFolder=fullfile('D:\MATLAB\bin\trc'); dirOutput=dir(fullfile(fileFolder,'*.trc' ...

  8. error: atomic: 没有那个文件或目录

    Linux下编译的时候遇到一个问题,就是提示    error: atomic: 没有那个文件或目录 执行的命令是gcc -o myCXXLog myCXXLog.c 经过网上搜索,解决方法有二 (1 ...

  9. js 中 new call apply bind JSON.stringify 的原理以及模拟实现

    1.new的原理和实现 它创建了一个全新的对象. 它会被执行 [[Prototype]](也就是 __proto__)链接. 它使 this指向新创建的对象. 通过 new创建的每个对象将最终被 [[ ...

  10. ubuntu---ssh连接

    17.04版本或其他版本: 1.第一步是.(这个必须先安装) apt-get install openssh-server 2.第二步: 当在这段输入ifconfig提示安装.再最后安装这个. 终端会 ...