是af_packet.ko应该自动加载?

时间:2016-08-02 22:06:35

标签: linux configuration linux-kernel embedded-linux

我遇到了尝试让wpa_supplicant在运行自定义嵌入式Linux发行版时运行的问题。经过一些调试后发现它是因为内核不支持域类型PF_PACKET:

touchesEnded

这是由af_packet模块支持并预先加载它修复了问题。我注意到它也有别名“pf-net-17”,如果用户空间通过别名请求,内核似乎可以在运行时加载该模块。我在另一个嵌入式Linux发行版中对此进行了测试,确定情况确实如此。在请求者被召唤之后它被加载了。

有谁知道为什么这个功能在第一次设置中不起作用?也许我错过了内核设置?

1 个答案:

答案 0 :(得分:0)

基本上有两个原因可以解释为什么这个系统在另一个系统上运行而不是在你的主板上:

  • PF_PACKET配置为在内核中构建,或者不构建为模块。
  • af_packet模块在运行时自动加载,既可以作为另一个模块的依赖项,也可以作为在启动时自动加载的模块

我建议您阅读此document关于模块加载的内容,该内容非常简洁,完整且准确。

解决问题的方法是确保为目标系统运行depmod,以便更新构建的模块依赖性,以便在启动时自动加载af_packet模块。

另一个值得关注的地方是udev,根据内核检测到的设备,这意味着load modules。也许你的系统中也缺少/配置错误。