歡迎您光臨本站 註冊首頁

查找內核中的特定代碼

←手機掃碼閱讀     火星人 @ 2014-03-26 , reply:0

假定,您想要開始研究 USB 驅動程序。從哪裡入手查找 USB 代碼?

首先,您可以在頂層內核目錄中嘗試運行 find 命令:


$ find . -name \*usb\*



這個命令將列印出包含有字元串「usb」的所有文件名。

可以嘗試的另外一種方法是,查找某個惟一的字元串。這個惟一的字元串可以是 printk() 的輸出,或者是 /proc 中的文件名稱,或者是可以在源代碼中找到的關於那個驅動程序的任意其他惟一的字元串。例如,USB 列印的消息是:


USB Universal Host Controller Interface driver v2.2



所以可以嘗試使用遞歸的 grep 來查找那個 printk 中不包括版本號的部分:


$ grep -r "USB Universal Host Controller Interface driver" .


嘗試查找 USB 源代碼的另一種方法是查看 /proc。如果輸入 find /proc -name usb,那麼可能會找到一個名為 /proc/bus/usb 的目錄。閱讀那個目錄中的條目,可能會找到用於 grep 命令的惟一字元串。

如果所有其他方法都失敗了,那麼可以嘗試進入到各個目錄並列出文件,或者查看 ls -lR 的輸出。可能會看到看起來相關的文件名。不過,這應該是最後的辦法,只有在多次運行了不同的 find 和 grep 命令后再來嘗試它。

找到感興趣的源代碼后,可以開始閱讀它。閱讀和理解源代碼本身就是另外一門課程。只需要記住,對源代碼閱讀的越多,就越容易把握它。祝您在研究內核的過程中獲得樂趣!

[火星人 ] 查找內核中的特定代碼已經有389次圍觀

http://coctec.com/docs/linux/show-post-189925.html