zoukankan      html  css  js  c++  java
  • [原]在Fedora 20环境下安装系统内核源代码

    1、安装Kernel Headers(头文件)

      通过安装kernel-devel RPM包就可以得到Kernel Headers,但默认情况下没有被Fedora 20安装。通过DVD ISO 或者 yum在线安装的方式都可以安装系统内核头文件,这里先查看一下系统的内核版本:

    [root@localhost SPECS]# uname -rm
    3.16.2-200.fc20.x86_64 x86_64

      然后使用yum在线安装Kernel Headers:

    [root@localhost SPECS]# yum install kernel-devel

    2、下载并安装内核源代码

      在大多数情况下,有了Kernel Headers文件就可以编译系统相关的文件了,不需要再下载安装内核源代码。如果确实需要,则需要进行以下四个步骤来完成:

    2.1 准备rpm编译环境

      编译内核源代码包需要借助两个工具:yum-utils和rpmdevtools。在线安装这两个工具的方式如下: 

    [root@localhost ~]# yum install yum-utils rpmdevtools

       安装这两个工具之后,可以使用如下命令生成源代码安装目录(将会在当前用户目录下生成rpmbuild子目录):

    [root@localhost ~]# rpmdev-setuptree

    2.2 下载与当前环境匹配的内核源代码

      使用yum在线下载内核源代码的命令如下:

    [xiaoku@localhost Downloads]$ sudo yumdownloader --source kernel

     2.3 安装SRC.RPM源码包

      切换到源代码文件所在的目录,执行如下命令安装内核的依赖性文件:

    [root@localhost Downloads]# yum-builddep ./kernel-3.16.2-200.fc20.src.rpm

       注意,这里我使用的是root用户,如果是普通用户,请在前面添加sudo或者su -c加单引号。我在做的过程中发现安装了不少的依赖性文件,包括如下内容:

    已安装:
      asciidoc.noarch 0:8.6.8-3.fc20                                                
      audit-libs-devel.x86_64 0:2.4-1.fc20                                          
      binutils-devel.x86_64 0:2.23.88.0.1-13.fc20                                   
      bison.x86_64 0:2.7-3.fc20                                                     
      elfutils-devel.x86_64 0:0.158-4.fc20                                          
      flex.x86_64 0:2.5.37-4.fc20                                                   
      hmaccalc.x86_64 0:0.9.13-1.fc20                                               
      newt-devel.x86_64 0:0.52.16-2.fc20                                            
      pciutils-devel.x86_64 0:3.2.1-2.fc20                                          
      perl-ExtUtils-Embed.noarch 0:1.30-289.fc20                                    
      python-devel.x86_64 0:2.7.5-13.fc20                                           
      xmlto.x86_64 0:0.0.25-7.fc20                                                  
    
    作为依赖被安装:
      boost-regex.x86_64 0:1.54.0-9.fc20                                            
      ctags.x86_64 0:5.8-12.fc20                                                    
      docbook-dtds.noarch 0:1.0-62.fc20                                             
      docbook-style-xsl.noarch 0:1.78.1-2.fc20                                      
      elfutils-libelf-devel.x86_64 0:0.158-4.fc20                                   
      graphviz.x86_64 0:2.34.0-8.fc20                                               
      gts.x86_64 0:0.7.6-23.20111025.fc20                                           
      lasi.x86_64 0:1.1.1-7.fc20                                                    
      netpbm.x86_64 0:10.61.02-8.fc20                                               
      sgml-common.noarch 0:0.6.3-40.fc20                                            
      slang-devel.x86_64 0:2.2.4-11.fc20                                            
      source-highlight.x86_64 0:3.1.6-6.fc20                                        
    
    完毕!
    View Code

       安装的过程比较简单,但是默认会提示缺少用户mockbuild和组mockbuild,所以我干脆输入如下命令:

    [root@localhost Downloads]# groupadd mockbuild
    [root@localhost Downloads]# useradd mockbuild -g mockbuild
    [root@localhost Downloads]# rpm -ivh kernel-3.16.2-200.fc20.src.rpm 
    正在升级/安装...
       1:kernel-3.16.2-200.fc20           ################################# [100%]

    2.4 使用rpmbuild编译源码包

      进入SPECS目录,准备编译源代码:

    [xiaoku@localhost Downloads]$ cd ~/rpmbuild/SPECS/
    [xiaoku@localhost SPECS]$ rpmbuild -bp --target=$(uname -m) kernel.spec
    构建目标平台:x86_64
    为目标x86_64构建
    错误:构建依赖失败:
        pesign >= 0.10-4 被 kernel-3.16.2-200.fc20.x86_64 需要
    [xiaoku@localhost SPECS]$ sudo yum install pesign

       从上面的提示信息可以看出,第一次编译出了点问题,说是需要pesign版本大于0.10-4,这样的话手动yum在线安装一下即可。再次执行上述rpmbuild命令,就能够完成编译任务了。可以从用户目录下看到如下的情况:

    [xiaoku@localhost kernel-3.16.fc20]$ pwd
    /home/xiaoku/rpmbuild/BUILD/kernel-3.16.fc20
    [xiaoku@localhost kernel-3.16.fc20]$ ls
    linux-3.16.2-200.fc20.x86_64  vanilla-3.16

       这里有两个重要的目录:

    1、linux-3.16.2-200.fc20.x86_64/arch 

      这里有包含了Fedora 补丁和更新的标准kernel.org内核源码。系统架构与uname -m的输出相匹配,如果有需要,你可以让–target=选项使用noarch参数。 
    2、
    vanilla-3.16/

      这里只包含标准的kernel.org的kernel(没有补丁和更新)。

    详细内容请参考从RPM包构建完整Fedora内核 官方WIKI

  • 相关阅读:
    Java8新特性学习笔记(一) Lambda表达式
    android游戏动画特效的一些处理
    start from here
    感知机回归
    2020/2/21
    梯度下降
    凸优化
    批量归一化和残差网络
    Momentum
    词嵌入基础
  • 原文地址:https://www.cnblogs.com/kuliuheng/p/3976780.html
Copyright © 2011-2022 走看看