我面臨的一個問題,在試圖用insmod加載的LKM到RedHat的內核,但它返回我下面的錯誤睡眠()函數調用: -加載內核模塊的麻煩與紅帽
Insmod –f tmdq.o
tmdq.o: unresolved symbol sleep
爲什麼應該從LKM中的sleep()系統調用引發問題?我希望檢查在Red Hat Linux 3.2.2-5,Linux版本2.4.20-8中是否有其他名稱給sleep()。
另外,有沒有辦法瀏覽RedHat在線的源代碼,而無需下載它?
謝謝。
我面臨的一個問題,在試圖用insmod加載的LKM到RedHat的內核,但它返回我下面的錯誤睡眠()函數調用: -加載內核模塊的麻煩與紅帽
Insmod –f tmdq.o
tmdq.o: unresolved symbol sleep
爲什麼應該從LKM中的sleep()系統調用引發問題?我希望檢查在Red Hat Linux 3.2.2-5,Linux版本2.4.20-8中是否有其他名稱給sleep()。
另外,有沒有辦法瀏覽RedHat在線的源代碼,而無需下載它?
謝謝。
首先,sleep()不是系統調用,它是通過使用sys_nanosleep系統調用在libc中實現的。
所以在內核中,使用msleep,mdelay或usleep_range無眠(在include/linux/delay.h)或wait_event_功能(在include/linux/wait.h)也許有msleep的
定義和其他變體不包含在內核2.4.20中。必須使用內核的schedule_timeout()函數自己實現它。
此外,這是其中一個可以瀏覽內核代碼:lxr.linux.no
這正是sys_nanosleep系統調用在這個古老的內核中的實現方式,我真的覺得你不得不使用這樣一個過時的版本 – Raber
我想我找到了答案。這是瀏覽內核代碼的地方:http://lxr.linux.no/。此外,內核2.4.20中不包括sleep和msleep的符號。我將不得不使用內核的schedule_timeout()函數來自己實現它。 – user940154