Yocto:将核心模块添加到图像

时间:2018-05-15 15:01:05

标签: kernel-module yocto

我使用iptablesCORE_IMAGE_EXTRA_INSTALL += "iptables"包添加到我的设备图片中。

我尝试在设备上运行它并收到以下错误消息:

# iptables -L modprobe: FATAL: Module ip_tables not found in directory /lib/modules/4.9.11-1.0.0+gc27010d iptables v1.6.1: can't initialize iptables table `filter': Table does not exist (do you need to insmod?) Perhaps iptables or your kernel needs to be upgraded.

好像我缺少了内核模块。

需要您帮助将标准内核模块添加到映像中(在哪里可以找到所有模块文件以及如何添加并加载到映像中)。

提前致谢!

1 个答案:

答案 0 :(得分:1)

必须将iptables模块添加到内核中。我遇到了同样的问题,可以通过以下步骤解决:

  • 运行bitbake -c menuconfig virtual/kernel
  • 激活CONFIG_IP_NF_IPTABLES模块(您可以在菜单上键入斜杠“ /”来搜索其位置)。
  • 保存并运行bitbake -c savedefconfig virtual/kernel将该文件另存为defconfig。
  • defconfig文件从返回的路径复制到yocto-distro/layer-name/recipes-kernel/linux/files/(如果该目录不存在,则创建此目录)。
  • .bbappend内创建一个yocto-distro/layer-name/recipes-kernel/linux/文件,其名称与meta层中的原始配方文件相同。
  • 编辑文件并在下面添加行:
SRC_URI += "file://defconfig"
KERNEL_DEFCONFIG = "${WORKDIR}/defconfig"
FILESEXTRAPATHS_prepend := "${THISDIR}/files"
~
  • 重新启动bitbake your-image-name

这对我的情况有效。顺便说一句,我从以下网站获得了该信息:

祝您愉快:D