我在使用insmod尝试将LKM加载到RedHat内核时遇到了问题,但是它返回了以下错误: -
Insmod -f tmdq.o
tmdq.o:未解决的符号睡眠
为什么LKM内的sleep()系统调用会导致问题?我希望检查Red Hat Linux 3.2.2-5,Linux版本2.4.20-8中是否有其他名称给sleep()。
另外,有没有办法在线浏览RedHat的源代码,而无需下载?
感谢。
答案 0 :(得分:0)
首先,sleep()不是系统调用,而是使用sys_nanosleep系统调用在libc中实现。
所以内核没有睡眠,使用msleep,mdelay或usleep_range(include / linux / delay.h)或者wait_event_函数之一(include / linux / wait.h)
答案 1 :(得分:0)
内核2.4.20中不包含msleep和其他变体的定义。必须使用内核的schedule_timeout()函数自己实现它。
此外,这是人们可以浏览内核代码的地方:lxr.linux.no