当前位置: 首页 > 工具软件 > LXR > 使用案例 >

linux内核代码查看软件,linux下搭建查看内核源代码工具lxr

屠君墨
2023-12-01

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文件

在里面增加如下内容:

SetHandler cgi-script

四、复制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等测试过

 类似资料: