【问题标题】:Is af_packet.ko supposed to automatically load?af_packet.ko 应该自动加载吗?
【发布时间】:2016-12-08 10:42:22
【问题描述】:

我在尝试让 wpa_supplicant 在运行自定义嵌入式 Linux 发行版的板上运行时遇到问题。经过一番调试,原来是因为内核不支持域类型PF_PACKET:

drv->eapol_tx_sock = socket(PF_PACKET, SOCK_DGRAM, 0);

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

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

【问题讨论】:

    标签: linux configuration linux-kernel embedded-linux


    【解决方案1】:

    这基本上有两个原因可以在另一个系统上而不是在您的板上工作:

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

    我建议您阅读这篇关于模块加载的document,它非常简洁、完整和精确。

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

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

    【讨论】:

      猜你喜欢
      • 2020-01-17
      • 1970-01-01
      • 2014-07-08
      • 2020-09-04
      • 1970-01-01
      • 1970-01-01
      • 2012-04-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多