Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux RedHat中的sleep()函数调用导致可加载内核模块出现故障_Linux_Redhat_Kernel Module - Fatal编程技术网

Linux RedHat中的sleep()函数调用导致可加载内核模块出现故障

Linux RedHat中的sleep()函数调用导致可加载内核模块出现故障,linux,redhat,kernel-module,Linux,Redhat,Kernel Module,我在尝试使用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的源代码的方法 谢谢。首先,sleep()不是系统调用,它是在libc中使用sys\u nanosleep syscall

我在尝试使用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的源代码的方法

谢谢。

首先,sleep()不是系统调用,它是在libc中使用sys\u nanosleep syscall实现的


因此内核中没有睡眠,请使用msleep、mdelay或usleep_范围(include/linux/delay.h)或wait_事件函数(include/linux/wait.h)

内核2.4.20中不包括msleep和其他变体的定义。必须使用内核的schedule_timeout()函数自己实现它


此外,在这里可以浏览内核代码:

我想我找到了答案。这是一个可以浏览内核代码的地方:。此外,内核2.4.20中不包括sleep和msleep的符号。我将不得不使用内核的schedule_timeout()函数自己实现它。这正是sys_nanosleep syscall在这个古老的内核中实现的方式,我真的很同情您必须使用这样一个过时的版本