Linux内核编译以及perfctr模块安装(2)

    (1)解压内核
    bzip2 -d linux-2.6.19.tar.bz2
     tar xvf linux-2.6.19.tar
    生成linux-2.6.19目录

    (2)复制内核到/usr/src目录下
    cp -r linux-2.6.19 /usr/src/

    (3) 解压papi到目录/opt下,

    tar zxvf papi-3.6.0.tar.gz

     cp papi-3.6.0 /opt/

    

    (4)
    cd /usr/src/linux-2.6.19
    make mrproper

   

    (5)在内核目录下执行update-kernel 
    cd /usr/src/linux-2.6.19

     /opt/papi-3.6.0/src/perfctr-2.6.x/update-kernel
    <必须在内核目录下执行,否则在后续选择内核模块时找不到perctr>

    若内核版本有问题则出现如下信息
    Error: no suitable patch found for kernel 2.6.19zkl-perfctr
    See perfctr-2.6.x/patches/ for supported kernel versions,

    可以查看perfctr-2.6.x/patches/下支持的内核版本。

    (6)该步骤可以跳过,也可以这样做

    拷贝原有内核的.config到当前内核目录下
    cd /usr/src/linux-2.6.19
    cp /usr/src/kernels/2.6.18-164.el5-x86_64/.config .
    (7)配置选择内核模块

     cd /usr/src/linux-2.6.19
      make menuconfig

     选择模块:

     查看perfctr-2.6.x目录下的INSTALL文件,它有如下这些内容,其意思是说必须选择这样几个模块:
     (i)Loadable  module  support 选项下,一般默认即可,这个模块的功能是帮助系统可以动态加载模块。

Linux内核编译以及perfctr模块安装


     (ii)Processor type and features选项下的Performance-monitoring counters support(即PERFCTR),

     这个必须选择,笔者做实验觉得应该将PERFCTR选择为(M),其子项均选择为*,将它编译成可动态加载的模块,请按如下方式选择。

Perfctr模块选择


     注意:
     我在做实验时,最开始将PERFCTR选择为*,将其编译进内核,最后安装完毕,始终不能执行perfectr的实例,查看系统目录/lib/modules/'uname -r'/drivers下也没有perfectr模块,使用lsmod不能查看到perfctr模块,既然编译进了内核,应该能看到的,不知啥原因?更不能使用命令modprobe perfctr加载模块(因为不是以动态加载模块的形式加载的),可能与没有将PERFCTR模块设置为M有关。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwxsdx.html