假定,您想要開始研究 USB 驅(qū)動程序,從哪里入手查找 USB 代碼?首先,您可以在頂層內(nèi)核目錄中嘗試運(yùn)行 find 命令:
$ find . -name *usb*
這個命令將打印出包含有字符串“usb”的所有文件名,可以嘗試的另外一種方法是,查找某個惟一的字符串,這個惟一的字符串可以是 printk() 的輸出,或者是 /proc 中的文件名稱,或者是可以在源代碼中找到的關(guān)于那個驅(qū)動程序的任意其他惟一的字符串,例如,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 命令的惟一字符串。
如果所有其他方法都失敗了,那么可以嘗試進(jìn)入到各個目錄并列出文件,或者查看 ls -lR 的輸出。可能會看到看起來相關(guān)的文件名。不過,這應(yīng)該是最后的辦法,只有在多次運(yùn)行了不同的 find 和 grep 命令后再來嘗試它。
找到感興趣的源代碼后,可以開始閱讀它,閱讀和理解源代碼本身就是另外一門課程,只需要記住,對源代碼閱讀的越多,就越容易把握它,祝您在研究內(nèi)核的過程中獲得樂趣!
新聞熱點(diǎn)
疑難解答
圖片精選