文档章节

无需编译,1分钟安装Ubuntu官方构建的最新版Linux内核

eechen
 eechen
发布于 2014/02/23 15:56
字数 521
阅读 12029
收藏 88


 

glibc是应用和kernel的桥梁,glibc封装kernel提供的API形成系统调用system call,Ubuntu上glibc对应libc6这个包。

升级kernel不升级核心库glibc一般不会影响软件的正常使用,像VirtualBox安装时编译有虚拟化相关的dkms内核模块,更新内核后需要重新编译这些模块:

sudo /etc/init.d/vboxdrv setup 模块生成在 /lib/modules/`uname -r`/updates/dkms/vbox*
注:14.04上升级内核时会自动生成VirtualBox的内核模块,不需要手动执行。

新内核里集成了最新的Intel图形驱动 /lib/modules/`uname -r`/kernel/drivers/gpu/drm/i915/i915.ko

这得益于Intel官方Linux开源图形驱动项目:https://01.org/linuxgraphics/

Intel在2012年推出的Ivy Bridge架构的比如i5-3230M等等3代的CPU运行在Ubuntu12.04的3.2.0内核上可能会偶尔出现系统冻结freeze死机的情况。

旧内核不能很好地支持新架构,升级内核一般能解决类似问题。

http://kernel.ubuntu.com/~kernel-ppa/mainline/
Ubuntu官方提供的二进制通用Linux内核deb打包,linux-image.deb大小约55MB.
里面有这些东西:
/boot/vmlinuz-`uname -r` (5.6MB)
/boot/initrd.img-`uname -r` (27MB,安装时生成)
/lib/modules/`uname -r`/ (185MB,里面包含驱动等)
/lib/firmware/`uname -r`/ (1.4MB,固件)

Ubuntu官方提供有最新的内核二进制安装包,升级很方便,比如64位系统升级generic内核(以4.0为例):

sudo dpkg -i \
linux-headers-4.0.0-040000_4.0.0-040000.201504121935_all.deb \
linux-headers-4.0.0-040000-generic_4.0.0-040000.201504121935_amd64.deb \
linux-image-4.0.0-040000-generic_4.0.0-040000.201504121935_amd64.deb

安装新内核时会自动update-grub启动项,不会卸载旧内核。
在 /boot 下可以看到多个内核的启动引导程序 vmlinuz 和 initrd.img 。

如果新内核运行不正常,可以在开机GRUB引导里选择旧内核启动。
也可以这样改回原来使用的内核:
ln -sf /boot/vmlinuz-VERSION /vmlinuz
ln -sf /boot/initrd.img-VERSION /initrd.img
其中VERSION是原来内核的版本。

比如我在Kubuntu 12.04上把内核升级到了3.14:

© 著作权归作者所有

eechen

eechen

粉丝 1016
博文 107
码字总数 55962
作品 1
深圳
私信 提问
加载中

评论(26)

金尘科技
金尘科技
mark
sevk
sevk
我现在是自己下载源码编译,ubuntu14.04 下面可以。
eechen
eechen 博主

引用来自“许雷神”的评论

很好的教程 那个centos之流可以破吗?
Ubuntu提供的内核Debian能用,但肯定是不兼容CentOS的呀.
许雷神
许雷神
很好的教程 那个centos之流可以破吗?
cevin
cevin
debian 也适用
海诺者
海诺者
哇塞 好强大的样子
W_Lu
W_Lu

引用来自“W_Lu”的评论

按照博主方法,已升级到3.18.11内核,ubuntu14.04.2,83,不过我用easybcd弄引导的,没看到内核有得给我选,不过内核使用目前很正常!0

引用来自“eechen”的评论

EasyBCD其实用的还是GRUB4DOS这个东西,它默认会引导/vmlinuz,而安装新内核后,/vmlinuz是软链接到/boot/vmlinuz-VERSION的,/initrd.img也是如此。你要使用旧内核,直接软连接旧的内核到/vmlinuz和/initrd.img即可。
谢谢!目前我ubuntu的/vmlinux和/initrd.img都是指向旧内核3.16.0-34的,/vmlinux.old和/initrd.img.old指向新内核3.18,(即先手动更新3.18,后自动更新3.16,原内核是3.16.0-30),可是系统还是会自动进入3.18内核,莫非是grub2会自动选择编号最新的进入?
eechen
eechen 博主

引用来自“W_Lu”的评论

按照博主方法,已升级到3.18.11内核,ubuntu14.04.2,83,不过我用easybcd弄引导的,没看到内核有得给我选,不过内核使用目前很正常!0
EasyBCD其实用的还是GRUB4DOS这个东西,它默认会引导/vmlinuz,而安装新内核后,/vmlinuz是软链接到/boot/vmlinuz-VERSION的,/initrd.img也是如此。你要使用旧内核,直接软连接旧的内核到/vmlinuz和/initrd.img即可。
W_Lu
W_Lu
按照博主方法,已升级到3.18.11内核,ubuntu14.04.2,83,不过我用easybcd弄引导的,没看到内核有得给我选,不过内核使用目前很正常!0
eechen
eechen 博主

