我正在尝试在 Ubuntu 18.04 上安装 OpenvSwitch。我有两个内核版本,分别是 5.11.0-27-generic 和 5.4.0-42-generic。我将 ./configure 设置为构建 5.4.0-42-generic 版本。然后我使用命令'make modules_install',我收到以下消息
"[openvswitch-2.16.2]make modules_install
cd datapath/linux && make modules_install
make[1]: 進入目錄「/home/user/下載/openvswitch-2.16.2/datapath/linux」
make -C /lib/modules/5.4.0-42-generic/build M=/home/user/下載/openvswitch-2.16.2/datapath/linux modules_install
make[2]: 進入目錄「/usr/src/linux-headers-5.4.0-42-generic」
INSTALL /home/user/下載/openvswitch-2.16.2/datapath/linux/openvswitch.ko
INSTALL /home/user/下載/openvswitch-2.16.2/datapath/linux/vport-geneve.ko
INSTALL /home/user/下載/openvswitch-2.16.2/datapath/linux/vport-gre.ko
INSTALL /home/user/下載/openvswitch-2.16.2/datapath/linux/vport-lisp.ko
INSTALL /home/user/下載/openvswitch-2.16.2/datapath/linux/vport-stt.ko
INSTALL /home/user/下載/openvswitch-2.16.2/datapath/linux/vport-vxlan.ko
DEPMOD 5.4.0-42-generic
Warning: modules_install: missing 'System.map' file. Skipping depmod.
make[2]: 離開目錄「/usr/src/linux-headers-5.4.0-42-generic」
/sbin/depmod sed -n 's/#define UTS_RELEASE "\([^"]*\)"/\1/p' /lib/modules/5.4.0-42-generic/build/include/generated/utsrelease.h
"
结果似乎成功了。但是,我使用 mininet 来设置一个拓扑,其中三个 eth 连接到一个交换机。'mn --topo=single,3 --controller=none --mac' 接下来我添加一个流,即 'ovs-ofctl add-flow s1 action=normal' 和 'pingall' Wireshark 获取所有 icmp 数据包。我提前在 vport.c 中添加了一个代码。代码是 'printk(KERN_ERR "\r\n!!!print1 !!!\r\n)"' 但是,dmesg 不显示 printk。我发现 'insmod' 命令会显示以下错误 'insmod: ERROR: could not insert module openvswitch.ko: Invalid module format' 我的构建和安装过程有什么问题吗?如何在 dmesg 中显示 printk 消息?