Linux RedHat中的sleep()函数调用导致可加载内核模块出现故障
我在尝试使用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实现的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
因此内核中没有睡眠,请使用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在这个古老的内核中实现的方式,我真的很同情您必须使用这样一个过时的版本