• [转]搭建lxr查看linux内核源代码


    原地址:http://www.cnblogs.com/huangwei/archive/2010/05/13/1734935.html

         linxu下阅读内核源代码,通常都使用vim + ctags 或者 lxr进行,我个人比较倾向于lxr,因为lxr提供了良好的界面,函数和定义都使用超链接标记出来,可以很方便的跟踪到函数内部去查看详细或者查看数据结构的定义等。网上有现成的网站提供了这样的服务,如果你只是偶尔看看内核源代码的话,其实直接登录某些提供这样服务的网站就差不多了,比如LXR,这个网站提供的体验相当不错,我以前就是经常在这个网站上查看源代码的,毕竟搭建这个环境的过程中,要建立文件检索的过程还是比较漫长的。

     

      利用lxr查看内核源代码,其实就是搭建一个本地的网站,在ubuntu上,我们可以快速的完成这些工作。先大体的了解下需要的工具,apache2glimpselxr。下面就正式开始搭建我们自己的lxr.

     

    一、安装apach2

    sudo apt-get install apache2

     

    二、安装glimpse:

    先去网站下载最新的源代码glimpse-latest.tar.gz,然后解压到当前目录下

    tar -xvgf glimpse-latest.tar.gz

     

    再接着进入解压后的目录下,比如我的是:

    cd glimpse-4.18.6/

     

    在编译之前,首先看看你的机器上是否已经安装了flex,因为编译glimpse的时候需要这个软件。如果没有的话,那么进行安装:

    sudo apt-get install flex

     

    接着进行编译:

    ./config

    make

    sudo make install

     

    执行完上面的步骤后,将生成的glimpse glimpseindex 拷贝到/bin目录下:

    cd /bin

    sudo cp glimpse glimpseindex /bin

     

    三、安装lxr

    sudo apt-get install lxr

     

    新建/usr/share/lxr/http/.htaccess文件

    在里面增加如下内容:

    <Files ~ (search|source|ident|diff|find)$>
    SetHandler cgi-script
    </Files>

     

    四、复制linux源代码

    linux官方网站下载最近的内核代码(当然,以前的也可以)

     

    复制linux源代码到/usr/share/lxr/source

    sudo cp /home/huangwei/Download/linux-2.6.33.2.tar.bz2 /usr/share/lxr/source

    解压:

    tar xvjf linux-2.6.33.2.tar.bz2

    重命名解压后的文件夹

    sudo mv linux-2.6.33.2 2.6.33

     

    五、生成数据文件

    cd /usr/share/lxr/source

    生成关键字交叉索引数据库

    sudo genxref 2.6.33/

    接下来要等待一段比较长的时间,因为它要扫描文件。

    接下来,生成freetext交叉索引数据库:

    glimpseindex -H . 2.6.33/

    更改权限,使任何人都可以读取该文件

    sudo chmod +r .glimpse*

     

    六、修改lxr配置文件

    原文:

    sourceroot: /usr/share/lxr/source/$v/linux/

    dbdir: /usr/share/lxr/source/dbdir

     

    改成 :

    sourceroot: /usr/share/lxr/source/2.6.33 #刚刚生成的fileidx xref 的地址

    dbdir: /usr/share/lxr/source #生成的.glimpse_filenames这些文件的位置

     

    七、阅读源代码

    重新启动apache2

    sudo /etc/init.d/apache2 restart

    打开浏览器,输入http://localhost/lxr/http/source就能浏览本地的内核代码了

    阅读的时候可以看到页面顶部有

    ~ [ source navigation ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

    source navigation是用户查看页面的界面

    identifier search是查找某个变量名、结构名、函数名的界面

    freetext search是查找任何字符串的界面

    file search查找某个文件

     

    根据Nickelzhang的建议,贴上我自己装完后的截图:

    clip_image002 

  • 相关阅读:
    UltraEdit 注册机使用说明
    sybase 收集常用sql语句
    过渡模式
    JavaScript 钩子
    自定义过渡的类名
    CSS过渡、CSS动画
    单元素/组件的过渡
    通过 v-once 创建低开销的静态组件
    内联模板、X-Template
    程序化的时间侦听器
  • 原文地址:https://www.cnblogs.com/foxhengxing/p/1961373.html
Copyright © 2020-2023  润新知