引用来自“难得正经”的评论

呃。我发现闭源显卡驱动都会报错(虽然我独显是不用的),dist-upgrade升级的话却不会

引用来自“eechen”的评论

我机子的独显是Nvidia GT630M,升级内核时,比如从3.14.18升级到3.14.29,会自动更新Nvidia的DKMS模块/lib/modules/`uname -r`/updates/dkms/nvidia_331.ko,不需要手动生成。我通过apt-get安装Nvidia官方331驱动,用nvidia-prime提供双显卡切换支持,如果你安装的是Nvidia官网的二进制包,就不清楚了: http://my.oschina.net/eechen/blog/228450

引用来自“难得正经”的评论

我ubuntu 14.10默认3.16装了3.14.32并以之启动,发现独显驱动报错,就重新安装了一遍驱动(apt-get)。dkms status显示bbswitch把两个内核都识别了,nvidia却只识别了3.16,无论哪个内核环境下重装,结果都一样。难道驱动不支持这旧版本么。。
建议使用nvidia-prime取代bumblebeed(bbswitch)管理双显卡. nvidia-prime可以集成到nvidia-settings. 安装方法: http://my.oschina.net/eechen/blog/227134 如果在3.14下nvidia-settings里能使用nvidia-prime切换双显卡,则表明显卡是正常工作的.
Ubuntu 14.04 安装 rtl8188cus 驱动

光盘中自带的linux驱动是基于内核2.6的,ubuntu14的内核是3.13,根据光盘中默认的驱动,得知nw336 model是RTL8188CUS,官方下载地址:http://www.realtek.com.tw/downloads/downloadsView.a...

archerdu
2015/07/28
0
1
Ubuntu 16.04.5 LTS 已经发布-提升稳定性和兼容性

Ubuntu 16.04.5 LTS 已经发布-提升稳定性和兼容性 IMCN 1分钟前暂无评论 阅读 2 次 Ubuntu 16.04.5 LTS 其实一周以前就已经发布,LTS是一个长期支持版本,当然如果你是桌面用户,可能你已经用...

IMCN
2018/08/14
0
0
Debian squeeze BCM4312网官方卡驱动

Debian squeeze的基本系统和Ubuntu的不太一样。Ubuntu中已经集成了GCC编译环境(至少在Ubuntu10.04中是这样的),而 Debian squeeze中没有。因此在Debian squeeze中安装BCM4312网卡驱动,需要...

genreason
2012/12/19
0
0
docker入门到实战(2)在linux下安装docker

本文选择ubuntu16.04 服务器作为演示的linux服务器 检查内核版本和驱动 uname -a 命令查看linux内核版本是否高于3.13,如果低于就要升级linux内核版本 ls -l /sys/class/misc/device-mapper ...

编程老司机
2018/05/14
0
0
认识官方Ubuntu 19.04’Disco Dingo’吉祥物

认识官方Ubuntu 19.04’Disco Dingo’吉祥物 IMCN 1分钟前暂无评论 阅读 1 次 这的图片描绘了即将发布的Ubuntu 19.04(4月中旬)的官方吉祥物设计。 随着Ubuntu 19.04命名为Disco Dingo,相应...

IMCN
03/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Polymer dom-repeat how to notify array updated

Question: So I have this Polymer element with dom-repeat. It binds correctly. However, when the array is modified, it doesn't reflect back to DOM. Nothing changed when I click ......

孟飞阳
7分钟前
0
0
Spring-Boot 使用 mybatis-plus-gennretor代码生成器生成代码

1.导入需要的jar包 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> ......

小小小施爷
7分钟前
0
0
HanLP-地名识别调试方法

HanLP收词特别是实体比较多,因此特别容易造成误识别。下边举几个地名误识别的例子,需要指出的是,后边的机构名识别也以地名识别为基础,因此,如果地名识别不准确,也会导致机构名识别不准...

左手的倒影
28分钟前
0
0
ASP.NET Core系列(二):创建第一个.Net Core 项目

  新建项目      新建项目, 选择.NET Core 有如下几种类型可选, 分别是Console, ASP.NET Core 的空项目,Web API      我们选择ASP.NET Core Web App(MVC), 没有标注MVC的是采用R...

SEOwhywhy
28分钟前
0
0
springboot 引入 druid 数据源监控

Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。Druid内置提供了一个StatViewServlet用于展示Druid的统计信息。 第一步、引入依赖 <dependency><groupId>mysq...

嘴角轻扬30
29分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部