如何在无线驱动程序中重置系统?

时间:2013-07-12 04:17:04

标签: c linux driver wireless kernel-module

我可以使用emergency_restart()吗?

或者如果我使用kill(1,SIGTERM);

我需要包含“signal.h”,但它似乎无法在无线驱动程序中使用

  1. 嵌入式Linux系统
  2. 设备:无线AP
  3. 代码部分:无线驱动程序

1 个答案:

答案 0 :(得分:0)

正如Basile所说,kill()是一个用户空间系统调用,所以你不能在内核模块中使用它。无论如何,这是完成你想要做的事情的粗暴方式。除非你有理由在kernel_restart()上使用emergency_restart(),否则我会使用后者。您可以在reboot.h中找到您的选项。

顺便说一句,这是在你的系统中打开一个安全漏洞。由于驱动程序正在解释数据包以确定是否需要重新启动,因此OS无法帮助确定该源是否有权在您的系统上执行此类操作。使用具有相应权限的用户空间守护程序来重启计算机可能会更好,并且可以充当身份验证代理和重新启动代理,而不是在驱动程序中执行此操作。