如何安装较新版本的Linux内核?

今天发布了Linux内核的新版本3.4。我该如何安装它?
3个回答

警告。
这可能会破坏您的系统。NVIDIA和ATI/AMD驱动程序以及Broadcom无线网络很可能尚不支持此项更改。 我建议不要这样做,但如果出现问题,您应该可以通过引导旧内核并删除此内核来修复它。类似以下这样...
从CD启动 mount -o bind /dev /dev mount -o bind /proc /proc chroot apt-get install update-grub
根据Tomas的评论,还有一种更简单的方法:
  • 通过在启动时按住Shift键进入GRUB,您可以进入Linux的"Previous versions"。在那里,您可以选择默认情况下未删除的旧内核。
  • 现在,如果您仍然想要它...
从这里下载以linux开头的三个.DEB文件:http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.4-precise/ i386的示例(如果你不确定,请检查uname -a,并选择名称中带有amd64的64位版本和带有pae的i386版本,适用于4GB以上内存):
linux-headers-3.4.0-030400_3.4.0-030400.201205210521_all.deb
linux-image-3.4.0-030400-generic_3.4.0-030400.201205210521_i386.deb
linux-headers-3.4.0-030400-generic_3.4.0-030400.201205210521_i386.deb

安装全部三个软件包...
i386的示例
sudo dpkg -i linux-headers-3.4.0-030400_3.4.0-030400.201205210521_all.deb    
sudo dpkg -i linux-headers-3.4.0-030400-generic_3.4.0-030400.201205210521_i386.deb
sudo dpkg -i linux-image-3.4.0-030400-generic_3.4.0-030400.201205210521_i386.deb

重启你的系统...
sudo reboot

测试一下...
uname -r

这应该显示一个名称中带有3.4的内核。
这个版本包括了几个Btrfs的更新:元数据块大于4KB,更好的元数据性能,更好的错误处理和恢复工具。还有一个新的X32 ABI,允许在64位模式下使用32位指针运行;GPU驱动程序也进行了几次更新:早期模式设置Nvidia Geforce 600 'Kepler',支持AMD RadeonHD 7xxx和AMD Trinity APU系列,以及支持Intel Medfield图形;支持x86 CPU驱动程序自动探测,一个设备映射目标,用于存储块的加密哈希以检查入侵,另一个目标是将外部只读设备用作薄配置LVM卷的源头,还有一些性能改进,如GTK2报告GUI和一个新的“Yama”安全模块。您可以按照这些说明来帮助测试12.04中官方3.4支持:http://www.theorangenotebook.com/2012/06/call-for-testing-1210-kernel-on-1204.html

但是如果这个安装失败了或者Ubuntu表现得更差,我还是可以使用旧的内核对吧?我可以在启动菜单中选择它们。 - OrangeTux
@Rinzwind:是的,你总是可以使用旧版本的内核!!??什么“坏事”? - ish
@Rinzwind 他们已经过时了。 - ish
@Rinzwind:把你的链接改成这里的所有内容http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.4-precise/ -- 这是官方发布的版本! :) - ish
很棒的回答,Rinzwind。你能稍微解释一下风险吗?或者像@izx说的那样,在你的回答中明确指出这是完全可逆的?如果不是我完全不懂的话,我会自己做的。 - Tomas
刚刚试过了你的方法,真是太好用了。补充一下对你回答的看法:我觉得修复混乱的内核比你描述的要简单。通过在启动过程中按住Shift键进入GRUB菜单,你可以进入Linux的"Previous versions"(之前的版本)。在那里,你可以选择你的旧内核,默认情况下不会被移除。 - Tomas
@tomas 我已经包括了它 O - Rinzwind
Linux内核3.4什么时候会在Kubuntu 12.04的软件更新中出现? - Ravi
@ravi Ubuntu 12.10。12.04将 -不会- 获得3.4版本。 - Rinzwind
@Rinzwind 你好,你能告诉我原因吗? - Ravi
@ravi 因为12.04已经冻结了,现在正在开发12.10版本。 - Rinzwind
@ravi 因为对之前的Ubuntu版本进行重大改变是没有意义的。这对依赖它的人来说是冒险的,而且一旦准备好了,它会在12.10中实现。 - thomasrutter

Ubuntu(32位)通用版:

运行以下命令:

1. 创建内核文件夹

mkdir kernel3.4.1stable && cd kernel3.4.1stable 

2.下载内核

wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.4.1-quantal/linux-headers-3.4.1-030401-generic_3.4.1-030401.201206041411_i386.deb

wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.4.1-quantal/linux-headers-3.4.1-030401_3.4.1-030401.201206041411_all.deb 

wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.4.1-quantal/linux-image-3.4.1-030401-generic_3.4.1-030401.201206041411_i386.deb 

额外套餐

wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.4.1-quantal/linux-image-extra-3.4.1-030401-generic_3.4.1-030401.201206041411_i386.deb 

3.安装内核
sudo dpkg -i linux-*.deb 

sudo update-grub 

Ubuntu(64位):

运行以下命令:

1. 创建内核文件夹

mkdir kernel3.4.1stable && cd kernel3.4.1stable

2.下载内核

wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.4.1-quantal/linux-headers-3.4.1-030401-generic_3.4.1-030401.201206041411_amd64.deb

wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.4.1-quantal/linux-headers-3.4.1-030401_3.4.1-030401.201206041411_all.deb

wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.4.1-quantal/linux-image-3.4.1-030401-generic_3.4.1-030401.201206041411_amd64.deb 

额外套餐

wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.4.1-quantal/linux-image-extra-3.4.1-030401-generic_3.4.1-030401.201206041411_amd64.deb

3. 安装内核
sudo dpkg -i linux-*.deb 

sudo update-grub 
额外的软件包? - 它包含了基本内核软件包中遗漏的额外驱动程序;只有在需要这些驱动程序时才安装它。

尽情享受吧!


打开终端并输入以下命令来升级到最新的3.5内核和最新的Nvidia驱动程序:

 sudo add-apt-repository ppa:xorg-edgers/ppa

 sudo apt-get update

 sudo apt-get dist-upgrade

如果某些东西无法正常工作,或者您只是希望返回旧内核,请输入以下内容:
 sudo apt-get install ppa-purge

 sudo ppa-purge ppa:xorg-edgers/ppa