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


146

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

注意:

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


Answers:


121

我一直用于内核升级/降级的最简单的指令集是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
    
  3. 使用您使用的任何软件包管理器前端安装deb(gdebi还在吗?),或使用以下命令:

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

资料来源:


3
例如,您在这里为每种体系结构找到两个版本:lowlatencygeneric,采用哪个版本?kernel.ubuntu.com/~kernel-ppa/mainline/v3.14.1-trusty
rubo77

没运气。我来自标准存储库中的64位Utopic低延迟内核(3.16.0-31)。我已升级到v3.16.7-ckt8(linux-image-3.16.7-031607-lowlatency_3.16.7-031607.201503111033_amd64.deb),但该键盘仍未运行。这是针对Acer C710。
Ubuntourist

我有触摸板问题。我的默认BIOS设置为高级模式。它说在BIOS中,在没有驱动程序的情况下使用高级模式可能会出现问题。但是基本模式在ubuntu中效果很好。不幸的是,基本模式在Windows中非常糟糕!我希望这会以简单的方式有所帮助。
Bhikkhu Subhuti

1
为了完整起见,除了@Bucic的步骤外-(4)接受新的grub引导加载程序(第一个选项)。这可能是大多数人需要的。如果您想确切地看到更改,请进行比较以进行检查,但它可能只是用所需的新内核信息重写Grub conf文件。(5)重启。此外,这是更安全的方法,它还将升级您的Linux版本:sudo apt-get update && sudo apt-get dist-upgrade && sudo reboot。在任何一种情况下,重新引导后,运行echo $(uname -r)以确认您已成功引导到新内核中。
Manuel J. Diaz

1
@ rubo77关于低延迟与通用的比较:askubuntu.com/questions/126664/…–
Noremac

70

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

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

4
那不会提供主线内核。相反,它将提供(指定版本号的)Ubuntu版本。
伊利亚·卡根

14
不过,它可能比使用主线更好,因为它已经针对目标操作系统进行了按摩。
quickshiftin

在Debian 8中像魅力一样工作。谢谢!
GTodorov

9
不要忘记也安装内核头文件:sudo apt-get install linux-headers- [version] -generic。[version]应该与内核版本相同
mauek unak

1
应当更改此条目,以便它还指示用户安装linux-image-extra软件包,因为如果没有它,某些操作可能无法正常工作-例如用于输入密码以解密磁盘的USB键盘。
wojci

24

我的回答是,可以。稳定版本是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 12.04上所说的那样安装了3.8.5-raring内核。但现在我的操作系统已关闭,并且没有cli或任何grub菜单。只是想。
shgnInc

很好,但需要更新。我建议找到该版本,然后用google搜索如何安装它。单击页面,直到找到类似的内容。对于RC6我发现这个yourownlinux.com/2016/03/...
比丘须菩提

12

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

手动安装内核的含义

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

您为什么要安装最新的主线内核是有原因的:

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

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

  • 较早的LTS内核要大于主菜单的第一个选项Ubuntu,才能被更新
  • 手动安装的内核不会用通常的sudo apt auto-remove命令删除。您需要遵循以下步骤:如何删除旧的内核版本以清理启动菜单?
  • 监视旧内核的发展,以了解何时需要常规的LTS内核更新方法。然后按照上一个项目符号链接中的描述删除手动安装的主线内核。
  • 手动删除运行的最新主线内核后sudo update-grub,然后将在Ubuntu的主菜单上将Ubuntu的最新LTS内核称为第一个选项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

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

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

瞧!-在grub引导菜单中选择第一个选项时,您正在运行最新的内核。在grub的“ 高级选项”菜单下仍然可以使用较早的内核版本。

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


您应该回答一句话:“不要让您的生活变得复杂”。
Fabby

9

晚了,但新的答案。

我将在答案中添加更多信息。现在我的旧内核是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

这意味着内核已更新。


3
您的黑屏问题可能是因为您删除了使用中的内核。安装新内核后,必须重新引导。然后删除旧内核。
极了

好答案。尽管现在情况有所改变,但为了使此功能linux-image-extra生效,我必须更改为linux-modules-extra的版本4.18.0-22-generic
deerchao,

7

有一种更简单的方法,这就是我使用的方法。只需下载Ubuntu Mainline内核更新程序脚本并从终端运行它即可。它将为您下载.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

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


6

我写了一个脚本,并且始终会保持最新状态。

ukupgrade:Ubuntu内核升级

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

    chmod +x ./ukupgrade

  • 调用脚本

    ./ukupgrade


1
这是最好的。
阿里

一直要求普通的〜当安装低延迟版本
user2413

我对这个工具一无所知,所以我也写了一个类似的工具,它也支持选择通用/低延迟的风格。您可以在这里找到它:github.com/cristim/kernel-update
Cristian Măgherușan-Stanciu

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

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


3
我是该脚本的作者。我已经解决了。请提交错误报告,大多数时候程序员在有人提交报告之前才知道错误的存在。:)
Savvas Radevic

