linux内核源码升级方法

内核的编译
--------------------------------------------------------------------------------------------
1. 解压源代码到任意目录, 如/usr/src/linux-2.6.32-220.el6.x86_64


2. 拷贝目标系统的.config文件到源码目录的根目录, 这里还是/usr/src/linux-2.6.32-220.el6.x86_64
    
    拷贝.config文件说明。
    这里编译的设备是要到目标机器运行,仅仅对源码打了很少的补丁。
    打补丁方法:
    patch -p1 < xxx.patch
    目标系统当前运行内核的.config文件: /boot/config-<version>
    cp /boot/config-2.6.32-220.el6.x86_64   /usr/src/linux-2.6.32-220.el6.x86_64/.config


3. 执行make oldconfig , 这个操作的含义是快速配置新源码中新增的,旧源码中没有的项。


4. 执行make clean , 这个操作是清理内核源码编译生成的中间文件。


5. 执行make menuconfig, 对一些相关项做配置。
    重点说明, 编译内核的时候请去掉模块签名认证<Module signature verification (EXPERIMENTAL) >.
    否则新编译的内核不能加载以前的内核模块。 我的理解是,开启这个功能后加载模块的时候会去检查模块签名,
    如果模块不是由这个内核编译的,则不让加载。


6. 手动修改源码根目录的Makefile文件, 指定内核版本号信息。
    如:
        VERSION = 2
        PATCHLEVEL = 6
        SUBLEVEL = 32
        EXTRAVERSION = -220.el6.x86_64


7. 执行 make -j4 , j4指告诉make系统有4个cpu核, 编译时会起四个编译进程,加快编译速度。


编译后的安装

-------------------------------------------------------------------------------------------------
编译完成后, 会生成内核文件和内核符号文件, 以 x86_64的配置文件为例。
会在 arch/x86_64/boot/ 生成bzImage, 这就是新内核。


内核的符号文件,即内核导出的函数文件,是内核根目录的 System.map。


1. 模块的安装
    执行 make modules_install, 会将新的内核模块安装在/lib/modules/ 下。
    会在/lib/modules/下新建一个目录,这里就与在编译时Makefile中指定的版本相关了。
    我这里是 : 
    /lib/modules/2.6.32-220.el6.x86_64。
    如果编译时指定的版本号与现有内核版本号一样,请考虑安装前先备份现有内核模块目录。
    并不是内核升级就需要重新升级模块, 我对内核做一个很小的补丁,不必重新安装模块。
    -----
    模块中有几个文件要特别注意:
    modules.dep :内核模块的依赖关系文件, 调用 depmod生成。
    modules.symbols : 所有模块的接口的导出文件。
    
2. 内核的安装
    拷贝 arch/x86_64/boot/bzImage 到/boot目录。
    拷贝 System.map 到 /boot目录。 <非必须,不过严谨掉拷贝是好的习惯, 方便问题定位>
    
    备份现有的 vmlinuz-2.6.32-220.el6.x86_64 和  System.map-2.6.32-220.el6.x86_64 。
    然后重命名拷贝过来的文件为 vmlinuz-2.6.32-220.el6.x86_64 和  System.map-2.6.32-220.el6.x86_64 。
    
3. 内核源码树的替换 
    如果我们需要编译依赖新内核的程序, 这里的替换显的很有必要,否则会出现如找不到宏定义之内的错误。
  
    备份老的build目录, 创建一个软连接到我们的新源码。
    ln -s /usr/src/linux-2.6.32-220.el6.x86_64 build


到此内核升级完成。reboot以新内核启动,如果启动失败,手动在启动的等待界面修改grub,指定旧的内核文件启动。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

懂你668

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值