December 17, 2006

在 Redhat AS 4 下安裝 systemtap

Systemtap是一套dynamic kernel probing system. 動態修改變數、更換function、找出function flow...這一套系統在kernel-2.6.11之後皆可以使用,只要Kernel config設定了"CONFIG_KPROBES","CONFIG_DEBUG_INFO"和相關套件就可以使用了。
因為弟的產品開發是Redhat AS4 base,而該dist所包kernel為2.6.9,雖然舊,但redhat持續有上patch,官方release note指出有支援systemtap,卻沒有詳細的安裝步驟,其實內建的套件都已經支援了,只是缺乏kernel-debuginfo套件而已。所以本節只是講解產生kernel-debuginfo,礙於腦筋不夠靈光,特寫此篇來記錄。以下是安裝順序:

  • 先安裝好Redhat AS U4,弟安裝的套件有開發用的套件

  • rpmfind找到Redhat ASU4的kernel-src.rpm

  • 安裝kernel-2.6.9-42.EL.src.rpm:rpm -ivh kernel-2.6.9-42.EL.src.rpm

  • 編輯kernel的spec檔案:vim /usr/src/redhat/SPECS/kernel-2.6.spec,指定要編譯的kernel設成1,其餘為0。以筆者來說,只需要%define buildup 1,其餘就填0

  • 執行 rpmbuiild --target i686 -ba kernel-2.6.spec

  • 安裝編譯好的kernel-debuginfo rpm:rpm -ivh /usr/src/redhat/RPMS/i686/kernel-debuginfo-2.6.9-42.EL.i686.rpm,這個rpm內附kernel的symbol檔,拿來debug用的

  • 安裝光碟所附的systemtap或是到rpmfind.net找

  • 經過以上的動作就完成了systemtap的環境的設置,馬上拿systemtap script來測試吧!

    Posted by asho at December 17, 2006 12:43 AM
    Comments
    Post a comment









    Remember personal info?