如何在没有任何发行版升级的情况下将内核更新到最新的主线版本?

Suc*_* JN 171 upgrade updates kernel

目前我正在运行 Linux-3.0,我想将其更新为 Linux-3.3.1,这是http://www.kernel.org 中提到的最新稳定内核版本。我可以在 Ubuntu 中更新到 3.3.1 而不会有任何崩溃的风险吗?我正在按照更新管理器的提供定期更新我的内核。目前我有 Linux- 3.0.0.17 ..我可以更新吗?

笔记:

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

Buc*_*cic 138

我一直用于内核升级/降级的最简单的一组指令是由ubuntuforums.org用户以lykwydchykyn的名义发布的(我为这篇文章修改了网址):

  1. 去这里:http : //kernel.ubuntu.com/~kernel-ppa/mainline/
  2. 将 3 个(可能 4 个)deb 下载到某个文件夹中:

    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
    
    Run Code Online (Sandbox Code Playgroud)
  3. 使用您使用的任何包管理器前端安装 debs(gdebi 还在吗?),或使用以下命令:

    cd /path/to/folder/where/you/put/the/debs
    sudo dpkg -i *.deb
    
    Run Code Online (Sandbox Code Playgroud)

资料来源:

  • 例如,在这里您会为每个架构找到两个版本:`lowlatency` 和 `generic`,该采用哪个版本?http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.14.1-trusty/ (5认同)

小智 81

您始终可以执行以下操作:

apt-cache search linux-image
Run Code Online (Sandbox Code Playgroud)

选择你想要的,然后执行:

sudo apt-get install linux-image-your_version_choice linux-headers-your_version_choice linux-image-extra-your_version_choice
Run Code Online (Sandbox Code Playgroud)

  • 可能比使用 _mainline_ 更好,因为它已经针对目标操作系统进行了按摩。 (15认同)
  • 不要忘记安装内核头文件:sudo apt-get install linux-headers-[version]-generic。[版本] 应与内核版本相同 (11认同)
  • 那不会给出*主线*内核;相反,它会提供一个 Ubuntu 版本(指定版本号)。 (4认同)

pen*_*rns 27

我的回答是,是的,你可以。稳定版本是 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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

享受!


Win*_*nix 18

与这里的一些答案相反,Ubuntu 在主内核团队的一两天内发布了新内核。我曾经像这里的一些答案所建议的那样艰难地升级,但我发现这是一种更简单的方法。

手动安装内核的影响

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

你想安装最新的主线内核有以下几个原因:

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

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

  • 旧的 LTS 内核不会更新,直到它们大于标题为Ubuntu的主菜单第一个选项。
  • 手动安装的内核不会使用通常的sudo apt auto-remove命令删除。你需要遵循这个:如何删除旧的内核版本来清理启动菜单?
  • 监视旧内核的开发情况,以了解您何时想要恢复常规 LTS 内核更新方法。然后删除手动安装的主线内核,如上一个要点链接中所述。
  • 手动删除最新的主线内核运行sudo update-grub后,Ubuntu 的最新 LTS 内核将成为Grub 主菜单上名为Ubuntu的第一个选项。

寻找最新的内核

转到(kernel.ubuntu.com - Kernel PPA Mainline)并按以下End键:

主线内核 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
Run Code Online (Sandbox Code Playgroud)

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

sudo dpkg -i linux*.deb
rm linux*.deb
sudo reboot
Run Code Online (Sandbox Code Playgroud)

瞧!- you are running the latest kernel when the first option in grub boot menu is selected. 您的旧内核版本仍可在 grub 的高级选项菜单下使用。

安装最新内核十多次后,您会问“我如何删除旧内核版本? ”这个问题,您可以在Ask Ubuntu 中找到这些答案。


小智 12

迟到但新的答案。

我将在我的答案中添加更多信息。现在我的旧内核是linux-headers-4.8.0-53. 要找出您uname -r在终端中键入的内核。现在键入此命令以获取可用内核列表。

apt-cache search linux-image
Run Code Online (Sandbox Code Playgroud)

这会给你一个非常大的输出。现在选择您要安装的其中之一并通过以下命令进行安装(不要像这样键入这些命令,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
Run Code Online (Sandbox Code Playgroud)

现在在我的情况下,我选择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
Run Code Online (Sandbox Code Playgroud)

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

sudo apt-get autoremove
Run Code Online (Sandbox Code Playgroud)

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

uname -r
Run Code Online (Sandbox Code Playgroud)

它给了我

linux-image-4.10.0-22-generic
Run Code Online (Sandbox Code Playgroud)

这意味着内核已更新。

  • 您的黑屏问题可能是因为您删除了正在使用的内核。安装新内核后,您必须重新启动。然后删除旧内核。 (4认同)

小智 7

有一种更简单的方法可以做到这一点,这就是我使用的方式。只需下载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
Run Code Online (Sandbox Code Playgroud)

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


小智 6

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

sudo apt-get update
sudo apt-get install python-bs4 python-apt
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
Run Code Online (Sandbox Code Playgroud)

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

  • 我是那个脚本的作者。我刚刚修好了。请提交错误报告,大多数时候程序员不知道错误存在,直到有人提交报告。:) (3认同)

muh*_*urk 6

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

ukupgrade:Ubuntu 内核升级

  • 打开你最喜欢的终端并运行以下命令
  • 赋予文件可执行权限

    chmod +x ./ukupgrade

  • 调用脚本

    ./ukupgrade


小智 5

如果您不想麻烦手动升级内核,可以尝试 UUKU。即使在 Ubuntu 衍生产品(如 elementory、mint)上也能正常工作。

我用它来解决我的 WiFi 问题,因为有时旧内核无法检测到某些新硬件。除了硬件驱动程序更新,我觉得不需要升级内核。新内核确实具有安全性和轻微的性能升级,但也有破坏 VM 之类的东西的倾向。

sudo apt-add-repository -y ppa:teejee2008/ppa
sudo apt-get update
sudo apt-get install ukuu
ukuu-gtk
Run Code Online (Sandbox Code Playgroud)

来源:

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

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


Vea*_*zer 3

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

DuoPetalFlower,我的 Linux 实验 - 3.2.1 内核

他还拥有英特尔原子优化的构建,如果您想从上网本中榨取最后一盎司的性能,它可以很好地工作。

还有其他内核(例如Liquorix)声称针对桌面性能进行了更好的优化。

尽管有些人不推荐,但您通常可以毫无问题地运行更高版本 Ubuntu 的官方内核。我目前在 oneiric 上运行 3.3.3 精确内核,我的机器比以往运行得更好。性能和电池寿命增加,同时温度下降了几度。从待机状态恢复时黑屏的问题也消失了。尽管我个人在使用较新的内核时没有遇到任何问题,但您会发现有些人强烈反对这样做。


agc*_*c93 2

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