linux下搭建查看內(nèi)核源代碼工具lxr linux下閱讀內(nèi)核源代碼,,通常都使用vim + ctags 或者 lxr進(jìn)行,我個(gè)人比較傾向于lxr,,因?yàn)閘xr提供了良好的界面,,函數(shù)和定義都使用超鏈接標(biāo)記出來(lái),可以很方便的跟蹤到函數(shù)內(nèi)部去查看詳細(xì)或者查看數(shù)據(jù) 結(jié)構(gòu)的定義等,。網(wǎng)上有現(xiàn)成的網(wǎng)站提供了這樣的服務(wù),,如果你只是偶爾看看內(nèi)核源代碼的話,其實(shí)直接登錄某些提供這樣服務(wù)的網(wǎng)站就差不多了,,比如LXR,,這個(gè)網(wǎng)站提供的體驗(yàn)相當(dāng)不錯(cuò),我以前就是經(jīng)常在這個(gè)網(wǎng)站上查看源代碼的,,畢竟搭建這個(gè)環(huán)境的過(guò)程中,,要建立文件檢索的過(guò)程還是比較漫長(zhǎng)的。
利用lxr查看內(nèi)核源代碼,其實(shí)就是搭建一個(gè)本地的網(wǎng)站,,在ubuntu上,,我們可以快速的完成這些工作。先大體的了解下需要的工具,,apache2,,glimpse,lxr,。下面就正式開(kāi)始搭建我們自己的lxr.
一,、安裝apache2: sudo apt-get install apache2
二、安裝glimpse: 先去網(wǎng)站下載最新的源代碼glimpse-latest.tar.gz,,下載網(wǎng)址:http:///download.php,,然后解壓到當(dāng)前目錄下 tar -xvzf glimpse-latest.tar.gz
再接著進(jìn)入解壓后的目錄下,比如我的是: cd glimpse-4.18.6/
在編譯之前,首先看看你的機(jī)器上是否已經(jīng)安裝了flex,,因?yàn)榫幾gglimpse的時(shí)候需要這個(gè)軟件,。如果沒(méi)有的話,那么進(jìn)行安裝: sudo apt-get install flex
接著進(jìn)行編譯: ./config make sudo make install
執(zhí)行完上面的步驟后,,將生成的glimpse glimpseindex 拷貝到/bin目錄下: cd /bin sudo cp glimpse glimpseindex /bin
三,、安裝lxr sudo apt-get install lxr
新建/usr/share/lxr/http/.htaccess文件 在里面增加如下內(nèi)容: <Files ~ (search|source|ident|diff|find)$>
四、復(fù)制linux源代碼 去linux官方網(wǎng)站(http://www./)下載最近的內(nèi)核代碼(當(dāng)然,,以前的也可以)
復(fù)制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
五,、生成數(shù)據(jù)文件 cd /usr/share/lxr/source 生成關(guān)鍵字交叉索引數(shù)據(jù)庫(kù) sudo genxref 2.6.33/ 接下來(lái)要等待一段比較長(zhǎng)的時(shí)間,因?yàn)樗獟呙栉募?/p> 接下來(lái),,生成freetext交叉索引數(shù)據(jù)庫(kù): glimpseindex -H . 2.6.33/ 在剛才glimpseindex時(shí)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這些文件的位置
七,、閱讀源代碼 重新啟動(dòng)apache2 sudo /etc/init.d/apache2 restart 打開(kāi)瀏覽器,,輸入http://localhost/lxr/http/source就能瀏覽本地的內(nèi)核代碼了
閱讀的時(shí)候可以看到頁(yè)面頂部有 ~ [ source navigation ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~ source navigation是用戶查看頁(yè)面的界面 identifier search是查找某個(gè)變量名、結(jié)構(gòu)名,、函數(shù)名的界面 freetext search是查找任何字符串的界面 file search查找某個(gè)文件 本方法在ubuntu9.04,、9.10、10.04等測(cè)試過(guò) |
|