如何在没有任何Distro-upgrade的情况下将内核更新到最新的主线版本?

目前我正在运行Linux-3.0,我想将它更新为Linux-3.3.1最新的稳定内核版本,如http://www.kernel.org所述 。 我可以在Ubuntu中更新到3.3.1而不会有任何崩溃的风险吗? 我正在按照Update Manager的规定定期更新我的内核。目前我有Linux- 3.0.0.17 .. 我可以更新吗?

注意:

任何用户应该在Ubuntu中使用的最新内核版本都会通过Update Manager自动更新,因此用户通常不需要对内核升级采取任何操作。 作者所指的问题是主线内核 ,请参阅: 我应该升级到“主线”内核吗?

我一直用于内核升级/降级的最简单的指令是由ubuntuforums.org用户提供的lykwydchykyn名称(我为此post修改了url):

  1. 请访问: http : //kernel.ubuntu.com/~kernel-ppa/mainline/
  2. 将3个(可能是4个)debs下载到某个文件夹:

    linux-headers-VERSION-NUMBER_all.deb linux-headers-VERSION-NUMBER_amd64.deb linux-image-VERSION-NUMBER_amd64.deb linux-image-extra-VERSION-NUMBER_amd64.deb # if available 
  3. 使用你使用的任何软件包管理器前端安装debs(gdebi仍然在吗?),或使用这些命令:

     cd /path/to/folder/where/you/put/the/debs sudo dpkg -i *.deb 

资料来源:

您可以随时执行以下操作:

 apt-cache search linux-image 

选择你想要的那个,然后做:

 sudo apt-get install linux-image-your_version_choice linux-headers-your_version_choice linux-image-extra-your_version_choice 

我的回答是,你可以。 稳定版本是3.4,但在本教程中我使用3.3.1。

Ubuntu(32位)通用PAE:

运行以下命令:

 mkdir kernel\ v3.3.1-precise && cd kernel\ v3.3.1-precise wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.3.1-precise/linux-headers-3.3.1-030301-generic-pae_3.3.1-030301.201204021435_i386.deb wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.3.1-precise/linux-headers-3.3.1-030301_3.3.1-030301.201204021435_all.deb wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.3.1-precise/linux-image-3.3.1-030301-generic-pae_3.3.1-030301.201204021435_i386.deb sudo dpkg -i linux-*.deb sudo update-grub sudo reboot now 

Ubuntu(64位):

运行以下命令:

 mkdir kernel\ v3.3.1-precise && cd kernel\ v3.3.1-precise wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.3.1-precise/linux-headers-3.3.1-030301-generic_3.3.1-030301.201204021435_amd64.deb wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.3.1-precise/linux-headers-3.3.1-030301_3.3.1-030301.201204021435_all.deb wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.3.1-precise/linux-image-3.3.1-030301-generic_3.3.1-030301.201204021435_amd64.deb sudo dpkg -i linux-*.deb sudo update-grub sudo reboot now 

请享用!

与此处的一些答案相反,Ubuntu在主要内核团队的一两天内发布了新内核。 我曾经像这里提出的一些答案那样用硬升级方式升级,但我发现这是一种更简单的方法。

手动安装内核的含义

手动安装内核需要额外的工作。

您有理由想要安装最新的主线内核:

  • 上次Ubuntu LTS内核更新中的一个错误,您无法降级
  • 您在当前的Ubuntu LTS内核更新流或HWE更新中不支持新硬件
  • 您希望仅在最新的主线内核版本中提供安全性升级或新function。

截至2018年1月15日,最新的稳定主线内核为4.14.13 。 在撰写本文时,许多人都有兴趣安装它以防止Meltdown安全漏洞。 如果您选择手动安装它,您应该知道:

  • 较旧的LTS内核在大于标题为Ubuntu的主菜单第一个选项之前不会更新 。
  • 使用通常的sudo apt auto-remove命令不会删除手动安装的内核。 您需要遵循以下步骤: 如何删除旧内核版本以清理启动菜单?
  • 当您想要恢复常规LTS内核更新方法时,监视旧内核中的开发。 然后删除手动安装的主线内核,如上一个项目符号链接中所述。
  • 在手动删除最新的主线内核之后运行sudo update-grub ,然后Ubuntu的最新LTS内核将成为Grub主菜单上第一个名为Ubuntu的选项。

