Browse the Linux Kernel Source with LXR
来源:互联网 发布:阿里云 不同可用区互通 编辑:程序博客网 时间:2024/05/21 11:31
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)$>
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
- Note: It’s possible to cross-reference multiple source code projects (or multiple kernel versions). See more information in the sites linked below.
You should be able to browse the Kernel source files like the screenshot below:
Enjoy
Credits:
Orandespike Blog
Glimpse
Eclectic’s Blog
from http://www.amirwatad.com/blog/archives/2009/05/12/browse-the-linux-kernel-source-with-lxr/
- Browse the Linux Kernel Source with LXR
- Browse the Linux Kernel Source with LXR
- Linux Kernel---some source on the internet.
- Debugging the Linux kernel with JTAG
- Debugging the Linux Kernel with debugfs
- 搭建本机使用的LXR来阅读Linux Kernel
- 搭建本机使用的LXR来阅读Linux Kernel
- HowTo use the CDT to navigate Linux kernel source
- HowTo use the CDT to navigate Linux kernel source
- KGDB is a source level debugger for the linux kernel
- Compile linux kernel source
- linux kernel source code
- Configure Linux kernel source
- Displaying 'Browse Folders' dialog with the default folder selected
- linux源码分析工具LXR-the Linux Cross Referencer
- Kernel Configuration: dealing with the unexpected (zz from Linux magazine)
- get linux kernel source ubuntu
- Linux Kernel Source - current 宏
- android学习三 手机页面的转换
- 常用FTP命令及简单上传下载实例大搜捕2
- 常用FTP命令及简单上传下载实例大搜捕2
- 如何设置到映射网络驱动器的超时连接时间
- 最近公共祖先LCA的几种解决方案
- Browse the Linux Kernel Source with LXR
- 常用FTP命令及简单上传下载实例大搜捕3
- 利用thrift API访问Cassandra 第二天
- ASP.NET绘制条形图
- C#连接接MySQL
- js日期在火狐显示为111年的问题
- Nutch的一些分析
- 内核编译篇-------
- 优先存储SDCard ,无sdcard存在手机内存中!