ovs3.1.2 dpctl显示protocol not available问题

     上次解决qemu虚拟机使用无法和宿主机通信问题后,第一阶段留下两个问题,一个是ovs-dpctl show异常问题以及一个rpm方式编译debug问题。此次记录下对于第一个问题的处理过程。

首先根据上述日志可以看出这里其实netlink socket不支持某种特性导致的,阅读代码后可以发现报错位置如下:

这个NETLINK_EXT_ACK选项主要是用来返回更加详细的错误消息的,然而在内核3.10版本中其实并没有对他的支持,只有内核4.6以上才支持,因此才会报错。因此我尝试升级了内核最新6.5版本,此时问题能够解决,不再显示报错,但是奇怪的是我的网卡消失了,pci设备仍然存在,内核驱动模块r8169已经加载。

使用lspci -v观察

这个主板网卡其实是RTL的网卡,可以支持8168的驱动,但是在3.10内核中也能被8169驱动加载。于是决定下载最新的8168驱动,结果在RTL官网下载驱动是发现驱动最新支持到内核5.19版本,这应该能破案。于是我尝试安装内核5.19,结果发现网卡还是没有,结果发现内核模块没有加载,于是手动加载后发现确实可以看到网卡并能通过dhcp获取ip地址,大功告成。另外重启系统时发现r8169内核模块没有自动加载,需要检查/lib/modprobe.d/中有没有把驱动列入黑名单,并且在/lib/modules-load.d/r8169.conf中写入r8169即可实现自动加载。

rpm安装内核方法如下:

通过下面第一个网站获取需要的linux内核版本rpm包安装即可。当然如果想自己获取源码安装,可以在第二个网址获取源码压缩包编译安装。

http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/

Index of /pub/linux/kernel/

最后安装完后可以通过grub文件查看内核启动的选择顺序,通过grub2-set-default 0设置默认启动的内核,0表示第一个内核。

另外,由于5.19内核版本是由GCC-9.3.1版本编译,因此如果涉及内核模块的编译需要安装对应的gcc版本和内核devel包才能编译,安装方式如下:

centos-release-scl源下载:https://cbs.centos.org/koji/buildinfo?buildID=24739

centos-release-scl-rh依赖下载:https://cbs.centos.org/kojifiles/packages/centos-release-scl-rh/2/3.el7.centos/noarch/centos-release-scl-rh-2-3.el7.centos.noarch.rpm

scl-utils-build下载:http://mirror.centos.org/centos/7/os/x86_64/Packages/scl-utils-build-20130529-19.el7.x86_64.rpm

下载完上述3个rpm包后安装,通过yum install devtoolset-9-gcc.x86_64 devtoolset-9-gcc-c++.x86_64 devtoolset-9-gcc-gdb-plugin.x86_64 -y安装gcc。最后scl enable devtoolset-9 bash可以将当前bash切换到9.3.1 gcc,退出此bash后恢复。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

勺红华落空寂叶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值