寻找最新的内核

转到( kernel.ubuntu.com – 内核PPA主线 )并按结束键:

主线内核1

现在点击链接4.9.8 (如果你看到这个链接,可以使用更新的链接),然后会出现以下内容:

主线内核2

请注意带有黑色喷枪标记的链接。 这些是我们将使用Intel或AMD处理器为Ubuntu 16.04 64位下载的三个。

使用终端安装

使用Ctrl + Alt + T打开终端会话并使用:

 cd ~/Downloads # Change to your downloads directory ll linux*.deb # Check if any previous downloads still exist rm linux*.deb # Use this command if any previous downloads found 

现在切换回上面的下载屏幕,然后单击所有三个.deb内核下载。 下载完成后(您将在浏览器中看到状态)切换回终端会话并使用:

 sudo dpkg -i linux*.deb rm linux*.deb sudo reboot 

瞧! – 当您选择grub启动菜单中的第一个选项时,您正在运行最新的内核。 您的旧内核版本仍可在grub的“ 高级选项”菜单下使用。

安装最新内核十几次后,你会问一个问题“ 如何删除较旧的内核版本? ”,你会在Ask Ubuntu中找到这些答案。

有一种更简单的方法,这是我使用的方式。 只需下载Ubuntu Mainline Kernel Updater脚本并从终端运行它。 它将为您下载.deb,安装新内核,并可选择删除旧内核(不推荐),然后选择重启。

示例输出(从我的终端复制):

 evilsupahfly@the-black-beast:~$ sudo KernelUpdateChecker -no-rc -r utopic Run this command to install the new kernel /tmp/kernel-update root@the-black-beast:~# /tmp/kernel-update Config Notes: Rejecting Release Candidates Accepting Latest Kernel Accepting kernels compiled for utopic Accepting kernels with a version higher than 3.15.0-031500-lowlatency Information: Origin: http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.15.1-utopic Kernel Version: 3.15.1-031501 Release Date: 2014/06/16 @ 18:41 (YYYY/MM/DD @ HH:MM) Care to look at the change log? (y=Yes, n=No) (n) (download output skipped) Greetings root I (the-black-beast) am now self aware and a sentient being, have a nice day. Oh and by the way SKYNET is now active. Installing Linux 3.15.1-031501: (installer output skipped) The New Kernel looks to have been installed WARNING: If the new kernel does not boot you may regret saying yes here. Would you like to remove the current one? (y=Yes, n=No) (n): n Are you ready to Reboot? (y=Yes, n=No) (n): n 

几乎完全自动化,完全没有问题。

迟到但新答案。

我将在我的回答中添加更多信息。现在我的旧内核是linux-headers-4.8.0-53 。要找出你在终端中键入uname -r的内核。现在输入这个命令来获取可用内核的列表。

 apt-cache search linux-image 

这将为您提供一个非常大的输出。现在选择其中一个您要安装并通过以下命令安装它(不要像这样输入这些命令,将kernal_version一词替换为您要安装的内核版本)

 sudo apt-get install linux-image-kernal_version sudo apt-get install linux-image-extra-kernal_version sudo apt-get install linux-headers-kernal_version 

现在在我的情况下我选择linux-image-4.10.0-22-generic所以我的命令看起来像这样

 sudo apt-get install linux-image-4.10.0-22-generic sudo apt-get install linux-image-extra-4.10.0-22-generic sudo apt-get install linux-headers-4.10.0-22-generic 

现在最后通过命令删除旧内核

 sudo apt-get autoremove 

现在,当我第一次这样做时,我不知道是我的硬件问题还是因为删除旧内核,但我的笔记本电脑显示我的笔记本电脑有时会出现黑屏。因此我将其取出电池并重新启动并输入命令。此外,我不再受黑屏问题的困扰。

 uname -r 

它给了我

 linux-image-4.10.0-22-generic 

这意味着内核已更新。

我写了一个脚本,总是会是最新的。

ukupgrade:Ubuntu内核升级

  • 打开您最喜欢的终端并运行以下命令
  • 为文件提供可执行权限

    chmod +x ./ukupgrade

  • 调用脚本

    ./ukupgrade

