利用lxr查看内核源代码,其实就是搭建一个本地的网站,在ubuntu上,我们可以快速的完成这些工作。先大体的了解下需要的工具,apache2,glimpse,lxr。下面就正式开始搭建我们自己的lxr.
一、安装apache2:
sudo apt-get install apache2
二、安装glimpse:
在编译之前,首先看看你的机器上是否已经安装了flex,因为编译glimpse的时候需要这个软件。如果没有的话,那么进行安装:
sudo apt-get install flex
先去网站下载最新的源代码glimpse-latest.tar.gz,下载网址:http://webglimpse.net/download.php,然后解压到当前目录下
tar -xvzf glimpse-latest.tar.gz
再接着进入解压后的目录下,比如我的是:
cd glimpse-4.XX/
接着进行编译:
./config
make
sudo make install
三、安装lxr
sudo apt-get install lxr
新建/usr/share/lxr/http/.htaccess文件
在里面增加如下内容:
<Files ~ (search|source|ident|diff|find)$>
SetHandler cgi-script
</Files>
四、创建/usr/share/lxr/source/XX目录 (XX为版本号)
mkdir /usr/share/lxr/source/2.6.38.4
然后在/usr/share/lxr/source/2.6.38.4 下创建linux符号连接
ln -s /usr/src/linux-source-2.6.38.4 /usr/share/lxr/source/2.6.38.4/linux
五、创建/usr/share/lxr/source/versions文件,这里记录所有要看的版本,内容是
2.6.38.4
创建/usr/share/lxr/source/defversion文件,这里记录缺省要看的版本,内容是
2.6.38.4
之所以是这两个文件,见/usr/share/lxr/http/lxr.conf里的相关设置
六. 建立索引
cd /usr/share/lxr/source/2.6.38.4/
sudo genxref linux //这样会在当前目录生成fileidx和xref
sudo glimpseindex -H /usr/share/lxr/source/2.6.38.4/ /usr/share/lxr/source/2.6.38.4/linux
需要等待一段时间
之所以是这个目录(/usr/share/lxr/source/2.6.38.4/),见/usr/share/lxr/http/lxr.conf里的相关设置(database项)
七.修改属性
sudo chmod +r -R /usr/share/lxr/source/2.6.38.4/*
八、阅读源代码
打开浏览器,输入http://localhost/lxr/http/source就能浏览本地的内核代码了
重新启动apache2
sudo /etc/init.d/apache2 restart
阅读的时候可以看到页面顶部有
~ [ source navigation ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~
source navigation是用户查看页面的界面
identifier search是查找某个变量名、结构名、函数名的界面
freetext search是查找任何字符串的界面
file search查找某个文件
本方法在ubuntu11.04 等测试过