我正在尝试将 IPtables 添加到 Yocto Linux 映像,但我认为 IPtables 所需的已编译模块和模块的版本不匹配。IPtables 正在寻找下面的模块,/lib/modules/4.9.88
但内核模块在/lib/modules/5.4.94
.
root@imx6ullevk:~# iptables -L
modprobe: FATAL: Module ip_tables not found in directory /lib/modules/4.9.88+g5e23f9d61147
iptables v1.8.5 (legacy): can't initialize iptables table `filter': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
root@imx6ullevk:/lib/modules# ls -al
drwxr-xr-x 3 root root 240 Apr 6 11:50 .
drwxr-xr-x 7 root root 4528 Apr 6 11:50 ..
drwxr-xr-x 3 root root 1208 Apr 6 11:50 5.4.94+g4b9631852aa7
root@imx6ullevk:/lib/modules/5.4.94+g4b9631852aa7# cat modules.builtin | grep ip_
kernel/net/ipv4/ip_tunnel.ko
kernel/net/ipv4/netfilter/ip_tables.ko
有什么我可以尝试解决的吗?
我使用以下步骤创建图像。我还尝试了比 Gatesgarth 更新的分支(Thud、Master、Zeus、Warrior ......)并使模块包含在内并模块化,但问题在于。
repo init -u https://github.com/Freescale/fsl-community-bsp-platform -b gatesgarth;
repo sync;
DISTRO=fslc-framebuffer MACHINE=imx6ullevk source setup-environment build;
#Add necessary recipies to the local.conf
echo 'MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "kernel-modules"
IMAGE_INSTALL_append = " \
packagegroup-core-ssh-openssh \
openssh-sftp-server \
iptables "' >> build/conf/local.conf;
#Add ip_tables modules
bitbake -c menuconfig virtual/kernel;
#Build the image
bitbake core-image-base;
重启。如果它仍然不起作用,则可能是
/boot
引导加载程序使用的“实际”文件系统在/boot
升级内核时没有正确安装。(或者,在安装引导加载程序时,/boot
未安装您想要使用的文件系统。)