打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
linux下搭建查看内核源代码工具lxr
linux下搭建查看内核源代码工具lxr


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


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


一、安装apache2:

sudo apt-get install apache2


二、安装glimpse:

先去网站下载最新的源代码glimpse-latest.tar.gz,下载网址:http://webglimpse.net/download.php,然后解压到当前目录下

tar -xvzf 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官方网站(http://www.kernel.org/)下载最近的内核代码(当然,以前的也可以)


复制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/

在刚才glimpseindex时Index-directory: "/usr/share/lxr/source"
的目录下,更改权限,使任何人都可以读取该文件

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查找某个文件

本方法在ubuntu9.04、9.10、10.04等测试过
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
阅读linux源代码的工具---lxr和glimpse简介
Linux 内核的定制、安装
详细讲解:编译Linux操作系统内核的步骤
Debian/Ubuntu Linux下内核编程者必备_HackingYou_SupeSi...
Ubuntu下构建内核源码树
linux源代码分析和阅读工具比较
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服