我正在尝试将 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
未安装您想要使用的文件系统。)