2015-05-03 95 views
2

我在Debian 7.0和内核3.2上使用了MOXA设备。我能够为这个内核成功编译Moxa RealTTY驱动程序,但是在我升级到Debian 8.0内核3.16后,我无法编译它。 我问MOXA最新的驱动程序,但迄今没有答案。最新的驱动程序已从此链接下载http://mtsc.moxa.com:8888/Software/DN/NPort/Driver/RealTTY/,但此链接不再有效。Linux内核上的Moxa RealTTY模块编译错误3.16

当我运行./mxinst它崩溃的这个错误: ================================= ============================================== 版权所有(C )2002-2014 Moxa Inc. 保留所有权利。

MOXA NPort Server Real TTY Driver V1.18.33 Installation. 
System Information: Kernel 3.16.0-4-amd64; Machine x86_64. 
=============================================================================== 


Tar files, please wait ... OK! 
Building driver... 

If you want to use secure communication with target, 
you might choose [y] to enable the SSL function. 
Note: This function support RealCOM with secure mode only. 
Do you want to enable secure function? [y/N]. 
n 
make -C /lib/modules/3.16.0-4-amd64/build SUBDIRS=/opt/moxa.git/npreal2 modules 
make[1]: Entering directory '/usr/src/linux-headers-3.16.0-4-amd64' 
Makefile:10: *** mixed implicit and normal rules: deprecated syntax 
make[1]: Entering directory `/usr/src/linux-headers-3.16.0-4-amd64' 
    CC [M] /opt/moxa.git/npreal2/npreal2.o 
/opt/moxa.git/npreal2/npreal2.c: In function ‘npreal_wait_command_completed’: 
/opt/moxa.git/npreal2/npreal2.c:4744:13: error: implicit declaration of function ‘interruptible_sleep_on_timeout’ [-Werror=implicit-function-declaration] 
      interruptible_sleep_on_timeout(&nd->cmd_rsp_wait,timeout); 
      ^
cc1: some warnings being treated as errors 
/usr/src/linux-headers-3.16.0-4-common/scripts/Makefile.build:268: recipe for target '/opt/moxa.git/npreal2/npreal2.o' failed 
make[4]: *** [/opt/moxa.git/npreal2/npreal2.o] Error 1 
/usr/src/linux-headers-3.16.0-4-common/Makefile:1350: recipe for target '_module_/opt/moxa.git/npreal2' failed 
make[3]: *** [_module_/opt/moxa.git/npreal2] Error 2 
Makefile:181: recipe for target 'sub-make' failed 
make[2]: *** [sub-make] Error 2 
Makefile:8: recipe for target 'all' failed 
make[1]: *** [all] Error 2 
make[1]: Leaving directory '/usr/src/linux-headers-3.16.0-4-amd64' 
Makefile:67: recipe for target 'module' failed 
make: *** [module] Error 2 
Check Driver... 
FAILED !!! 

Install Not Completed ! 

我已经上传最新的驱动程序到GitHub(https://github.com/rchovan/npreal2)。有人可以帮我解决这个模块在Linux内核3.16和最新版本上编译它吗?

谢谢

+0

你做了什么来解决缺少的功能问题:'interruptible_sleep_on_timeout()' – user3629249

+0

嗨,我还没有解决它。我不熟悉C语言和Linux内核模块的开发。我的经历以源代码编译结束。 – Coudy

+0

你好。新版本的驱动程序可用。请联系[email protected]并要求提供新的linux驱动程序(测试版驱动程序,但到目前为止,它几乎在所有的Linux系统上都有效)。然后我会为您提供所需的驱动程序。 –

回答

1

功能interruptible_sleep_on_timeout已经在内核版本3.15被删除。

失踪功能的解决方法可以在许多补丁可以找到,比如这个lm-sensors patch

-   timeout = interruptible_sleep_on_timeout(&w1_control_wait, timeout); 
+   prepare_to_wait(&w1_control_wait, &wait, TASK_INTERRUPTIBLE); 
+   timeout = schedule_timeout(timeout); 
+   finish_wait(&w1_control_wait, &wait); 

我根据这个方案,修补艾驱动程序,并就您的GitHub库拉请求。请测试它。

+0

嗨,补丁是确定的。模块已编译并且功能齐全。谢谢 – Coudy