Chinaunix首页 | 论坛 | 博客
  • 博客访问: 319603
  • 博文数量: 80
  • 博客积分: 773
  • 博客等级: 军士长
  • 技术积分: 799
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-24 23:52
个人简介

victory for prepared

文章分类

全部博文(80)

文章存档

2024年(2)

2023年(1)

2022年(2)

2021年(1)

2018年(8)

2017年(3)

2016年(20)

2015年(12)

2013年(5)

2012年(25)

2011年(1)

我的朋友

分类: LINUX

2015-11-16 15:37:54

原文地址:Linux内核升级方法 作者:facearm

Linux内核升级方法

没事搞了一下内核升级,呵呵呵,但是在这里,我说明一点,一定注意内核的升级:

我们搞ARM开发的时候要编译内核模块,比如我写了一个字符设备hello.ko

   如果insmod出现错误提示错误的格式,那么根据网上的方法说,是因为PC上内核版本和烧写到ARM上的内核版本不同所致、但是我至今没有把它们升级到相同的版本。因为开发板是mini6410的,内核大致是2.6.38。但是这个友善提供的内核里面加了很多的log,连内核名字都是FriendlyARM,其他的更改更不知道了。使用友善提供的内核升级PC,无意是找死。如此类似,不要轻易升级内核。

其实升级内核,就从正规服务器下载完整源码就好了,一般步骤如下:

我升级的内核是linux-headers-2.6.32-38-generic  =>  linux-2.6.38.3    虚拟机上做的

使用命令

#uname -a

可以查看当前你的内核版本


比如我的新内核文件名字是linux-2.6.28.3.tar.gz,把它复制到/usr/src下,以root身份解压,生成了linux-2.6.38.3的文件夹。
进入并在root身份下执行命令:

#make mrproper   

//清理以前编译过的痕迹。把.config都给清理掉了,所以复制以前内核的版本中的.config过来
       //这里有个拷贝过程,不多说——就是你这个新内核文件夹下要有.config文件

#make menuconfig  

// 这里要是编译不出来图形界面,你可以安装这个玩意,专业名词我也不知道怎么叫:

sudo apt-get install libncurses5-dev

安装完成就好再次执行make menuconfig    

配置这里就不用说了。其实不用怎么配置。然后:

#make bzImage

#make modules

#make modules_install

#make install

依次执行完成。

去根目录下/boot/文件下ls看看,应该生成

config-2.6.38.3

System.map-2.6.38.3

vmlinuz-2.6.38.3

在这个/boot/目录下执行命令

#mkinitramfs -o /boot/initrd.img-2.6.38.3-uk /lib/modules/2.6.38.3

这个initrd.img-2.6.38.3-uk是要生成的文件

后边的是你编译内核的时候生成的文件夹

这时候在/boot/中ls,是否生成了initrd.img-2.6.38.3-uk这个文件?

然后把/boot/grub/grub.cfg中打开

找到和这个类似的文档:

 

复制并黏贴到它前边,对比你会觉得只改了改名字:

 

保存退出就好了。重新启动系统。

再次使用

#uname -a

Linux ubuntu 2.6.38.3 #1 SMP Wed Mar 13 06:10:54 PDT 2013 i686 GNU/Linux

阅读(934) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~