如此处deb最佳答案所述,仅通过安装软件包来执行脚本,有什么好处?
rubo77 2014年

自从我崩溃以来,我一直在想这种工具,因为apt没有为我安装依赖项。您会认为apt完全是关于依赖项的。错误。可以针对最新版本更新脚本,也可以搜索脚本并让用户选择。话虽如此,如果我重新启动系统,由于我找到了rc6的终端命令,所以我将直接前进
Bhikkhu Subhuti

@SavvasRadevicImportError: No module named apt_pkg
Yahya

1
@SavvasRadevic我已经做了,但是只是根据您的请求进行报告。
Yahya

5

如果您不想麻烦手动升级内核,可以尝试UUKU。即使在基本,薄荷等Ubuntu衍生产品上也能正常工作。

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

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


3

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

DuoPetalFlower,我的Linux实验-3.2.1内核

他还具有英特尔Atom优化的构建,如果您试图从上网本中挤出最后一点性能,则可以很好地工作。

还有其他类似Liquorix的内核声称可以针对桌面性能进行更好的优化。

尽管某些人不建议这样做,但是您通常可以从Ubuntu的更高版本运行正式内核,而不会出现问题。我目前在oneiric上运行3.3.3精确内核,并且我的机器比以往任何时候都运行得更好。性能和电池寿命增加,而温度下降了几度。从待机状态恢复时黑屏的问题也消失了。尽管我个人没有使用较新内核的问题,但是您会发现有些人强烈反对这样做。


2

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


2

上面的答案都不满足我手动将内核更新到最新稳定版本的问题。(我当前的笔记本电脑对RC非常敏感,Dell XPS 9365)。

我创建了一个Shell脚本,该脚本搜索较新的内核版本并将其显示为要安装的选项。您可以尝试一下,它在github上,请务必阅读自述文件。


2

我创建了这个脚本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.15.1起针对“ Spectre Variant 2,Mitigation 2”(请参见http://github.com/speed47/spectre-meltdown-checker/进行检查)。


我在运行此脚本时遇到一些困难。我可能做错了什么,因此,请按以下步骤操作:1.在BIOS中禁用安全启动,2.将脚本保存到kernel-upgrade.shchmod 777 kernel-upgrade.sh。然后,我以的身份运行它sudo ./kernel-upgrade.sh。然后我得到的错误:rm: cannot remove '/var/tmp/kernel/*': No such file or directory; 然后++ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.16...<truncating url>`连接到kernel.ubuntu.com(kernel.ubuntu.com)| 91.189.94.216 |:80 ...已连接。HTTP请求已发送,正在等待响应... 404未找到`404发生了3次
剩余沙拉

rm可以忽略第一个警告(我rm -f现在添加了)。其余的不清楚,这是什么问题。在此处截断网址无法解决问题。您可以将输出发布到pastebin.com中,以便我们看到生成的URL是什么吗?
rubo77 '18

当然,粘贴在这里 pastebin.com/KcdVdKQr
剩菜沙拉

同样重要的是,我正在运行ubuntu 17.10
剩菜沙拉


2

安装最新的内核安装Ubuntu Kernel Update Utility

$ sudo add-apt-repository ppa:teejee2008/ppa

$ sudo apt-get install ukuu

使用以下命令禁用访问控制:

$ sudo xhost +

然后用ukuu安装

$ sudo ukuu

$ sudo ukuu --install-latest

然后运行以确保安全

$ sudo xhost -

然后重启

$ sudo reboot

如果要查看所有内核版本的列表,请使用“ sudo ukuu --list”。
Vitaliy LiBrus

如果你想看到ukuu型“ukuu --help”的其他选项
维塔利LiBrus

完成sudo xhost -后不应该做吗?(比较:github.com/teejee2008/ukuu/issues/25#issuecomment-341501666
学生

@学生,是的,谢谢!我将其添加到步骤列表
Vitaliy LiBrus

0

检查您的内核版本 $ uname -sr

下载32位内核v5

$ wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0/linux-headers-5.0.0-050000_5.0.0-050000.201903032031_all.deb $ wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0/linux-headers-5.0.0-050000-generic_5.0.0-050000.201903032031_i386.deb $ wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0/linux-image-5.0.0-050000-generic_5.0.0-050000.201903032031_i386.deb $ wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0/linux-modules-5.0.0-050000-generic_5.0.0-050000.201903032031_i386.deb

下载64位内核v5

$ wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0/linux-headers-5.0.0-050000_5.0.0-050000.201903032031_all.deb $ wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0/linux-headers-5.0.0-050000-generic_5.0.0-050000.201903032031_amd64.deb $ wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0/linux-image-unsigned-5.0.0-050000-generic_5.0.0-050000.201903032031_amd64.deb $ wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0/linux-modules-5.0.0-050000-generic_5.0.0-050000.201903032031_amd64.deb

安装它

$ sudo dpkg -i *.deb

然后重启

sudo reboot

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.