为什么 Yocto Linux 中的 IPtables 和内核模块版本不匹配?

为什么 Yocto Linux 中的 IPtables 和内核模块版本不匹配?

我正在尝试将 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;

答案1

重新启动。如果仍然不起作用,可能是因为升级内核时/boot引导加载程序使用的“实际”文件系统未正确安装/boot。(或者,安装引导加载程序时,/boot未安装您想要使用的文件系统。)

相关内容