运行以下终端命令以安装新的Ubuntu主线内核 。

 sudo apt-get update sudo apt-get install python-bs4 cd /tmp rm -rf medigeek-kmp* wget https://github.com/medigeek/kmp-downloader/tarball/master -O kmpd.tar.gz tar xzf kmpd.tar.gz cd medigeek-* python kmpd.py -d 

该脚本在Github上托管。 如果您遇到Python脚本中的某个问题,只需按Enter键而不是数字。

如果您不想经历手动升级内核的麻烦,可以尝试使用UUKU。 甚至在元素,薄荷等Ubuntu衍生品上也能正常工作。

我用它来修复我的WiFi问题,因为旧内核有时不会检测到一些新硬件。 除了硬件驱动程序更新,我发现不需要升级内核。 新内核确实具有安全性和轻微的性能升级,但也有破坏VM等问题的倾向。

 sudo apt-add-repository -y ppa:teejee2008/ppa sudo apt-get update sudo apt-get install ukuu ukuu-gtk 

资源:

http://www.makeuseof.com/tag/upgrade-kernel-ukuu-ubuntu/

http://www.teejeetech.in/2016/07/ukuu-v167.html?m=1

另一种选择是尝试定制和优化的构建,例如用于Ubuntu的i3 / i5 / i7优化3.2.1内核:

DuoPetalFlower,我的Linux实验 – 3.2.1内核

他还拥有英特尔primefaces优化版本,如果您试图从上网本中挤出最后一盎司的性能,它可以很好地工作。

还有像Liquorix这样的其他内核声称可以更好地优化桌面性能。

虽然不是某些人推荐的,但您经常可以在更高版本的Ubuntu中运行官方内核而不会出现问题。 我目前在oneiric上运行3.3.3精确内核,我的机器比以前运行得更好。 性能和电池寿命增加,而温度下降了几度。 从待机状态恢复时我的黑屏问题也消失了。 虽然我个人没有使用新内核的问题,但你会发现一些人强烈反对这样做。

正如您所见,Ubuntu确实提供了Linux内核的版本,但并不总是像上游发布的那样快,您可以自己编译3.3.1内核,但这可能比您想要的更多。 如果没有,搜索一下,我相信你会找到一个你可以遵循的教程,比如这个 。 (请注意,我没有彻底检查过那个,所以要小心,因为内核是危险的野兽)

上述答案都没有满足我手动将内核更新到最新稳定版本的问题。 (我目前的笔记本电脑对RCs非常敏感,戴尔XPS 9365)。

我创建了一个shell脚本,用于搜索更新的内核版本并将其显示为要安装的选项。 你可以尝试一下,它是在github上 ,请务必阅读README。

我创建了这个脚本kernel-upgrade.sh ,它从http://kernel.ubuntu.com/~kernel-ppa/mainline下载并安装一个选定的内核:

 TMP=/var/tmp/kernel mkdir -p "$TMP" && cd "$TMP" rm -f "$TMP"/* F=v4.16-rc6 V=4.16.0-041600rc6 R=$(wget -qO - "http://kernel.ubuntu.com/~kernel-ppa/mainline/$F/0005-debian-changelog.patch" | sed -ne '/^+linux/{s/.*\.\([0-9]\+\)).*/\1/p;q}') B="$V.$R" URL=http://kernel.ubuntu.com/~kernel-ppa/mainline set -x wget "$URL/$F/linux-headers-$V-generic_${B}_amd64.deb" \ "$URL/$F/linux-headers-${V}_${B}_all.deb" \ "$URL/$F/linux-image-$V-generic_${B}_amd64.deb" sudo dpkg -i "linux-headers-$V-generic_${B}_amd64.deb" \ "linux-headers-${V}_${B}_all.deb linux-image-$V-generic_${B}_amd64.deb" # now enter: sudo reboot now 

如果Ubuntu没有以新内核启动,您可以在grub菜单中选择“高级设置”,然后选择在那里启动最后运行的内核。


注意:自4.15-rc7以来,内核具有针对熔毁攻击的KPTI修复,以及自“4.14.1”针对“幽灵变种2,缓解2”(请查看http://github.com/speed47/spectre-meltdown-checker/ )