两个实用程序(GUI和命令行)可在Ubuntu或Linux Mint上安装最新内核
常规的Ubuntu版本发布后,通常不会收到新的主要内核版本的更新。对于Ubuntu 18.04等LTS版本, LTS启用堆栈 提供新的内核和Xorg升级,但需要一些时间才能发布。
例如,Ubuntu 18.04 应该 您将在2019年2月左右收到更新的内核。
一些新的重要功能,例如由于硬件支持的改进而安装的内核比Ubuntu中可用的内核更新,或者如果某些设备不起作用,则默认Ubuntu内核会出现一些严重问题。可以用来解决问题 主线内核PPA。
这不是真正的PPA,不能像Launchpad PPA一样添加到系统中,而是需要您手动下载并安装DEB软件包。有多种工具可简化此过程,并在主线PPA中有新内核可用时通知您。本文介绍了两个工具:使用图形用户界面的工具和可以从命令行使用的工具。这两个实用程序都支持Ubuntu以及基于Ubuntu的Linux发行版,例如Linux Mint。在本文中:
- 在更新内核之前阅读警告
- 使用称为Ukuu的GUI实用程序更新Ubuntu或Linux Mint内核
- 使用ubuntu-mainline-kernel.sh从命令行更新Ubuntu或Linux内核
- 如何从损坏的内核安装中恢复(如果计算机启动时出现黑屏,死机或内核升级后无法正常工作)
在更新内核之前阅读警告
通常不建议在安装任何东西之前在Ubuntu机器上安装主线内核。这些内核是从最新的Linux源码构建的,没有Ubuntu补丁或其他更改,因此不受支持。
此外,从主线内核PPA安装内核通常会破坏专用驱动程序或树外模块,例如专用Nvidia图形驱动程序,Broadcom无线驱动程序和VirtualBox dkms模块。结果,计算机可能会以黑屏启动,随机冻结,或者在安装和引导主线内核后WiFi可能停止工作。
例如,我在安装Nvidia 396.54图形驱动程序的同时安装了最新的Linux 4.19,但是无法构建Nvidia模块。幸运的是,Nvidia Graphics PPA具有支持Linux 4.19-Nvidia 410的新驱动程序版本,因此我安装了此驱动程序以解决此问题。但是,如果未发布Nvidia 410,或者图形卡不支持最新版本的PPA驱动程序,则计算机将使用4.19内核以黑屏启动(或将其删除)。您将需要使用自己的Nvidia驱动程序,而应使用Nouveau。)这是要使用这些工具并从Ubuntu Kernel PPA安装最新的内核,风险自负!
使用称为Ukuu的GUI实用程序更新Ubuntu或Linux Mint内核
猛扑或Ubuntu Kernel Update Utility,它是在基于Ubuntu的发行版上安装最新主线内核的工具。
该应用程序显示Ubuntu Mainline Kernel PPA中可用内核的列表,并允许用户轻松下载并安装所需版本。它也可以用来删除使用此实用程序安装的主线内核或检查内核版本更改。
当有新内核可用时,也会通知您,并从设置中更改GRUB菜单中的超时。如果您对新安装的内核有疑问并想使用旧内核,这将很有用。
猛扑 已下载 可以从项目页面或使用PPA安装。
sudo apt-add-repository -y ppa:teejee2008/ppa
sudo apt update
sudo apt install ukuu
现在启动Ukuu,选择要安装的Linux版本, Install
按钮将会弹出一个新窗口,以显示其中正在进行的操作,例如下载和安装内核调试。
使用ubuntu-mainline-kernel.sh从命令行更新Ubuntu或Linux Mint内核
ubuntu-mainline-kernel.sh Bash脚本可轻松从Ubuntu内核PPA安装内核。
命令行工具还允许您从Ubuntu内核PPA中删除已安装的内核。您可以检查是否有新的内核版本,列出本地安装的内核版本以及搜索并列出可用的内核版本。您也可以不安装而下载deb文件。
此外,与Ukuu相比,此控制台工具还可以安装仅在amd64和i386上可用的低延迟版本(减少了延迟,对音频录制等有用,但以省电为代价)。你呢安装大型物理地址扩展内核,仅适用于armhf。
通常,建议您检出此脚本和系统上运行的任何其他脚本中使用的代码。仅当您至少对这些脚本有基本了解时,才运行它们。
您可以安装ubuntu-mainline-kernel.sh脚本 /usr/local/bin/
使用以下命令:
wget https://raw.githubusercontent.com/pimlie/ubuntu-mainline-kernel.sh/master/ubuntu-mainline-kernel.sh
sudo install ubuntu-mainline-kernel.sh /usr/local/bin/
ubuntu-mainline-kernel.sh项目还包括一个桌面文件,该文件可在启动时添加,因此您可以在登录时自动检查新的内核版本。这是可选的,如果您需要此功能,则可以使用以下命令进行安装(libnotify-bin
需要新版本时显示桌面通知):
sudo apt install libnotify-bin
wget https://raw.githubusercontent.com/pimlie/ubuntu-mainline-kernel.sh/master/UbuntuMainlineKernel.desktop
mv UbuntuMainlineKernel.desktop ~/.config/autostart/
您现在可以开始使用ubuntu-mainline-kernel.sh。使用以下命令检查可从Ubuntu内核PPA获得的最新内核版本: -c
:
ubuntu-mainline-kernel.sh -c
要安装内核版本,请使用: -i version
举个例子 -i 4.9
,例如:
sudo ubuntu-mainline-kernel.sh -i 4.9
或者只是使用 -i
安装最新的可用版本。看起来是这样的:
$ sudo ubuntu-mainline-kernel.sh -i
Finding latest version available on kernel.ubuntu.com
Latest version is: v4.19.0, continue? (y/N)
Will download 6 files from kernel.ubuntu.com:
Downloading CHECKSUMS: 100%
Downloading CHECKSUMS.gpg: 100%
Downloading linux-headers-4.19.0-041900-generic_4.19.0-041900.201810221809_amd64.deb: 100%
Downloading linux-headers-4.19.0-041900_4.19.0-041900.201810221809_all.deb: 100%
Downloading linux-image-unsigned-4.19.0-041900-generic_4.19.0-041900.201810221809_amd64.deb: 100%
Downloading linux-modules-4.19.0-041900-generic_4.19.0-041900.201810221809_amd64.deb: 100%
Signature of checksum file has been succesfully verified
Checksums of deb files have been succesfully verified with sha256sum
Installing 4 packages
/etc/kernel/postinst.d/initramfs-tools:
update-initramfs: Generating /boot/initrd.img-4.19.0-041900-generic
/etc/kernel/postinst.d/zz-update-grub:
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.19.0-041900-generic
Found initrd image: /boot/initrd.img-4.19.0-041900-generic
Found linux image: /boot/vmlinuz-4.18.0-10-generic
Found initrd image: /boot/initrd.img-4.18.0-10-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
done
Cleaning up work folder
所有可用选项:
ubuntu-mainline-kernel.sh -h
Usage: /usr/local/bin/ubuntu-mainline-kernel.sh -c|-l|-r|-u
Download & install the latest kernel available from kernel.ubuntu.com
Arguments:
-c Check if a newer kernel version is available
-i [VERSION] Install kernel VERSION, see -l for list. You dont have to prefix
with v. E.g. -i 4.9 is the same as -i v4.9. If version is
omitted the latest available version will be installed
-l [SEARCH] List locally installedkernel versions. If an argument to this
option is supplied it will search for that
-r [SEARCH] List available kernel versions. If an argument to this option
is supplied it will search for that
-u [VERSION] Uninstall the specified kernel version. If version is omitted,
a list of max 10 installed kernel versions is displayed
-h Show this message
Optional:
-s, --signed Only install signed kernel packages (not implemented)
-p, --path DIR The working directory, .deb files will be downloaded into
this folder. If omitted, the folder /tmp/ubuntu-mainline-kernel.sh/
is used. Path is relative from $PWD
-ll, --low-latency Use the low-latency version of the kernel, only for amd64 & i386
-lpae, --lpae Use the Large Physical Address Extension kernel, only for armhf
-do, --download-only Only download the deb files, do not install them
-ns, --no-signature Do not check the gpg signature of the checksums file
-nc, --no-checksum Do not check the sha checksums of the .deb files
-d, --debug Show debug information, all internal command's echo their output
--rc Also include release candidates
--yes Assume yes on all questions (use with caution!)
如何从损坏的内核安装中恢复
如果您的计算机在升级内核后启动时出现黑屏,死机或无法工作,请重新启动它,然后从GRUB菜单中选择Ubuntu Advanced Options。
接下来,选择以前的内核版本, Enter
:
无论出于何种原因,如果要卸载最新的内核,都必须启动到较早的内核版本。这是因为无法删除当前使用的内核。
如果未显示GRUB2菜单, Shift
或 Esc
加载GRUB时,反复使用该键(这取决于BIOS或UEFI引导以及您使用的Ubuntu / Linux Mint版本)。将出现Grub菜单,允许您选择以前的内核版本。
附带说明,可以通过在设置中设置GRUB菜单超时来配置Ukuu在启动时显示GRUB菜单。
从先前的内核启动后,可以删除有故障的内核。 Ukuu和ubuntu-mainline-kernel.sh都可以从Ubuntu内核PPA中删除安装的内核。
要使用Ukuu删除内核,请选择要删除的Linux版本, Remove
按钮
在ubuntu-mainline-kernel.sh中,可以通过运行以下命令来卸载内核版本:
ubuntu-mainline-kernel.sh -u VERSION
version是内核版本(例如4.9。也可以运行 -u
在不指定版本的情况下,该工具将列出最多10个内核版本,并询问要删除哪个版本。请注意,ubuntu-mainline-kernel.sh中未列出官方的Ubuntu内核。