Browse the Linux Kernel Source with LXR

LXR (stands for Linux Cross-Reference), is a great tool which indexes the source code of the Linux Kernel and allows you browse the source in your favorite browser (Firefox), with quick references for all functions/files referenced in that code. (it's not limited to use in Linux Kernel though, and can be used to index any large project's source code).

Whenever I need to touch the Linux Kernel code, I first open a new tab with LXR, another with Google ready to work, and a shell terminal ready for grep queries.

This post will deal with installing LXR on Ubuntu and making it work.


1. First we need to install Apache (http server) and related stuff:

sudo apt-get install apache2 libapache2-mod-perl2

sudo apt-get install libcgi-simple-perl libcgi-ajax-perl libhtml-parser-perl libtemplate-perl

2. Install LXR

sudo apt-get install lxr

3. Now we need to install Glimpse, which is a powerful indexing tool used by LXR:

First we need to download the latest version from Glimpse's homepage. Click here to download.

Extract the tarball:

tar xzf glimpse-latest.tar.gz

Now we need to install flex (needed for installing glimpse)

sudo apt-get install flex

In the top directory of glimpse run these:

./configure

make

sudo make install

4. Open /etc/apache2/httpd.conf with your favorite text editor (vim) as root, and add these:

# Linux Cross Reference Stuff
Alias /lxr /usr/share/lxr
<Directory /usr/share/lxr>
Options All
AllowOverride All
</Directory>

5. Open the file /usr/share/lxr/http/.htaccess with your favorite text editor and add these:

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

6. Go to /usr/share/lxr/source/

7. Create a directory with the Kernel version number. For example:

mkdir 2.6.22

8. Download the Kernel Source from kernel.org into /usr/share/lxr/source/2.6.22

9. untar the source tarball inside the 2.6.22 directory

10. Add the version number to /usr/share/lxr/source/versions:

echo 2.6.22 > /usr/share/lxr/source/versions

11. Create a symbolic link to 2.6.22 to make also the default version displayed:

ln -s /usr/share/lxr/source/2.6.22 /usr/share/lxr/source/defversion

12. Generate the cross-reference (This might take a few minutes):

cd /usr/share/lxr/source/2.6.22/

genxref

glimpseindex -H . .

13. Give permissions to http server to read the files:

chown www-data.www-data .glimpse_*

chown -R www-data.www-data /usr/share/lxr/

chown www-data.www-data fileidx

14. restart apache

/etc/init.d/apache2 restart

15. Open /usr/share/lxr/http/lxr.conf with a text editor.

Change this line:

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

into:

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

16. That's it, now open firefox, and go to:

http://localhost/lxr/http/blurb.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值